From 1267efa3076b8a67754bd808799d30d7ed31ac53 Mon Sep 17 00:00:00 2001 From: Linus Rath <139418639+rathlinus@users.noreply.github.com> Date: Fri, 13 Mar 2026 02:51:07 +0100 Subject: [PATCH] docs: add RFC specifications (txt + pdf) organized by category (core, mail, contacts, calendar, sieve, quotas, auth) --- .gitignore | 1 - specifications/addon-plugin-theme-concept.md | 937 + specifications/auth/rfc6570.pdf | Bin 0 -> 52266 bytes specifications/auth/rfc6570.txt | 1907 ++ specifications/auth/rfc7636.pdf | Bin 0 -> 29583 bytes specifications/auth/rfc7636.txt | 1123 ++ specifications/calendar/rfc8984.pdf | Bin 0 -> 827754 bytes specifications/calendar/rfc8984.txt | 3987 ++++ specifications/calendar/rfc9670.pdf | Bin 0 -> 158604 bytes specifications/calendar/rfc9670.txt | 857 + specifications/contacts/rfc6350.pdf | Bin 0 -> 102357 bytes specifications/contacts/rfc6350.txt | 4147 ++++ specifications/contacts/rfc9553.pdf | 17115 +++++++++++++++++ specifications/contacts/rfc9553.txt | 4043 ++++ specifications/contacts/rfc9610.pdf | Bin 0 -> 163718 bytes specifications/contacts/rfc9610.txt | 844 + specifications/core/rfc8620.pdf | Bin 0 -> 134336 bytes specifications/core/rfc8620.txt | 5043 +++++ specifications/mail/rfc2369.pdf | Bin 0 -> 21006 bytes specifications/mail/rfc2369.txt | 843 + specifications/mail/rfc5322.pdf | Bin 0 -> 76795 bytes specifications/mail/rfc5322.txt | 3195 +++ specifications/mail/rfc8621.pdf | Bin 0 -> 152170 bytes specifications/mail/rfc8621.txt | 6051 ++++++ specifications/mail/rfc9007.pdf | Bin 0 -> 154669 bytes specifications/mail/rfc9007.txt | 614 + specifications/quotas/rfc9425.pdf | 2388 +++ specifications/quotas/rfc9425.txt | 518 + specifications/sieve/rfc9661.pdf | Bin 0 -> 157212 bytes specifications/sieve/rfc9661.txt | 1015 + specifications/stalwart_openapi.yml | 2622 +++ 31 files changed, 57249 insertions(+), 1 deletion(-) create mode 100644 specifications/addon-plugin-theme-concept.md create mode 100644 specifications/auth/rfc6570.pdf create mode 100644 specifications/auth/rfc6570.txt create mode 100644 specifications/auth/rfc7636.pdf create mode 100644 specifications/auth/rfc7636.txt create mode 100644 specifications/calendar/rfc8984.pdf create mode 100644 specifications/calendar/rfc8984.txt create mode 100644 specifications/calendar/rfc9670.pdf create mode 100644 specifications/calendar/rfc9670.txt create mode 100644 specifications/contacts/rfc6350.pdf create mode 100644 specifications/contacts/rfc6350.txt create mode 100644 specifications/contacts/rfc9553.pdf create mode 100644 specifications/contacts/rfc9553.txt create mode 100644 specifications/contacts/rfc9610.pdf create mode 100644 specifications/contacts/rfc9610.txt create mode 100644 specifications/core/rfc8620.pdf create mode 100644 specifications/core/rfc8620.txt create mode 100644 specifications/mail/rfc2369.pdf create mode 100644 specifications/mail/rfc2369.txt create mode 100644 specifications/mail/rfc5322.pdf create mode 100644 specifications/mail/rfc5322.txt create mode 100644 specifications/mail/rfc8621.pdf create mode 100644 specifications/mail/rfc8621.txt create mode 100644 specifications/mail/rfc9007.pdf create mode 100644 specifications/mail/rfc9007.txt create mode 100644 specifications/quotas/rfc9425.pdf create mode 100644 specifications/quotas/rfc9425.txt create mode 100644 specifications/sieve/rfc9661.pdf create mode 100644 specifications/sieve/rfc9661.txt create mode 100644 specifications/stalwart_openapi.yml diff --git a/.gitignore b/.gitignore index f70b6fde..fd6cd363 100644 --- a/.gitignore +++ b/.gitignore @@ -23,7 +23,6 @@ # misc .DS_Store *.pem -/specifications/ # debug npm-debug.log* diff --git a/specifications/addon-plugin-theme-concept.md b/specifications/addon-plugin-theme-concept.md new file mode 100644 index 00000000..801ee8c9 --- /dev/null +++ b/specifications/addon-plugin-theme-concept.md @@ -0,0 +1,937 @@ +# Addons, Plugins & Themes — Architecture Concept + +> **Status**: Draft Concept +> **Date**: 2026-03-13 + +--- + +## Table of Contents + +1. [Overview](#1-overview) +2. [Terminology](#2-terminology) +3. [Manifest Format](#3-manifest-format) +4. [Themes](#4-themes) +5. [Plugins](#5-plugins) +6. [Addon Lifecycle](#6-addon-lifecycle) +7. [Extension Points (Hooks & Slots)](#7-extension-points-hooks--slots) +8. [Security & Sandboxing](#8-security--sandboxing) +9. [Storage & Distribution](#9-storage--distribution) +10. [Settings Integration](#10-settings-integration) +11. [API Surface](#11-api-surface) +12. [Migration Path](#12-migration-path) + +--- + +## 1. Overview + +This document describes a system that allows the JMAP Webmail application to be extended through **themes** (visual customization) and **plugins** (functional extensions). Together, these are called **addons**. + +### Design Goals + +- **Safe by default** — addons cannot break core functionality or access data beyond their declared scope. +- **Zero-config for users** — install, enable, done. No code changes to the host app. +- **Declarative where possible** — prefer JSON/CSS-based customization over imperative code. +- **Aligned with existing architecture** — builds on Zustand stores, React context/providers, CSS variables, and the Next.js App Router patterns already in use. +- **Incrementally adoptable** — the core app can ship without any addons; the addon system is a layer on top. + +### Non-Goals (for v1) + +- Server-side plugin execution (all addons run client-side). +- A public addon marketplace (addons are self-hosted or bundled). +- Modifying JMAP protocol behavior (addons consume JMAP data, not intercept it). + +--- + +## 2. Terminology + +| Term | Definition | +|------|-----------| +| **Addon** | Any installable extension — umbrella term for themes and plugins. | +| **Theme** | An addon that only customizes visual appearance (colors, fonts, spacing, density). Ships as CSS + a manifest. Contains no executable code. | +| **Plugin** | An addon that adds or modifies functionality. Ships as a JS/TS module + a manifest. May include a theme. | +| **Slot** | A named insertion point in the UI where plugins can render components. | +| **Hook Point** | A named event or state transition where plugins can run logic. | +| **Manifest** | A `addon.json` file that declares metadata, permissions, and extension points. | + +--- + +## 3. Manifest Format + +Every addon has an `addon.json` at its root: + +```jsonc +{ + // ── Identity ── + "id": "com.example.my-addon", // Reverse-domain unique ID + "name": "My Addon", + "version": "1.0.0", // Semver + "description": "A brief description.", + "author": { + "name": "Jane Doe", + "url": "https://example.com" + }, + "license": "MIT", + "homepage": "https://example.com/my-addon", + + // ── Compatibility ── + "engine": { + "webmail": ">=1.0.0" // Required host app version range + }, + + // ── Type ── + "type": "plugin", // "theme" | "plugin" + + // ── Entry Points (plugins only) ── + "main": "dist/index.js", // Plugin entry module + "styles": "dist/styles.css", // Optional supplementary CSS + + // ── Theme Definition (themes, or plugins that include a theme) ── + "theme": { + "variables": "theme.css", // CSS file with variable overrides + "presets": ["light", "dark"], // Which base modes it provides + "preview": "preview.png" // Screenshot for settings UI + }, + + // ── Permissions (plugins only) ── + "permissions": [ + "emails:read", // Read email data from store + "emails:write", // Modify email data (move, flag, etc.) + "contacts:read", + "calendar:read", + "settings:read", + "settings:write", + "notifications", // Show toasts / browser notifications + "compose:toolbar", // Add buttons to composer toolbar + "sidebar:section", // Add sections to the sidebar + "viewer:action", // Add actions to email viewer toolbar + "navigation:tab", // Add a top-level navigation tab + "context-menu:email", // Extend email context menu + "keyboard-shortcuts", // Register keyboard shortcuts + "external-fetch" // Fetch external URLs (declared origins) + ], + + // ── External Origins (if external-fetch permission is declared) ── + "allowedOrigins": [ + "https://api.example.com" + ], + + // ── Slots (declares which UI slots the plugin uses) ── + "slots": [ + "sidebar.bottom", + "compose.toolbar", + "viewer.actions" + ], + + // ── Settings Schema (plugin-specific preferences) ── + "settings": { + "apiKey": { + "type": "string", + "label": "API Key", + "description": "Your API key for the service.", + "secret": true + }, + "enabled": { + "type": "boolean", + "label": "Enable integration", + "default": true + } + }, + + // ── i18n ── + "locales": "locales/" // Directory with {locale}.json files +} +``` + +--- + +## 4. Themes + +Themes are the simplest addon type — pure CSS, no executable code. + +### 4.1 How Themes Work + +The app already uses CSS custom properties (variables) for all colors, defined in `globals.css` under `:root` and `.dark`. A theme overrides these variables: + +```css +/* theme.css — "Nord" theme example */ + +:root[data-theme="com.example.nord"] { + --color-background: #eceff4; + --color-foreground: #2e3440; + --color-primary: #5e81ac; + --color-primary-foreground: #eceff4; + --color-border: #d8dee9; + --color-sidebar-bg: #e5e9f0; + --color-sidebar-hover: #d8dee9; + --color-muted: #4c566a; + --color-accent: #88c0d0; + --color-destructive: #bf616a; + + /* Extended variables for advanced customization */ + --font-family-base: "Inter", sans-serif; + --font-family-mono: "JetBrains Mono", monospace; + --radius-base: 8px; + --spacing-density: 1; /* 0.8 = compact, 1 = normal, 1.2 = comfortable */ + --shadow-elevation-1: 0 1px 3px rgba(0,0,0,0.08); +} + +:root[data-theme="com.example.nord"].dark { + --color-background: #2e3440; + --color-foreground: #eceff4; + --color-primary: #88c0d0; + --color-border: #3b4252; + --color-sidebar-bg: #3b4252; + --color-sidebar-hover: #434c5e; +} +``` + +### 4.2 Theme Application + +``` +User selects theme in Settings → Appearance + → ThemeStore sets `activeTheme: "com.example.nord"` + → + → Theme CSS is loaded via a tag with the theme's CSS file + → CSS specificity ensures theme variables override defaults +``` + +### 4.3 Theme Capabilities + +| Capability | Mechanism | +|-----------|-----------| +| Colors | Override `--color-*` CSS variables | +| Typography | Override `--font-family-*` variables | +| Spacing/density | Override `--spacing-density` multiplier | +| Border radius | Override `--radius-*` variables | +| Shadows | Override `--shadow-*` variables | +| Dark mode variant | Provide `.dark` overrides | +| Tag/label colors | Override `--tag-color-*` palette | +| Custom CSS | Additional rules scoped under `[data-theme="..."]` | + +### 4.4 Theme Constraints + +- Themes **cannot** add or remove DOM elements. +- Themes **cannot** execute JavaScript. +- Themes **cannot** override layout structure (flexbox directions, grid templates). +- Theme CSS is scoped by `[data-theme]` attribute — removing the attribute instantly reverts to defaults. +- A maximum CSS file size is enforced (e.g., 100 KB) to prevent abuse. + +--- + +## 5. Plugins + +Plugins are JavaScript modules that interact with the app through a controlled API. + +### 5.1 Plugin Entry Point + +A plugin exports a single `activate` function and optionally a `deactivate` function: + +```ts +// index.ts — Plugin entry point +import type { PluginContext } from "@jmap-webmail/addon-api"; + +export function activate(ctx: PluginContext) { + // Register a sidebar section + ctx.slots.register("sidebar.bottom", { + component: MySidebarWidget, + priority: 10, + }); + + // Register a composer toolbar button + ctx.slots.register("compose.toolbar", { + component: EncryptButton, + priority: 50, + }); + + // Listen to store changes + ctx.hooks.on("email:selected", (email) => { + // React to email selection + }); + + // Register a keyboard shortcut + ctx.shortcuts.register({ + key: "g t", + description: "Open translation panel", + action: () => ctx.panels.open("translate"), + }); + + // Add a context menu item + ctx.contextMenu.register("email", { + label: ctx.i18n.t("translateEmail"), + icon: "Languages", + action: (emailId) => { /* ... */ }, + }); +} + +export function deactivate(ctx: PluginContext) { + // Cleanup — called when the plugin is disabled or uninstalled. + // All slot registrations and event subscriptions are + // automatically cleaned up, so this is only needed + // for external resource cleanup. +} +``` + +### 5.2 PluginContext API + +The `PluginContext` object is the plugin's only interface to the host app. It is scoped and sandboxed based on the declared permissions: + +```ts +interface PluginContext { + /** Plugin metadata from manifest */ + manifest: AddonManifest; + + /** UI slot registration */ + slots: { + register(slotId: string, registration: SlotRegistration): Disposable; + }; + + /** Event hooks */ + hooks: { + on(event: HookEvent, handler: Function): Disposable; + once(event: HookEvent, handler: Function): Disposable; + }; + + /** Store access (read-only or read-write based on permissions) */ + stores: { + emails: PluginEmailStore; // If emails:read or emails:write + contacts: PluginContactStore; // If contacts:read + calendar: PluginCalendarStore; // If calendar:read + settings: PluginSettingsStore; // If settings:read or settings:write + }; + + /** Plugin-specific settings (defined in manifest "settings" schema) */ + config: { + get(key: string): T; + set(key: string, value: unknown): void; + onChange(key: string, handler: (value: unknown) => void): Disposable; + }; + + /** Toast notifications */ + notifications: { + success(message: string): void; + error(message: string): void; + info(message: string): void; + }; + + /** i18n — scoped to plugin's locale files */ + i18n: { + t(key: string, params?: Record): string; + locale: string; + }; + + /** Keyboard shortcuts */ + shortcuts: { + register(shortcut: ShortcutDefinition): Disposable; + }; + + /** Context menu extensions */ + contextMenu: { + register(target: ContextMenuTarget, item: ContextMenuItem): Disposable; + }; + + /** Panel API — open side panels or modals */ + panels: { + open(panelId: string, props?: Record): void; + close(panelId: string): void; + register(panelId: string, component: React.ComponentType): Disposable; + }; + + /** Scoped fetch — only allowed origins from manifest */ + fetch(url: string, init?: RequestInit): Promise; +} +``` + +### 5.3 Disposable Pattern + +All registrations return a `Disposable` object. On plugin deactivation, all disposables are automatically cleaned up: + +```ts +interface Disposable { + dispose(): void; +} +``` + +--- + +## 6. Addon Lifecycle + +``` +┌──────────────────────────────────────────────────────────┐ +│ Addon Lifecycle │ +├──────────────────────────────────────────────────────────┤ +│ │ +│ ┌─────────┐ install ┌───────────┐ enable │ +│ │ Store │────────────▶│ Installed │──────────┐ │ +│ │ / URL │ │ (disabled) │ │ │ +│ └─────────┘ └───────────┘ ▼ │ +│ ▲ ┌──────────┐ │ +│ disable│ │ Active │ │ +│ │ │(running) │ │ +│ └───────────┤ │ │ +│ └──────────┘ │ +│ │ ▲ │ +│ uninstall update│ │ +│ │ │ │ +│ ▼ ┌────┴─────┐ │ +│ ┌────────┐ │ Updating │ │ +│ │Removed │ └──────────┘ │ +│ └────────┘ │ +│ │ +└──────────────────────────────────────────────────────────┘ +``` + +### 6.1 Loading Sequence + +1. **Boot**: App starts, `AddonManager` reads the addon registry from `localStorage` (list of installed addons + enabled state). +2. **Resolve**: For each enabled addon, load its manifest and verify compatibility (`engine.webmail`). +3. **Load Themes**: Inject theme CSS `` for the active theme. +4. **Load Plugins**: Dynamically import each plugin's `main` entry point. +5. **Activate**: Call `activate(ctx)` for each plugin, passing a scoped `PluginContext`. +6. **Ready**: Emit `app:ready` hook — plugins can now interact with stores. + +### 6.2 Addon Manager Store + +A new Zustand store manages addon state: + +```ts +interface AddonManagerState { + /** Registry of all installed addons */ + addons: Record; + + /** Currently active theme ID (null = default) */ + activeTheme: string | null; + + /** Actions */ + installAddon(source: AddonSource): Promise; + uninstallAddon(id: string): void; + enableAddon(id: string): void; + disableAddon(id: string): void; + setActiveTheme(id: string | null): void; + getAddon(id: string): InstalledAddon | undefined; + getEnabledPlugins(): InstalledAddon[]; +} + +interface InstalledAddon { + manifest: AddonManifest; + enabled: boolean; + installedAt: string; // ISO timestamp + source: AddonSource; // Where it was loaded from + runtimeState: "inactive" | "active" | "error"; + error?: string; // Last activation error +} + +type AddonSource = + | { type: "bundled" } // Shipped with the app + | { type: "url"; url: string } // Loaded from a URL + | { type: "local"; path: string }; // Development: local file +``` + +--- + +## 7. Extension Points (Hooks & Slots) + +### 7.1 UI Slots + +Slots are named insertion points scattered across the UI. The host app renders a `` component at each point; plugins register components into slots. + +```tsx +// Host app — in sidebar.tsx +import { Slot } from "@/components/addons/slot"; + +function Sidebar() { + return ( + + ); +} +``` + +```tsx +// Slot component implementation +function Slot({ name }: { name: string }) { + const registrations = useAddonSlot(name); + if (registrations.length === 0) return null; + + return ( + <> + {registrations + .sort((a, b) => a.priority - b.priority) + .map((reg) => ( + + + + ))} + + ); +} +``` + +#### Available Slots + +| Slot Name | Location | Use Case | +|-----------|----------|----------| +| `sidebar.top` | Top of sidebar, below compose button | Quick-access widgets | +| `sidebar.bottom` | Bottom of sidebar, above storage quota | Extra navigation, widgets | +| `navigation.tabs` | Navigation rail, below contacts icon | New top-level views | +| `compose.toolbar` | Composer toolbar (formatting bar) | Encrypt, translate, AI assist buttons | +| `compose.footer` | Below composer body, above send button | Send-time options (delay, schedule) | +| `viewer.actions` | Email viewer toolbar | Custom actions (translate, summarize) | +| `viewer.header` | Above email body in viewer | Banners, warnings, metadata | +| `viewer.footer` | Below email body in viewer | Related content, suggestions | +| `list.toolbar` | Above email list | Additional filters, bulk actions | +| `settings.sections` | Settings page, below existing sections | Plugin settings panels | +| `calendar.toolbar` | Calendar view toolbar | Calendar-specific actions | +| `contacts.toolbar` | Contacts view toolbar | Contact-specific actions | + +### 7.2 Hook Events + +Plugins can listen to app events and state transitions: + +#### Email Hooks + +| Event | Payload | Description | +|-------|---------|-------------| +| `email:selected` | `{ emailId, email }` | User selected an email | +| `email:opened` | `{ emailId, email }` | Email viewer rendered | +| `email:compose:open` | `{ mode, replyTo? }` | Composer opened | +| `email:compose:before-send` | `{ draft }` | Before sending — can modify draft | +| `email:compose:sent` | `{ emailId }` | Email sent successfully | +| `email:moved` | `{ emailId, from, to }` | Email moved between mailboxes | +| `email:deleted` | `{ emailId }` | Email deleted | +| `email:flagged` | `{ emailId, flags }` | Email flags changed | + +#### Calendar Hooks + +| Event | Payload | Description | +|-------|---------|-------------| +| `calendar:event:created` | `{ event }` | New event created | +| `calendar:event:updated` | `{ event, changes }` | Event modified | +| `calendar:event:deleted` | `{ eventId }` | Event deleted | +| `calendar:view:changed` | `{ view, date }` | Calendar view switched | + +#### Contact Hooks + +| Event | Payload | Description | +|-------|---------|-------------| +| `contact:selected` | `{ contactId }` | Contact selected | +| `contact:created` | `{ contact }` | New contact created | +| `contact:updated` | `{ contact }` | Contact modified | + +#### App Hooks + +| Event | Payload | Description | +|-------|---------|-------------| +| `app:ready` | `{}` | App fully loaded | +| `app:theme:changed` | `{ theme }` | Theme switched | +| `app:locale:changed` | `{ locale }` | Language changed | +| `app:navigation` | `{ from, to }` | User navigated between views | + +--- + +## 8. Security & Sandboxing + +### 8.1 Permission Model + +Plugins declare required permissions in their manifest. On installation, the user sees a permission prompt: + +``` +"My Translation Plugin" requests: + ✉️ Read your emails + 🔔 Show notifications + 🌐 Connect to https://api.translate.example.com + + [Allow] [Cancel] +``` + +Permissions are enforced at the `PluginContext` level — if a plugin didn't declare `emails:read`, `ctx.stores.emails` is `undefined`. + +### 8.2 Sandboxing Strategy + +| Layer | Mechanism | +|-------|-----------| +| **Store access** | `PluginContext` exposes only permitted store slices. Write access returns proxied objects — mutations are validated before applying. | +| **DOM access** | Plugin components render inside an ``. They receive a scoped React tree — no direct `document` manipulation. | +| **Network** | `ctx.fetch()` is a controlled wrapper. Requests are only allowed to origins listed in `allowedOrigins`. All other `fetch` / `XMLHttpRequest` calls from plugin code are blocked via CSP headers. | +| **Storage** | Plugins use `ctx.config` (backed by a namespaced key in `localStorage`). No direct `localStorage` / `sessionStorage` access. | +| **Error isolation** | Each plugin slot is wrapped in an `AddonErrorBoundary`. A crashing plugin is caught and disabled without affecting the rest of the app. | +| **Resource limits** | Plugin CSS is limited to 100 KB. Plugin JS bundles are limited to 500 KB (configurable). | + +### 8.3 Content Security Policy + +Theme CSS is sanitized to disallow: +- `url()` references to external domains (only data URIs and same-origin). +- `@import` statements. +- `expression()` or `behavior:` (legacy IE attack vectors). + +### 8.4 Error Boundary + +```tsx +function AddonErrorBoundary({ addonId, children }) { + return ( + } + onError={(error) => { + console.error(`[Addon: ${addonId}] Crashed:`, error); + addonManager.reportError(addonId, error); + // Auto-disable after 3 crashes in 5 minutes + }} + > + {children} + + ); +} +``` + +--- + +## 9. Storage & Distribution + +### 9.1 Addon Formats + +| Format | Description | Use Case | +|--------|-------------|----------| +| **Bundled** | Shipped inside the app's `/addons/` directory | Default themes, first-party plugins | +| **URL** | Loaded from a remote URL at runtime | Self-hosted or third-party addons | +| **Local file** | Loaded from a local path (dev mode only) | Plugin development | + +### 9.2 Addon Bundle Structure + +``` +my-addon/ +├── addon.json # Manifest (required) +├── dist/ +│ ├── index.js # Plugin entry (plugins only) +│ └── styles.css # Additional styles (optional) +├── theme.css # Theme variables (themes only) +├── preview.png # Theme preview image (optional) +└── locales/ + ├── en.json # English strings + ├── fr.json # French strings + └── ... +``` + +### 9.3 Built-in Addon Directory + +``` +addons/ +├── themes/ +│ ├── nord/ +│ │ ├── addon.json +│ │ ├── theme.css +│ │ └── preview.png +│ ├── dracula/ +│ ├── solarized/ +│ ├── catppuccin/ +│ └── high-contrast/ +└── plugins/ + └── (none bundled by default) +``` + +### 9.4 Installation Flow + +**From URL:** +1. User pastes addon URL into Settings → Addons → "Install from URL". +2. App fetches `{url}/addon.json`, validates schema and compatibility. +3. Manifest is stored in addon registry (`localStorage`). +4. On next activation, the addon's assets are fetched and cached. + +**Bundled:** +1. Addons in `/addons/` are auto-discovered at build time. +2. A generated `addon-registry.json` maps addon IDs to their local paths. +3. Bundled addons appear pre-installed (but can be disabled). + +--- + +## 10. Settings Integration + +### 10.1 Addon Settings Page + +A new page at `/settings/addons` integrates into the existing settings layout: + +``` +Settings +├── Appearance +├── Language & Region +├── Email +├── Composer +├── Calendar +├── Privacy & Security +├── Keyboard Shortcuts +├── Addons ← NEW +│ ├── Themes +│ │ ├── Default (active) +│ │ ├── Nord +│ │ ├── Dracula +│ │ └── [Install Theme...] +│ ├── Plugins +│ │ ├── Translation Plugin (enabled) [Settings] [Disable] +│ │ ├── PGP Encryption (disabled) [Enable] [Uninstall] +│ │ └── [Install Plugin...] +│ └── Developer +│ └── [Load from local path...] +``` + +### 10.2 Plugin-Specific Settings + +Plugins declare their settings schema in `addon.json`. The app auto-generates a settings UI: + +```jsonc +// In addon.json +"settings": { + "provider": { + "type": "select", + "label": "Translation Provider", + "options": [ + { "value": "deepl", "label": "DeepL" }, + { "value": "google", "label": "Google Translate" } + ], + "default": "deepl" + }, + "targetLanguage": { + "type": "select", + "label": "Default Target Language", + "options": "locales", // Special: populated from app locales + "default": "en" + }, + "autoTranslate": { + "type": "boolean", + "label": "Auto-translate foreign emails", + "default": false + } +} +``` + +Supported setting types: `string`, `boolean`, `number`, `select`, `multiselect`, `color`, `secret` (masked input). + +### 10.3 Theme Selector + +The existing Appearance settings page gains a theme gallery: + +``` +Appearance +├── Theme: [Default ▾] ← dropdown with installed themes +│ Preview: [████████████████] ← live color preview strip +├── Mode: Light / Dark / System +├── Font Size: Small / Medium / Large +└── ... +``` + +When a theme is selected, the app: +1. Sets `data-theme` attribute on ``. +2. Loads the theme's CSS file. +3. Persists the choice in `ThemeStore`. + +--- + +## 11. API Surface + +### 11.1 Core Registry (`AddonRegistry`) + +```ts +class AddonRegistry { + /** Register a slot for plugin component injection */ + defineSlot(name: string, options?: SlotOptions): void; + + /** Get all registrations for a slot */ + getSlotRegistrations(name: string): SlotRegistration[]; + + /** Subscribe to slot changes (for reactive rendering) */ + onSlotChange(name: string, cb: () => void): Disposable; + + /** Emit a hook event to all listening plugins */ + emitHook(event: string, payload: unknown): void; + + /** Emit a hook event that plugins can modify (pipeline) */ + emitHookPipeline(event: string, value: T): T; +} +``` + +### 11.2 Hook Pipeline (Interceptors) + +Some hooks allow plugins to transform data flowing through them. For example, `email:compose:before-send` lets plugins modify the draft before it's sent: + +```ts +// Plugin: auto-add disclaimer +ctx.hooks.on("email:compose:before-send", (draft) => { + return { + ...draft, + htmlBody: draft.htmlBody + "

Sent from JMAP Webmail

", + }; +}); +``` + +Pipeline hooks execute in priority order. If any handler throws, the pipeline is aborted and the action is cancelled (with a notification to the user). + +### 11.3 React Hooks for Addon Developers + +```ts +// Available inside plugin components: + +/** Access the plugin's scoped context */ +usePluginContext(): PluginContext; + +/** Access plugin-specific settings (reactive) */ +usePluginConfig(key: string): [T, (value: T) => void]; + +/** Access plugin's i18n */ +usePluginI18n(): { t: (key: string, params?: Record) => string }; + +/** Access host app theme info */ +useHostTheme(): { mode: "light" | "dark"; resolvedMode: "light" | "dark" }; +``` + +--- + +## 12. Migration Path + +### Phase 1: Foundation + +- [ ] Define the complete `addon.json` schema with JSON Schema validation. +- [ ] Create the `AddonManagerStore` (Zustand store for managing installed addons). +- [ ] Extend `ThemeStore` with `activeTheme` and `data-theme` attribute management. +- [ ] Implement CSS variable injection for themes. +- [ ] Add 3–5 bundled themes (Nord, Dracula, Solarized, Catppuccin, High Contrast). +- [ ] Add the theme selector to Settings → Appearance. + +### Phase 2: Plugin Infrastructure + +- [ ] Implement the `` component and `AddonErrorBoundary`. +- [ ] Add `` insertion points to the 12 defined locations in the UI. +- [ ] Build the `PluginContext` factory with permission-gated store access. +- [ ] Implement the hook event system (`emitHook`, `emitHookPipeline`). +- [ ] Create the Settings → Addons page with install/enable/disable/uninstall UI. +- [ ] Implement auto-generated settings UI from plugin settings schema. + +### Phase 3: Developer Experience + +- [ ] Create `@jmap-webmail/addon-api` — TypeScript type definitions package. +- [ ] Create `create-jmap-addon` CLI scaffolding tool. +- [ ] Write addon developer documentation with examples. +- [ ] Build a sample plugin (e.g., email translation) as a reference. +- [ ] Add dev mode: hot-reload addons from local filesystem. + +### Phase 4: Hardening + +- [ ] Security audit of the sandboxing layer. +- [ ] CSP header configuration for addon CSS/JS. +- [ ] Rate limiting for hook events (prevent infinite loops). +- [ ] Performance budgets: measure and enforce bundle size + render time limits. +- [ ] Auto-disable addons that crash repeatedly. + +--- + +## Appendix: Example Addons + +### A. Theme: "Nord" + +``` +nord-theme/ +├── addon.json +├── theme.css +└── preview.png +``` + +`addon.json`: +```json +{ + "id": "org.nordtheme.jmap-webmail", + "name": "Nord", + "version": "1.0.0", + "type": "theme", + "description": "An arctic, north-bluish color palette.", + "author": { "name": "Arctic Ice Studio" }, + "license": "MIT", + "engine": { "webmail": ">=1.0.0" }, + "theme": { + "variables": "theme.css", + "presets": ["light", "dark"], + "preview": "preview.png" + } +} +``` + +### B. Plugin: "Email Translator" + +``` +email-translator/ +├── addon.json +├── dist/ +│ └── index.js +└── locales/ + ├── en.json + └── fr.json +``` + +`addon.json`: +```json +{ + "id": "com.example.email-translator", + "name": "Email Translator", + "version": "1.0.0", + "type": "plugin", + "description": "Translate emails with one click.", + "author": { "name": "JMAP Community" }, + "license": "MIT", + "engine": { "webmail": ">=1.0.0" }, + "main": "dist/index.js", + "permissions": [ + "emails:read", + "notifications", + "viewer:action", + "external-fetch" + ], + "allowedOrigins": ["https://api.deepl.com"], + "slots": ["viewer.actions"], + "settings": { + "apiKey": { + "type": "secret", + "label": "DeepL API Key" + }, + "targetLanguage": { + "type": "select", + "label": "Target Language", + "options": "locales", + "default": "en" + } + }, + "locales": "locales/" +} +``` + +### C. Plugin: "Send Later" + +Adds a "Schedule Send" button to the composer: + +```ts +export function activate(ctx: PluginContext) { + ctx.slots.register("compose.footer", { + component: ScheduleSendPicker, + priority: 10, + }); + + ctx.hooks.on("email:compose:before-send", (draft) => { + const scheduledTime = ctx.config.get("pendingSchedule"); + if (scheduledTime) { + // Store the scheduled time — the host app handles deferred sending + return { ...draft, deliverAt: scheduledTime }; + } + return draft; + }); +} +``` + +--- + +## Open Questions + +1. **Should plugins be able to define new routes (pages)?** Adding full pages (e.g., `/addons/my-plugin/dashboard`) would require deeper Next.js integration. Could use a `navigation:tab` slot that renders a full-pane view instead. + +2. **Web Worker isolation?** Running plugin JS in a Web Worker would provide stronger isolation but prevents direct React rendering. A message-passing bridge is possible but adds complexity. Probably not worth it for v1. + +3. **Server-side plugins?** Some use cases (email filtering, webhook integrations) need server execution. This is out of scope for v1 but could be explored as Sieve filter generation or JMAP push notification handlers. + +4. **Addon signing?** For URL-installed addons, a signature verification system would prevent tampering. Worth considering for v2. + +5. **Shared dependencies?** Should plugins be able to declare peer dependencies on the host app's packages (React, date-fns, Lucide icons)? This would reduce bundle sizes but creates coupling. Recommend providing these as globals via the plugin runtime. diff --git a/specifications/auth/rfc6570.pdf b/specifications/auth/rfc6570.pdf new file mode 100644 index 0000000000000000000000000000000000000000..76def4ccffdbfbd6aedf88970cdf9b7a307989da GIT binary patch literal 52266 zcma&NQt(Lh*28-H`W&N= zIY|{n#Aq4mSfEHpui}fKSP2*i?2W9TczEb#Ozq5FEC|^C`l3WHW@+PM>O?>F2j%SIWNK&&<&jgXChNS(0n>A-zNcnRmdKyAVrf^2ZQir!(%j}{^&%jd zFr-F=niN&+uOE>1E7h&NIhF@=6y^Ty?hfD_P;4JV?ALj3G8G10dBUav2>VkyIDG$_ zeZUQM<({udHk}9IM3C$j2A$a5%K@&4DuV_^xL9GZb*glzMacvq(hK%ft0ck=c=V-( zpFa?P?-$Jeh(TTK68Ze90Z-VOF@wf|aPW#?8SIpcYN68$(oSz?oFCBRRo6Th{r!!r>T%?M<0PceIN|zlTlWD^o6$~ zk#5A~;*x!UI(4HCMd7gKA*@`k?)?77yZ7u2fT->w(N~@_IWVp>x*S`oGj?%pfGq(9 z97=C-G3e|>X)T)xKrLitS$WlpVq;`FK|>2!awXo!EOf%Z)0EuM=trux>*zzLWG$Z} z5$+f`BctC_#GpJt0?fB6tXZPE@(=}8Y-A-vNrVu0Kbwj<0RulIwA`d3&kOKc*{zP1 zo7;ekSoeBbO6HYP=iIKvoSJiJD<_bW)m~jd#TDBbLy`997`!Kp-8ShAHw%<_=KJhfk-tKt?#ZW^tZQ?eJ&~_U4in!D5SBXWc`y-N4q`s{m-ScIztyad>tW_Bws2z@)kNLqo~3I{D{`8sH%imf zO)`{P##;vDX=l#t-t?1Cx4J-lQ!rYi-IiFv2u5Adw%XdYdiYj}mVj{xayfXDx9k(v zSYQn}Ck)dN%Sq58v(w1SHj90 zWXGsq+2zVuw*!ycv75|I+ATOFucv314HQmhSYFj;Tu~k=e!!J>M#oy6+K-U7FqBy8 zmPVD->Lw8X08qBn!YX{LkE!vt$UY@Xjnvm>?hHK}$t#bZraMGuMZ6rpQLG1$Mi!?E z+;virgJM1x@F%(+d>1ILFku+duBl6LJ(BiA%u9)&1V)C*4Efa!N_p5^SB}pUUOFCA zfAyjQ#`$M}(8c(t2q_|qI~LRRJh!B_-!`HamJTlujZh?o%nP4OANNDlEJWVg3SFZp zW?43(^kS`Qy`}f#@cwpu#npq?3W*pXu6{SH*Sl?Ufmq@x`}>R6eY*+0TaaEzG2etk zmlSW=e7k^9YV#n6B`1{Goz|0Kwzuy>{{$LCv^S^;i?#i}(HUk2{ zo%>f*GMQ~{+X9Bfh8?_epE~9CLfDPzMlf{x5_QHBhko`;-z|(KRCGI9L=gpupU%u_ zGk(D#(^sQAT-#f~L%| z^8=iYm_X`~NKVvb7W5CgY^x0C(vBr*FE~xHO5W*&mouHNt;ZKb~|9b1J-W)?0Eix}E5f$cj5y*K-` zTfNie7|@L@91)h&P}fBt_0iM?SD`BC5TSM@Ht=bbTe<4K<)k8^f)2A4GkP&jYAj!L zI{1vD#pkNtHpQqr7CnRV7YTwQ_}3+5m$RH&UFS z2dzabz2=Z6*OWV)3o!0UJw~@YWwPI-8r$%XnygUG`{t&Za zwR5<|mm{MvvXllt&iuG>RHLKFADM1C%kB-Z0vlDk*g4=>Ch`K8;Fb~zy=+`z`TK-w z#`1Bj*t-E|7tAMS&zJmx#ij1-89es8djF3o{*$r4v&g~7`rjyW{24{ge-p)6HC=mb zb_Ac*dX1yPCP2Y_#{(>gpcV@tVA>51s1JlwL)TI6#$MuC68R{Diay@v?&cEZ<&%~6cNt|*zQ^UOHte=p& zap%vI=`8f#=IporrRwPQqb?86?7fWCGS4pI@qsiy*zw&o%#2$CO&65e| zTOnu4T#;H>Pk-;YY}}0Pz zEusVD{`Pslpth7}gPu^hR+Z`}nl?dNB+j%WVjnu9P9+c*x?#N53NK|_ld{p&3Pz4m z%}!h`rCVzaz?=2fsf#5zELwv>colk!P^7n;RUG%el<+maD+W`cJgwaiTCtipixTH; zRHi*rL8Ssur~GN1d|Rl36Xawj&#!Dq}UKz)0)K187%CeWnr4Ob>F_BwKZ4jG7I}dyQ5{8BiCB59qxi|w(m4ZU3 z*(mQpBbX)rwzzy{7?Y$puz%hKN3@`5^{9+0WM%nkld$ua=!4QNU+V~n0dMNQfDpeK_ms~1zqvk zt5&Ay)?^aSDv?ZJayCmYM_=^B#es7Z0my$>B(7Z;(QO!m9vbvU&4y=-;WmeB^r*u5 zBZxk*LFK1$3q3K0-W$Ol7V*{8n?;{;ZyZID=s=Qi$~v6%FrA0gnnW$g^NdwN>F-tkiwdc2)tha8@XsMlvpS2GGAkcel{EW-9r>34~QT&2MFnk30Hk? z$n}W)xN0bJdo44$t2)1 z-I%?zSh1ZSj&3{+C3t!TS>IDVLo1?GEH@Qavhmr`19hO9;hojyQ`O-2>HA8y`HZb_ zTfYf{kF1((@!DwD@G(yJuYU{hG+zgNXtTCd7juzV4$+4fm^Tmv^%7-`628cSiD^*F z+#QPTL4t>fw)`lP|MaY&=iT$X#FGiB}hN{cO<#iGyS^ zm*ybj>GF^NcypUEArQuoyo$~Pa!k@#1!#ZU#Sc+lQ$Y|b^j)iluFoAU@vTKt*IAlt zk;PX3(hp^>ygMK=`q)#kW3&bjxy7Rk%gsm12Wo1P=A9N?->%fh*8ehssa#h#`DMHF z8S(0_SF}p`Cq(|H!~bmP42=Jw2ouX66k+{6Ma0sFL2lul($TpoZ3%I*EQ<&L5vlZ}{NkEZ+6?FKZJkavsqG>^`)| zrlw**lS?wl?$CH86HcTCpa%oWREvPpQrUSJP zb?ahAsh-QZDA+O9mb)xicGjJL|aib@X5FXz_*g-Ntus>#!S#j=B)QQ ze8+%N8nn2IQrZb*Nt;;~tKa;DXI&O2KnBvF@p8H~%9Sjw)k1EaLWtTsz&^*OmMYLM zRc$4QP%AXvvm!KZtr$RY1C`vkL_q;EgnvU(QtXjB3>9s(D^9sdVx0Y%$b@PJUXsqT zZ#RbRTnwO(v1*>^_jF7OlV5rMr_>>{m z`N@~d5=IDS_Q+uF4FgANGN_?W2Uh7sYRSkJ`$StqtyPC;*1<*s%z7YFKKD{N)LMcKsM*P`}U zMUe7a;9b}8$kee9GeLdId7u80e@;qBf_OvhFpybafLm+fhVmC|rBNtP>y%ORt1 z_F@)CmKC3qu}xY+8))x5o~|MzagicNR&XR5;)1MG`A zMmxy}Wehi-@mmt#00+(6j5t-f>7pIuOI_0pJ};05wKhf%2Cq<|g;o=%DIH<quZ7T0@m<(%R)RtX!7H|bXzU|Y$w0p!5spc$MsM@5NUt{fC!joEQ>gjBsm?MT-a`@m zwMhHsFZDCc0eJqv%0IaHAFMEP{0A${41ZvSnepFXrRT5WgRkP59i!5DQG_<(YZXyNk;pm+rjvJt8tMlXG$)!h6{6Q}uCp-0>Rwa`Cr?qaKK?0`k^PU_$r&usXH;Em>%nSfydf-4ct3s#wZj(Gs+dkqX)CCf1>ajs$#bTJY+ ztZ3DJ3dAVkY)cdRvylDP0XR@Xt;nV~+zNJubqtDLxl$)lHGqekw~v#Ln-ci&()NnZ zW_r4rT~R=rJmW~BP!%KpituFS8^58cAiw%U3qY=n-q7cVcxKca01+D?xVVRv)lgGmjacf#+6~Bkv!H$7^>r^{2HGYf=^OU*r z%giy?!dn~wye|v@+^($?exD61=UWgQ8(ubKXB@U+eHOy`=Ah>bO+sSu!3$0d?mr$A z=M72_1bwILFC>~fJk2ILMN;l1_CELdt(3{|zkC1u7T8W^UUUBFh1=s+wm9v);ClT& zI&z#h2NxeB=JA<)Sc^5nA^Ft!7Mk)d;a8CN_iJd(mB)`fy0pZfOkZjCIEcQ~wHM7yUacb0c?O^=y`qZMY?U9nP zMm!{V2t~1AhdnM1bh1`f@Sc6R)8`8~U$FUYfCnr7?}%CbRvaAKKcMpuO#TNtEdK|c z{}_w^6QIoO{{}kO>GtxQ3<;`&cxKVA4HR^8AckzU|<|h8lNxyTpeZ4X$7+ z_+lDvS7;U`A+x?uma~L=UoPwMxE&F6igfbBEV*vib5@d>80|GoF z`ZgT}PjH^3mfQ0(LWCYZ&M?|q{VU(eLRh0R$$V$_yO{C8>XU)fB{6$YmP+Ph8s-9T zhfQn^a@O94W#`Un{qm17%7jE|Gx|uyB)TwmTF6(`#`#baP+oj(`Iw%uwL%Bqu6SZ}!rkDZCi$aEp-Nh_C- z<-$i%n`C?<ZIqA9i0F)671dO*MRH9eOPn=ITVbXOQ%Y8l?4(c~OQ@P81s6hVTu3tN#QaoR z#>Nct@85c$6-8zq1os>{?+s!4dY{hG{*?8JG%gz1# zjjq=HniGc+kHJPvGuWs(`6EHY4-y{4L&NKvrO?lZkQgeQKhfg?Q~&-MeO2oI@Xu`h zoteM0#m>h5pZ%QWPw&U_ue{%Mx~=^N1H$Ov(TWnA#KHq=X&?+~v%DsART5{eUEs1L zV;sshRvvXJXxsHYMJNz7Y$=uL2}t~PcY2k7Yosq!dL%H+GhUCbb!^uI7d%$=lhF@+ zrSy1+m*D+g$m7(gzO2&WbH$|qcp8eup#)pYd%O76!DFsMpv?E$4=6oMSdL}d>RToS zU7+Qs9r$M4W>4x2hfEF|2u!%ZiFWuN&;U&=||A{*jNE6v)L^Q*iN!vp1+6!9n+A*v_g z^W}Cq`gBqHb~ybqCA6L`E}z*Pz3~+C67hGST-e^F;ld(cwvhmxHqf46+ePj^y8V$( z-3yPnRG*a0)~`|)Iom*yaRus9Aott_Vq5B`i87vHTS&y%L;5Dd0}`kk;ai8xM)jEh z@MG3HH7eS0y&@I8RQ7z{o|PCq#s%c5MByR{30BoGBG^pwP87=|Xs_7XMQc+Kn3fUS z=ABweZ_&9LrKbCu!rP0|6fMU~tx{R@*OVu&dvEzFhC+AFA}b?c$Z&`Rh&~KOV3pm- ze$bwim2=moGuJZfJb#29IkcV>B|babdgTolH+f0=d{KBFN)}||qG>?0b+jiv`)ob( zxVM)OvDNo`pJnvc_w$QgVaQSQxyf&TFMjqtwpLx0DmC-hFk&)@Qw#_4Cn$J&*ST?1 zGN6M`2H)|J1#{o9dk7GIprg42Qk)`1d~{}4#Car&e(Kq)5-6Z#M!fi)0T$rdVF%)? z?)84!pCPl|Z}_ePEE4_X0!imiXiUf-Mkp^15m&+J25fgSZsEO2gmHy)#lU1B$iR#J zDl*$-Z*OwgujYYtf z87+ZU1l=h_u4RnYh{xi4Ma6y127dgcz)-RH6>t5my?c-7Bppy{f8_6A0$MUaa-*o!5{DuI=&%W1s4=~1H$26roQmkH!C0fVzFkLeuKaL4N_RkaDaIAa( zUFXuG+R-T0B;Jq#ULAkmn-A+wy zI9ILJNHb#@w`)PV&~99~4nD;z+~aN6%1|7es*uP8egGOiO5bgnXlHgHI>QdKsR? zUQx@7Gd3g{snVxr4kdL7zDm-b^|z}tGY2$iQWkBM1gQ8$SU-*<;+YVgr9_>CIW}8Y zMxnfCJmyw{?cz)C>u?=$ni`VviNX_MA5uxoEP6-<)g%uoFs~z~g>s%M6v@o5A~I8+ zbqjn1m)r~z#~hor@X!);R!SvyQdecA_5c;8rZo1Q(TA{&mkbl5D1Sj}&o2{C@9Q-7 zrE6#V&q7W`|4_>*`;yEhD3aWq(ip3=BO39A@yw3Se8%J&v5D1`zu%e@RG3x{%v5dT zL2*B6BJ?lK%&+a#T{z#TJIvN>r-wF_9I<_$0-K??E_lX8*b~*ApS>~aWMXO0LJ>K zFJt{zzHB+&UpborBjEc~x%)e!OOc|s&zpA!fALz*ex_-W``HdrX)Ht`xuv<>?=`fg zwN%!%>C!IDIso0n0~t@r30!qE)T$R|RnUsV{1O|%u^3AH0Ugslta>J3pGv}THr?Fz z7_iS4hR(&X8Y_rp8`PP`fwZ7ZATZ7X-3~+b>81LAdr}MeTRKSP$G+ zVFG_!~K4x!+z+rgM~PZvDGfgw&vU6Mbmzl*ADH?Baz$#hg@W<%5L+3 zj7A%(iDgtx>Bbj`ynNO;4LK|6cv?xBEw$34sM7d@Ox4k`aj8${*!cLRGKtY1hZG~~ z7Em4mo;nvy`#3M0`9p`6NC|j(_*$IxxL46;ZXV1fjYndNHESs# zhZ424rKx3WmVDNNKq8K)(~eXVSJS8aO5PKRd8OOhOw+0a)_A|C=)-$S=1MGyd&<#F z%hC6b} zv;vmm7m*ek`y8vPGBHEO?CoebW$E!hpDX!hgJn6v`eI9*7pV`+%AFrGP2#p$^qm(M zJI_-c|6XIaSW>f3{`%iiC#0YlXrV5NgqZmQ#*fY(2X@)qY%|RN@Aah5{c%)ZgOg%1 zNu|2-)@QYD697CTIby(1j1!VkS?*!~TFwE1SjuA}Fgb-JB5({U83m51~|7cl?;$(;T(dXztsbpN^!nWh*={dygZ6z9oA~;5L(BPn{9BQ*t+|Pbb-v$vUako2)z8z()2Hi? zr$&!tdetLCE(6heI+5Qd*6q^Wat?PHblg<6_QeN}lLJ7T(CN=4a!@>t4FF zJL?iVN+?a2F=|X!TPO=`2PKDsoA(0Jgk!vsxnzqWp&Ym^goMOXjfEZrh$hlRR^1*^ zO4_!s0t;>pUCUyl&P-9obO{9Kv1IgE8~Y{?KSFA=v!QH(qmhfGp1?5?$ThcMyzCKe zT_AQA>)0dQsAF5AFy=^>e4XH1Iq?MP?`{X_^d47l*xIoNH(GWw13@Z{dy1&w8D}k$+xB zDpOu(X4>Y~KEabvHZ54A2VB_!p;|smtf6UQ&oz8{wFU{@aL*n3WcT86Kmj==5CP!H zxG?cdtrm#9AS20-XOXY}GV7xl zKi=MF8fW>le?NshUOPnImao+`*Q9`qIs9flh%j-ui%bPXB9Vu^>t579D*>i0Q)xy( zAXmUiEXDz}J{wu`A z<=`3C+Z5HLUj3IQI(U9+e&wljc*KkExj=eJfV3GEJ{-jjaV)Or=f|&R*u zt=sVvodfhnpSZ<`5`OmvFHJU!uBD*s(EAMMX4vF+3pc9a7jv?7TU85i#yzMxgAll@xF{Lt4%~;L7O| zCS$pE}fd5zT<@(XIQZk;usG5Ie?+6i(P+*296@MXs{_ zfs4CQIpHJ~Xyln?MrRV|xMciQ7f#rf21>q<$a)A;>QuWVf^f{XcP8`abX4X&K8Zx( zUk@a-dVFPT$1c*9uE=Y4@DISlT*!17dPiTZmE~KL8Y`yAlh%09H!-E4pd))Dl!@uc zFh9Avvjj;<6B-#3W#j$1&9i@&m@fS!^#nrCT}Gja&gJ)-B`ZjQ5jRJ?&yDtFw9TG> zrCJZr45{0rqh*@cEipl`yl~&_x?7q_nDz>1OH0X#q_z}qP^U^(7j$EGJ2xZr7>^z> zr~#xB1304!W1+I7aimx*-w@i2E#QcU(36u+-QT*lotV*<_YS}5Lg=Q>J~q+)#wcVs z7rX+S{+LV+{mSR}bk(c>3LVyGZ|=MM#Q#LV!~O%`|8V&q8OO}d`Jax3?N1rU_OE1I zsG6`& zgFT_|JA{FjMt9tpy^2-${o%`(4;Z05I^?v+^c{T$RN8_=uiW2v^&B4k zS^E_WKzind%pwSrhN=oJRkDlhTY+d&MWnT;bRbJQS>#%1=QPfAOfa5g?nvwa zG@1(nGb12osn!7)jSy z_O(srH1TLf*!;m0Wg5#mwkEnIae_4yNoK*AMX5*lw34V!ta9PLRN4|1>u55``eoKU zFk6XOp$3U&n2EEofW<~hxZ5;Rd+mUKX&I{K1x?MRi&x?`Kyt7JX7sF3mzf*qMW`H^ z7Gu0q=10>I3xML}CXvS7Bj(HG(<-zWkTFbIsV+=CeYeEaEfle_tY{TLJYozx9le>|uugUB;3;}} zIexm?d^x^WW6$?-diq?HvUb7Ya%hc7?k)abOT>$<4YSvlHQqLD^uActo zx%i~pi;!yF7z4#@gTnEGxFTYL!COW~|5}!D2~pme6U)8j%ALpFy^B|c04R8P7l~=- zLFU3Ndkl7j?raS3EU)pTU~!s+3I&7%^44^kuLGw4(jGKvLnf<@;oKwlde^H<=17(- z!k2}GEvg`DBpvpg9#s_@tYi;qmaVG6)Oc`tEl{th-Esv7F8*qoMYFjJ3ICJ-`)OW3 zAMX}$hX>b7ZZ;fP2iH?>x0@Gi_Z>K&;qI5;O88(-iIua!a_71)E3N zW~Z|5YY=sl8|*LtHJJ7AVWZOH8dJBcBta?jc?R zPv}Lv$UVef@=t>sCs-|FZ*eAm1Ruon?IL|wsqMeNWiA1&zD0!ik!=xq$v%2JlXr<0 z%E@tWbYTJ-D{;uaMiJ5*2pi*JCI&C;IJ zHTf`aa4Heupz-A{XwyCaP6254hxm}>+FMMYKVX_B$e%vwA8h`ES0)ao|KOGVPa(_x zuY|0xnyxaHID+q~x=UubM|DB~RMydWw3l$|>JbqMydHkoc35r)ck|3u)X{3WH=lu_ zWDAXnd)epHxwF>^>_-pa(>uElndoWx`7&vZO*y>&nfR zIIm*7pB%_yB&b*&%8_!VT7e3bQ>i8P5b+x*MCsoVQdZCBqciWFo6?NtnJos=GDk{e zH>^u&v?`cDq0}@vB#bYT?f0MzBt;Ivf-vUEFwid0oc5KaRR`@TZrQY5qt!mjX20SW zF0M{2c`|ccDDlLL#9^np%UHS=B4+@dC-x7VV#&eOUFjg^#4YEv^k4^68z37)1SK3P zQ4JHI@+x7Aqv!8R-334grcXz`6}lc|-gwbWOmQ)lB5`&^^_T^*&>&*8_oLGK4)G9G z*z4vr-u$|Z2mHQ88bpo(ARAmIsT+WLTzqEpdBFG9pw?bFg3a6aO5Ix=5pM`p42^4W zku)Z$i0O283X+IrgHGQMk7nlqm61g=Nh4VR+Obt5;a6j+F4DUQQP_bi>>-~+&x|y~ z_;3Y&3}eU&ov_ysQ~4@6n$$kPmbBgnv#O!d4*6MQPsO7Y zWxBT>)5f{RD#_mVPLnVG*i;Z56I5-zLgHD^Bf18}y8cvY+>*fpA9LgAfhKm9W%H;e zohFwv#D1{CAq5QJt%xwi3{GjKloYPXQ9Hmcy(1R*GGrhjXg)Vs18Z_;8|XRVMA5M` z9+z$4)j!+0KQb4K@_SIalc~>C%R*Ayh;qpqZ61RJa!0J5V~^u@6k0G7&YE;yZJ0~V z#UWvxqueF^>yScHH=GdEG;DTD;i{os5<0x7R|!y^cPJDr?;&+auz^ElnDi^ep~^Lz z{F=&R$v!Ag(pD#M=H5sVH^7c5R?jJ;f;VjJ)?PS5Xq>%nHiFjul6;7ft=;btDR;u| zmG!7j!9=?t$ZX;qm>|jJhHm*z_#`5heMqtimu-}Ybnv7o6doiI(wPVkVX#!9)oOs| zz|-^g-BbAXFQdJ2S2w7{4XI$pZFs!f(Y~J=bE-jP?r`lHXF)2sVY5o7oqF6Zgj06s z9_C~ z0=e;m(;`=R>C+`$PeSv#VjHnaxt7r7H`wUjxcsw*d!@MEibJuwmE%vEKbx)HTYq5W ze*Z$6C0ZVv7T1SBk*l~ijTxFua~5e2WMmyIq&|V(W@AO%20g;<>4Emj;YBkuNm?aV ze>>$Lf--dY5<4t-u8Y z>ezsLm_Y<#4M=-*hDHuTLD3xYD^%L3QVS81Y%5SX=`)q15{{i8c#k{CFUMX zMM2=j+?7)`Y%P85#cjK3ZuDw7)N13u&}(gQp( z6h2?bgW+dIqo9NKa&iDq@NFB5u=v z@U%LapMpm)B~+vTl1AvTQ6x)@$pKSUvc;^VREI{G&V$(Tqp8U3Myh6bP)g*F!LB+Bx-~KodC{f|KA(_(3h(s7D z$$7k=9Z!JMpv1+jWnZilrpwpJ=iItD;=M`jfvP!7fb#%bbSe|U71tAzmmW+B`8r2D zHv){x)UFrr5#ggGc!bkR2B<27r-u|)KDHFg@nXR0`y9?usHdot7iw`t8fy)%Ffl}! zN@8HeX(1IG#K!;>7e5Us)m}0*diBk@f1uUWE2EVH0SfWEf%8!NUG{E)* zex&csanaK;;Vs2aY&;mhZhyKHrH&geFpp=Jvt(x%Y&Wpa_eDWJ?h6?C?ZrEuK3x~F z@>Ua`z84Jp6zzDrt?PnaP98`3aN{@&gA9IN$%~k3DK+f^Ju$P(XDpE>zja+r&y0=y zJsYR>ux$A2?~#DV`1V`!LpBy|Su8!)PUB9gTx-3qxsbi6WUyzirZdOW_z zyU_6ZY1#d|b*8$fyKa43sZf;tsE8*zBNF*zaw>MO=DPT0)1}&DYaM>ds>3jqdZnAb zB~i`y0ViL6I@0yi+9lMw^436uRZ3OXR-pGHy>Tg$nX&dMwpKOz_Vq3WSlTG#dB(Au z4mXlmQ~rtOnGy^K@CBcUlxE2HneONXit~Dr6vEtW!``qN=74sZr3J#Ju!#K|gQ4}|s}Pr4tlXF6^w5Dw~$UG)3hGvD1@Y@updXalO2 zemgJ{RKt%9{x2yLRJAhE+x`|wrjMH^(8-3D3$A3|c0Si5`rB{1wu!q{8ZK8d8+N}& zV*5Jpq3N+=bGYqU=u*<6z8o8uSbwlSZ)r$X&J_kij=$y8esp~jph5iJ=Ov6IkBxu& zL}!}&8vYY<|Cx6%GO{uJr_kj1bKt@8uLd5j|JTP;;i9**fnAMcdhk>xuhf|@#2wE0 zG3Lz>qB+KvB;U$`n0*|6UY!F3;xY;q_iUTz`-YNVyn-#I%lnjxo*sQoTTkee%d>Yh z&nTNCuu$+V1ntC&NP`q>mNVkaW%K3c=gwE0x!l(C&t2xvem)&Mul}Zu?Wk}%elLCG zPmw)kxq=T1FZSmyFK78!I~U^1V$O`JeHc;VQdcX@t1a%-Vvx;{hKL;;#BSo5|)y_@QPSvCJ4g?DTF_ImbPciQT z0lDHEtYst3WwUD~R(Gs2=Ta4{n`Egk|AmGzxSs`6m+!F4Uo14Et!s8e)HU=B_1dbc z*S~N|&+JoC>;v3udDeB5lCnx!3I=)3d6Nj*Sv8p7 z10A6%k@#L+E_!F?bqbr_>=qZA9p4A91Rcn!MIQoq2S0{MYfW}kVVu0s`P#ecjLRL2 zy2beeDO8kGtV~6>;2PNS=KV+Q%t^Ucq0XV5Q)Uc&{7|>TgBOaPXXZ(jg@n*sE`+-V zg}j{k{$08Op=Y(rFwr|al2TebFhlUG=C$=$+x2}8CA}g)dAK7*8*bid^-n0+n+i7^ z@%S>b*;Lf}-N8#b@j?(R(kGl6JR}QHN|xkNH?AB&45OeEs2XV0Bs>8$sp57;+(<%> zx}HG?kXt%YCw)9|nUU5;#L#po?Z`wjDitf(k(fpN=k?oJ=EH%7%y`DzwAw0L9UA)mSxIj z+OsXUmYGSMQ8z^0468jb2;xz?=1OOzgXXfihXI8Q=imzO7NU$Lc7nZbC_K_K3!pw9;gj<(J0klZxxRaJmlA%4~6|pn9Rq z{5-KRhmI{cJ z%6`#NE%Z2DLx}+Dm*kL(Ub`8v%7v4F_cuUxz3bMnvF} z8Zd|}eg(IbkuwQB390t)kC}%t?pzw;RvU@3vGw)L?PK5aaSthEztUGFbo(2>toaRe z+y&cbyQE^hr_$~t-r2g;6N&(<4|<{@b=-oI0&tb-K7Y7$LwEiXw}O*<0G zT2gB$IF^@~-WcbNh5KeljBDv$H9XZdNR>P&Sv1tRo4$aqu1Ga*X2gE`zArg&> zY!&iWHT2_MZtBh&B2kvjv9wZ&DoCJ;ix`A)lkhSSPb3-~DH8_*;nLD3i}49y2AvR; z;n*T#Jh)^!XiZ6GhA<*b$2W3iyP9Fa?Q4)&7Zu9Y?FCYPx*)5rcv$yhep+O}2Eq4C zm8OV@Gw!`IUNj*;t2O25f$>p~5!150F0ZIKmB!TQx!N?ki}*z!1kc=ii!p6>g@wF! z@8ELnjXkYckvp$&3OOi&Oh?ha&PyFp%gC@ZmWDTbM@&(tAFg|RIQW$))*EC?qzF60 zz9C$~JghF%D1v`WnLBSkf$}0$5q~pR3SjROSMw3Z0SMdxZio0rF_yR(pCxaNXPxBU z_${rNNUKEi7PwQW&dtR>Q@OBZnD5lqEHaWUSI~W-w0o`K@_=lGqzN+SIR}iyg)`HY zEB<)g=c(L*IQD6ytZcPU;%yX84PJT1W1+GGEy?j2k2Lvyu~;Zaq-}2mepOjdNhB=A zenK;wu@pug_-<#7#{cA!np3^%SGlN`tId$0*qQ0sHPPHu>`^7Bi9hi zSNSmWKR-xCekqSehuK~|@hzK!_bk)357*TS>!LLNNg4APgxwf`< z)NI9>HrQ4{R%COivez2xTHcpDsU7A;*@j+yiU-iGhcL=yjuu(u!)TZk;BI#}g2zoz zqYW;rs{Afaw!TckO*FYU>^I)>1yJ3ml80`1cRLWgt)CssF0=mzI|vuO2iN-sJX$j2 z{sTq-Am)Ej^xwjW^UnbX=f4_oxT@|d|AivISN+DrOqqcGI)4EniN`sT5C&mxTE`Ei z4}#s=St|Dh(WJ&qxNq;i<#QW+1@AlD1*_Lh`##;@1@jIv#P4P1YR`UMp6+6yx3OnP z{-U?y_BgZ@yiHMjGX}0?(9NRtoE&A%h&{ZVg__IU9q$j3J2}0$^U?XY?CLCsRdlL* z=`a4OblM9hEO|IHU+1#rEI)2=hjKUWh3vI{z>EBTj+>?UA79>FFAXl z5el|d_Q~Xq{|aZ)%6N>-VwGu0VfBv0q=x5oP%f|!fXp66WPJ1-VV<L)M9>6q3Ja`aMvZ0 zRKaHOm*V$J0#){9s90m`xGNZ$PxUeHm#a;!C;K^qY7%=-qAf6+>MTvf6X7$8a1=yg z#ZVTF2=UlDslgnkl?`*Pkv;Y4Qt;X~9)_x*!91RYb!o1+pMK$~n0t~!xkYO;rZ;}M zXsjO6ytYy3zFK388TBEqiAe!^32?0^wVvPx*=eVkekd-XaHcH8UyVc75+PY<*&@fqNs#yu4YivA%XP zG-+;TqbMm(&_Pa`TdvM{?-qok!$>kgG-_Fqmc*sKCN7_4jvD`u$-RnvAHV3kms?Ev z&RAi1CkUyqL`zq&)kXw(*2#v4^(1Q7EmRDKk>8*&OKM%7;^_&n6jRu~N;3fZmcgO# z!rUl`+3ZXYFQc+gc`ZT5Qs|Qec)zG3$s|?&A7kefWeK`$>#DSE+qP{xv(mP0+qP|0 z+OD*1+jidEea6}6j?w+lPiw6AHRp=>B4Yl0q@up^%oBdeVGY382~x$=5{&0`8^S!U zVAomI8g&tE!h=h%(MzkObl@dInzYRO7Dis?DWU^#lhAu5PT_AUX+(nSn|63Ew1 zz^vAJa^X`g%~8=xIyTMhhJq(=skSsI)HKch`55&Y!aSQ4bri!eE7kS2_E?No z!Wfj~_3YeHNga-wY9&>HB+4+HdlwqMG)ZIJ6SfW;Gj~%u-GD4nTkp^@sJ}OHpFcs5 z=f>0iZb<*TqD@c7%JRRR8a>_LX9C~Z4gclGD$Ez0i&&kKSibStUTV zIpKz!dP7%=_4yYJ4rl^h(5|q`y?3zL5f_~XR9g}v2kzX;3Hd~M@6E*@*!#zcl~fq- zOB>!9DP?K$4i3jJSv@2Exf?@whBqG9k96Z4&_8J1-sTbsl;u*@sOrB&+srF}k*8}k z&Uy>Bk?53uf>MN@QAaeT~CZ)YD5;h95LrbZ?e~YeV3blRHC71Ag=)^a>D_l3wynl}WI8?(j#JyMJLoaDQQx zr-mki1j;OHSzN6k-Lguq2&%5zNdMB?Q0X(L2Q5=qqPP+^K#L0@;;(Q3_&}j*14y5bG8P_GU&aGvbgY+4 z5{nLpyW|*5!1HH@HuuexlbMg+YczVf-)Lm2^$J4KqpaxPHzqPcw5 zq{l*3GW}ASa#jcs4U%v8+YOgu8rM@MSa7QGj=FfveaJ_^p zJc4_b8&?qgICo=Ipi&xMhR&xzLGQEEllW@D<}wLM}X|?S+wf?!;V(oYZMvxb@(weGzSF|y@55Z@FF`WqBH<|qRS=!>ru%f+XCz-i(kE$G z+s8?5rbO*UWGo58m*4WP?$hm%*Vr~)wCQ-BJ_w~6lwreqD@;_ zsp1JY3%RL3_Q)kpD1YZ(N$f(uU2&!qQjI)5*0Tj$d1GxlT(+jT7Y?q(qr8vi)TecJ z{h~o_xcv?6HQ>SQkx9LWFp68BhYLZ~zU!BtUX&%-rapa;!K%dcdoKf)ceZ&;ljeAP zYh!|xLTPT1pj7ZKCn&*!Lx*ZgHk{WO6;(-dDw=jObhEpm&(&&TWaj*x3&y~$PGz2h zGU>^%g1qh2CH4`C%8eWf*b?jm0ymR|@&`={x9)+ZAgp;&R4ba%@}pG%(x0LY%lT0JX5$lxCWo0{3_HPT*Y|*a*}@ z`WX>u-4L8gTnTf0bz~w!)Z^fzD8w_c(NHWqE{9D@f$m-|n|?@^SMFU@&E2%{r&T$d zc-V73ESr^J7y;-r6Q=nk=OcD0Gt}>w4vD9kcG~Bg1rqKcC6&(>oA`UW{UE}*8dh^K zhbsen6^|=bUF4q%p27rY8koTp*v`pbLSgs`Um)8iCE8)3QK;NK-A>*uJ3NLbFr=p< zvN~Dl2-_+e8-raOn@r=X+YgE8PY4>=2&SZd&`SbWI&2u)EO*qPdi16p&pwqVMHAAi zJrZtB*zxf)w(%fKlyq(0g}hcK(Tb*8uQ7Cjs)0D5i?*DCjiai<2{(b}Y7yF1%cES>BGLvVP9>yGDZN(I8h3G315Ra)VJs$B9z2xXHj9Upz!axj+r#1_Bi_#NDoZC>kOnhl zrPNbrWucXNcfU*(+APpu#34*dXD7DP3>bkeI+GoQ2~+8DEO7h7&LlU|UUvB|T|`F%U8dEW zZSgI^k`_BEZ9*Y`Z0v_jf(O}ICen{ES~SP0wkuu(wJx$;PMYwt5*P%|-To708~NXmNH$f=w7b!c4v}SeFwXr%K}RQL zg;&?@zapQmjzOlq4PEFYtjKwcxP1KtsA3 zCehs+Q)ghKG|IK#=i*2+(F4Ua_brIGR@^ExZRIGDTCr`XZ$$*88uQ4=ht1XY?ZpB> zw6@OWm2Qx<24u*e{cgwv)mqKMvAG4Gkr(z#9%9l4?}{Hf>H&)qReb872<1Hh_1H+q z(@YBDjUXrIUBzpSV1;1S0#2_a;&Yn@WoPO(D+9`XZiB2@8a68!SqX@Wyz zR&Q?xB`cgVwJ0P_$ z8SNHZ%Zr>0@Ia|-*(BPR@UaJ`UrxiKAq|1nlHTgHhWy8Dsgp>5rO@lcK8WQ5Um3p% zG-r(KUviP6E0FdM=`TB*Qc;+H$89)FyBkv}>nuN#tkP+=ZjynrcFWO9HS~=jkyuxJ z6flG){FxiJXo1+6=0d<;eiy-TmY>lBsv8LPrmkbc58Uva+HcE21nDE>LrY`_HOd=_*^QJ6~?ELJQch3e# z9AnSm#_d42t0TEZ>Nbo#_e~;Q|5fvq1VzPS&ye*lC879A)lg9L>*?SK-%Ix7Er-q3 z$3!ZHJ~f3umL?gs&XRSwnx@78euAp`E}!u1D>~Ew36ldyLR&SX4QK4kvnjJ^KHTR4 z__@m_bMn=>Qkoa1)T)D$cLqlmM_{4f-dRSl1!28y!|`w^!LDqqah61?uR3LKk9ZtN zeksK27*o2`4&lKe^61g`=r}brx~}vDFiuZ*fSRY4UL67NXFrcb#cy34{i4p}4hXV> zP&c~3utG0gcgdZ*I$kIOnAhYf@C?kfxJ1wU%HrQ+X1s^dH^?xlv5?t9jRa8Wlyi(;Tv^NS-*Rd`7Irl9Zs1Z`YUBxT&P9C3eEn0iz3?rVdLnwo2z6$Dq1+ zzI*%IP|2oZ0kRdmNPQ~j@2QCWVUpUi0lkeZ3bH@V4wo30yK%6Tunh@F#}VVY*Y_!8;Q}%5c+%CiDvwo*lL(P<&-w8@$da z(xnEhGXKQAxkhIq2}0p6(!iUm6ceJ;Os|Drr#xxkkaGzLzQwczm@DBk08#b^GRY4z zhx&M2`tKWq2Krf+wn=oMgjVreWkzElhH~4n}inliB#ppp&>w zU}WrlV__?D<<&4JEj4@ghVr&-U?Suyjt|2`L_U2Y0NnzvDKeH&x;>^r%%`4ep&gZ7=*;#aNgMu+3w5?lCwU8O~h#P1HXdn3SvE*is-e@6nt{lVx zm#-Jz&BZFXWiW|Viq3bjMsE~%1ceA4qmkAHR-gNPJuk69RGx%GJzHwadEoRLsj*Eq ze>dcDe2{Zqk_fHIgY!uZ9HFdYIlwa#NqW|M>kAIZgaxD?9Vp3k-W?ZBl&`9bV%9+x zEQM19nP_v}Y0R0P?HJ~dH~EeL1|A*LOO7!f9}+6nCKyYh&6Fg9HIv@!7SLuHX(XtR z1KyNAk&!RQBo_b9ojyHX0TSy{)8|^#J2WzYUFm%2FQOJ&1@W&ePc3b6BnYi8wToGy z!{P}3g{vp*ia;WvG>h5%n-WQF*5Q z^~LKyQ`?ehIC`anFckXnyzkDQ>jDg&waR)@-V3zSASoKDpj1RLMlg%M1~X5p6xf35WfZ^qH4P467;z*M zAdRC1c7c#B+!ZZ?Ju%#1@J=xJEy9O2aPl4N3$&_Gw-?~t9%yDoGc`1Zc zgSpOH=T?9z^pKNaLd++xaHj?|lQI)sP zf$5Hc4{>YsE(tBI7m#P&eRa$tey*+N63{KcF1CFdD0gE&o_FuvjJ~DrLG|wsR@Zj} z`e#tyub;XtG=6_~;=la$FDGVX`0p+*J;UEe0rU+2Y8DWrY-KYi2KRZXLw_os2b?fK z?t(;tbRq+c@8`St6n3k(C$-!8+ok`qsaW9SYP@m@v)#I^>e-0vZu~9biY~{P?ucjdmeTy0le7^LWj~{^aeUhl=KE63w?hVIYU>lw=i|j5 z<_YI3yE_EyOp6$6^Xa32P8dAGt%+^)OENkJ|0@=&Dd#pLi?y{Ui>}Yi;ht!uK3m|5 zO$_$^jf8fxI~@@`@1gV!5o$?cz49p5qUAh%YizG5KdXp zu;S}!q*JJ*08)hjosBPzU-a9YE;)s;f_OF{O-xen#c(NIL^-xA(qbozr;KBURHz{;&7^QOIPfa!FuT;i+2!}+Plcq!Qafy4wsZ_^ z3`qyUEXf^Raa8l4jR&{GCdFLoH9T&X@?;`<{MLMJzVo(1NYS+_sPXk}#i|Aa&|<*S z-)7oaJ6a`RjRmi2vlQ#Uvw6!;LftGDR=2o!#df}6VC zhs^5!(OnRn{}0mrUuMq6{ND{udd7c1=8XRenMWyE{U|LPf04w#BJDw$MJ)IKlJd2KT`S2ZC$`Rulk!)+V+0V zTLi01SJC>Df1Zb@qkci;HFPDvmBkhWXGu#^NAmmnfR&yKf>k6iy{~lMk;d!r*WC1I zz`GCVbuvp2QfbhBno<)o0HO;8oTSV9&&Rvlui7cL6qcF+0tb(spbXmsnDtatUD0xBfGq&Bj9 zTwy4LOK;Wt<}N2UClzsBgZ#;9bOolcC+V73Ie(~-^bC0h=cd=i(HIJ4=$3`Dfe!K; z8`l;h{9?bDEU7`GTsT%FR}}HB{G(u0zL+l6ON3+zLzRN1uT7DhBsXY|JC;fsh_9lr zs$gN(vYQBwLW#t|D@d`pBB=yukz7O0Xn3E)cafZQC>2*ne_|!D)cxcH*uobbi!R)5 ziLUR_ZcLO98kr>XD`m`Ohgq=<--Jo32IvHdl{`}3qey{91D_}hLNUdP2DJ93Rc}Nw z2V>WHmJV4n*SQ%;+j)gg0$@etdpa9dO)-xQJZIJht+@db-Ym?Zve>GwI#(-Jxm+$g zRH|);*JhwDT3E-e`OAsWc2sysD>qY(r&i>EU!FKkj7VsIgt4RB+si;P5bs$!Q8n%^ z>#|$JtR4FA3i<1Y|DQiMR=WQN|Ijo317T(SSA;c6Ny{dK56<&Q)zYCporx5)HbJed zvb-w3L7}{XT$zyBi>+VZv{y9xx6#WWs!#xmNv z1|gzxnO+|>H{;$&tvwhLEo-m~Oz+T&{~ji1F|Yw5jR>Kw{@(NFD|cp&R_e5ySNj(j z%#b({le5aqT#@WiDOBulxa2$m#{L93$iSZPVMF~AJxpjYQNCgDTG{*__ z*5kRw>yEXJm+H_xZ7lsPrHLcaDl$!kGdr5nE>t~P0E5U#*IMT6&B?=KUi#C9Aa*@o z^43o?92)}1T5O;+8T6bPE$O3dc8T z0-1Lw)skn|s%s|wK6@NiBC_-_FBX^L6K|RBL@1ffV$xBOOe5k6{!BY>AFyxEKJ%b0 zD*7mUnpYRD;F!rtm2l6HJqSJgg?!K$ZTrTs#TL^){VNR9K?LTIT)BAkMPo?u5S0WZ zfxDC%9XbYyMRWsFJ@AU{!*U~bV(r1mTSWblcmSwRDixF@5&A}ZhV!>a2Za(^rt!*O zt??3VnJGpGXy=~jAogNW$m!$Z#QpbCYC;b}C>GMxn~)VWg)kJV`d**}a&9#P?(b|I z8S+v^#NbPHhOKw7I=u^OI7By<2|qgQE16H0{n-DgJ49n=e}6epW8ag2YJ3j9Forl! zQA4c5Bu5sKEmLcNMg~Rm~(sN zhK=?isxM6`Z{K%*M!vfoM2ERmn2Z)UB>j!Gp$0c+5ULmFvoKUO`X=a-H^~`G;2)&) zzf_R*|KjQBnf?I^GW{zkxS;$$!-}Pv7BV<0a-<>LFb$+($@V79SmwcM_(VZJHK=tporW|2uV|(Srq0J5Zylz!WOj-{eF{-Z^3gz5r z5$nX;`O1AIDBpX-ENl1}XcK82q;5tZPrR^CRO~+=&ViK*IjB zmse2f5HI;#&%P5bBfh?&Nwd<4Y;482O1<128E8$!*pjmi@7ee5_}Js1IKI4CT}4e) zkML(*B|9J>qzsh`L6LyjBigYomg90eBK*mFpn38&O$ah`p&lV|N_rlPDb{C>xe>Od zDMm1yDTxUe-t2O{mWAkIqjrEQl#p~S$ZfgS)$)>_h4Ry_bzVPiB5#k~D*AS-Sk(kd zPi11&IF{gP{D(|6le6ynliCtq{{@Kc7!8V7#c5;!h!JQOJx)iDN{yXbkz-=oYOifX zdslfPOZ>%ID_Kvv6hFfhcL{_{DTsa}E-@w}USvV#yE)Us6ys{d^-{rd@*#P;vwTCQ zC{(te84yg*&(8iN1yp!B&B$mH)GdJKwTptD(#}oh0qS0ChqyFz*p6eIe6Ms!c&bSL z*fX5$NB*1Fwjs9j8r<_6Ym6j=7_?nbr<^|md@60`X=jdZJ%0*xc)bEpep18CJiY7g zZ6;GD;Ye?lfCVTO(iO#@%~-@vl9{B)n}`e zO=I;|FMqO@IX(KwROLjS?UC(I+?`dLL2DzjxUO`##?o;iRN7PRDLEYlL)8`SvEmQ` zhzMJhUoJ06o+WC4h7}*bxQoU`L>pat;9=3*^YUE=uOXQ?w88S9-7)EU1;QY_;Y@V_ zoi$5XJPS%6%Ct^OT~gEF!Srr-o;s{(FlGSr=V)lBsiY+?_geD5Ema9Bt{f&GF7Ic< z)NEBBgqzuaa&mZQl6HTmbJZKf7W`e>e<}7q|B`I%|JMOB{{xF-{#Pu{D{;+wmkuuY z>JEvJXg**z)7J`kw^&)DYCfsW>e0L%l_U+$CV{OHo2=aR2|MJ6bZ!Qi@bXsV7y8#D zrfW28wp+&cnZ;!SFNAJ273}2+Yx5>mw@B`b5W8kbpjMh6T^&mtkEWX~JC;DIMv1Ho z>$R2RN$Kh<@k$3y%?qL18;* zec)akkZ0SJGPP#=_OO9ezAfG#7buzm8tzj?RFdksoVTyN$8b#Gd*+MMsRq0)a{>*^ zzzNt%kjcu+MwaF3HH*|k+`i=mLxvw;LRS{7!eLcHU8qoJGc??f7qS2wgK?SYs%^@C zl8vhlVQS024X$6>0Na_*aY8QQPaL^4as9N+O=iuGD65q;qWUt|K6)FmA+0!_iEcAj zKDH0>Dyzly3p*-~J72*EpC7b$NK2@|M9qwHSATtik z)fQ}91MDEzdXTOO4&l+cf>$6M!*vUV2oQlgG9O7gQ+_9h2#3X+;giGQ*!rPE`6AQT zrm5i_A2yI-w)jivDHz4VVHboG<=p67PZ}0X-n-XC=qm}A#4$aLj~6By(|4Z!BwmI> z4wSJ_yw6-j?;r$17fv8_;~$hmWXq7>D4bJj{P59ha$5(3`%y_1x38F&D=aOcq+HBz zCT>pZ5l>nr6dNxG627!F5FD(Y9;X2|cPKRg)*9;8C+}PXU_PBmJKRKKMSrPHe#B{2 zr7R6nyrHH(uVc#G%LJuo zm~&yG4(ziYlt519MCTuK-wc)QKh2-}Ax7!SO1eA`a_BZqCzu+&{d$XVsBG)}w8O0_ zT`g*Rf3vhLzmZ&9%{U%|z-8)ZL~cWp zl}Li%Q-6h1kF@$sYC%YU5kZZtKY?<9;Ssr|6GNX)8@=dxVTWs1@nOz_U{MLgiQR3G z#$-9H@Jl%}OXSK!v%9)zP$&bQ8fOxV+S>G@Au43XmILS+Pua=Nrim$cYq7Lx!*H|b z$*_OHLSyu2BOnhu-lZ>83y8c4LD9*iZXK{9TP#b1yS&{47_15D$Vh)HYma?UIA&QW zq>gO>airf8`gPDcUg~3;DTqM7x9dEW>Jehb8iClWKi& zW1h>HDXDL!H6?UpsW|=DSqIHFXM)~O6SlH)#BgYD#OvJ0~1sQT(* zB7$E8S5zuR0F z#okf}bT zrq!KAcCC98{f@G^T0Rf&;@DR!kVWP&p+@{%5mvtL-4pStxddDf_u0Gq{gx6^ZdqxJ zEzEmQ+7q{OQ0$hXmOs~04}V6=SXuYHh*=QkxZF##^GLo7O2wz-w$K75NDnNQHo zZ|8#3@1dAi&`*2NPj$ECF1lgoJ7XYH6u?J*Ku;`BpN)0q%^Xt9(Uqim1b*&a@xCD7 zx4niiY)%H)+`q$ac$wAygM$AHR{k$9mY(GwzzWO10xMR^Yu0-#a9&TUP$;38sOn42 z17;9;#~>?^wZLs*Z}azl$s#D2;!0w#!FXSrf~WeFO_4n?><(;4wv)#}BK`DH>m{Gj zx0|%EduQlXQZ_<5*UhJ$_d`5^r!{0HvXFrrEkVMw6%2nI8S`H(MIt&}UanuFt7{Gk zIo{qsuA@*gQ_^ZZt-oaR3KB^QZVYRmYgn^pcRjA`IWnPquo1jeIKG}upU~%Gn9sO3 z%KAq2sVkKRsXHH81-hZVPo+tCqE4aq7_~h`924PV>4+lKM94^r53(&siEiT?;f1AS zQ*d8#vq64f#bELUN$Vwv;CLNDn=lchQYM@C8(J8X;F+0PvHdbh#N#kVG;2*9gfK;p zuHZAArxlvq5iztVRuH?OAebS@BhnK$Oc&NvrZv1V@vI{yJ`=b~`b>u8y+a9B^Vi*4YvgH&Y=w9BKF{5zqpSmE-i{^+>YOZp zr6nEI_M0XUYC?O$`eiE(wU9cl*-q`%TpvYMvSBcJM6{-b*@q)DgYzBCg`W92ZyO<( zilwgBS|o{pLtp;nbO&JU!^Ra0eR421cXxgsYbD^(jApe$M0BwNI-wSX6slRA+I>UM zaJ1n`2ouax7mBb}Os$I0l&u9L*1Mj%QJ`OCC*|s|@ch-mp)}@5T*0BWsW`Gsy&Ync zNMoRW-(YngZ1g$?9q4%sYzc2bs2_IvL{OlgnscR?PV>Zm_(|ZMyOuhHgVv@;-ZI+@ zKu7Xr3n1jh{S<5)!H7vtjuMIK}d>;FOoLmc#ep z#q+5qb#yF_V&y1iK-^VwoEQyZcx9Ij!c|Suzyi^1>Ac$V{pw^UBn&@Dk$h~nyt$;^ zy&{&zwdRZ-X7$lZ$>Jgcd0R+f;en7fP*mCG2BJp1R=7i@Xe+IOP^OB`)i0 zfyneOZxf%XUotDJo$M(meZq8!%g*(gXYQ0~t`*0k75 zB7UNt?!SLL2Ki@8;xP}?u~#Qrm{<0VqSQ@24l#Gh5&X3YZWdd#D*m6r_=}VT!;m-!E97z`b;>X}qwan!Wb5)mgA2 zq7G{Wh^>IC*aRtYzw>g042H!;kMCWlRU)^rTcNZiJ5O2k3Z!}}<|A?|rRe|{ zkuCm62105lz{+GGkKPfdD~B;JGWx2nqH&e2o6<#lKlY3jfJtiz3so&uYGxpPcBu?W z%BGNr;&0>Di<(j+Ll`%9-l6Zb`h#U zyMcYKlCCAmXI)TiS8mA$)i$xj&|ZSrqn{#7Ul|l&+z=xaz0dKM<8)su$e5*0oPpo? zJr4h)m*1}g@F!JTGvXdK0YF?c=Q)Vk3=TJx+laDI9rgYPQAByG?2}6R@Io$=fsNxW z8Z+O+nuB6pJYL7lC>KB&5BZzW8GS=`qkNSi&J#$>lMIO9H0I|4c`mQcBjZOII z#0DOEI(gzgHJuk*C{9_duVOSQ`1P=_~@XXJ8yZOxhfQX3STV+v0 z{lTlG&Xg)fLQ4V{f}R`PG37iWnUCgjUc?*BS>0cNjr=~I3?Lb9@8LrQ=~3s%y&ur1 zkVH<)S25Z6M9>-*K?P6&tsZ07Y#?P8=Y7DqUFJg_tY|VCh%3pPszo*-l;MChPNn<+GB-O4g(YnG)5SF zfS0WQ3SK5DZ#e9-!1)~2EQ{l&kE8j30H#e&zzuK2L9&}?T-%NW=tJgbQ@;_R(|nw@ z*GmKT7EwbP=>2N%j@fvCt(69~{IIIFTdV^px$0MUwtNokb~+OMQ-QfIi7N!Pqf40i# zbQKITGOnEjfu$7#Styp!5BbHGo^bV&Ai;E633z3HKtf^=R=4aD*60S3!mFW4_u$U| zaJmKb4KVQSI(jnq&AD5kAY7jwX6n&E>?%x@3~rtzpkNrfW76sF6CjWok_~e%b!_ZG z%+)57vLT4NbLRs6^JI~W5$JcLt~M($bDjoa)p-Z=x$FJ9&C4t+g67ftE0Yvys8oyw ziINf8%Z5;CxUxJLlnF^b3vVZ*$&7IJ&)qNWeDu&SznQ9^dov5XMivKh_@eTCXC7#e zpjsuI_nu2PZB26zxU{RVACLJ;c1FL}E*7cIgp6qx7mJ6et4KV8W?!$h)5vVyIgLmR z`}e(N&)fDb|7`Q1u4KsL-sEsG%81=*%b?lG`1H|k-$S7x`xmvXc6|M*{H5WKQd-=Q zXzQ+G0n|C?#C<1hbi(7X<=8msS#(0yl()Q1X-SWxxB~S0*qF;z=$@L(wU=m@pBoJou z)^TV~CgJjCaTrj0XU?cbid?tDqE&tNOs#9kbe<&Q5;{)cgm=VVLl~5^A`(oZL;lDM zuhG{|;*0l&4>S&OB(;WWJsgV~Z+(@<*vV7q2@|fSY2x4S?zlw6wvkOuJr3BP9z%^s~PbI3T)pO4wfmJ=8GTZZ9%KN9leA^pHV9zh4N1xCB#CvRVo zGcTR2@+joqa$Kc6SD}7?ZH)TC5PBIumv)1KsR(sTF|-2#5}PVnTds$7=UpN5c(&}% zs5>Z~RB^4Jy%R0%N#dug>V;hw?cVL+&BP_Egq~K-&+x#jA>Qq<)a*R-w<}5BIY3%R z{s$m(z(mZj((6eaLjD6=G5!T%4%7vlo_(>b@<%T3pTI;c&Y^#ImcRVse~P&Odn$~c z?H|}F+rML{D!umKZxD8#Q93(@aT8X=XOeUkXE8lUtrjH_9hXh@WJ97geLhPBzc+>JAyW1ra1;`wcV-#_tg&X38PK12F$EfQ1UrYUejNO@91 zoUAp1I`&Yy!d_B=-s$s}oP2P6ewdPTvJrD-;&|)i;vg+aQy~D%^YG4kQ2+fN?A_qY zZO+UAF*R?@B##nuh9>V^2>A>%i^B*>X>L`XP9yl|`-Ev-sN~PObq4e^2`(S~+sqLT zS+%jLBnEBggLB3bRjEq2NtJV@+GuAEOYxspJT^02s-xg5-VO(rLz{CLoB;lA4?TuU z;0@t=zXjN_AN!Vm$i^z6m@CKPTt6YM3R_M`>ORl?2v7<7L`54G_!Y#x6YB&&42t@ak?Cj(Q16g?ng=V3_-qyI zl`msjMTp6uaZxt?Gc$rLxe{%6Gl&0&6$pB#6&8QW+{*|10?9GK>}en=wTFEczMM=2 z_dK=_rtEJ1u=LX{c4hoAKrcyzv)m06cDE%Yt`Wb|kc1t~H4v*FF{2Y{;5^RvO|lUj z#LX7C463<_3>Fi3YHj^0I~&!^;1syl+r65hsTWo6>LN)_EblB2xz#iK^s^CF9VozF zkf{A~OEqUpDTH7MwnIQm-_yBl9J>O*o18UOnJYhqf9dQqeRWXummuH^JD%MvS-uWJ zvl#&SlDHf_TVMsJ!Em--Yq((%MNj>{r)zP{6vV?HyMA>}T$qVk88+%UKp`_abJNXg zfo{UpUTagpmN!Q3gA<|UsP4|ltEqyR_UNTU_NIuX+Z{bCoX8FI8#$}C#ldUgTMM7~ zWm^Azw5_K$ZgEjnIvmhgvj`jdP9%yDw@7A|>3qj29`DT zZ(!Rnlyqplv5+%FJmS_3a&w=aZH3NZPk1;lUX+vs+TTAe84(T$_nNrcc3gZmANM(P zpsXVLE)8cAD9k-eRD{pr*#p#$-k6LHH^Q4w#R-?qdD#y9T>86qcbMW?;MRE-2iQ<% z)b1nhns?AFIZYLH(4Gs*IH|p?w@|e(ucK^?2}?Z`svB)4Ev~0xz_(SVLu{vVAL#buT5htqxbpQKrnEHK0t5IuBcRxdH_ccZk;VK$@nq(&dLWI2JgG?q zrtC!p;MiS0vcKIMyu4oty`C<10<$}4Ccm$A7o~|iJWoGO^dcx%bEKYJjD4bDU`(A^ zR)^f|h%3oD8lpS!<&_VkRn$-WsP_FY6T21C-;)Y8l zS$lzSC20LVhpVO|G9?VmtlyE5`@~ZckV+Q?TIJwc#ptw%M&-*Y@2H``MMpV_oPYPl z?GHmS*#-L28ke+-o|En1{lwO4LH-054nFq_gY)*-t}>@M`BS^KWdq5*>Gi;j<9KPo zO2ey@3H(CyiB+=KNhF*93^%BPWP?Uv^!)HpSCyww1h170ELw#|+M2R29=j4k)|Bs> z@Q^Rylb&jt{AW#^3$T$H?&XI>1V$FWW4?Xvx?E*ZbHyKm>F(@I#(BU8Icf1Lw1d zN}b06-OGJpIgp}!sjRhFKzK)uQeK^{-sS+i59oFxIo0urDk9p$Bt!f8aPVa{MX{sV z^1AS=OBDz&P;`m@U#)vctK`EN%Yed5!vKz*Pf}8~#f{JxdZTe>Tq;4Or9%*8$io`y zim)I#S^B^AT&~RvUI1GKOrwHsgt#a#l!0Y4EXwv+FoB+EX4{x3qx(g8-y7E*!Kuf{ zM+Rf}f{zu$Ci)u3+4?@~((&tO z9C+3kQI212mh{GlR5oBij!qt?TaY(cH$&rk;~WD_z8jJtDQy7I$y=7ii1B8D2-oy5ZMvK2Z7_&^3Qk>{qZGk~wEh}t z(UM=QqJaHELCLsVP?Xy_p>_l%suIqfG%&n#`rT8XVz!{iHBrN8P^~I`rCfoXqkX$! ze3nVNzC02|Tsyn8x^7miphp#N9;rQm+6fcAb)z30ppqY_E8sZ3qiO9E2W+FTii=w~ zWNN=uZdQRI7N^2+EOh=6&LWlEj;UIdgSH*5q&&v*f1@z# z2N=~3*av%Rv&F)o^z}i>_i9pN{q!XG;Xq5>WN9uGp$xbr7?c@xeB+1#R}ke9}aR3m(7nr(G zkPrfs)&D`Sa_M*a!m1DAkA)Bow|PSm4{GEX9bbeh9${S@!v!4q=WRAA4Lx_1!~Eu3 zCRgs|G(_27{CSG(JbdB;hVkKk`a1#w2j&z|GpR_W_RYEh{tXbP6!XCp(tH>6z~;YF zGA6er#1(MxwZI4!5Y~pc8P&5Ql~O;-HZd3q##R@g9LkX1W}HO0&|*ZzU=gSYxk?pW zmXQPGC}EBIt)#`!M#G)4-~q$)r=RALX@cK^3Z0#IgY{;ICi@8xn(}Y`Jn*CqF>p^9Cn{P3CPt~wJ1VPtR zn}K5HcKYfHU?4=|;h@1T?Z=}baQ@zK`gqFBYS2)Zy@xJQF1&kbzv^mtu*PSX!MB^b zo?JWLcTXphOC$4>{8XK>N_0m>({_WrVsPek39gKMO(4%CwRLuf_=SnB>Ej7oqn%9* zr@2+b%P(TJlv_0YX)^ByJx7#iy??7!3XZR#axbOs*Eqe|4ktz z*5e|37l~kVgy&9PiE56vC&ewxY_nBpOI-pL%<%R@fs+Jooe3j@l2_RSZgI?`D1#;E zL~T2)VX)MpT$ZVh58*hFFp~QgeKEK{CHme_^|xE<~%Q{hx7k> zyZRt0iYp!?mO7e-YM-e%&)Yt9`>YBX=LV@!UK6w;cTPiU|j1E9vJy_Bt{k+ZEsN+^6TB{m{!VZCJhj>U(c`rftWo_MB(meQSDpbxq!| zeP_pp$9DC8|Mik<)?MFHedBWp{c+`jpS-QjvF^R`y+60D-*nLlt2Y1Q@hewVZ&}xM z!^Ww}j?xjwwmiS=o7G!h->_ZzY{m7j&;9IOx9B4=w5F zesElA>jO{kM7i^i{{2^bUvSoY5BL7O|JDglqyN41+t)9?<=F1jx^w2KneDf~ci?&7 zuG{eKwoj_Reka>=^F4FX_$yvKV%pXN-#-4i#K#YxaLa<5-u%y(2b?zU?pKvdcV0E) ztna=%VA8S^POYQoUh2@q{uz5s6*GsLx?7pUWj&iqud4^b`o6a4fC($M4`i-d`I4E@ zkAHLPt!s1pKH6V2{<>|}85i%|_5MGm%3Frwz2mlg^F;UMOP8sa$;Hzb-hKIxUQFJ9 z;T!A5|8&Q5uO4^Bit!)KK5cV+@w%D6dg#7S*G$}e%q3q8jk~}958EF3*&F8{zWn*` z+t;4_POowEx>r6tYyUNej9)(Q{727vWn{md`)<5$*WLRRs(a~Ejl(Y9`te1Ne(}PG z$+!2<-GE|uK9TytN#$LWcuo_kDe)%wFW4L!Z@ z*4dBz`1&W#I6X6IXKVI%+h-rW{;j^-&RIWm<37e~bN;>KoA2Kl_hrx9S0pC?Ywfj@ zZn*i-TznSpdvW4<548XNl+W(ia$8T|s?}WuYt!E@JMGDd53ZV!d93@fLd#uy#V^x7 zzx0CP8Sw?P_C9mtgI~2RpSG!Ug?hxU(Mca(x9hx5rp0Uj74K$t2A9lsSo2@p$mqcQ zB_ozHH@DDIGS)yLH@#ew`$!7NM4FsPX$vGJTefqyC96=XVwG%}MkqkGs^!s2-m1d= z&T}i}e2-=KDRVo!WM#fpv!ULMn%&()tI}yyQo71e80aSe2>z5fbRI zvqpn5TNkqn(DiCl!bk0wB<`>N^6P$!BRp$wfTIb4L;N5dfWb<;(N zNoF=egw6qZ5224HKuE8qW=9!EY$?t;Ul*ZK$5ODbo30Fvh%LoAI_V+w(F8K2x04<*03%@ zq}DMN`s!R3B2pu^733^He2{gl#d)13k1}F=L5OaHdMJaKFqpZWH{fw7QN%Wb5D`n( zM_I>eocCezC?mETM8i`bWe^)OvZQa+;ZSN3+YTJLVPzS_hb&58S>12~=}}t`4O4wt z>OLR_C4I74X1IMBC@AZyoy@hDl>Z1%|Mi!;7tlo(G*Vjgcl7_AUN*@q|l0H7c$B&V-mh_gk2-mQPhOxdZgBX%QNl!s>DE$ji zqLO8j^F2Wv$)fa?)f;jDZiJ{%(s0(7We`d-DCssQCrf%WLxdx)(SX)NsnIvHQ$Q@r zu=Qy4W$lroWUWV|FH;Vobh7uXECc@tc~?l~$~2c-m6ekV168?Ca+V}+9M@jWApJJ z7bkoSRdRyPfDg^THtdhVplHH})dRznXiY|L1~UR;f7qvA$L8Zd*GBqdYLXN91^uD9 z(1!hCpMPt@ht&f!Dbbote`rRtAs_bPkFojqN4!aY5?FGAub@8(W&}jJu}8tj=Hs8P zBz)k-+fMit@S)kohW$x0D4OtL^&n|Vv?e3B_V{>v+Y+g%H5nMEl4T4S~l^F+78xZw}JRA5Fbvtp#Xqm7xd?y3nhc3U-z;H{(Z zFT{){v&LYy+uGrzpS+fkmIP*`GTSqnlk$p)Vq_gxlb*4gomm9&68sA@V+N&;g0SAJ z2{U%z5&{)a5NErSQ4pFTYTPr{g*9WwDF_Ayp_N%N(oMm}%ve9xgc-Y=m__gw75Ent zBhA;0!EE;xgxwefW}qO{6S6&{X_v;#SdZ4EXY3wd7MY+R&ek9^W^~uBF*DY!HDShX z*JV)x6vWx(W0=t-$QaBRWo^ccQxLer3sJ|&ijlotzK-g%4z39^b`vd&lAs{Y-W$_1 z_Lk>*%ywTv=<3Xq5lVuBP#4MejJ?FQ4l~x(HR&0 z!KyeXoCpPuOqKHGfkJ7athv`F^^Er0V#IlkKuP!OsxmvtbJsS8?AcbDPTB+JXF}38&!%Cr7K`pA{G3tcw zR0<<@ps(CO||PK8&M zx!r`}ZNY6yxJ;WurZU9{5FfKDvh z&WB=w7({C^S6bK}tHlSb!Q5!kj-_XK!!l>o9vQWrQ79JD&Ieju37UjYd7=a5iqmS3 zb*|TZx+hl}SR!{9O68@wP&2d`X~wTyXRs*=3?9Z^@u!otB=4c0J=ah$heBqsJ+_$4 zknqW!Vcl#Y2^rn#-Lv>9^$Z@a7@}4M14!&@N@pvvK~>ihDpoNyzZjSw6azbLQer+C z_bH(fg_7tW~T*NrkK_lE}R0{K%$Zz*=Kac4%0`BsWZc z8|xfRHx05L<7n^)$%67UIJyBIn4x*9m6z| zpXO+~X_7dOqp6Vo4)awZED6`enjvD*Omd`_YY%HCiTF91ZYD`~kD~z(k^$stdOaDK zBtYcKVJ$&&^I;mvjBzwQp^_Mgqp3O~M_73p*2qQ!M*|)t!xEw;$qF<~BYA(0rY8`| zmT@!{1PH+&Pcr~vh=#Q!*&pD_VJ#(K1{zs^aOL!bPS)BSO*M3~@4(YcO(=(TP|8p_ zppiWft}f6>#*U-u2`t!xYS!s*f?j;W)x|nZ`-Ev^k0(qc`zahvPncw#%F)yWT{-i# zB#e5f9M)-o%9R5e$rgucWHrRm^hA=RZ#Wv<uwi6i}oIwhHCQ(L%1S zo=A~39!CQnB$>m};ObLhjIfT$)*4q1Xo9T*P0$w|9zqN274RSnC9XX<*CpsU)(x@~ z!<7S?V5>kQYcsB#4i_4R=PTeL=soPzkt{e@7we#aB2BPWC`XPTa&`42CTRnX20R2k zfcLWt^Efy(aW2tC%vcAd4DryDrZA5K4{}Ho6XUnJ+ea-rq$7d6xsLW%7Lbl zB{xSyhAGP4ObGKh)>CAEl&cFg!B#N_PZKJqCsTsHz%D9D;&AQ3PO4}#5Icn110KQ{ z!4L^!1T&)09`GQ!M4oSo?%{GYXpdy(!ZguGflmpyr>DTFgzCZ**226C!I3y0fd2@~ z1%nd^j~l3qpa*&i3%(Y3kWF%~9~!~}KB9i%eqa!ExGvC0Hk4}*W(Z--HDrkWt>^PF zCj01Id(aDE-UXU4?}GY?eS=q%g=MelNs{;s^AKVrjO)xL*d%F7uCAU+3H}mz2>sBo z=(m7}Fz*r(h_Z*kGsG86i{xTBEWkssea*mPY=M&`DaF;rI4Sf4XoBy-s#b@GA;hto z2@MK7QUYd-Q+388CHO%weZlr2>?9|&xqd*HDEfU+Kfz`Um7L+=>S99`{2NwHLGOWw zfLTjIz$UauFL(>_pc&&3jXn*@)6|5hLrI;SoZ!l7DO{&-n&3aMAay{Ypuqwu# zz(a@ybQ1i8ut0mloC7q$&tLEt+;S|z(ZJT=y0SatoP8K5EBAL)O%Rr3APVI z6xIXaA?O-t71=%JWDnDj7}J0c6?}zZ3hjYQ5qzi)@o5;J4s*N6*Cd+^AuI{O=V7Bx zY=%rR1|b1ks6C(vV-D?!F^G{Ad>)2nqcBFWcM+xm55Wc@BoyZj1A^)hK8Rukp9eHy z4F;=tVg06?km(Gy2Wxgg_RyXXCt?#;b)mXI6MPRgkvNB$8oS1^E4f0^s=(94veHvn zYLSG5439OJ;b~;DH76@GOM_(@xRJwNGdtzJwnQg7(U{(Wx;i>^12W*#HDd-w9R@-j i(`TeQ)pYX`3&;b_RXbO)X&MA4K(^B4$us73N&g4_bMJQm literal 0 HcmV?d00001 diff --git a/specifications/auth/rfc6570.txt b/specifications/auth/rfc6570.txt new file mode 100644 index 00000000..12d5c0f9 --- /dev/null +++ b/specifications/auth/rfc6570.txt @@ -0,0 +1,1907 @@ + + + + + + +Internet Engineering Task Force (IETF) J. Gregorio +Request for Comments: 6570 Google +Category: Standards Track R. Fielding +ISSN: 2070-1721 Adobe + M. Hadley + MITRE + M. Nottingham + Rackspace + D. Orchard + Salesforce.com + March 2012 + + + URI Template + +Abstract + + A URI Template is a compact sequence of characters for describing a + range of Uniform Resource Identifiers through variable expansion. + This specification defines the URI Template syntax and the process + for expanding a URI Template into a URI reference, along with + guidelines for the use of URI Templates on the Internet. + +Status of This Memo + + This is an Internet Standards Track document. + + This document is a product of the Internet Engineering Task Force + (IETF). It represents the consensus of the IETF community. It has + received public review and has been approved for publication by the + Internet Engineering Steering Group (IESG). Further information on + Internet Standards is available in Section 2 of RFC 5741. + + Information about the current status of this document, any errata, + and how to provide feedback on it may be obtained at + http://www.rfc-editor.org/info/rfc6570. + +Copyright Notice + + Copyright (c) 2012 IETF Trust and the persons identified as the + document authors. All rights reserved. + + This document is subject to BCP 78 and the IETF Trust's Legal + Provisions Relating to IETF Documents + (http://trustee.ietf.org/license-info) in effect on the date of + publication of this document. Please review these documents + carefully, as they describe your rights and restrictions with respect + to this document. Code Components extracted from this document must + + + +Gregorio, et al. Standards Track [Page 1] + +RFC 6570 URI Template March 2012 + + + include Simplified BSD License text as described in Section 4.e of + the Trust Legal Provisions and are provided without warranty as + described in the Simplified BSD License. + +Table of Contents + + 1. Introduction ....................................................3 + 1.1. Overview ...................................................3 + 1.2. Levels and Expression Types ................................5 + 1.3. Design Considerations ......................................9 + 1.4. Limitations ...............................................10 + 1.5. Notational Conventions ....................................11 + 1.6. Character Encoding and Unicode Normalization ..............12 + 2. Syntax .........................................................13 + 2.1. Literals ..................................................13 + 2.2. Expressions ...............................................13 + 2.3. Variables .................................................14 + 2.4. Value Modifiers ...........................................15 + 2.4.1. Prefix Values ......................................15 + 2.4.2. Composite Values ...................................16 + 3. Expansion ......................................................18 + 3.1. Literal Expansion .........................................18 + 3.2. Expression Expansion ......................................18 + 3.2.1. Variable Expansion .................................19 + 3.2.2. Simple String Expansion: {var} .....................21 + 3.2.3. Reserved Expansion: {+var} .........................22 + 3.2.4. Fragment Expansion: {#var} .........................23 + 3.2.5. Label Expansion with Dot-Prefix: {.var} ............24 + 3.2.6. Path Segment Expansion: {/var} .....................24 + 3.2.7. Path-Style Parameter Expansion: {;var} .............25 + 3.2.8. Form-Style Query Expansion: {?var} .................26 + 3.2.9. Form-Style Query Continuation: {&var} ..............27 + 4. Security Considerations ........................................27 + 5. Acknowledgments ................................................28 + 6. References .....................................................28 + 6.1. Normative References ......................................28 + 6.2. Informative References ....................................29 + Appendix A. Implementation Hints ..................................30 + + + + + + + + + + + + + +Gregorio, et al. Standards Track [Page 2] + +RFC 6570 URI Template March 2012 + + +1. Introduction + +1.1. Overview + + A Uniform Resource Identifier (URI) [RFC3986] is often used to + identify a specific resource within a common space of similar + resources (informally, a "URI space"). For example, personal web + spaces are often delegated using a common pattern, such as + + http://example.com/~fred/ + http://example.com/~mark/ + + or a set of dictionary entries might be grouped in a hierarchy by the + first letter of the term, as in + + http://example.com/dictionary/c/cat + http://example.com/dictionary/d/dog + + or a service interface might be invoked with various user input in a + common pattern, as in + + http://example.com/search?q=cat&lang=en + http://example.com/search?q=chien&lang=fr + + A URI Template is a compact sequence of characters for describing a + range of Uniform Resource Identifiers through variable expansion. + + URI Templates provide a mechanism for abstracting a space of resource + identifiers such that the variable parts can be easily identified and + described. URI Templates can have many uses, including the discovery + of available services, configuring resource mappings, defining + computed links, specifying interfaces, and other forms of + programmatic interaction with resources. For example, the above + resources could be described by the following URI Templates: + + http://example.com/~{username}/ + http://example.com/dictionary/{term:1}/{term} + http://example.com/search{?q,lang} + + We define the following terms: + + expression: The text between '{' and '}', including the enclosing + braces, as defined in Section 2. + + expansion: The string result obtained from a template expression + after processing it according to its expression type, list of + variable names, and value modifiers, as defined in Section 3. + + + + +Gregorio, et al. Standards Track [Page 3] + +RFC 6570 URI Template March 2012 + + + template processor: A program or library that, given a URI Template + and a set of variables with values, transforms the template string + into a URI reference by parsing the template for expressions and + substituting each one with its corresponding expansion. + + A URI Template provides both a structural description of a URI space + and, when variable values are provided, machine-readable instructions + on how to construct a URI corresponding to those values. A URI + Template is transformed into a URI reference by replacing each + delimited expression with its value as defined by the expression type + and the values of variables named within the expression. The + expression types range from simple string expansion to multiple + name=value lists. The expansions are based on the URI generic + syntax, allowing an implementation to process any URI Template + without knowing the scheme-specific requirements of every possible + resulting URI. + + For example, the following URI Template includes a form-style + parameter expression, as indicated by the "?" operator appearing + before the variable names. + + http://www.example.com/foo{?query,number} + + The expansion process for expressions beginning with the question- + mark ("?") operator follows the same pattern as form-style interfaces + on the World Wide Web: + + http://www.example.com/foo{?query,number} + \_____________/ + | + | + For each defined variable in [ 'query', 'number' ], + substitute "?" if it is the first substitution or "&" + thereafter, followed by the variable name, '=', and the + variable's value. + + If the variables have the values + + query := "mycelium" + number := 100 + + then the expansion of the above URI Template is + + http://www.example.com/foo?query=mycelium&number=100 + + Alternatively, if 'query' is undefined, then the expansion would be + + http://www.example.com/foo?number=100 + + + +Gregorio, et al. Standards Track [Page 4] + +RFC 6570 URI Template March 2012 + + + or if both variables are undefined, then it would be + + http://www.example.com/foo + + A URI Template may be provided in absolute form, as in the examples + above, or in relative form. A template is expanded before the + resulting reference is resolved from relative to absolute form. + + Although the URI syntax is used for the result, the template string + is allowed to contain the broader set of characters that can be found + in Internationalized Resource Identifier (IRI) references [RFC3987]. + Therefore, a URI Template is also an IRI template, and the result of + template processing can be transformed to an IRI by following the + process defined in Section 3.2 of [RFC3987]. + +1.2. Levels and Expression Types + + URI Templates are similar to a macro language with a fixed set of + macro definitions: the expression type determines the expansion + process. The default expression type is simple string expansion, + wherein a single named variable is replaced by its value as a string + after pct-encoding any characters not in the set of unreserved URI + characters (Section 1.5). + + Since most template processors implemented prior to this + specification have only implemented the default expression type, we + refer to these as Level 1 templates. + + .-----------------------------------------------------------------. + | Level 1 examples, with variables having values of | + | | + | var := "value" | + | hello := "Hello World!" | + | | + |-----------------------------------------------------------------| + | Op Expression Expansion | + |-----------------------------------------------------------------| + | | Simple string expansion (Sec 3.2.2) | + | | | + | | {var} value | + | | {hello} Hello%20World%21 | + `-----------------------------------------------------------------' + + Level 2 templates add the plus ("+") operator, for expansion of + values that are allowed to include reserved URI characters + (Section 1.5), and the crosshatch ("#") operator for expansion of + fragment identifiers. + + + + +Gregorio, et al. Standards Track [Page 5] + +RFC 6570 URI Template March 2012 + + + .-----------------------------------------------------------------. + | Level 2 examples, with variables having values of | + | | + | var := "value" | + | hello := "Hello World!" | + | path := "/foo/bar" | + | | + |-----------------------------------------------------------------| + | Op Expression Expansion | + |-----------------------------------------------------------------| + | + | Reserved string expansion (Sec 3.2.3) | + | | | + | | {+var} value | + | | {+hello} Hello%20World! | + | | {+path}/here /foo/bar/here | + | | here?ref={+path} here?ref=/foo/bar | + |-----+-----------------------------------------------------------| + | # | Fragment expansion, crosshatch-prefixed (Sec 3.2.4) | + | | | + | | X{#var} X#value | + | | X{#hello} X#Hello%20World! | + `-----------------------------------------------------------------' + + Level 3 templates allow multiple variables per expression, each + separated by a comma, and add more complex operators for dot-prefixed + labels, slash-prefixed path segments, semicolon-prefixed path + parameters, and the form-style construction of a query syntax + consisting of name=value pairs that are separated by an ampersand + character. + + .-----------------------------------------------------------------. + | Level 3 examples, with variables having values of | + | | + | var := "value" | + | hello := "Hello World!" | + | empty := "" | + | path := "/foo/bar" | + | x := "1024" | + | y := "768" | + | | + |-----------------------------------------------------------------| + | Op Expression Expansion | + |-----------------------------------------------------------------| + | | String expansion with multiple variables (Sec 3.2.2) | + | | | + | | map?{x,y} map?1024,768 | + | | {x,hello,y} 1024,Hello%20World%21,768 | + | | | + + + +Gregorio, et al. Standards Track [Page 6] + +RFC 6570 URI Template March 2012 + + + |-----+-----------------------------------------------------------| + | + | Reserved expansion with multiple variables (Sec 3.2.3) | + | | | + | | {+x,hello,y} 1024,Hello%20World!,768 | + | | {+path,x}/here /foo/bar,1024/here | + | | | + |-----+-----------------------------------------------------------| + | # | Fragment expansion with multiple variables (Sec 3.2.4) | + | | | + | | {#x,hello,y} #1024,Hello%20World!,768 | + | | {#path,x}/here #/foo/bar,1024/here | + | | | + |-----+-----------------------------------------------------------| + | . | Label expansion, dot-prefixed (Sec 3.2.5) | + | | | + | | X{.var} X.value | + | | X{.x,y} X.1024.768 | + | | | + |-----+-----------------------------------------------------------| + | / | Path segments, slash-prefixed (Sec 3.2.6) | + | | | + | | {/var} /value | + | | {/var,x}/here /value/1024/here | + | | | + |-----+-----------------------------------------------------------| + | ; | Path-style parameters, semicolon-prefixed (Sec 3.2.7) | + | | | + | | {;x,y} ;x=1024;y=768 | + | | {;x,y,empty} ;x=1024;y=768;empty | + | | | + |-----+-----------------------------------------------------------| + | ? | Form-style query, ampersand-separated (Sec 3.2.8) | + | | | + | | {?x,y} ?x=1024&y=768 | + | | {?x,y,empty} ?x=1024&y=768&empty= | + | | | + |-----+-----------------------------------------------------------| + | & | Form-style query continuation (Sec 3.2.9) | + | | | + | | ?fixed=yes{&x} ?fixed=yes&x=1024 | + | | {&x,y,empty} &x=1024&y=768&empty= | + | | | + `-----------------------------------------------------------------' + + Finally, Level 4 templates add value modifiers as an optional suffix + to each variable name. A prefix modifier (":") indicates that only a + limited number of characters from the beginning of the value are used + by the expansion (Section 2.4.1). An explode ("*") modifier + + + +Gregorio, et al. Standards Track [Page 7] + +RFC 6570 URI Template March 2012 + + + indicates that the variable is to be treated as a composite value, + consisting of either a list of names or an associative array of + (name, value) pairs, that is expanded as if each member were a + separate variable (Section 2.4.2). + + .-----------------------------------------------------------------. + | Level 4 examples, with variables having values of | + | | + | var := "value" | + | hello := "Hello World!" | + | path := "/foo/bar" | + | list := ("red", "green", "blue") | + | keys := [("semi",";"),("dot","."),("comma",",")] | + | | + | Op Expression Expansion | + |-----------------------------------------------------------------| + | | String expansion with value modifiers (Sec 3.2.2) | + | | | + | | {var:3} val | + | | {var:30} value | + | | {list} red,green,blue | + | | {list*} red,green,blue | + | | {keys} semi,%3B,dot,.,comma,%2C | + | | {keys*} semi=%3B,dot=.,comma=%2C | + | | | + |-----+-----------------------------------------------------------| + | + | Reserved expansion with value modifiers (Sec 3.2.3) | + | | | + | | {+path:6}/here /foo/b/here | + | | {+list} red,green,blue | + | | {+list*} red,green,blue | + | | {+keys} semi,;,dot,.,comma,, | + | | {+keys*} semi=;,dot=.,comma=, | + | | | + |-----+-----------------------------------------------------------| + | # | Fragment expansion with value modifiers (Sec 3.2.4) | + | | | + | | {#path:6}/here #/foo/b/here | + | | {#list} #red,green,blue | + | | {#list*} #red,green,blue | + | | {#keys} #semi,;,dot,.,comma,, | + | | {#keys*} #semi=;,dot=.,comma=, | + | | | + |-----+-----------------------------------------------------------| + | . | Label expansion, dot-prefixed (Sec 3.2.5) | + | | | + | | X{.var:3} X.val | + | | X{.list} X.red,green,blue | + + + +Gregorio, et al. Standards Track [Page 8] + +RFC 6570 URI Template March 2012 + + + | | X{.list*} X.red.green.blue | + | | X{.keys} X.semi,%3B,dot,.,comma,%2C | + | | X{.keys*} X.semi=%3B.dot=..comma=%2C | + | | | + |-----+-----------------------------------------------------------| + | / | Path segments, slash-prefixed (Sec 3.2.6) | + | | | + | | {/var:1,var} /v/value | + | | {/list} /red,green,blue | + | | {/list*} /red/green/blue | + | | {/list*,path:4} /red/green/blue/%2Ffoo | + | | {/keys} /semi,%3B,dot,.,comma,%2C | + | | {/keys*} /semi=%3B/dot=./comma=%2C | + | | | + |-----+-----------------------------------------------------------| + | ; | Path-style parameters, semicolon-prefixed (Sec 3.2.7) | + | | | + | | {;hello:5} ;hello=Hello | + | | {;list} ;list=red,green,blue | + | | {;list*} ;list=red;list=green;list=blue | + | | {;keys} ;keys=semi,%3B,dot,.,comma,%2C | + | | {;keys*} ;semi=%3B;dot=.;comma=%2C | + | | | + |-----+-----------------------------------------------------------| + | ? | Form-style query, ampersand-separated (Sec 3.2.8) | + | | | + | | {?var:3} ?var=val | + | | {?list} ?list=red,green,blue | + | | {?list*} ?list=red&list=green&list=blue | + | | {?keys} ?keys=semi,%3B,dot,.,comma,%2C | + | | {?keys*} ?semi=%3B&dot=.&comma=%2C | + | | | + |-----+-----------------------------------------------------------| + | & | Form-style query continuation (Sec 3.2.9) | + | | | + | | {&var:3} &var=val | + | | {&list} &list=red,green,blue | + | | {&list*} &list=red&list=green&list=blue | + | | {&keys} &keys=semi,%3B,dot,.,comma,%2C | + | | {&keys*} &semi=%3B&dot=.&comma=%2C | + | | | + `-----------------------------------------------------------------' + +1.3. Design Considerations + + Mechanisms similar to URI Templates have been defined within several + specifications, including WSDL [WSDL], WADL [WADL], and OpenSearch + [OpenSearch]. This specification extends and formally defines the + + + +Gregorio, et al. Standards Track [Page 9] + +RFC 6570 URI Template March 2012 + + + syntax so that URI Templates can be used consistently across multiple + Internet applications and within Internet message fields, while at + the same time retaining compatibility with those earlier definitions. + + The URI Template syntax has been designed to carefully balance the + need for a powerful expansion mechanism with the need for ease of + implementation. The syntax is designed to be trivial to parse while + at the same time providing enough flexibility to express many common + template scenarios. Implementations are able to parse the template + and perform the expansions in a single pass. + + Templates are simple and readable when used with common examples + because the single-character operators match the URI generic syntax + delimiters. The operator's associated delimiter (".", ";", "/", "?", + "&", and "#") is omitted when none of the listed variables are + defined. Likewise, the expansion process for ";" (path-style + parameters) will omit the "=" when the variable value is empty, + whereas the process for "?" (form-style parameters) will not omit the + "=" when the value is empty. Multiple variables and list values have + their values joined with "," if there is no predefined joining + mechanism for the operator. The "+" and "#" operators will + substitute unencoded reserved characters found inside the variable + values; the other operators will pct-encode reserved characters found + in the variable values prior to expansion. + + The most common cases for URI spaces can be described with Level 1 + template expressions. If we were only concerned with URI generation, + then the template syntax could be limited to just simple variable + expansion, since more complex forms could be generated by changing + the variable values. However, URI Templates have the additional goal + of describing the layout of identifiers in terms of preexisting data + values. Therefore, the template syntax includes operators that + reflect how resource identifiers are commonly allocated. Likewise, + since prefix substrings are often used to partition large spaces of + resources, modifiers on variable values provide a way to specify both + the substring and the full value string with a single variable name. + +1.4. Limitations + + Since a URI Template describes a superset of the identifiers, there + is no implication that every possible expansion for each delimited + variable expression corresponds to a URI of an existing resource. + Our expectation is that an application constructing URIs according to + the template will be provided with an appropriate set of values for + the variables being substituted, or at least a means of validating + user data-entry for those values. + + + + + +Gregorio, et al. Standards Track [Page 10] + +RFC 6570 URI Template March 2012 + + + URI Templates are not URIs: they do not identify an abstract or + physical resource, they are not parsed as URIs, and they should not + be used in places where a URI would be expected unless the template + expressions will be expanded by a template processor prior to use. + Distinct field, element, or attribute names should be used to + differentiate protocol elements that carry a URI Template from those + that expect a URI reference. + + Some URI Templates can be used in reverse for the purpose of variable + matching: comparing the template to a fully formed URI in order to + extract the variable parts from that URI and assign them to the named + variables. Variable matching only works well if the template + expressions are delimited by the beginning or end of the URI or by + characters that cannot be part of the expansion, such as reserved + characters surrounding a simple string expression. In general, + regular expression languages are better suited for variable matching. + +1.5. Notational Conventions + + The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", + "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this + document are to be interpreted as described in [RFC2119]. + + This specification uses the Augmented Backus-Naur Form (ABNF) + notation of [RFC5234]. The following ABNF rules are imported from + the normative references [RFC5234], [RFC3986], and [RFC3987]. + + ALPHA = %x41-5A / %x61-7A ; A-Z / a-z + DIGIT = %x30-39 ; 0-9 + HEXDIG = DIGIT / "A" / "B" / "C" / "D" / "E" / "F" + ; case-insensitive + + pct-encoded = "%" HEXDIG HEXDIG + unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~" + reserved = gen-delims / sub-delims + gen-delims = ":" / "/" / "?" / "#" / "[" / "]" / "@" + sub-delims = "!" / "$" / "&" / "'" / "(" / ")" + / "*" / "+" / "," / ";" / "=" + + ucschar = %xA0-D7FF / %xF900-FDCF / %xFDF0-FFEF + / %x10000-1FFFD / %x20000-2FFFD / %x30000-3FFFD + / %x40000-4FFFD / %x50000-5FFFD / %x60000-6FFFD + / %x70000-7FFFD / %x80000-8FFFD / %x90000-9FFFD + / %xA0000-AFFFD / %xB0000-BFFFD / %xC0000-CFFFD + / %xD0000-DFFFD / %xE1000-EFFFD + + iprivate = %xE000-F8FF / %xF0000-FFFFD / %x100000-10FFFD + + + + +Gregorio, et al. Standards Track [Page 11] + +RFC 6570 URI Template March 2012 + + +1.6. Character Encoding and Unicode Normalization + + This specification uses the terms "character", "character encoding + scheme", "code point", "coded character set", "glyph", "non-ASCII", + "normalization", "protocol element", and "regular expression" as they + are defined in [RFC6365]. + + The ABNF notation defines its terminal values to be non-negative + integers (code points) that are a superset of the US-ASCII coded + character set [ASCII]. This specification defines terminal values as + code points within the Unicode coded character set [UNIV6]. + + In spite of the syntax and template expansion process being defined + in terms of Unicode code points, it should be understood that + templates occur in practice as a sequence of characters in whatever + form or encoding is suitable for the context in which they occur, + whether that be octets embedded in a network protocol element or + glyphs painted on the side of a bus. This specification does not + mandate any particular character encoding scheme for mapping between + URI Template characters and the octets used to store or transmit + those characters. When a URI Template appears in a protocol element, + the character encoding scheme is defined by that protocol; without + such a definition, a URI Template is assumed to be in the same + character encoding scheme as the surrounding text. It is only during + the process of template expansion that a string of characters in a + URI Template is REQUIRED to be processed as a sequence of Unicode + code points. + + The Unicode Standard [UNIV6] defines various equivalences between + sequences of characters for various purposes. Unicode Standard Annex + #15 [UTR15] defines various Normalization Forms for these + equivalences. The normalization form determines how to consistently + encode equivalent strings. In theory, all URI processing + implementations, including template processors, should use the same + normalization form for generating a URI reference. In practice, they + do not. If a value has been provided by the same server as the + resource, then it can be assumed that the string is already in the + form expected by that server. If a value is provided by a user, such + as via a data-entry dialog, then the string SHOULD be normalized as + Normalization Form C (NFC: Canonical Decomposition, followed by + Canonical Composition) prior to being used in expansions by a + template processor. + + Likewise, when non-ASCII data that represents readable strings is + pct-encoded for use in a URI reference, a template processor MUST + first encode the string as UTF-8 [RFC3629] and then pct-encode any + octets that are not allowed in a URI reference. + + + + +Gregorio, et al. Standards Track [Page 12] + +RFC 6570 URI Template March 2012 + + +2. Syntax + + A URI Template is a string of printable Unicode characters that + contains zero or more embedded variable expressions, each expression + being delimited by a matching pair of braces ('{', '}'). + + URI-Template = *( literals / expression ) + + Although templates (and template processor implementations) are + described above in terms of four gradual levels, we define the URI- + Template syntax in terms of the ABNF for Level 4. A template + processor limited to lower-level templates MAY exclude the ABNF rules + applicable only to higher levels. However, it is RECOMMENDED that + all parsers implement the full syntax such that unsupported levels + can be properly identified as such to the end user. + +2.1. Literals + + The characters outside of expressions in a URI Template string are + intended to be copied literally to the URI reference if the character + is allowed in a URI (reserved / unreserved / pct-encoded) or, if not + allowed, copied to the URI reference as the sequence of pct-encoded + triplets corresponding to that character's encoding in UTF-8 + [RFC3629]. + + literals = %x21 / %x23-24 / %x26 / %x28-3B / %x3D / %x3F-5B + / %x5D / %x5F / %x61-7A / %x7E / ucschar / iprivate + / pct-encoded + ; any Unicode character except: CTL, SP, + ; DQUOTE, "'", "%" (aside from pct-encoded), + ; "<", ">", "\", "^", "`", "{", "|", "}" + +2.2. Expressions + + Template expressions are the parameterized parts of a URI Template. + Each expression contains an optional operator, which defines the + expression type and its corresponding expansion process, followed by + a comma-separated list of variable specifiers (variable names and + optional value modifiers). If no operator is provided, the + expression defaults to simple variable expansion of unreserved + values. + + expression = "{" [ operator ] variable-list "}" + operator = op-level2 / op-level3 / op-reserve + op-level2 = "+" / "#" + op-level3 = "." / "/" / ";" / "?" / "&" + op-reserve = "=" / "," / "!" / "@" / "|" + + + + +Gregorio, et al. Standards Track [Page 13] + +RFC 6570 URI Template March 2012 + + + The operator characters have been chosen to reflect each of their + roles as reserved characters in the URI generic syntax. The + operators defined in Section 3 of this specification include: + + + Reserved character strings; + + # Fragment identifiers prefixed by "#"; + + . Name labels or extensions prefixed by "."; + + / Path segments prefixed by "/"; + + ; Path parameter name or name=value pairs prefixed by ";"; + + ? Query component beginning with "?" and consisting of + name=value pairs separated by "&"; and, + + & Continuation of query-style &name=value pairs within + a literal query component. + + The operator characters equals ("="), comma (","), exclamation ("!"), + at sign ("@"), and pipe ("|") are reserved for future extensions. + + The expression syntax specifically excludes use of the dollar ("$") + and parentheses ["(" and ")"] characters so that they remain + available for use outside the scope of this specification. For + example, a macro language might use these characters to apply macro + substitution to a string prior to that string being processed as a + URI Template. + +2.3. Variables + + After the operator (if any), each expression contains a list of one + or more comma-separated variable specifiers (varspec). The variable + names serve multiple purposes: documentation for what kinds of values + are expected, identifiers for associating values within a template + processor, and the literal string to use for the name in name=value + expansions (aside from when exploding an associative array). + Variable names are case-sensitive because the name might be expanded + within a case-sensitive URI component. + + variable-list = varspec *( "," varspec ) + varspec = varname [ modifier-level4 ] + varname = varchar *( ["."] varchar ) + varchar = ALPHA / DIGIT / "_" / pct-encoded + + + + + + +Gregorio, et al. Standards Track [Page 14] + +RFC 6570 URI Template March 2012 + + + A varname MAY contain one or more pct-encoded triplets. These + triplets are considered an essential part of the variable name and + are not decoded during processing. A varname containing pct-encoded + characters is not the same variable as a varname with those same + characters decoded. Applications that provide URI Templates are + expected to be consistent in their use of pct-encoding within + variable names. + + An expression MAY reference variables that are unknown to the + template processor or whose value is set to a special "undefined" + value, such as undef or null. Such undefined variables are given + special treatment by the expansion process (Section 3.2.1). + + A variable value that is a string of length zero is not considered + undefined; it has the defined value of an empty string. + + In Level 4 templates, a variable may have a composite value in the + form of a list of values or an associative array of (name, value) + pairs. Such value types are not directly indicated by the template + syntax, but they do have an impact on the expansion process + (Section 3.2.1). + + A variable defined as a list value is considered undefined if the + list contains zero members. A variable defined as an associative + array of (name, value) pairs is considered undefined if the array + contains zero members or if all member names in the array are + associated with undefined values. + +2.4. Value Modifiers + + Each of the variables in a Level 4 template expression can have a + modifier indicating either that its expansion is limited to a prefix + of the variable's value string or that its expansion is exploded as a + composite value in the form of a value list or an associative array + of (name, value) pairs. + + modifier-level4 = prefix / explode + +2.4.1. Prefix Values + + A prefix modifier indicates that the variable expansion is limited to + a prefix of the variable's value string. Prefix modifiers are often + used to partition an identifier space hierarchically, as is common in + reference indices and hash-based storage. It also serves to limit + the expanded value to a maximum number of characters. Prefix + modifiers are not applicable to variables that have composite values. + + + + + +Gregorio, et al. Standards Track [Page 15] + +RFC 6570 URI Template March 2012 + + + prefix = ":" max-length + max-length = %x31-39 0*3DIGIT ; positive integer < 10000 + + The max-length is a positive integer that refers to a maximum number + of characters from the beginning of the variable's value as a Unicode + string. Note that this numbering is in characters, not octets, in + order to avoid splitting between the octets of a multi-octet-encoded + character or within a pct-encoded triplet. If the max-length is + greater than the length of the variable's value, then the entire + value string is used. + + For example, + + Given the variable assignments + + var := "value" + semi := ";" + + Example Template Expansion + + {var} value + {var:20} value + {var:3} val + {semi} %3B + {semi:2} %3B + +2.4.2. Composite Values + + An explode ("*") modifier indicates that the variable is to be + treated as a composite value consisting of either a list of values or + an associative array of (name, value) pairs. Hence, the expansion + process is applied to each member of the composite as if it were + listed as a separate variable. This kind of variable specification + is significantly less self-documenting than non-exploded variables, + since there is less correspondence between the variable name and how + the URI reference appears after expansion. + + explode = "*" + + Since URI Templates do not contain an indication of type or schema, + the type for an exploded variable is assumed to be determined by + context. For example, the processor might be supplied values in a + form that differentiates values as strings, lists, or associative + arrays. Likewise, the context in which the template is used (script, + mark-up language, Interface Definition Language, etc.) might define + rules for associating variable names with types, structures, or + schema. + + + + +Gregorio, et al. Standards Track [Page 16] + +RFC 6570 URI Template March 2012 + + + Explode modifiers improve brevity in the URI Template syntax. For + example, a resource that provides a geographic map for a given street + address might accept a hundred permutations on fields for address + input, including partial addresses (e.g., just the city or postal + code). Such a resource could be described as a template with each + and every address component listed in order, or with a far more + simple template that makes use of an explode modifier, as in + + /mapper{?address*} + + along with some context that defines what the variable named + "address" can include, such as by reference to some other standard + for addressing (e.g., [UPU-S42]). A recipient aware of the schema + can then provide appropriate expansions, such as: + + /mapper?city=Newport%20Beach&state=CA + + The expansion process for exploded variables is dependent on both the + operator being used and whether the composite value is to be treated + as a list of values or as an associative array of (name, value) + pairs. Structures are processed as if they are an associative array + with names corresponding to the fields in the structure definition + and "." separators used to indicate name hierarchy in substructures. + + If a variable has a composite structure and only some of the fields + in that structure have defined values, then only the defined pairs + are present in the expansion. This can be useful for templates that + consist of a large number of potential query terms. + + An explode modifier applied to a list variable causes the expansion + to iterate over the list's member values. For path and query + parameter expansions, each member value is paired with the variable's + name as a (varname, value) pair. This allows path and query + parameters to be repeated for multiple values, as in + + Given the variable assignments + + year := ("1965", "2000", "2012") + dom := ("example", "com") + + Example Template Expansion + + find{?year*} find?year=1965&year=2000&year=2012 + www{.dom*} www.example.com + + + + + + + +Gregorio, et al. Standards Track [Page 17] + +RFC 6570 URI Template March 2012 + + +3. Expansion + + The process of URI Template expansion is to scan the template string + from beginning to end, copying literal characters and replacing each + expression with the result of applying the expression's operator to + the value of each variable named in the expression. Each variable's + value MUST be formed prior to template expansion. + + The requirements on expansion for each aspect of the URI Template + grammar are defined in this section. A non-normative algorithm for + the expansion process as a whole is provided in Appendix A. + + If a template processor encounters a character sequence outside an + expression that does not match the grammar, then + processing of the template SHOULD cease, the URI reference result + SHOULD contain the expanded part of the template followed by the + remainder unexpanded, and the location and type of error SHOULD be + indicated to the invoking application. + + If an error is encountered in an expression, such as an operator or + value modifier that the template processor does not recognize or does + not yet support, or a character is found that is not allowed by the + grammar, then the unprocessed parts of the expression + SHOULD be copied to the result unexpanded, processing of the + remainder of the template SHOULD continue, and the location and type + of error SHOULD be indicated to the invoking application. + + If an error occurs, the result returned might not be a valid URI + reference; it will be an incompletely expanded template string that + is only intended for diagnostic use. + +3.1. Literal Expansion + + If the literal character is allowed anywhere in the URI syntax + (unreserved / reserved / pct-encoded ), then it is copied directly to + the result string. Otherwise, the pct-encoded equivalent of the + literal character is copied to the result string by first encoding + the character as its sequence of octets in UTF-8 and then encoding + each such octet as a pct-encoded triplet. + +3.2. Expression Expansion + + Each expression is indicated by an opening brace ("{") character and + continues until the next closing brace ("}"). Expressions cannot be + nested. + + + + + + +Gregorio, et al. Standards Track [Page 18] + +RFC 6570 URI Template March 2012 + + + An expression is expanded by determining its expression type and then + following that type's expansion process for each comma-separated + varspec in the expression. Level 1 templates are limited to the + default operator (simple string value expansion) and a single + variable per expression. Level 2 templates are limited to a single + varspec per expression. + + The expression type is determined by looking at the first character + after the opening brace. If the character is an operator, then + remember the expression type associated with that operator for later + expansion decisions and skip to the next character for the variable- + list. If the first character is not an operator, then the expression + type is simple string expansion and the first character is the + beginning of the variable-list. + + The examples in the subsections below use the following definitions + for variable values: + + count := ("one", "two", "three") + dom := ("example", "com") + dub := "me/too" + hello := "Hello World!" + half := "50%" + var := "value" + who := "fred" + base := "http://example.com/home/" + path := "/foo/bar" + list := ("red", "green", "blue") + keys := [("semi",";"),("dot","."),("comma",",")] + v := "6" + x := "1024" + y := "768" + empty := "" + empty_keys := [] + undef := null + +3.2.1. Variable Expansion + + A variable that is undefined (Section 2.3) has no value and is + ignored by the expansion process. If all of the variables in an + expression are undefined, then the expression's expansion is the + empty string. + + Variable expansion of a defined, non-empty value results in a + substring of allowed URI characters. As described in Section 1.6, + the expansion process is defined in terms of Unicode code points in + order to ensure that non-ASCII characters are consistently pct- + encoded in the resulting URI reference. One way for a template + + + +Gregorio, et al. Standards Track [Page 19] + +RFC 6570 URI Template March 2012 + + + processor to obtain a consistent expansion is to transcode the value + string to UTF-8 (if it is not already in UTF-8) and then transform + each octet that is not in the allowed set into the corresponding pct- + encoded triplet. Another is to map directly from the value's native + character encoding to the set of allowed URI characters, with any + remaining disallowed characters mapping to the sequence of pct- + encoded triplets that correspond to the octet(s) of that character + when encoded as UTF-8 [RFC3629]. + + The allowed set for a given expansion depends on the expression type: + reserved ("+") and fragment ("#") expansions allow the set of + characters in the union of ( unreserved / reserved / pct-encoded ) to + be passed through without pct-encoding, whereas all other expression + types allow only unreserved characters to be passed through without + pct-encoding. Note that the percent character ("%") is only allowed + as part of a pct-encoded triplet and only for reserved/fragment + expansion: in all other cases, a value character of "%" MUST be pct- + encoded as "%25" by variable expansion. + + If a variable appears more than once in an expression or within + multiple expressions of a URI Template, the value of that variable + MUST remain static throughout the expansion process (i.e., the + variable must have the same value for the purpose of calculating each + expansion). However, if reserved characters or pct-encoded triplets + occur in the value, they will be pct-encoded by some expression types + and not by others. + + For a variable that is a simple string value, expansion consists of + appending the encoded value to the result string. An explode + modifier has no effect. A prefix modifier limits the expansion to + the first max-length characters of the decoded value. If the value + contains multi-octet or pct-encoded characters, care must be taken to + avoid splitting the value in mid-character: count each Unicode code + point as one character. + + For a variable that is an associative array, expansion depends on + both the expression type and the presence of an explode modifier. If + there is no explode modifier, expansion consists of appending a + comma-separated concatenation of each (name, value) pair that has a + defined value. If there is an explode modifier, expansion consists + of appending each pair that has a defined value as either + "name=value" or, if the value is the empty string and the expression + type does not indicate form-style parameters (i.e., not a "?" or "&" + type), simply "name". Both name and value strings are encoded in the + same way as simple string values. A separator string is appended + between defined pairs according to the expression type, as defined by + the following table: + + + + +Gregorio, et al. Standards Track [Page 20] + +RFC 6570 URI Template March 2012 + + + Type Separator + "," (default) + + "," + # "," + . "." + / "/" + ; ";" + ? "&" + & "&" + + For a variable that is a list of values, expansion depends on both + the expression type and the presence of an explode modifier. If + there is no explode modifier, the expansion consists of a comma- + separated concatenation of the defined member string values. If + there is an explode modifier and the expression type expands named + parameters (";", "?", or "&"), then the list is expanded as if it + were an associative array in which each member value is paired with + the list's varname. Otherwise, the value will be expanded as if it + were a list of separate variable values, each value separated by the + expression type's associated separator as defined by the table above. + + Example Template Expansion + + {count} one,two,three + {count*} one,two,three + {/count} /one,two,three + {/count*} /one/two/three + {;count} ;count=one,two,three + {;count*} ;count=one;count=two;count=three + {?count} ?count=one,two,three + {?count*} ?count=one&count=two&count=three + {&count*} &count=one&count=two&count=three + +3.2.2. Simple String Expansion: {var} + + Simple string expansion is the default expression type when no + operator is given. + + For each defined variable in the variable-list, perform variable + expansion, as defined in Section 3.2.1, with the allowed characters + being those in the unreserved set. If more than one variable has a + defined value, append a comma (",") to the result string as a + separator between variable expansions. + + + + + + + + +Gregorio, et al. Standards Track [Page 21] + +RFC 6570 URI Template March 2012 + + + Example Template Expansion + + {var} value + {hello} Hello%20World%21 + {half} 50%25 + O{empty}X OX + O{undef}X OX + {x,y} 1024,768 + {x,hello,y} 1024,Hello%20World%21,768 + ?{x,empty} ?1024, + ?{x,undef} ?1024 + ?{undef,y} ?768 + {var:3} val + {var:30} value + {list} red,green,blue + {list*} red,green,blue + {keys} semi,%3B,dot,.,comma,%2C + {keys*} semi=%3B,dot=.,comma=%2C + +3.2.3. Reserved Expansion: {+var} + + Reserved expansion, as indicated by the plus ("+") operator for Level + 2 and above templates, is identical to simple string expansion except + that the substituted values may also contain pct-encoded triplets and + characters in the reserved set. + + For each defined variable in the variable-list, perform variable + expansion, as defined in Section 3.2.1, with the allowed characters + being those in the set (unreserved / reserved / pct-encoded). If + more than one variable has a defined value, append a comma (",") to + the result string as a separator between variable expansions. + + + + + + + + + + + + + + + + + + + + +Gregorio, et al. Standards Track [Page 22] + +RFC 6570 URI Template March 2012 + + + Example Template Expansion + + {+var} value + {+hello} Hello%20World! + {+half} 50%25 + + {base}index http%3A%2F%2Fexample.com%2Fhome%2Findex + {+base}index http://example.com/home/index + O{+empty}X OX + O{+undef}X OX + + {+path}/here /foo/bar/here + here?ref={+path} here?ref=/foo/bar + up{+path}{var}/here up/foo/barvalue/here + {+x,hello,y} 1024,Hello%20World!,768 + {+path,x}/here /foo/bar,1024/here + + {+path:6}/here /foo/b/here + {+list} red,green,blue + {+list*} red,green,blue + {+keys} semi,;,dot,.,comma,, + {+keys*} semi=;,dot=.,comma=, + +3.2.4. Fragment Expansion: {#var} + + Fragment expansion, as indicated by the crosshatch ("#") operator for + Level 2 and above templates, is identical to reserved expansion + except that a crosshatch character (fragment delimiter) is appended + first to the result string if any of the variables are defined. + + Example Template Expansion + + {#var} #value + {#hello} #Hello%20World! + {#half} #50%25 + foo{#empty} foo# + foo{#undef} foo + {#x,hello,y} #1024,Hello%20World!,768 + {#path,x}/here #/foo/bar,1024/here + {#path:6}/here #/foo/b/here + {#list} #red,green,blue + {#list*} #red,green,blue + {#keys} #semi,;,dot,.,comma,, + {#keys*} #semi=;,dot=.,comma=, + + + + + + + +Gregorio, et al. Standards Track [Page 23] + +RFC 6570 URI Template March 2012 + + +3.2.5. Label Expansion with Dot-Prefix: {.var} + + Label expansion, as indicated by the dot (".") operator for Level 3 + and above templates, is useful for describing URI spaces with varying + domain names or path selectors (e.g., filename extensions). + + For each defined variable in the variable-list, append "." to the + result string and then perform variable expansion, as defined in + Section 3.2.1, with the allowed characters being those in the + unreserved set. + + Since "." is in the unreserved set, a value that contains a "." has + the effect of adding multiple labels. + + Example Template Expansion + + {.who} .fred + {.who,who} .fred.fred + {.half,who} .50%25.fred + www{.dom*} www.example.com + X{.var} X.value + X{.empty} X. + X{.undef} X + X{.var:3} X.val + X{.list} X.red,green,blue + X{.list*} X.red.green.blue + X{.keys} X.semi,%3B,dot,.,comma,%2C + X{.keys*} X.semi=%3B.dot=..comma=%2C + X{.empty_keys} X + X{.empty_keys*} X + +3.2.6. Path Segment Expansion: {/var} + + Path segment expansion, as indicated by the slash ("/") operator in + Level 3 and above templates, is useful for describing URI path + hierarchies. + + For each defined variable in the variable-list, append "/" to the + result string and then perform variable expansion, as defined in + Section 3.2.1, with the allowed characters being those in the + unreserved set. + + Note that the expansion process for path segment expansion is + identical to that of label expansion aside from the substitution of + "/" instead of ".". However, unlike ".", a "/" is a reserved + character and will be pct-encoded if found in a value. + + + + + +Gregorio, et al. Standards Track [Page 24] + +RFC 6570 URI Template March 2012 + + + Example Template Expansion + + {/who} /fred + {/who,who} /fred/fred + {/half,who} /50%25/fred + {/who,dub} /fred/me%2Ftoo + {/var} /value + {/var,empty} /value/ + {/var,undef} /value + {/var,x}/here /value/1024/here + {/var:1,var} /v/value + {/list} /red,green,blue + {/list*} /red/green/blue + {/list*,path:4} /red/green/blue/%2Ffoo + {/keys} /semi,%3B,dot,.,comma,%2C + {/keys*} /semi=%3B/dot=./comma=%2C + +3.2.7. Path-Style Parameter Expansion: {;var} + + Path-style parameter expansion, as indicated by the semicolon (";") + operator in Level 3 and above templates, is useful for describing URI + path parameters, such as "path;property" or "path;name=value". + + For each defined variable in the variable-list: + + o append ";" to the result string; + + o if the variable has a simple string value or no explode modifier + is given, then: + + * append the variable name (encoded as if it were a literal + string) to the result string; + + * if the variable's value is not empty, append "=" to the result + string; + + o perform variable expansion, as defined in Section 3.2.1, with the + allowed characters being those in the unreserved set. + + + + + + + + + + + + + +Gregorio, et al. Standards Track [Page 25] + +RFC 6570 URI Template March 2012 + + + Example Template Expansion + + {;who} ;who=fred + {;half} ;half=50%25 + {;empty} ;empty + {;v,empty,who} ;v=6;empty;who=fred + {;v,bar,who} ;v=6;who=fred + {;x,y} ;x=1024;y=768 + {;x,y,empty} ;x=1024;y=768;empty + {;x,y,undef} ;x=1024;y=768 + {;hello:5} ;hello=Hello + {;list} ;list=red,green,blue + {;list*} ;list=red;list=green;list=blue + {;keys} ;keys=semi,%3B,dot,.,comma,%2C + {;keys*} ;semi=%3B;dot=.;comma=%2C + +3.2.8. Form-Style Query Expansion: {?var} + + Form-style query expansion, as indicated by the question-mark ("?") + operator in Level 3 and above templates, is useful for describing an + entire optional query component. + + For each defined variable in the variable-list: + + o append "?" to the result string if this is the first defined value + or append "&" thereafter; + + o if the variable has a simple string value or no explode modifier + is given, append the variable name (encoded as if it were a + literal string) and an equals character ("=") to the result + string; and, + + o perform variable expansion, as defined in Section 3.2.1, with the + allowed characters being those in the unreserved set. + + + Example Template Expansion + + {?who} ?who=fred + {?half} ?half=50%25 + {?x,y} ?x=1024&y=768 + {?x,y,empty} ?x=1024&y=768&empty= + {?x,y,undef} ?x=1024&y=768 + {?var:3} ?var=val + {?list} ?list=red,green,blue + {?list*} ?list=red&list=green&list=blue + {?keys} ?keys=semi,%3B,dot,.,comma,%2C + {?keys*} ?semi=%3B&dot=.&comma=%2C + + + +Gregorio, et al. Standards Track [Page 26] + +RFC 6570 URI Template March 2012 + + +3.2.9. Form-Style Query Continuation: {&var} + + Form-style query continuation, as indicated by the ampersand ("&") + operator in Level 3 and above templates, is useful for describing + optional &name=value pairs in a template that already contains a + literal query component with fixed parameters. + + For each defined variable in the variable-list: + + o append "&" to the result string; + + o if the variable has a simple string value or no explode modifier + is given, append the variable name (encoded as if it were a + literal string) and an equals character ("=") to the result + string; and, + + o perform variable expansion, as defined in Section 3.2.1, with the + allowed characters being those in the unreserved set. + + + Example Template Expansion + + {&who} &who=fred + {&half} &half=50%25 + ?fixed=yes{&x} ?fixed=yes&x=1024 + {&x,y,empty} &x=1024&y=768&empty= + {&x,y,undef} &x=1024&y=768 + + {&var:3} &var=val + {&list} &list=red,green,blue + {&list*} &list=red&list=green&list=blue + {&keys} &keys=semi,%3B,dot,.,comma,%2C + {&keys*} &semi=%3B&dot=.&comma=%2C + +4. Security Considerations + + A URI Template does not contain active or executable content. + However, it might be possible to craft unanticipated URIs if an + attacker is given control over the template or over the variable + values within an expression that allows reserved characters in the + expansion. In either case, the security considerations are largely + determined by who provides the template, who provides the values to + use for variables within the template, in what execution context the + expansion occurs (client or server), and where the resulting URIs are + used. + + + + + + +Gregorio, et al. Standards Track [Page 27] + +RFC 6570 URI Template March 2012 + + + This specification does not limit where URI Templates might be used. + Current implementations exist within server-side development + frameworks and within client-side javascript for computed links or + forms. + + Within frameworks, templates usually act as guides for where data + might occur within later (request-time) URIs in client requests. + Hence, the security concerns are not in the templates themselves, but + rather in how the server extracts and processes the user-provided + data within a normal Web request. + + Within client-side implementations, a URI Template has many of the + same properties as HTML forms, except limited to URI characters and + possibly included in HTTP header field values instead of just message + body content. Care ought to be taken to ensure that potentially + dangerous URI reference strings, such as those beginning with + "javascript:", do not appear in the expansion unless both the + template and the values are provided by a trusted source. + + Other security considerations are the same as those for URIs, as + described in Section 7 of [RFC3986]. + +5. Acknowledgments + + The following people made contributions to this specification: Mike + Burrows, Michaeljohn Clement, DeWitt Clinton, John Cowan, Stephen + Farrell, Robbie Gates, Vijay K. Gurbani, Peter Johanson, Murray S. + Kucherawy, James H. Manger, Tom Petch, Marc Portier, Pete Resnick, + James Snell, and Jiankang Yao. + +6. References + +6.1. Normative References + + [ASCII] American National Standards Institute, "Coded Character + Set - 7-bit American Standard Code for Information + Interchange", ANSI X3.4, 1986. + + [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate + Requirement Levels", BCP 14, RFC 2119, March 1997. + + [RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO + 10646", STD 63, RFC 3629, November 2003. + + [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, + "Uniform Resource Identifier (URI): Generic Syntax", + STD 66, RFC 3986, January 2005. + + + + +Gregorio, et al. Standards Track [Page 28] + +RFC 6570 URI Template March 2012 + + + [RFC3987] Duerst, M. and M. Suignard, "Internationalized Resource + Identifiers (IRIs)", RFC 3987, January 2005. + + [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax + Specifications: ABNF", STD 68, RFC 5234, January 2008. + + [RFC6365] Hoffman, P. and J. Klensin, "Terminology Used in + Internationalization in the IETF", BCP 166, RFC 6365, + September 2011. + + [UNIV6] The Unicode Consortium, "The Unicode Standard, Version + 6.0.0", (Mountain View, CA: The Unicode Consortium, + 2011. ISBN 978-1-936213-01-6), + . + + [UTR15] Davis, M. and M. Duerst, "Unicode Normalization Forms", + Unicode Standard Annex # 15, April 2003, + . + +6.2. Informative References + + [OpenSearch] Clinton, D., "OpenSearch 1.1", Draft 5, December 2011, + . + + [UPU-S42] Universal Postal Union, "International Postal Address + Components and Templates", UPU S42-1, November 2002, + . + + [WADL] Hadley, M., "Web Application Description Language", + World Wide Web Consortium Member Submission + SUBM-wadl-20090831, August 2009, + . + + [WSDL] Weerawarana, S., Moreau, J., Ryman, A., and R. + Chinnici, "Web Services Description Language (WSDL) + Version 2.0 Part 1: Core Language", World Wide Web + Consortium Recommendation REC-wsdl20-20070626, + June 2007, . + + + + + + + + + +Gregorio, et al. Standards Track [Page 29] + +RFC 6570 URI Template March 2012 + + +Appendix A. Implementation Hints + + The normative sections on expansion describe each operator with a + separate expansion process for the sake of descriptive clarity. In + actual implementations, we expect the expressions to be processed + left-to-right using a common algorithm that has only minor variations + in process per operator. This non-normative appendix describes one + such algorithm. + + Initialize an empty result string and its non-error state. + + Scan the template and copy literals to the result string (as in + Section 3.1) until an expression is indicated by a "{", an error is + indicated by the presence of a non-literals character other than "{", + or the template ends. When it ends, return the result string and its + current error or non-error state. + + o If an expression is found, scan the template to the next "}" and + extract the characters in between the braces. + + o If the template ends before a "}", then append the "{" and + extracted characters to the result string and return with an error + status indicating the expression is malformed. + + Examine the first character of the extracted expression for an + operator. + + o If the expression ended (i.e., is "{}"), an operator is found that + is unknown or unimplemented, or the character is not in the + varchar set (Section 2.3), then append "{", the extracted + expression, and "}" to the result string, remember that the result + is in an error state, and then go back to scan the remainder of + the template. + + o If a known and implemented operator is found, store the operator + and skip to the next character to begin the varspec-list. + + o Otherwise, store the operator as NUL (simple string expansion). + + Use the following value table to determine the processing behavior by + expression type operator. The entry for "first" is the string to + append to the result first if any of the expression's variables are + defined. The entry for "sep" is the separator to append to the + result before any second (or subsequent) defined variable expansion. + The entry for "named" is a boolean for whether or not the expansion + includes the variable or key name when no explode modifier is given. + The entry for "ifemp" is a string to append to the name if its + corresponding value is empty. The entry for "allow" indicates what + + + +Gregorio, et al. Standards Track [Page 30] + +RFC 6570 URI Template March 2012 + + + characters to allow unencoded within the value expansion: (U) means + any character not in the unreserved set will be encoded; (U+R) means + any character not in the union of (unreserved / reserved / pct- + encoding) will be encoded; and, for both cases, each disallowed + character is first encoded as its sequence of octets in UTF-8 and + then each such octet is encoded as a pct-encoded triplet. + + .------------------------------------------------------------------. + | NUL + . / ; ? & # | + |------------------------------------------------------------------| + | first | "" "" "." "/" ";" "?" "&" "#" | + | sep | "," "," "." "/" ";" "&" "&" "," | + | named | false false false false true true true false | + | ifemp | "" "" "" "" "" "=" "=" "" | + | allow | U U+R U U U U U U+R | + `------------------------------------------------------------------' + + With the above table in mind, process the variable-list as follows: + + For each varspec, extract a variable name and optional modifier from + the expression by scanning the variable-list until a character not in + the varname set is found or the end of the expression is reached. + + o If it is the end of the expression and the varname is empty, go + back to scan the remainder of the template. + + o If it is not the end of the expression and the last character + found indicates a modifier ("*" or ":"), remember that modifier. + If it is an explode ("*"), scan the next character. If it is a + prefix (":"), continue scanning the next one to four characters + for the max-length represented as a decimal integer and then, if + it is still not the end of the expression, scan the next + character. + + o If it is not the end of the expression and the last character + found is not a comma (","), append "{", the stored operator (if + any), the scanned varname and modifier, the remaining expression, + and "}" to the result string, remember that the result is in an + error state, and then go back to scan the remainder of the + template. + + Lookup the value for the scanned variable name, and then + + o If the varname is unknown or corresponds to a variable with an + undefined value (Section 2.3), then skip to the next varspec. + + + + + + +Gregorio, et al. Standards Track [Page 31] + +RFC 6570 URI Template March 2012 + + + o If this is the first defined variable for this expression, append + the first string for this expression type to the result string and + remember that it has been done. Otherwise, append the sep string + to the result string. + + o If this variable's value is a string, then + + * if named is true, append the varname to the result string using + the same encoding process as for literals, and + + + if the value is empty, append the ifemp string to the result + string and skip to the next varspec; + + + otherwise, append "=" to the result string. + + * if a prefix modifier is present and the prefix length is less + than the value string length in number of Unicode characters, + append that number of characters from the beginning of the + value string to the result string, after pct-encoding any + characters that are not in the allow set, while taking care not + to split multi-octet or pct-encoded triplet characters that + represent a single Unicode code point; + + * otherwise, append the value to the result string after pct- + encoding any characters that are not in the allow set. + + o else if no explode modifier is given, then + + * if named is true, append the varname to the result string using + the same encoding process as for literals, and + + + if the value is empty, append the ifemp string to the result + string and skip to the next varspec; + + + otherwise, append "=" to the result string; and + + * if this variable's value is a list, append each defined list + member to the result string, after pct-encoding any characters + that are not in the allow set, with a comma (",") appended to + the result between each defined list member; + + * if this variable's value is an associative array or any other + form of paired (name, value) structure, append each pair with a + defined value to the result string as "name,value", after pct- + encoding any characters that are not in the allow set, with a + comma (",") appended to the result between each defined pair. + + + + + +Gregorio, et al. Standards Track [Page 32] + +RFC 6570 URI Template March 2012 + + + o else if an explode modifier is given, then + + * if named is true, then for each defined list member or array + (name, value) pair with a defined value, do: + + + if this is not the first defined member/value, append the + sep string to the result string; + + + if this is a list, append the varname to the result string + using the same encoding process as for literals; + + + if this is a pair, append the name to the result string + using the same encoding process as for literals; + + + if the member/value is empty, append the ifemp string to the + result string; otherwise, append "=" and the member/value to + the result string, after pct-encoding any member/value + characters that are not in the allow set. + + * else if named is false, then + + + if this is a list, append each defined list member to the + result string, after pct-encoding any characters that are + not in the allow set, with the sep string appended to the + result between each defined list member. + + + if this is an array of (name, value) pairs, append each pair + with a defined value to the result string as "name=value", + after pct-encoding any characters that are not in the allow + set, with the sep string appended to the result between each + defined pair. + + When the variable-list for this expression is exhausted, go back to + scan the remainder of the template. + + + + + + + + + + + + + + + + + +Gregorio, et al. Standards Track [Page 33] + +RFC 6570 URI Template March 2012 + + +Authors' Addresses + + Joe Gregorio + Google + + EMail: joe@bitworking.org + URI: http://bitworking.org/ + + + Roy T. Fielding + Adobe Systems Incorporated + + EMail: fielding@gbiv.com + URI: http://roy.gbiv.com/ + + + Marc Hadley + The MITRE Corporation + + EMail: mhadley@mitre.org + URI: http://mitre.org/ + + + Mark Nottingham + Rackspace + + EMail: mnot@mnot.net + URI: http://www.mnot.net/ + + + David Orchard + Salesforce.com + + EMail: orchard@pacificspirit.com + URI: http://www.pacificspirit.com/ + + + + + + + + + + + + + + + + +Gregorio, et al. Standards Track [Page 34] + diff --git a/specifications/auth/rfc7636.pdf b/specifications/auth/rfc7636.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4acbd26f9a5b2dd17cd31b88259f46e3c0578fc6 GIT binary patch literal 29583 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 O!sbw{tX#*tQT`7e8o@FE literal 0 HcmV?d00001 diff --git a/specifications/auth/rfc7636.txt b/specifications/auth/rfc7636.txt new file mode 100644 index 00000000..653cb531 --- /dev/null +++ b/specifications/auth/rfc7636.txt @@ -0,0 +1,1123 @@ + + + + + + +Internet Engineering Task Force (IETF) N. Sakimura, Ed. +Request for Comments: 7636 Nomura Research Institute +Category: Standards Track J. Bradley +ISSN: 2070-1721 Ping Identity + N. Agarwal + Google + September 2015 + + + Proof Key for Code Exchange by OAuth Public Clients + +Abstract + + OAuth 2.0 public clients utilizing the Authorization Code Grant are + susceptible to the authorization code interception attack. This + specification describes the attack as well as a technique to mitigate + against the threat through the use of Proof Key for Code Exchange + (PKCE, pronounced "pixy"). + +Status of This Memo + + This is an Internet Standards Track document. + + This document is a product of the Internet Engineering Task Force + (IETF). It represents the consensus of the IETF community. It has + received public review and has been approved for publication by the + Internet Engineering Steering Group (IESG). Further information on + Internet Standards is available in Section 2 of RFC 5741. + + Information about the current status of this document, any errata, + and how to provide feedback on it may be obtained at + http://www.rfc-editor.org/info/rfc7636. + +Copyright Notice + + Copyright (c) 2015 IETF Trust and the persons identified as the + document authors. All rights reserved. + + This document is subject to BCP 78 and the IETF Trust's Legal + Provisions Relating to IETF Documents + (http://trustee.ietf.org/license-info) in effect on the date of + publication of this document. Please review these documents + carefully, as they describe your rights and restrictions with respect + to this document. Code Components extracted from this document must + include Simplified BSD License text as described in Section 4.e of + the Trust Legal Provisions and are provided without warranty as + described in the Simplified BSD License. + + + + +Sakimura, et al. Standards Track [Page 1] + +RFC 7636 OAUTH PKCE September 2015 + + +Table of Contents + + 1. Introduction ....................................................3 + 1.1. Protocol Flow ..............................................5 + 2. Notational Conventions ..........................................6 + 3. Terminology .....................................................7 + 3.1. Abbreviations ..............................................7 + 4. Protocol ........................................................8 + 4.1. Client Creates a Code Verifier .............................8 + 4.2. Client Creates the Code Challenge ..........................8 + 4.3. Client Sends the Code Challenge with the + Authorization Request ......................................9 + 4.4. Server Returns the Code ....................................9 + 4.4.1. Error Response ......................................9 + 4.5. Client Sends the Authorization Code and the Code + Verifier to the Token Endpoint ............................10 + 4.6. Server Verifies code_verifier before Returning the + Tokens ....................................................10 + 5. Compatibility ..................................................11 + 6. IANA Considerations ............................................11 + 6.1. OAuth Parameters Registry .................................11 + 6.2. PKCE Code Challenge Method Registry .......................11 + 6.2.1. Registration Template ..............................12 + 6.2.2. Initial Registry Contents ..........................13 + 7. Security Considerations ........................................13 + 7.1. Entropy of the code_verifier ..............................13 + 7.2. Protection against Eavesdroppers ..........................13 + 7.3. Salting the code_challenge ................................14 + 7.4. OAuth Security Considerations .............................14 + 7.5. TLS Security Considerations ...............................15 + 8. References .....................................................15 + 8.1. Normative References ......................................15 + 8.2. Informative References ....................................16 + Appendix A. Notes on Implementing Base64url Encoding without + Padding .............................................17 + Appendix B. Example for the S256 code_challenge_method ...........17 + Acknowledgements ..................................................19 + Authors' Addresses ................................................20 + + + + + + + + + + + + + +Sakimura, et al. Standards Track [Page 2] + +RFC 7636 OAUTH PKCE September 2015 + + +1. Introduction + + OAuth 2.0 [RFC6749] public clients are susceptible to the + authorization code interception attack. + + In this attack, the attacker intercepts the authorization code + returned from the authorization endpoint within a communication path + not protected by Transport Layer Security (TLS), such as inter- + application communication within the client's operating system. + + Once the attacker has gained access to the authorization code, it can + use it to obtain the access token. + + Figure 1 shows the attack graphically. In step (1), the native + application running on the end device, such as a smartphone, issues + an OAuth 2.0 Authorization Request via the browser/operating system. + The Redirection Endpoint URI in this case typically uses a custom URI + scheme. Step (1) happens through a secure API that cannot be + intercepted, though it may potentially be observed in advanced attack + scenarios. The request then gets forwarded to the OAuth 2.0 + authorization server in step (2). Because OAuth requires the use of + TLS, this communication is protected by TLS and cannot be + intercepted. The authorization server returns the authorization code + in step (3). In step (4), the Authorization Code is returned to the + requester via the Redirection Endpoint URI that was provided in step + (1). + + Note that it is possible for a malicious app to register itself as a + handler for the custom scheme in addition to the legitimate OAuth 2.0 + app. Once it does so, the malicious app is now able to intercept the + authorization code in step (4). This allows the attacker to request + and obtain an access token in steps (5) and (6), respectively. + + + + + + + + + + + + + + + + + + + +Sakimura, et al. Standards Track [Page 3] + +RFC 7636 OAUTH PKCE September 2015 + + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+ + | End Device (e.g., Smartphone) | + | | + | +-------------+ +----------+ | (6) Access Token +----------+ + | |Legitimate | | Malicious|<--------------------| | + | |OAuth 2.0 App| | App |-------------------->| | + | +-------------+ +----------+ | (5) Authorization | | + | | ^ ^ | Grant | | + | | \ | | | | + | | \ (4) | | | | + | (1) | \ Authz| | | | + | Authz| \ Code | | | Authz | + | Request| \ | | | Server | + | | \ | | | | + | | \ | | | | + | v \ | | | | + | +----------------------------+ | | | + | | | | (3) Authz Code | | + | | Operating System/ |<--------------------| | + | | Browser |-------------------->| | + | | | | (2) Authz Request | | + | +----------------------------+ | +----------+ + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+ + + Figure 1: Authorization Code Interception Attack + + A number of pre-conditions need to hold for this attack to work: + + 1. The attacker manages to register a malicious application on the + client device and registers a custom URI scheme that is also used + by another application. The operating systems must allow a custom + URI scheme to be registered by multiple applications. + + 2. The OAuth 2.0 authorization code grant is used. + + 3. The attacker has access to the OAuth 2.0 [RFC6749] "client_id" and + "client_secret" (if provisioned). All OAuth 2.0 native app + client-instances use the same "client_id". Secrets provisioned in + client binary applications cannot be considered confidential. + + 4. Either one of the following condition is met: + + 4a. The attacker (via the installed application) is able to + observe only the responses from the authorization endpoint. + When "code_challenge_method" value is "plain", only this + attack is mitigated. + + + + + +Sakimura, et al. Standards Track [Page 4] + +RFC 7636 OAUTH PKCE September 2015 + + + 4b. A more sophisticated attack scenario allows the attacker to + observe requests (in addition to responses) to the + authorization endpoint. The attacker is, however, not able to + act as a man in the middle. This was caused by leaking http + log information in the OS. To mitigate this, + "code_challenge_method" value must be set either to "S256" or + a value defined by a cryptographically secure + "code_challenge_method" extension. + + While this is a long list of pre-conditions, the described attack has + been observed in the wild and has to be considered in OAuth 2.0 + deployments. While the OAuth 2.0 threat model (Section 4.4.1 of + [RFC6819]) describes mitigation techniques, they are, unfortunately, + not applicable since they rely on a per-client instance secret or a + per-client instance redirect URI. + + To mitigate this attack, this extension utilizes a dynamically + created cryptographically random key called "code verifier". A + unique code verifier is created for every authorization request, and + its transformed value, called "code challenge", is sent to the + authorization server to obtain the authorization code. The + authorization code obtained is then sent to the token endpoint with + the "code verifier", and the server compares it with the previously + received request code so that it can perform the proof of possession + of the "code verifier" by the client. This works as the mitigation + since the attacker would not know this one-time key, since it is sent + over TLS and cannot be intercepted. + +1.1. Protocol Flow + + +-------------------+ + | Authz Server | + +--------+ | +---------------+ | + | |--(A)- Authorization Request ---->| | | + | | + t(code_verifier), t_m | | Authorization | | + | | | | Endpoint | | + | |<-(B)---- Authorization Code -----| | | + | | | +---------------+ | + | Client | | | + | | | +---------------+ | + | |--(C)-- Access Token Request ---->| | | + | | + code_verifier | | Token | | + | | | | Endpoint | | + | |<-(D)------ Access Token ---------| | | + +--------+ | +---------------+ | + +-------------------+ + + Figure 2: Abstract Protocol Flow + + + +Sakimura, et al. Standards Track [Page 5] + +RFC 7636 OAUTH PKCE September 2015 + + + This specification adds additional parameters to the OAuth 2.0 + Authorization and Access Token Requests, shown in abstract form in + Figure 2. + + A. The client creates and records a secret named the "code_verifier" + and derives a transformed version "t(code_verifier)" (referred to + as the "code_challenge"), which is sent in the OAuth 2.0 + Authorization Request along with the transformation method "t_m". + + B. The Authorization Endpoint responds as usual but records + "t(code_verifier)" and the transformation method. + + C. The client then sends the authorization code in the Access Token + Request as usual but includes the "code_verifier" secret generated + at (A). + + D. The authorization server transforms "code_verifier" and compares + it to "t(code_verifier)" from (B). Access is denied if they are + not equal. + + An attacker who intercepts the authorization code at (B) is unable to + redeem it for an access token, as they are not in possession of the + "code_verifier" secret. + +2. Notational Conventions + + The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", + "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and + "OPTIONAL" in this document are to be interpreted as described in + "Key words for use in RFCs to Indicate Requirement Levels" [RFC2119]. + If these words are used without being spelled in uppercase, then they + are to be interpreted with their natural language meanings. + + This specification uses the Augmented Backus-Naur Form (ABNF) + notation of [RFC5234]. + + STRING denotes a sequence of zero or more ASCII [RFC20] characters. + + OCTETS denotes a sequence of zero or more octets. + + ASCII(STRING) denotes the octets of the ASCII [RFC20] representation + of STRING where STRING is a sequence of zero or more ASCII + characters. + + BASE64URL-ENCODE(OCTETS) denotes the base64url encoding of OCTETS, + per Appendix A, producing a STRING. + + + + + +Sakimura, et al. Standards Track [Page 6] + +RFC 7636 OAUTH PKCE September 2015 + + + BASE64URL-DECODE(STRING) denotes the base64url decoding of STRING, + per Appendix A, producing a sequence of octets. + + SHA256(OCTETS) denotes a SHA2 256-bit hash [RFC6234] of OCTETS. + +3. Terminology + + In addition to the terms defined in OAuth 2.0 [RFC6749], this + specification defines the following terms: + + code verifier + A cryptographically random string that is used to correlate the + authorization request to the token request. + + code challenge + A challenge derived from the code verifier that is sent in the + authorization request, to be verified against later. + + code challenge method + A method that was used to derive code challenge. + + Base64url Encoding + Base64 encoding using the URL- and filename-safe character set + defined in Section 5 of [RFC4648], with all trailing '=' + characters omitted (as permitted by Section 3.2 of [RFC4648]) and + without the inclusion of any line breaks, whitespace, or other + additional characters. (See Appendix A for notes on implementing + base64url encoding without padding.) + +3.1. Abbreviations + + ABNF Augmented Backus-Naur Form + + Authz Authorization + + PKCE Proof Key for Code Exchange + + MITM Man-in-the-middle + + MTI Mandatory To Implement + + + + + + + + + + + +Sakimura, et al. Standards Track [Page 7] + +RFC 7636 OAUTH PKCE September 2015 + + +4. Protocol + +4.1. Client Creates a Code Verifier + + The client first creates a code verifier, "code_verifier", for each + OAuth 2.0 [RFC6749] Authorization Request, in the following manner: + + code_verifier = high-entropy cryptographic random STRING using the + unreserved characters [A-Z] / [a-z] / [0-9] / "-" / "." / "_" / "~" + from Section 2.3 of [RFC3986], with a minimum length of 43 characters + and a maximum length of 128 characters. + + ABNF for "code_verifier" is as follows. + + code-verifier = 43*128unreserved + unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~" + ALPHA = %x41-5A / %x61-7A + DIGIT = %x30-39 + + NOTE: The code verifier SHOULD have enough entropy to make it + impractical to guess the value. It is RECOMMENDED that the output of + a suitable random number generator be used to create a 32-octet + sequence. The octet sequence is then base64url-encoded to produce a + 43-octet URL safe string to use as the code verifier. + +4.2. Client Creates the Code Challenge + + The client then creates a code challenge derived from the code + verifier by using one of the following transformations on the code + verifier: + + plain + code_challenge = code_verifier + + S256 + code_challenge = BASE64URL-ENCODE(SHA256(ASCII(code_verifier))) + + If the client is capable of using "S256", it MUST use "S256", as + "S256" is Mandatory To Implement (MTI) on the server. Clients are + permitted to use "plain" only if they cannot support "S256" for some + technical reason and know via out-of-band configuration that the + server supports "plain". + + The plain transformation is for compatibility with existing + deployments and for constrained environments that can't use the S256 + transformation. + + + + + +Sakimura, et al. Standards Track [Page 8] + +RFC 7636 OAUTH PKCE September 2015 + + + ABNF for "code_challenge" is as follows. + + code-challenge = 43*128unreserved + unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~" + ALPHA = %x41-5A / %x61-7A + DIGIT = %x30-39 + +4.3. Client Sends the Code Challenge with the Authorization Request + + The client sends the code challenge as part of the OAuth 2.0 + Authorization Request (Section 4.1.1 of [RFC6749]) using the + following additional parameters: + + code_challenge + REQUIRED. Code challenge. + + code_challenge_method + OPTIONAL, defaults to "plain" if not present in the request. Code + verifier transformation method is "S256" or "plain". + +4.4. Server Returns the Code + + When the server issues the authorization code in the authorization + response, it MUST associate the "code_challenge" and + "code_challenge_method" values with the authorization code so it can + be verified later. + + Typically, the "code_challenge" and "code_challenge_method" values + are stored in encrypted form in the "code" itself but could + alternatively be stored on the server associated with the code. The + server MUST NOT include the "code_challenge" value in client requests + in a form that other entities can extract. + + The exact method that the server uses to associate the + "code_challenge" with the issued "code" is out of scope for this + specification. + +4.4.1. Error Response + + If the server requires Proof Key for Code Exchange (PKCE) by OAuth + public clients and the client does not send the "code_challenge" in + the request, the authorization endpoint MUST return the authorization + error response with the "error" value set to "invalid_request". The + "error_description" or the response of "error_uri" SHOULD explain the + nature of error, e.g., code challenge required. + + + + + + +Sakimura, et al. Standards Track [Page 9] + +RFC 7636 OAUTH PKCE September 2015 + + + If the server supporting PKCE does not support the requested + transformation, the authorization endpoint MUST return the + authorization error response with "error" value set to + "invalid_request". The "error_description" or the response of + "error_uri" SHOULD explain the nature of error, e.g., transform + algorithm not supported. + +4.5. Client Sends the Authorization Code and the Code Verifier to the + Token Endpoint + + Upon receipt of the Authorization Code, the client sends the Access + Token Request to the token endpoint. In addition to the parameters + defined in the OAuth 2.0 Access Token Request (Section 4.1.3 of + [RFC6749]), it sends the following parameter: + + code_verifier + REQUIRED. Code verifier + + The "code_challenge_method" is bound to the Authorization Code when + the Authorization Code is issued. That is the method that the token + endpoint MUST use to verify the "code_verifier". + +4.6. Server Verifies code_verifier before Returning the Tokens + + Upon receipt of the request at the token endpoint, the server + verifies it by calculating the code challenge from the received + "code_verifier" and comparing it with the previously associated + "code_challenge", after first transforming it according to the + "code_challenge_method" method specified by the client. + + If the "code_challenge_method" from Section 4.3 was "S256", the + received "code_verifier" is hashed by SHA-256, base64url-encoded, and + then compared to the "code_challenge", i.e.: + + BASE64URL-ENCODE(SHA256(ASCII(code_verifier))) == code_challenge + + If the "code_challenge_method" from Section 4.3 was "plain", they are + compared directly, i.e.: + + code_verifier == code_challenge. + + If the values are equal, the token endpoint MUST continue processing + as normal (as defined by OAuth 2.0 [RFC6749]). If the values are not + equal, an error response indicating "invalid_grant" as described in + Section 5.2 of [RFC6749] MUST be returned. + + + + + + +Sakimura, et al. Standards Track [Page 10] + +RFC 7636 OAUTH PKCE September 2015 + + +5. Compatibility + + Server implementations of this specification MAY accept OAuth2.0 + clients that do not implement this extension. If the "code_verifier" + is not received from the client in the Authorization Request, servers + supporting backwards compatibility revert to the OAuth 2.0 [RFC6749] + protocol without this extension. + + As the OAuth 2.0 [RFC6749] server responses are unchanged by this + specification, client implementations of this specification do not + need to know if the server has implemented this specification or not + and SHOULD send the additional parameters as defined in Section 4 to + all servers. + +6. IANA Considerations + + IANA has made the following registrations per this document. + +6.1. OAuth Parameters Registry + + This specification registers the following parameters in the IANA + "OAuth Parameters" registry defined in OAuth 2.0 [RFC6749]. + + o Parameter name: code_verifier + o Parameter usage location: token request + o Change controller: IESG + o Specification document(s): RFC 7636 (this document) + + o Parameter name: code_challenge + o Parameter usage location: authorization request + o Change controller: IESG + o Specification document(s): RFC 7636 (this document) + + o Parameter name: code_challenge_method + o Parameter usage location: authorization request + o Change controller: IESG + o Specification document(s): RFC 7636 (this document) + +6.2. PKCE Code Challenge Method Registry + + This specification establishes the "PKCE Code Challenge Methods" + registry. The new registry should be a sub-registry of the "OAuth + Parameters" registry. + + Additional "code_challenge_method" types for use with the + authorization endpoint are registered using the Specification + Required policy [RFC5226], which includes review of the request by + one or more Designated Experts (DEs). The DEs will ensure that there + + + +Sakimura, et al. Standards Track [Page 11] + +RFC 7636 OAUTH PKCE September 2015 + + + is at least a two-week review of the request on the oauth-ext- + review@ietf.org mailing list and that any discussion on that list + converges before they respond to the request. To allow for the + allocation of values prior to publication, the Designated Expert(s) + may approve registration once they are satisfied that an acceptable + specification will be published. + + Registration requests and discussion on the oauth-ext-review@ietf.org + mailing list should use an appropriate subject, such as "Request for + PKCE code_challenge_method: example"). + + The Designated Expert(s) should consider the discussion on the + mailing list, as well as the overall security properties of the + challenge method when evaluating registration requests. New methods + should not disclose the value of the code_verifier in the request to + the Authorization endpoint. Denials should include an explanation + and, if applicable, suggestions as to how to make the request + successful. + +6.2.1. Registration Template + + Code Challenge Method Parameter Name: + The name requested (e.g., "example"). Because a core goal of this + specification is for the resulting representations to be compact, + it is RECOMMENDED that the name be short -- not to exceed 8 + characters without a compelling reason to do so. This name is + case-sensitive. Names may not match other registered names in a + case-insensitive manner unless the Designated Expert(s) states + that there is a compelling reason to allow an exception in this + particular case. + + Change Controller: + For Standards Track RFCs, state "IESG". For others, give the name + of the responsible party. Other details (e.g., postal address, + email address, and home page URI) may also be included. + + Specification Document(s): + Reference to the document(s) that specifies the parameter, + preferably including URI(s) that can be used to retrieve copies of + the document(s). An indication of the relevant sections may also + be included but is not required. + + + + + + + + + + +Sakimura, et al. Standards Track [Page 12] + +RFC 7636 OAUTH PKCE September 2015 + + +6.2.2. Initial Registry Contents + + Per this document, IANA has registered the Code Challenge Method + Parameter Names defined in Section 4.2 in this registry. + + o Code Challenge Method Parameter Name: plain + o Change Controller: IESG + o Specification Document(s): Section 4.2 of RFC 7636 (this document) + + o Code Challenge Method Parameter Name: S256 + o Change Controller: IESG + o Specification Document(s): Section 4.2 of RFC 7636 (this document) + +7. Security Considerations + +7.1. Entropy of the code_verifier + + The security model relies on the fact that the code verifier is not + learned or guessed by the attacker. It is vitally important to + adhere to this principle. As such, the code verifier has to be + created in such a manner that it is cryptographically random and has + high entropy that it is not practical for the attacker to guess. + + The client SHOULD create a "code_verifier" with a minimum of 256 bits + of entropy. This can be done by having a suitable random number + generator create a 32-octet sequence. The octet sequence can then be + base64url-encoded to produce a 43-octet URL safe string to use as a + "code_challenge" that has the required entropy. + +7.2. Protection against Eavesdroppers + + Clients MUST NOT downgrade to "plain" after trying the "S256" method. + Servers that support PKCE are required to support "S256", and servers + that do not support PKCE will simply ignore the unknown + "code_verifier". Because of this, an error when "S256" is presented + can only mean that the server is faulty or that a MITM attacker is + trying a downgrade attack. + + The "S256" method protects against eavesdroppers observing or + intercepting the "code_challenge", because the challenge cannot be + used without the verifier. With the "plain" method, there is a + chance that "code_challenge" will be observed by the attacker on the + device or in the http request. Since the code challenge is the same + as the code verifier in this case, the "plain" method does not + protect against the eavesdropping of the initial request. + + The use of "S256" protects against disclosure of the "code_verifier" + value to an attacker. + + + +Sakimura, et al. Standards Track [Page 13] + +RFC 7636 OAUTH PKCE September 2015 + + + Because of this, "plain" SHOULD NOT be used and exists only for + compatibility with deployed implementations where the request path is + already protected. The "plain" method SHOULD NOT be used in new + implementations, unless they cannot support "S256" for some technical + reason. + + The "S256" code challenge method or other cryptographically secure + code challenge method extension SHOULD be used. The "plain" code + challenge method relies on the operating system and transport + security not to disclose the request to an attacker. + + If the code challenge method is "plain" and the code challenge is to + be returned inside authorization "code" to achieve a stateless + server, it MUST be encrypted in such a manner that only the server + can decrypt and extract it. + +7.3. Salting the code_challenge + + To reduce implementation complexity, salting is not used in the + production of the code challenge, as the code verifier contains + sufficient entropy to prevent brute-force attacks. Concatenating a + publicly known value to a code verifier (containing 256 bits of + entropy) and then hashing it with SHA256 to produce a code challenge + would not increase the number of attempts necessary to brute force a + valid value for code verifier. + + While the "S256" transformation is like hashing a password, there are + important differences. Passwords tend to be relatively low-entropy + words that can be hashed offline and the hash looked up in a + dictionary. By concatenating a unique though public value to each + password prior to hashing, the dictionary space that an attacker + needs to search is greatly expanded. + + Modern graphics processors now allow attackers to calculate hashes in + real time faster than they could be looked up from a disk. This + eliminates the value of the salt in increasing the complexity of a + brute-force attack for even low-entropy passwords. + +7.4. OAuth Security Considerations + + All the OAuth security analysis presented in [RFC6819] applies, so + readers SHOULD carefully follow it. + + + + + + + + + +Sakimura, et al. Standards Track [Page 14] + +RFC 7636 OAUTH PKCE September 2015 + + +7.5. TLS Security Considerations + + Current security considerations can be found in "Recommendations for + Secure Use of Transport Layer Security (TLS) and Datagram Transport + Layer Security (DTLS)" [BCP195]. This supersedes the TLS version + recommendations in OAuth 2.0 [RFC6749]. + +8. References + +8.1. Normative References + + [BCP195] Sheffer, Y., Holz, R., and P. Saint-Andre, + "Recommendations for Secure Use of Transport Layer + Security (TLS) and Datagram Transport Layer Security + (DTLS)", BCP 195, RFC 7525, May 2015, + . + + [RFC20] Cerf, V., "ASCII format for network interchange", STD 80, + RFC 20, DOI 10.17487/RFC0020, October 1969, + . + + [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate + Requirement Levels", BCP 14, RFC 2119, + DOI 10.17487/RFC2119, March 1997, + . + + [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform + Resource Identifier (URI): Generic Syntax", STD 66, RFC + 3986, DOI 10.17487/RFC3986, January 2005, + . + + [RFC4648] Josefsson, S., "The Base16, Base32, and Base64 Data + Encodings", RFC 4648, DOI 10.17487/RFC4648, October 2006, + . + + [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an + IANA Considerations Section in RFCs", BCP 26, RFC 5226, + DOI 10.17487/RFC5226, May 2008, + . + + [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax + Specifications: ABNF", STD 68, RFC 5234, + DOI 10.17487/RFC5234, January 2008, + . + + + + + + + +Sakimura, et al. Standards Track [Page 15] + +RFC 7636 OAUTH PKCE September 2015 + + + [RFC6234] Eastlake 3rd, D. and T. Hansen, "US Secure Hash Algorithms + (SHA and SHA-based HMAC and HKDF)", RFC 6234, + DOI 10.17487/RFC6234, May 2011, + . + + [RFC6749] Hardt, D., Ed., "The OAuth 2.0 Authorization Framework", + RFC 6749, DOI 10.17487/RFC6749, October 2012, + . + +8.2. Informative References + + [RFC6819] Lodderstedt, T., Ed., McGloin, M., and P. Hunt, "OAuth 2.0 + Threat Model and Security Considerations", RFC 6819, + DOI 10.17487/RFC6819, January 2013, + . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Sakimura, et al. Standards Track [Page 16] + +RFC 7636 OAUTH PKCE September 2015 + + +Appendix A. Notes on Implementing Base64url Encoding without Padding + + This appendix describes how to implement a base64url-encoding + function without padding, based upon the standard base64-encoding + function that uses padding. + + To be concrete, example C# code implementing these functions is shown + below. Similar code could be used in other languages. + + static string base64urlencode(byte [] arg) + { + string s = Convert.ToBase64String(arg); // Regular base64 encoder + s = s.Split('=')[0]; // Remove any trailing '='s + s = s.Replace('+', '-'); // 62nd char of encoding + s = s.Replace('/', '_'); // 63rd char of encoding + return s; + } + + An example correspondence between unencoded and encoded values + follows. The octet sequence below encodes into the string below, + which when decoded, reproduces the octet sequence. + + 3 236 255 224 193 + + A-z_4ME + +Appendix B. Example for the S256 code_challenge_method + + The client uses output of a suitable random number generator to + create a 32-octet sequence. The octets representing the value in + this example (using JSON array notation) are: + + [116, 24, 223, 180, 151, 153, 224, 37, 79, 250, 96, 125, 216, 173, + 187, 186, 22, 212, 37, 77, 105, 214, 191, 240, 91, 88, 5, 88, 83, + 132, 141, 121] + + Encoding this octet sequence as base64url provides the value of the + code_verifier: + + dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk + + The code_verifier is then hashed via the SHA256 hash function to + produce: + + [19, 211, 30, 150, 26, 26, 216, 236, 47, 22, 177, 12, 76, 152, 46, + 8, 118, 168, 120, 173, 109, 241, 68, 86, 110, 225, 137, 74, 203, + 112, 249, 195] + + + + +Sakimura, et al. Standards Track [Page 17] + +RFC 7636 OAUTH PKCE September 2015 + + + Encoding this octet sequence as base64url provides the value of the + code_challenge: + + E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM + + The authorization request includes: + + code_challenge=E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM + &code_challenge_method=S256 + + The authorization server then records the code_challenge and + code_challenge_method along with the code that is granted to the + client. + + In the request to the token_endpoint, the client includes the code + received in the authorization response as well as the additional + parameter: + + code_verifier=dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk + + The authorization server retrieves the information for the code + grant. Based on the recorded code_challenge_method being S256, it + then hashes and base64url-encodes the value of code_verifier: + + BASE64URL-ENCODE(SHA256(ASCII(code_verifier))) + + The calculated value is then compared with the value of + "code_challenge": + + BASE64URL-ENCODE(SHA256(ASCII(code_verifier))) == code_challenge + + If the two values are equal, then the authorization server can + provide the tokens as long as there are no other errors in the + request. If the values are not equal, then the request must be + rejected, and an error returned. + + + + + + + + + + + + + + + + +Sakimura, et al. Standards Track [Page 18] + +RFC 7636 OAUTH PKCE September 2015 + + +Acknowledgements + + The initial draft version of this specification was created by the + OpenID AB/Connect Working Group of the OpenID Foundation. + + This specification is the work of the OAuth Working Group, which + includes dozens of active and dedicated participants. In particular, + the following individuals contributed ideas, feedback, and wording + that shaped and formed the final specification: + + Anthony Nadalin, Microsoft + Axel Nenker, Deutsche Telekom + Breno de Medeiros, Google + Brian Campbell, Ping Identity + Chuck Mortimore, Salesforce + Dirk Balfanz, Google + Eduardo Gueiros, Jive Communications + Hannes Tschonfenig, ARM + James Manger, Telstra + Justin Richer, MIT Kerberos + Josh Mandel, Boston Children's Hospital + Lewis Adam, Motorola Solutions + Madjid Nakhjiri, Samsung + Michael B. Jones, Microsoft + Paul Madsen, Ping Identity + Phil Hunt, Oracle + Prateek Mishra, Oracle + Ryo Ito, mixi + Scott Tomilson, Ping Identity + Sergey Beryozkin + Takamichi Saito + Torsten Lodderstedt, Deutsche Telekom + William Denniss, Google + + + + + + + + + + + + + + + + + + +Sakimura, et al. Standards Track [Page 19] + +RFC 7636 OAUTH PKCE September 2015 + + +Authors' Addresses + + Nat Sakimura (editor) + Nomura Research Institute + 1-6-5 Marunouchi, Marunouchi Kitaguchi Bldg. + Chiyoda-ku, Tokyo 100-0005 + Japan + + Phone: +81-3-5533-2111 + Email: n-sakimura@nri.co.jp + URI: http://nat.sakimura.org/ + + + John Bradley + Ping Identity + Casilla 177, Sucursal Talagante + Talagante, RM + Chile + + Phone: +44 20 8133 3718 + Email: ve7jtb@ve7jtb.com + URI: http://www.thread-safe.com/ + + + Naveen Agarwal + Google + 1600 Amphitheatre Parkway + Mountain View, CA 94043 + United States + + Phone: +1 650-253-0000 + Email: naa@google.com + URI: http://google.com/ + + + + + + + + + + + + + + + + + + +Sakimura, et al. Standards Track [Page 20] + diff --git a/specifications/calendar/rfc8984.pdf b/specifications/calendar/rfc8984.pdf new file mode 100644 index 0000000000000000000000000000000000000000..71318d7d87f58011977d8a43e0ecd9457045c3d3 GIT binary patch literal 827754 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

}=WE^7IR$5z6jW@jE<(5LqM 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 literal 0 HcmV?d00001 diff --git a/specifications/calendar/rfc8984.txt b/specifications/calendar/rfc8984.txt new file mode 100644 index 00000000..565277cc --- /dev/null +++ b/specifications/calendar/rfc8984.txt @@ -0,0 +1,3987 @@ + + + + +Internet Engineering Task Force (IETF) N. Jenkins +Request for Comments: 8984 R. Stepanek +Category: Standards Track Fastmail +ISSN: 2070-1721 July 2021 + + + JSCalendar: A JSON Representation of Calendar Data + +Abstract + + This specification defines a data model and JSON representation of + calendar data that can be used for storage and data exchange in a + calendaring and scheduling environment. It aims to be an alternative + and, over time, successor to the widely deployed iCalendar data + format. It also aims to be unambiguous, extendable, and simple to + process. In contrast to the jCal format, which is also based on + JSON, JSCalendar is not a direct mapping from iCalendar but defines + the data model independently and expands semantics where appropriate. + +Status of This Memo + + This is an Internet Standards Track document. + + This document is a product of the Internet Engineering Task Force + (IETF). It represents the consensus of the IETF community. It has + received public review and has been approved for publication by the + Internet Engineering Steering Group (IESG). Further information on + Internet Standards is available in Section 2 of RFC 7841. + + Information about the current status of this document, any errata, + and how to provide feedback on it may be obtained at + https://www.rfc-editor.org/info/rfc8984. + +Copyright Notice + + Copyright (c) 2021 IETF Trust and the persons identified as the + document authors. All rights reserved. + + This document is subject to BCP 78 and the IETF Trust's Legal + Provisions Relating to IETF Documents + (https://trustee.ietf.org/license-info) in effect on the date of + publication of this document. Please review these documents + carefully, as they describe your rights and restrictions with respect + to this document. Code Components extracted from this document must + include Simplified BSD License text as described in Section 4.e of + the Trust Legal Provisions and are provided without warranty as + described in the Simplified BSD License. + +Table of Contents + + 1. Introduction + 1.1. Motivation and Relation to iCalendar and jCal + 1.2. Notational Conventions + 1.3. Type Signatures + 1.4. Data Types + 1.4.1. Id + 1.4.2. Int + 1.4.3. UnsignedInt + 1.4.4. UTCDateTime + 1.4.5. LocalDateTime + 1.4.6. Duration + 1.4.7. SignedDuration + 1.4.8. TimeZoneId + 1.4.9. PatchObject + 1.4.10. Relation + 1.4.11. Link + 2. JSCalendar Objects + 2.1. Event + 2.2. Task + 2.3. Group + 3. Structure of JSCalendar Objects + 3.1. Object Type + 3.2. Normalization and Equivalence + 3.3. Vendor-Specific Property Extensions, Values, and Types + 4. Common JSCalendar Properties + 4.1. Metadata Properties + 4.1.1. @type + 4.1.2. uid + 4.1.3. relatedTo + 4.1.4. prodId + 4.1.5. created + 4.1.6. updated + 4.1.7. sequence + 4.1.8. method + 4.2. What and Where Properties + 4.2.1. title + 4.2.2. description + 4.2.3. descriptionContentType + 4.2.4. showWithoutTime + 4.2.5. locations + 4.2.6. virtualLocations + 4.2.7. links + 4.2.8. locale + 4.2.9. keywords + 4.2.10. categories + 4.2.11. color + 4.3. Recurrence Properties + 4.3.1. recurrenceId + 4.3.2. recurrenceIdTimeZone + 4.3.3. recurrenceRules + 4.3.4. excludedRecurrenceRules + 4.3.5. recurrenceOverrides + 4.3.6. excluded + 4.4. Sharing and Scheduling Properties + 4.4.1. priority + 4.4.2. freeBusyStatus + 4.4.3. privacy + 4.4.4. replyTo + 4.4.5. sentBy + 4.4.6. participants + 4.4.7. requestStatus + 4.5. Alerts Properties + 4.5.1. useDefaultAlerts + 4.5.2. alerts + 4.6. Multilingual Properties + 4.6.1. localizations + 4.7. Time Zone Properties + 4.7.1. timeZone + 4.7.2. timeZones + 5. Type-Specific JSCalendar Properties + 5.1. Event Properties + 5.1.1. start + 5.1.2. duration + 5.1.3. status + 5.2. Task Properties + 5.2.1. due + 5.2.2. start + 5.2.3. estimatedDuration + 5.2.4. percentComplete + 5.2.5. progress + 5.2.6. progressUpdated + 5.3. Group Properties + 5.3.1. entries + 5.3.2. source + 6. Examples + 6.1. Simple Event + 6.2. Simple Task + 6.3. Simple Group + 6.4. All-Day Event + 6.5. Task with a Due Date + 6.6. Event with End Time Zone + 6.7. Floating-Time Event (with Recurrence) + 6.8. Event with Multiple Locations and Localization + 6.9. Recurring Event with Overrides + 6.10. Recurring Event with Participants + 7. Security Considerations + 7.1. Expanding Recurrences + 7.2. JSON Parsing + 7.3. URI Values + 7.4. Spam + 7.5. Duplication + 7.6. Time Zones + 8. IANA Considerations + 8.1. Media Type Registration + 8.2. Creation of the "JSCalendar Properties" Registry + 8.2.1. Preliminary Community Review + 8.2.2. Submit Request to IANA + 8.2.3. Designated Expert Review + 8.2.4. Change Procedures + 8.2.5. "JSCalendar Properties" Registry Template + 8.2.6. Initial Contents for the "JSCalendar Properties" + Registry + 8.3. Creation of the "JSCalendar Types" Registry + 8.3.1. "JSCalendar Types" Registry Template + 8.3.2. Initial Contents for the "JSCalendar Types" Registry + 8.4. Creation of the "JSCalendar Enum Values" Registry + 8.4.1. "JSCalendar Enum Values" Registry Property Template + 8.4.2. "JSCalendar Enum Values" Registry Value Template + 8.4.3. Initial Contents for the "JSCalendar Enum Values" + Registry + 9. References + 9.1. Normative References + 9.2. Informative References + Acknowledgments + Authors' Addresses + +1. Introduction + + This document defines a data model for calendar event and task + objects, or groups of such objects, in electronic calendar + applications and systems. The format aims to be unambiguous, + extendable, and simple to process. + + The key design considerations for this data model are as follows: + + * The attributes of the calendar entry represented must be described + as simple key-value pairs. Simple events are simple to represent; + complex events can be modeled accurately. + + * Wherever possible, there should be only one way to express the + desired semantics, reducing complexity. + + * The data model should avoid ambiguities, which often lead to + interoperability issues between implementations. + + * The data model should be generally compatible with the iCalendar + data format [RFC5545] [RFC7986] and extensions, but the + specification should add new attributes where the iCalendar format + currently lacks expressivity, and drop seldom-used, obsolete, or + redundant properties. This means translation with no loss of + semantics should be easy with most common iCalendar files. + + * Extensions, such as new properties and components, should not + require updates to this document. + + The representation of this data model is defined in the Internet JSON + (I-JSON) format [RFC7493], which is a strict subset of the JSON data + interchange format [RFC8259]. Using JSON is mostly a pragmatic + choice: its widespread use makes JSCalendar easier to adopt and the + ready availability of production-ready JSON implementations + eliminates a whole category of parser-related interoperability + issues, which iCalendar has often suffered from. + +1.1. Motivation and Relation to iCalendar and jCal + + The iCalendar data format [RFC5545], a widely deployed interchange + format for calendaring and scheduling data, has served calendaring + vendors for a long time but contains some ambiguities and pitfalls + that cannot be overcome without backward-incompatible changes. + + Sources of implementation errors include the following: + + * iCalendar defines various formats for local times, UTC, and dates. + + * iCalendar requires custom time zone definitions within a single + calendar component. + + * iCalendar's definition of recurrence rules is ambiguous and has + resulted in differing interpretations, even between experienced + calendar developers. + + * The iCalendar format itself causes interoperability issues due to + misuse of CRLF-terminated strings, line continuations, and subtle + differences among iCalendar parsers. + + In recent years, many new products and services have appeared that + wish to use a JSON representation of calendar data within their APIs. + The JSON format for iCalendar data, jCal [RFC7265], is a direct + mapping between iCalendar and JSON. In its effort to represent full + iCalendar semantics, it inherits all the same pitfalls and uses a + complicated JSON structure. + + As a consequence, since the standardization of jCal, the majority of + implementations and service providers either kept using iCalendar or + came up with their own proprietary JSON representations, which are + incompatible with each other and often suffer from common pitfalls, + such as storing event start times in UTC (which become incorrect if + the time zone's rules change in the future). JSCalendar meets the + demand for JSON-formatted calendar data that is free of such known + problems and provides a standard representation as an alternative to + the proprietary formats. + +1.2. Notational Conventions + + The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", + "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and + "OPTIONAL" in this document are to be interpreted as described in + BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all + capitals, as shown here. + + The underlying format used for this specification is JSON. + Consequently, the terms "object" and "array" as well as the four + primitive types (strings, numbers, booleans, and null) are to be + interpreted as described in Section 1 of [RFC8259]. + + Some examples in this document contain "partial" JSON documents used + for illustrative purposes. In these examples, an ellipsis "..." is + used to indicate a portion of the document that has been removed for + compactness. + +1.3. Type Signatures + + Type signatures are given for all JSON values in this document. The + following conventions are used: + + "*": The type is undefined (the value could be any type, although + permitted values may be constrained by the context of this value). + + "String": This is the JSON string type. + + "Number": This is the JSON number type. + + "Boolean": This is the JSON boolean type. + + "A[B]": The keys are all of type "A" and the values are all of type + "B" for a JSON object. + + "A[]": There is an array of values of type "A" + + "A|B": The value is either of type "A" or of type "B". + + Other types may also be given; their representations are defined + elsewhere in this document. + +1.4. Data Types + + In addition to the standard JSON data types, the following data types + are used in this specification: + +1.4.1. Id + + Where "Id" is given as a data type, it means a "String" of at least 1 + and a maximum of 255 octets in size, and it MUST only contain + characters from the "URL and Filename Safe" base64url alphabet, as + defined in Section 5 of [RFC4648], excluding the pad character ("="). + This means the allowed characters are the ASCII alphanumeric + characters ("A-Za-z0-9"), hyphen ("-"), and underscore ("_"). + + In many places in JSCalendar, a JSON map is used where the map keys + are of type Id and the map values are all the same type of object. + This construction represents an unordered set of objects, with the + added advantage that each entry has a name (the corresponding map + key). This allows for more concise patching of objects, and, when + applicable, for the objects in question to be referenced from other + objects within the JSCalendar object. + + Unless otherwise specified for a particular property, there are no + uniqueness constraints on an Id value (other than, of course, the + requirement that you cannot have two values with the same key within + a single JSON map). For example, two Event objects might use the + same Ids in their respective "links" properties or, within the same + Event object, the same Id could appear in the "participants" and + "alerts" properties. These situations do not imply any semantic + connections among the objects. + +1.4.2. Int + + Where "Int" is given as a data type, it means an integer in the range + -2^53+1 <= value <= 2^53-1, the safe range for integers stored in a + floating-point double, represented as a JSON "Number". + +1.4.3. UnsignedInt + + Where "UnsignedInt" is given as a data type, it means an integer in + the range 0 <= value <= 2^53-1, represented as a JSON "Number". + +1.4.4. UTCDateTime + + This is a string in the "date-time" [RFC3339] format, with the + further restrictions that any letters MUST be in uppercase, and the + time offset MUST be the character "Z". Fractional second values MUST + NOT be included unless non-zero and MUST NOT have trailing zeros, to + ensure there is only a single representation for each date-time. + + For example, "2010-10-10T10:10:10.003Z" is conformant, but + "2010-10-10T10:10:10.000Z" is invalid and is correctly encoded as + "2010-10-10T10:10:10Z". + +1.4.5. LocalDateTime + + This is a date-time string with no time zone/offset information. It + is otherwise in the same format as UTCDateTime, including fractional + seconds. For example, "2006-01-02T15:04:05" and + "2006-01-02T15:04:05.003" are both valid. The time zone to associate + with the LocalDateTime comes from the "timeZone" property of the + JSCalendar object (see Section 4.7.1). If no time zone is specified, + the LocalDateTime is "floating". Floating date-times are not tied to + any specific time zone. Instead, they occur in each time zone at the + given wall-clock time (as opposed to the same instant point in time). + + A time zone may have a period of discontinuity, for example, a change + from standard time to daylight savings time. When converting local + date-times that fall in the discontinuity to UTC, the offset before + the transition MUST be used. + + For example, in the America/Los_Angeles time zone, the date-time + 2020-11-01T01:30:00 occurs twice: before the daylight savings time + (DST) transition with a UTC offset of -07:00 and again after the + transition with an offset of -08:00. When converting to UTC, we + therefore use the offset before the transition (-07:00), so it + becomes 2020-11-01T08:30:00Z. + + Similarly, in the Australia/Melbourne time zone, the date-time + 2020-10-04T02:30:00 does not exist; the clocks are moved forward one + hour for DST on that day at 02:00. However, such a value may appear + during calculations (see duration semantics in Section 1.4.6) or due + to a change in time zone rules (so it was valid when the event was + first created). Again, it is interpreted as though the offset before + the transition is in effect (+10:00); therefore, when converted to + UTC, we get 2020-10-03T16:30:00Z. + +1.4.6. Duration + + Where Duration is given as a type, it means a length of time + represented by a subset of the ISO 8601 duration format, as specified + by the following ABNF [RFC5234]: + + dur-secfrac = "." 1*DIGIT + dur-second = 1*DIGIT [dur-secfrac] "S" + dur-minute = 1*DIGIT "M" [dur-second] + dur-hour = 1*DIGIT "H" [dur-minute] + dur-time = "T" (dur-hour / dur-minute / dur-second) + dur-day = 1*DIGIT "D" + dur-week = 1*DIGIT "W" + dur-cal = (dur-week [dur-day] / dur-day) + + duration = "P" (dur-cal [dur-time] / dur-time) + + In addition, the duration MUST NOT include fractional second values + unless the fraction is non-zero. Fractional second values MUST NOT + have trailing zeros to ensure there is only a single representation + for each duration. + + A duration specifies an abstract number of weeks, days, hours, + minutes, and/or seconds. A duration specified using weeks or days + does not always correspond to an exact multiple of 24 hours. The + number of hours/minutes/seconds may vary if it overlaps a period of + discontinuity in the event's time zone, for example, a change from + standard time to daylight savings time. Leap seconds MUST NOT be + considered when adding or subtracting a duration to/from a + LocalDateTime. + + To add a duration to a LocalDateTime: + + 1. Add any week or day components of the duration to the date. A + week is always the same as seven days. + + 2. If a time zone applies to the LocalDateTime, convert it to a + UTCDateTime following the semantics in Section 1.4.5. + + 3. Add any hour, minute, or second components of the duration (in + absolute time). + + 4. Convert the resulting UTCDateTime back to a LocalDateTime in the + time zone that applies. + + To subtract a duration from a LocalDateTime, the steps apply in + reverse: + + 1. If a time zone applies to the LocalDateTime, convert it to UTC + following the semantics in Section 1.4.5. + + 2. Subtract any hour, minute, or second components of the duration + (in absolute time). + + 3. Convert the resulting UTCDateTime back to LocalDateTime in the + time zone that applies. + + 4. Subtract any week or day components of the duration from the + date. + + 5. If the resulting time does not exist on the date due to a + discontinuity in the time zone, use the semantics in + Section 1.4.5 to convert to UTC and back to get a valid + LocalDateTime. + + These semantics match the iCalendar DURATION value type ([RFC5545], + Section 3.3.6). + +1.4.7. SignedDuration + + A SignedDuration represents a length of time that may be positive or + negative and is typically used to express the offset of a point in + time relative to an associated time. It is represented as a + Duration, optionally preceded by a sign character. It is specified + by the following ABNF: + + signed-duration = ["+" / "-"] duration + + A negative sign indicates a point in time at or before the associated + time; a positive or no sign indicates a time at or after the + associated time. + +1.4.8. TimeZoneId + + Where "TimeZoneId" is given as a data type, it means a "String" that + is either a time zone name in the IANA Time Zone Database [TZDB] or a + custom time zone identifier defined in the "timeZones" property (see + Section 4.7.2). + + Where an IANA time zone is specified, the zone rules of the + respective zone records apply. Custom time zones are interpreted as + described in Section 4.7.2. + +1.4.9. PatchObject + + A PatchObject is of type "String[*]" and represents an unordered set + of patches on a JSON object. Each key is a path represented in a + subset of the JSON Pointer format [RFC6901]. The paths have an + implicit leading "/", so each key is prefixed with "/" before + applying the JSON Pointer evaluation algorithm. + + A patch within a PatchObject is only valid if all of the following + conditions apply: + + 1. The pointer MUST NOT reference inside an array (i.e., you MUST + NOT insert/delete from an array; the array MUST be replaced in + its entirety instead). + + 2. All parts prior to the last (i.e., the value after the final + slash) MUST already exist on the object being patched. + + 3. There MUST NOT be two patches in the PatchObject where the + pointer of one is the prefix of the pointer of the other, e.g., + "alerts/1/offset" and "alerts". + + 4. The value for the patch MUST be valid for the property being set + (of the correct type and obeying any other applicable + restrictions), or, if null, the property MUST be optional. + + The value associated with each pointer determines how to apply that + patch: + + * If null, remove the property from the patched object. If the key + is not present in the parent, this a no-op. + + * If non-null, set the value given as the value for this property + (this may be a replacement or addition to the object being + patched). + + A PatchObject does not define its own "@type" property (see + Section 4.1.1). An "@type" property in a patch MUST be handled as + any other patched property value. + + Implementations MUST reject a PatchObject in its entirety if any of + its patches are invalid. Implementations MUST NOT apply partial + patches. + + The PatchObject format is used to significantly reduce file size and + duplicated content when specifying variations to a common object, + such as with recurring events or when translating the data into + multiple languages. It can also better preserve semantic intent if + only the properties that should differ between the two objects are + patched. For example, if one person is not going to a particular + instance of a regularly scheduled event, in iCalendar, you would have + to duplicate the entire event in the override. In JSCalendar, this + is a small patch to show the difference. As only this property is + patched, if the location of the event is changed, the occurrence will + automatically still inherit this. + +1.4.10. Relation + + A Relation object defines the relation to other objects, using a + possibly empty set of relation types. The object that defines this + relation is the linking object, while the other object is the linked + object. A Relation object has the following properties: + + @type: "String" (mandatory) + This specifies the type of this object. This MUST be "Relation". + + relation: "String[Boolean]" (optional, default: empty Object) + This describes how the linked object is related to the linking + object. The relation is defined as a set of relation types. If + empty, the relationship between the two objects is unspecified. + + Keys in the set MUST be one of the following values, specified in + the property definition where the Relation object is used, a value + registered in the IANA "JSCalendar Enum Values" registry, or a + vendor-specific value (see Section 3.3): + + "first": The linked object is the first in a series the linking + object is part of. + + "next": The linked object is next in a series the linking object + is part of. + + "child": The linked object is a subpart of the linking object. + + "parent": The linking object is a subpart of the linked object. + + The value for each key in the map MUST be true. + +1.4.11. Link + + A Link object represents an external resource associated with the + linking object. It has the following properties: + + @type: "String" (mandatory) + This specifies the type of this object. This MUST be "Link". + + href: "String" (mandatory) + This is a URI [RFC3986] from which the resource may be fetched. + + This MAY be a "data:" URL [RFC2397], but it is recommended that + the file be hosted on a server to avoid embedding arbitrarily + large data in JSCalendar object instances. + + cid: "String" (optional) + This MUST be a valid "content-id" value according to the + definition of Section 2 of [RFC2392]. The value MUST be unique + within this Link object but has no meaning beyond that. It MAY be + different from the link id for this Link object. + + contentType: "String" (optional) + This is the media type [RFC6838] of the resource, if known. + + size: "UnsignedInt" (optional) + This is the size, in octets, of the resource when fully decoded + (i.e., the number of octets in the file the user would download), + if known. Note that this is an informational estimate, and + implementations must be prepared to handle the actual size being + quite different when the resource is fetched. + + rel: "String" (optional) + This identifies the relation of the linked resource to the object. + If set, the value MUST be a relation type from the IANA "Link + Relations" registry [LINKRELS], as established in [RFC8288]. + + display: "String" (optional) + This describes the intended purpose of a link to an image. If + set, the "rel" property MUST be set to "icon". The value MUST be + one of the following values, another value registered in the IANA + "JSCalendar Enum Values" registry, or a vendor-specific value (see + Section 3.3): + + "badge": an image meant to be displayed alongside the title of + the object + + "graphic": a full image replacement for the object itself + + "fullsize": an image that is used to enhance the object + + "thumbnail": a smaller variant of "fullsize" to be used when + space for the image is constrained + + title: "String" (optional) + This is a human-readable, plain-text description of the resource. + +2. JSCalendar Objects + + This section describes the calendar object types specified by + JSCalendar. + +2.1. Event + + Media type: "application/jscalendar+json;type=event" + + An Event represents a scheduled amount of time on a calendar, + typically a meeting, appointment, reminder, or anniversary. It is + required to start at a certain point in time and typically has a non- + zero duration. Multiple participants may partake in the event at + multiple locations. + + The @type (Section 4.1.1) property value MUST be "Event". + +2.2. Task + + Media type: "application/jscalendar+json;type=task" + + A Task represents an action item, assignment, to-do item, or work + item. It may start and be due at certain points in time, take some + estimated time to complete, and recur, none of which is required. + + The @type (Section 4.1.1) property value MUST be "Task". + +2.3. Group + + Media type: "application/jscalendar+json;type=group" + + A Group is a collection of Event (Section 2.1) and/or Task + (Section 2.2) objects. Typically, objects are grouped by topic + (e.g., by keywords) or calendar membership. + + The @type (Section 4.1.1) property value MUST be "Group". + +3. Structure of JSCalendar Objects + + A JSCalendar object is a JSON object [RFC8259], which MUST be valid + I-JSON (a stricter subset of JSON) [RFC7493]. Property names and + values are case sensitive. + + The object has a collection of properties, as specified in the + following sections. Properties are specified as being either + mandatory or optional. Optional properties may have a default value + if explicitly specified in the property definition. + +3.1. Object Type + + JSCalendar objects MUST name their type in the "@type" property if + not explicitly specified otherwise for the respective object type. A + notable exception to this rule is the PatchObject (Section 1.4.9). + +3.2. Normalization and Equivalence + + JSCalendar aims to provide unambiguous definitions for value types + and properties but does not define a general normalization or + equivalence method for JSCalendar objects and types. This is because + the notion of equivalence might range from byte-level equivalence to + semantic equivalence, depending on the respective use case. + Normalization of JSCalendar objects is hindered because of the + following reasons: + + * Custom JSCalendar properties may contain arbitrary JSON values, + including arrays. However, equivalence of arrays might or might + not depend on the order of elements, depending on the respective + property definition. + + * Several JSCalendar property values are defined as URIs and media + types, but normalization of these types is inherently protocol and + scheme specific, depending on the use case of the equivalence + definition (see Section 6 of [RFC3986]). + + Considering this, the definition of equivalence and normalization is + left to client and server implementations and to be negotiated by a + calendar exchange protocol or defined elsewhere. + +3.3. Vendor-Specific Property Extensions, Values, and Types + + Vendors MAY add additional properties to the calendar object to + support their custom features. To avoid conflict, the names of these + properties MUST be prefixed by a domain name controlled by the vendor + followed by a colon, e.g., "example.com:customprop". If the value is + a new JSCalendar object, it either MUST include an "@type" property, + or it MUST explicitly be specified to not require a type designator. + The type name MUST be prefixed with a domain name controlled by the + vendor. + + Some JSCalendar properties allow vendor-specific value extensions. + Such vendor-specific values MUST be prefixed by a domain name + controlled by the vendor followed by a colon, e.g., + "example.com:customrel". + + Vendors are strongly encouraged to register any new property values + or extensions that are useful to other systems as well, rather than + use a vendor-specific prefix. + +4. Common JSCalendar Properties + + This section describes the properties that are common to the various + JSCalendar object types. Specific JSCalendar object types may only + support a subset of these properties. The object type definitions in + Section 5 describe the set of supported properties per type. + +4.1. Metadata Properties + +4.1.1. @type + + Type: "String" (mandatory) + + This specifies the type that this object represents. The allowed + value differs by object type and is defined in Sections 2.1, 2.2, and + 2.3. + +4.1.2. uid + + Type: "String" (mandatory) + + This is a globally unique identifier used to associate objects + representing the same event, task, group, or other object across + different systems, calendars, and views. For recurring events and + tasks, the UID is associated with the base object and therefore is + the same for all occurrences; the combination of the UID with a + "recurrenceId" identifies a particular instance. + + The generator of the identifier MUST guarantee that the identifier is + unique. [RFC4122] describes a range of established algorithms to + generate universally unique identifiers (UUIDs). UUID version 4, + described in Section 4.4 of [RFC4122], is RECOMMENDED. + + For compatibility with UIDs [RFC5545], implementations MUST be able + to receive and persist values of at least 255 octets for this + property, but they MUST NOT truncate values in the middle of a UTF-8 + multi-octet sequence. + +4.1.3. relatedTo + + Type: "String[Relation]" (optional) + + This relates the object to other JSCalendar objects. This is + represented as a map of the UIDs of the related objects to + information about the relation. + + If an object is split to make a "this and future" change to a + recurrence, the original object MUST be truncated to end at the + previous occurrence before this split, and a new object is created to + represent all the occurrences after the split. A "next" relation + MUST be set on the original object's "relatedTo" property for the UID + of the new object. A "first" relation for the UID of the first + object in the series MUST be set on the new object. Clients can then + follow these UIDs to get the complete set of objects if the user + wishes to modify them all at once. + +4.1.4. prodId + + Type: "String" (optional) + + This is the identifier for the product that last updated the + JSCalendar object. This should be set whenever the data in the + object is modified (i.e., whenever the "updated" property is set). + + The vendor of the implementation MUST ensure that this is a globally + unique identifier, using some technique such as a Formal Public + Identifier (FPI) value, as defined in [ISO.9070.1991]. + + This property SHOULD NOT be used to alter the interpretation of a + JSCalendar object beyond the semantics specified in this document. + For example, it is not to be used to further the understanding of + nonstandard properties, a practice that is known to cause long-term + interoperability problems. + +4.1.5. created + + Type: "UTCDateTime" (optional) + + This is the date and time this object was initially created. + +4.1.6. updated + + Type: "UTCDateTime" (mandatory) + + This is the date and time the data in this object was last modified + (or its creation date/time if not modified since). + +4.1.7. sequence + + Type: "UnsignedInt" (optional, default: 0) + + Initially zero, this MUST be incremented by one every time a change + is made to the object, except if the change only modifies the + "participants" property (see Section 4.4.6). + + This is used as part of the iCalendar Transport-independent + Interoperability Protocol (iTIP) [RFC5546] to know which version of + the object a scheduling message relates to. + +4.1.8. method + + Type: "String" (optional) + + This is the iTIP [RFC5546] method, in lowercase. This MUST only be + present if the JSCalendar object represents an iTIP scheduling + message. + +4.2. What and Where Properties + +4.2.1. title + + Type: "String" (optional, default: empty String) + + This is a short summary of the object. + +4.2.2. description + + Type: "String" (optional, default: empty String) + + This is a longer-form text description of the object. The content is + formatted according to the "descriptionContentType" property. + +4.2.3. descriptionContentType + + Type: "String" (optional, default: "text/plain") + + This describes the media type [RFC6838] of the contents of the + "description" property. Media types MUST be subtypes of type "text" + and SHOULD be "text/plain" or "text/html" [MEDIATYPES]. They MAY + include parameters, and the "charset" parameter value MUST be "utf- + 8", if specified. Descriptions of type "text/html" MAY contain "cid" + URLs [RFC2392] to reference links in the calendar object by use of + the "cid" property of the Link object. + +4.2.4. showWithoutTime + + Type: "Boolean" (optional, default: false) + + This indicates that the time is not important to display to the user + when rendering this calendar object. An example of this is an event + that conceptually occurs all day or across multiple days, such as + "New Year's Day" or "Italy Vacation". While the time component is + important for free-busy calculations and checking for scheduling + clashes, calendars may choose to omit displaying it and/or display + the object separately to other objects to enhance the user's view of + their schedule. + + Such events are also commonly known as "all-day" events. + +4.2.5. locations + + Type: "Id[Location]" (optional) + + This is a map of location ids to Location objects, representing + locations associated with the object. + + A Location object has the following properties. It MUST have at + least one property other than the "relativeTo" property. + + @type: "String" (mandatory) + This specifies the type of this object. This MUST be "Location". + + name: "String" (optional) + This is the human-readable name of the location. + + description: "String" (optional) + This is the human-readable, plain-text instructions for accessing + this location. This may be an address, set of directions, door + access code, etc. + + locationTypes: "String[Boolean]" (optional) + This is a set of one or more location types that describe this + location. All types MUST be from the "Location Types Registry" + [LOCATIONTYPES], as defined in [RFC4589]. The set is represented + as a map, with the keys being the location types. The value for + each key in the map MUST be true. + + relativeTo: "String" (optional) + This specifies the relation between this location and the time of + the JSCalendar object. This is primarily to allow events + representing travel to specify the location of departure (at the + start of the event) and location of arrival (at the end); this is + particularly important if these locations are in different time + zones, as a client may wish to highlight this information for the + user. + + This MUST be one of the following values, another value registered + in the IANA "JSCalendar Enum Values" registry, or a vendor- + specific value (see Section 3.3). Any value the client or server + doesn't understand should be treated the same as if this property + is omitted. + + "start": The event/task described by this JSCalendar object + occurs at this location at the time the event/task starts. + + "end": The event/task described by this JSCalendar object occurs + at this location at the time the event/task ends. + + timeZone: "TimeZoneId" (optional) + This is a time zone for this location. + + coordinates: "String" (optional) + This is a "geo:" URI [RFC5870] for the location. + + links: "Id[Link]" (optional) + This is a map of link ids to Link objects, representing external + resources associated with this location, for example, a vCard or + image. If there are no links, this MUST be omitted (rather than + specified as an empty set). + +4.2.6. virtualLocations + + Type: "Id[VirtualLocation]" (optional) + + This is a map of virtual location ids to VirtualLocation objects, + representing virtual locations, such as video conferences or chat + rooms, associated with the object. + + A VirtualLocation object has the following properties. + + @type: "String" (mandatory) + This specifies the type of this object. This MUST be + "VirtualLocation". + + name: "String" (optional, default: empty String) + This is the human-readable name of the virtual location. + + description: "String" (optional) + These are human-readable plain-text instructions for accessing + this virtual location. This may be a conference access code, etc. + + uri: "String" (mandatory) + This is a URI [RFC3986] that represents how to connect to this + virtual location. + + This may be a telephone number (represented using the "tel:" + scheme, e.g., "tel:+1-555-555-5555") for a teleconference, a web + address for online chat, or any custom URI. + + features: "String[Boolean]" (optional) + A set of features supported by this virtual location. The set is + represented as a map, with the keys being the feature. The value + for each key in the map MUST be true. + + The feature MUST be one of the following values, another value + registered in the IANA "JSCalendar Enum Values" registry, or a + vendor-specific value (see Section 3.3). Any value the client or + server doesn't understand should be treated the same as if this + feature is omitted. + + audio: Audio conferencing + + chat: Chat or instant messaging + + feed: Blog or atom feed + + moderator: Provides moderator-specific features + + phone: Phone conferencing + + screen: Screen sharing + + video: Video conferencing + +4.2.7. links + + Type: "Id[Link]" (optional) + + This is a map of link ids to Link objects, representing external + resources associated with the object. + + Links with a rel of "enclosure" MUST be considered by the client to + be attachments for download. + + Links with a rel of "describedby" MUST be considered by the client to + be alternative representations of the description. + + Links with a rel of "icon" MUST be considered by the client to be + images that it may use when presenting the calendar data to a user. + The "display" property may be set to indicate the purpose of this + image. + +4.2.8. locale + + Type: "String" (optional) + + This is the language tag, as defined in [RFC5646], that best + describes the locale used for the text in the calendar object, if + known. + +4.2.9. keywords + + Type: "String[Boolean]" (optional) + + This is a set of keywords or tags that relate to the object. The set + is represented as a map, with the keys being the keywords. The value + for each key in the map MUST be true. + +4.2.10. categories + + Type: "String[Boolean]" (optional) + + This is a set of categories that relate to the calendar object. The + set is represented as a map, with the keys being the categories + specified as URIs. The value for each key in the map MUST be true. + + In contrast to keywords, categories are typically structured. For + example, a vendor owning the domain "example.com" might define the + categories "http://example.com/categories/sports/american-football" + and "http://example.com/categories/music/r-b". + +4.2.11. color + + Type: "String" (optional) + + This is a color clients MAY use when displaying this calendar object. + The value is a color name taken from the set of names defined in + Section 4.3 of CSS Color Module Level 3 [COLORS] or an RGB value in + hexadecimal notation, as defined in Section 4.2.1 of CSS Color Module + Level 3. + +4.3. Recurrence Properties + + Some events and tasks occur at regular or irregular intervals. + Rather than having to copy the data for every occurrence, there can + be a base event with rules to generate recurrences and/or overrides + that add extra dates or exceptions to the rules. + + The recurrence set is the complete set of instances for an object. + It is generated by considering the following properties in order, all + of which are optional: + + 1. The "recurrenceRules" property (Section 4.3.3) generates a set of + extra date-times on which the object occurs. + + 2. The "excludedRecurrenceRules" property (Section 4.3.4) generates + a set of date-times that are to be removed from the previously + generated set of date-times on which the object occurs. + + 3. The "recurrenceOverrides" property (Section 4.3.5) defines date- + times that are added or excluded to form the final set. (This + property may also contain changes to the object to apply to + particular instances.) + +4.3.1. recurrenceId + + Type: "LocalDateTime" (optional) + + If present, this JSCalendar object represents one occurrence of a + recurring JSCalendar object. If present, the "recurrenceRules" and + "recurrenceOverrides" properties MUST NOT be present. + + The value is a date-time either produced by the "recurrenceRules" of + the base event or added as a key to the "recurrenceOverrides" + property of the base event. + +4.3.2. recurrenceIdTimeZone + + Type: "TimeZoneId|null" (optional, default: null) + + Identifies the time zone of the main JSCalendar object, of which this + JSCalendar object is a recurrence instance. This property MUST be + set if the "recurrenceId" property is set. It MUST NOT be set if the + "recurrenceId" property is not set. + +4.3.3. recurrenceRules + + Type: "RecurrenceRule[]" (optional) + + This defines a set of recurrence rules (repeating patterns) for + recurring calendar objects. + + An Event recurs by applying the recurrence rules to the "start" date- + time. + + A Task recurs by applying the recurrence rules to the "start" date- + time, if defined; otherwise, it recurs by the "due" date-time, if + defined. If the task defines neither a "start" nor "due" date-time, + it MUST NOT define a "recurrenceRules" property. + + If multiple recurrence rules are given, each rule is to be applied, + and then the union of the results are used, ignoring any duplicates. + + A RecurrenceRule object is a JSON object mapping of a RECUR value + type in iCalendar [RFC5545] [RFC7529] and has the same semantics. It + has the following properties: + + @type: "String" (mandatory) + This specifies the type of this object. This MUST be + "RecurrenceRule". + + frequency: "String" (mandatory) + This is the time span covered by each iteration of this recurrence + rule (see Section 4.3.3.1 for full semantics). This MUST be one + of the following values: + + * "yearly" + + * "monthly" + + * "weekly" + + * "daily" + + * "hourly" + + * "minutely" + + * "secondly" + + This is the FREQ part from iCalendar, converted to lowercase. + + interval: "UnsignedInt" (optional, default: 1) + This is the interval of iteration periods at which the recurrence + repeats. If included, it MUST be an integer >= 1. + + This is the INTERVAL part from iCalendar. + + rscale: "String" (optional, default: "gregorian") + This is the calendar system in which this recurrence rule + operates, in lowercase. This MUST be either a CLDR-registered + calendar system name [CLDR] or a vendor-specific value (see + Section 3.3). + + This is the RSCALE part from iCalendar RSCALE [RFC7529], converted + to lowercase. + + skip: "String" (optional, default: "omit") + This is the behavior to use when the expansion of the recurrence + produces invalid dates. This property only has an effect if the + frequency is "yearly" or "monthly". It MUST be one of the + following values: + + * "omit" + + * "backward" + + * "forward" + + This is the SKIP part from iCalendar RSCALE [RFC7529], converted + to lowercase. + + firstDayOfWeek: "String" (optional, default: "mo") + This is the day on which the week is considered to start, + represented as a lowercase, abbreviated, and two-letter English + day of the week. If included, it MUST be one of the following + values: + + * "mo" + + * "tu" + + * "we" + + * "th" + + * "fr" + + * "sa" + + * "su" + + This is the WKST part from iCalendar. + + byDay: "NDay[]" (optional) + These are days of the week on which to repeat. An "NDay" object + has the following properties: + + @type: "String" (mandatory) + This specifies the type of this object. This MUST be "NDay". + + day: "String" (mandatory) + This is a day of the week on which to repeat; the allowed + values are the same as for the "firstDayOfWeek" recurrenceRule + property. + + This is the day of the week of the BYDAY part in iCalendar, + converted to lowercase. + + nthOfPeriod: "Int" (optional) + If present, rather than representing every occurrence of the + weekday defined in the "day" property, it represents only a + specific instance within the recurrence period. The value can + be positive or negative but MUST NOT be zero. A negative + integer means the nth-last occurrence within that period (i.e., + -1 is the last occurrence, -2 the one before that, etc.). + + This is the ordinal part of the BYDAY value in iCalendar (e.g., + 1 or -3). + + byMonthDay: "Int[]" (optional) + These are the days of the month on which to repeat. Valid values + are between 1 and the maximum number of days any month may have in + the calendar given by the "rscale" property and the negative + values of these numbers. For example, in the Gregorian calendar, + valid values are 1 to 31 and -31 to -1. Negative values offset + from the end of the month. The array MUST have at least one entry + if included. + + This is the BYMONTHDAY part in iCalendar. + + byMonth: "String[]" (optional) + These are the months in which to repeat. Each entry is a string + representation of a number, starting from "1" for the first month + in the calendar (e.g., "1" means January with the Gregorian + calendar), with an optional "L" suffix (see [RFC7529]) for leap + months (this MUST be uppercase, e.g., "3L"). The array MUST have + at least one entry if included. + + This is the BYMONTH part from iCalendar. + + byYearDay: "Int[]" (optional) + These are the days of the year on which to repeat. Valid values + are between 1 and the maximum number of days any year may have in + the calendar given by the "rscale" property and the negative + values of these numbers. For example, in the Gregorian calendar, + valid values are 1 to 366 and -366 to -1. Negative values offset + from the end of the year. The array MUST have at least one entry + if included. + + This is the BYYEARDAY part from iCalendar. + + byWeekNo: "Int[]" (optional) + These are the weeks of the year in which to repeat. Valid values + are between 1 and the maximum number of weeks any year may have in + the calendar given by the "rscale" property and the negative + values of these numbers. For example, in the Gregorian calendar, + valid values are 1 to 53 and -53 to -1. The array MUST have at + least one entry if included. + + This is the BYWEEKNO part from iCalendar. + + byHour: "UnsignedInt[]" (optional) + These are the hours of the day in which to repeat. Valid values + are 0 to 23. The array MUST have at least one entry if included. + This is the BYHOUR part from iCalendar. + + byMinute: "UnsignedInt[]" (optional) + These are the minutes of the hour in which to repeat. Valid + values are 0 to 59. The array MUST have at least one entry if + included. + + This is the BYMINUTE part from iCalendar. + + bySecond: "UnsignedInt[]" (optional) + These are the seconds of the minute in which to repeat. Valid + values are 0 to 60. The array MUST have at least one entry if + included. + + This is the BYSECOND part from iCalendar. + + bySetPosition: "Int[]" (optional) + These are the occurrences within the recurrence interval to + include in the final results. Negative values offset from the end + of the list of occurrences. The array MUST have at least one + entry if included. This is the BYSETPOS part from iCalendar. + + count: "UnsignedInt" (optional) + These are the number of occurrences at which to range-bound the + recurrence. This MUST NOT be included if an "until" property is + specified. + + This is the COUNT part from iCalendar. + + until: "LocalDateTime" (optional) + These are the date-time at which to finish recurring. The last + occurrence is on or before this date-time. This MUST NOT be + included if a "count" property is specified. Note that if not + specified otherwise for a specific JSCalendar object, this date is + to be interpreted in the time zone specified in the JSCalendar + object's "timeZone" property. + + This is the UNTIL part from iCalendar. + +4.3.3.1. Interpreting Recurrence Rules + + A recurrence rule specifies a set of date-times for recurring + calendar objects. A recurrence rule has the following semantics. + Note that wherever "year", "month", or "day of month" is used, this + is within the calendar system given by the "rscale" property, which + defaults to "gregorian" if omitted. + + 1. A set of candidates is generated. This is every second within a + period defined by the "frequency" property value: + + "yearly": every second from midnight on the first day of a year + (inclusive) to midnight the first day of the following year + (exclusive). + + If skip is not "omit", the calendar system has leap months, + and there is a "byMonth" property, generate candidates for the + leap months, even if they don't occur in this year. + + If skip is not "omit" and there is a "byMonthDay" property, + presume each month has the maximum number of days any month + may have in this calendar system when generating candidates, + even if it's more than this month actually has. + + "monthly": every second from midnight on the first day of a + month (inclusive) to midnight on the first of the following + month (exclusive). + + If skip is not "omit" and there is a "byMonthDay" property, + presume the month has the maximum number of days any month may + have in this calendar system when generating candidates, even + if it's more than this month actually has. + + "weekly": every second from midnight (inclusive) on the first + day of the week (as defined by the "firstDayOfWeek" property + or Monday if omitted) to midnight seven days later + (exclusive). + + "daily": every second from midnight at the start of the day + (inclusive) to midnight at the end of the day (exclusive). + + "hourly": every second from the beginning of the hour + (inclusive) to the beginning of the next hour (exclusive). + + "minutely": every second from the beginning of the minute + (inclusive) to the beginning of the next minute (exclusive). + + "secondly": only the second itself. + + 2. Each date-time candidate is compared against all of the byX + properties of the rule except bySetPosition. If any property in + the rule does not match the date-time, the date-time is + eliminated. Each byX property is an array; the date-time matches + the property if it matches any of the values in the array. The + properties have the following semantics: + + byMonth: The date-time is in the given month. + + byWeekNo: The date-time is in the nth week of the year. + Negative numbers mean the nth last week of the year. This + corresponds to weeks according to week numbering, as defined + in ISO.8601.2004, with a week defined as a seven-day period, + starting on the "firstDayOfWeek" property value or Monday if + omitted. Week number one of the calendar year is the first + week that contains at least four days in that calendar year. + + If the date-time is not valid (this may happen when generating + candidates with a "skip" property in effect), it is always + eliminated by this property. + + byYearDay: The date-time is on the nth day of year. Negative + numbers mean the nth last day of the year. + + If the date-time is not valid (this may happen when generating + candidates with a "skip" property in effect), it is always + eliminated by this property. + + byMonthDay: The date-time is on the given day of the month. + Negative numbers mean the nth last day of the month. + + byDay: The date-time is on the given day of the week. If the + day is prefixed by a number, it is the nth occurrence of that + day of the week within the month (if frequency is monthly) or + year (if frequency is yearly). Negative numbers mean the nth + last occurrence within that period. + + byHour: The date-time has the given hour value. + + byMinute: The date-time has the given minute value. + + bySecond: The date-time has the given second value. + + If a "skip" property is defined and is not "omit", there may be + candidates that do not correspond to valid dates (e.g., February + 31st in the Gregorian calendar). In this case, the properties + MUST be considered in the order above, and: + + 1. After applying the byMonth filter, if the candidate's month + is invalid for the given year, increment it (if skip is + "forward") or decrement it (if skip is "backward") until a + valid month is found, incrementing/decrementing the year as + well if passing through the beginning/end of the year. This + only applies to calendar systems with leap months. + + 2. After applying the byMonthDay filter, if the day of the month + is invalid for the given month and year, change the date to + the first day of the next month (if skip is "forward") or the + last day of the current month (if skip is "backward"). + + 3. If any valid date produced after applying the skip is already + a candidate, eliminate the duplicate. (For example, after + adjusting, February 30th and February 31st would both become + the same "real" date, so one is eliminated as a duplicate.) + + 3. If a "bySetPosition" property is included, this is now applied to + the ordered list of remaining dates. This property specifies the + indexes of date-times to keep; all others should be eliminated. + Negative numbers are indexed from the end of the list, with -1 + being the last item, -2 the second from last, etc. + + 4. Any date-times before the start date of the event are eliminated + (see below for why this might be needed). + + 5. If a "skip" property is included and is not "omit", eliminate any + date-times that have already been produced by previous iterations + of the algorithm. (This is not possible if skip is "omit".) + + 6. If further dates are required (we have not reached the until date + or count limit), skip the next (interval - 1) sets of candidates, + then continue from step 1. + + When determining the set of occurrence dates for an event or task, + the following extra rules must be applied: + + 1. The initial date-time to which the rule is applied (the "start" + date-time for events or the "start" or "due" date-time for tasks) + is always the first occurrence in the expansion (and is counted + if the recurrence is limited by a "count" property), even if it + would normally not match the rule. + + 2. The first set of candidates to consider is that which would + contain the initial date-time. This means the first set may + include candidates before the initial date-time; such candidates + are eliminated from the results in step 4 of the list above. + + 3. The following properties MUST be implicitly added to the rule + under the given conditions: + + * If frequency is not "secondly" and there is no "bySecond" + property, add a "bySecond" property with the sole value being + the seconds value of the initial date-time. + + * If frequency is not "secondly" or "minutely" and there is no + "byMinute" property, add a "byMinute" property with the sole + value being the minutes value of the initial date-time. + + * If frequency is not "secondly", "minutely", or "hourly" and + there is no "byHour" property, add a "byHour" property with + the sole value being the hours value of the initial date-time. + + * If frequency is "weekly" and there is no "byDay" property, add + a "byDay" property with the sole value being the day of the + week of the initial date-time. + + * If frequency is "monthly" and there is no "byDay" property and + no "byMonthDay" property, add a "byMonthDay" property with the + sole value being the day of the month of the initial date- + time. + + * If frequency is "yearly" and there is no "byYearDay" property: + + - If there are no "byMonth" or "byWeekNo" properties, and + either there is a "byMonthDay" property or there is no + "byDay" property, add a "byMonth" property with the sole + value being the month of the initial date-time. + + - If there are no "byMonthDay", "byWeekNo", or "byDay" + properties, add a "byMonthDay" property with the sole value + being the day of the month of the initial date-time. + + - If there is a "byWeekNo" property and no "byMonthDay" or + "byDay" properties, add a "byDay" property with the sole + value being the day of the week of the initial date-time. + +4.3.4. excludedRecurrenceRules + + Type: "RecurrenceRule[]" (optional) + + This defines a set of recurrence rules (repeating patterns) for date- + times on which the object will not occur. The rules are interpreted + the same as for the "recurrenceRules" property (see Section 4.3.3), + with the exception that the initial date-time to which the rule is + applied (the "start" date-time for events or the "start" or "due" + date-time for tasks) is only considered part of the expansion if it + matches the rule. The resulting set of date-times is then removed + from those generated by the "recurrenceRules" property, as described + in Section 4.3. + +4.3.5. recurrenceOverrides + + Type: "LocalDateTime[PatchObject]" (optional) + + Maps recurrence ids (the date-time produced by the recurrence rule) + to the overridden properties of the recurrence instance. + + If the recurrence id does not match a date-time from the recurrence + rule (or no rule is specified), it is to be treated as an additional + occurrence (like an RDATE from iCalendar). The patch object may + often be empty in this case. + + If the patch object defines the "excluded" property of an occurrence + to be true, this occurrence is omitted from the final set of + recurrences for the calendar object (like an EXDATE from iCalendar). + Such a patch object MUST NOT patch any other property. + + By default, an occurrence inherits all properties from the main + object except the start (or due) date-time, which is shifted to match + the recurrence id LocalDateTime. However, individual properties of + the occurrence can be modified by a patch or multiple patches. It is + valid to patch the "start" property value, and this patch takes + precedence over the value generated from the recurrence id. Both the + recurrence id as well as the patched "start" date-time may occur + before the original JSCalendar object's "start" or "due" date. + + A pointer in the PatchObject MUST be ignored if it starts with one of + the following prefixes: + + * @type + + * excludedRecurrenceRules + + * method + + * privacy + + * prodId + + * recurrenceId + + * recurrenceIdTimeZone + + * recurrenceOverrides + + * recurrenceRules + + * relatedTo + + * replyTo + + * sentBy + + * timeZones + + * uid + +4.3.6. excluded + + Type: "Boolean" (optional, default: false) + + This defines if this object is an overridden, excluded instance of a + recurring JSCalendar object (see Section 4.3.5). If this property + value is true, this calendar object instance MUST be removed from the + occurrence expansion. The absence of this property, or the presence + of its default value as false, indicates that this instance MUST be + included in the occurrence expansion. + +4.4. Sharing and Scheduling Properties + +4.4.1. priority + + Type: "Int" (optional, default: 0) + + This specifies a priority for the calendar object. This may be used + as part of scheduling systems to help resolve conflicts for a time + period. + + The priority is specified as an integer in the range 0 to 9. A value + of 0 specifies an undefined priority, for which the treatment will + vary by situation. A value of 1 is the highest priority. A value of + 2 is the second highest priority. Subsequent numbers specify a + decreasing ordinal priority. A value of 9 is the lowest priority. + Other integer values are reserved for future use. + +4.4.2. freeBusyStatus + + Type: "String" (optional, default: "busy") + + This specifies how this calendar object should be treated when + calculating free-busy state. This MUST be one of the following + values, another value registered in the IANA "JSCalendar Enum Values" + registry, or a vendor-specific value (see Section 3.3): + + "free": The object should be ignored when calculating whether the + user is busy. + + "busy": The object should be included when calculating whether the + user is busy. + +4.4.3. privacy + + Type: "String" (optional, default: "public") + + Calendar objects are normally collected together and may be shared + with other users. The privacy property allows the object owner to + indicate that it should not be shared or should only have the time + information shared but the details withheld. Enforcement of the + restrictions indicated by this property is up to the API via which + this object is accessed. + + This property MUST NOT affect the information sent to scheduled + participants; it is only interpreted by protocols that share the + calendar objects belonging to one user with other users. + + The value MUST be one of the following values, another value + registered in the IANA "JSCalendar Enum Values" registry, or a + vendor-specific value (see Section 3.3). Any value the client or + server doesn't understand should be preserved but treated as + equivalent to "private". + + "public": The full details of the object are visible to those whom + the object's calendar is shared with. + + "private": The details of the object are hidden; only the basic time + and metadata are shared. The following properties MAY be shared; + any other properties MUST NOT be shared: + + * @type + + * created + + * due + + * duration + + * estimatedDuration + + * freeBusyStatus + + * privacy + + * recurrenceOverrides (Only patches that apply to another + permissible property are allowed to be shared.) + + * sequence + + * showWithoutTime + + * start + + * timeZone + + * timeZones + + * uid + + * updated + + "secret": The object is hidden completely (as though it did not + exist) when the calendar this object is in is shared. + +4.4.4. replyTo + + Type: "String[String]" (optional) + + This represents methods by which participants may submit their + response to the organizer of the calendar object. The keys in the + property value are the available methods and MUST only contain ASCII + alphanumeric characters (A-Za-z0-9). The value is a URI for the + method specified in the key. Future methods may be defined in future + specifications and registered with IANA; a calendar client MUST + ignore any method it does not understand but MUST preserve the method + key and URI. This property MUST be omitted if no method is defined + (rather than being specified as an empty object). + + The following methods are defined: + + "imip": The organizer accepts an iCalendar Message-Based + Interoperability Protocol (iMIP) [RFC6047] response at this email + address. The value MUST be a "mailto:" URI. + + "web": Opening this URI in a web browser will provide the user with + a page where they can submit a reply to the organizer. The value + MUST be a URL using the "https:" scheme. + + "other": The organizer is identified by this URI, but the method for + submitting the response is undefined. + +4.4.5. sentBy + + Type: "String" (optional) + + This is the email address in the "From" header of the email in which + this calendar object was received. This is only relevant if the + calendar object is received via iMIP or as an attachment to a + message. If set, the value MUST be a valid "addr-spec" value as + defined in Section 3.4.1 of [RFC5322]. + +4.4.6. participants + + Type: "Id[Participant]" (optional) + + This is a map of participant ids to participants, describing their + participation in the calendar object. + + If this property is set and any participant has a "sendTo" property, + then the "replyTo" property of this calendar object MUST define at + least one reply method. + + A Participant object has the following properties: + + @type: "String" (mandatory) + This specifies the type of this object. This MUST be + "Participant". + + name: "String" (optional) + This is the display name of the participant (e.g., "Joe Bloggs"). + + email: "String" (optional) + This is the email address to use to contact the participant or, + for example, match with an address book entry. If set, the value + MUST be a valid "addr-spec" value as defined in Section 3.4.1 of + [RFC5322]. + + description: "String" (optional) + This is a plain-text description of this participant. For + example, this may include more information about their role in the + event or how best to contact them. + + sendTo: "String[String]" (optional) + This represents methods by which the participant may receive the + invitation and updates to the calendar object. + + The keys in the property value are the available methods and MUST + only contain ASCII alphanumeric characters (A-Za-z0-9). The value + is a URI for the method specified in the key. Future methods may + be defined in future specifications and registered with IANA; a + calendar client MUST ignore any method it does not understand but + MUST preserve the method key and URI. This property MUST be + omitted if no method is defined (rather than being specified as an + empty object). + + The following methods are defined: + + "imip": The participant accepts an iMIP [RFC6047] request at this + email address. The value MUST be a "mailto:" URI. It MAY be + different from the value of the participant's "email" property. + + "other": The participant is identified by this URI, but the + method for submitting the invitation is undefined. + + kind: "String" (optional) + This is what kind of entity this participant is, if known. + + This MUST be one of the following values, another value registered + in the IANA "JSCalendar Enum Values" registry, or a vendor- + specific value (see Section 3.3). Any value the client or server + doesn't understand should be treated the same as if this property + is omitted. + + "individual": a single person + + "group": a collection of people invited as a whole + + "location": a physical location that needs to be scheduled, e.g., + a conference room + + "resource": a non-human resource other than a location, such as a + projector + + roles: "String[Boolean]" (mandatory) + This is a set of roles that this participant fulfills. + + At least one role MUST be specified for the participant. The keys + in the set MUST be one of the following values, another value + registered in the IANA "JSCalendar Enum Values" registry, or a + vendor-specific value (see Section 3.3): + + "owner": The participant is an owner of the object. This + signifies they have permission to make changes to it that + affect the other participants. Nonowner participants may only + change properties that affect only themselves (for example, + setting their own alerts or changing their RSVP status). + + "attendee": The participant is expected to be present at the + event. + + "optional": The participant's involvement with the event is + optional. This is expected to be primarily combined with the + "attendee" role. + + "informational": The participant is copied for informational + reasons and is not expected to attend. + + "chair": The participant is in charge of the event/task when it + occurs. + + "contact": The participant is someone that may be contacted for + information about the event. + + The value for each key in the map MUST be true. It is expected + that no more than one of the roles "attendee" and "informational" + be present; if more than one are given, "attendee" takes + precedence over "informational". Roles that are unknown to the + implementation MUST be preserved. + + locationId: "Id" (optional) + This is the location at which this participant is expected to be + attending. + + If the value does not correspond to any location id in the + "locations" property of the JSCalendar object, this MUST be + treated the same as if the participant's locationId were omitted. + + language: "String" (optional) + This is the language tag, as defined in [RFC5646], that best + describes the participant's preferred language, if known. + + participationStatus: "String" (optional, default: "needs-action") + This is the participation status, if any, of this participant. + + The value MUST be one of the following values, another value + registered in the IANA "JSCalendar Enum Values" registry, or a + vendor-specific value (see Section 3.3): + + "needs-action": No status has yet been set by the participant. + + "accepted": The invited participant will participate. + + "declined": The invited participant will not participate. + + "tentative": The invited participant may participate. + + "delegated": The invited participant has delegated their + attendance to another participant, as specified in the + "delegatedTo" property. + + participationComment: "String" (optional) + This is a note from the participant to explain their participation + status. + + expectReply: "Boolean" (optional, default: false) + If true, the organizer is expecting the participant to notify them + of their participation status. + + scheduleAgent: "String" (optional, default: "server") + This is who is responsible for sending scheduling messages with + this calendar object to the participant. + + The value MUST be one of the following values, another value + registered in the IANA "JSCalendar Enum Values" registry, or a + vendor-specific value (see Section 3.3): + + "server": The calendar server will send the scheduling messages. + + "client": The calendar client will send the scheduling messages. + + "none": No scheduling messages are to be sent to this + participant. + + scheduleForceSend: "Boolean" (optional, default: false) + A client may set the property on a participant to true to request + that the server send a scheduling message to the participant when + it would not normally do so (e.g., if no significant change is + made the object or the scheduleAgent is set to client). The + property MUST NOT be stored in the JSCalendar object on the server + or appear in a scheduling message. + + scheduleSequence: "UnsignedInt" (optional, default: 0) + This is the sequence number of the last response from the + participant. If defined, this MUST be a nonnegative integer. + + This can be used to determine whether the participant has sent a + new response following significant changes to the calendar object + and to determine if future responses are responding to a current + or older view of the data. + + scheduleStatus: "String[]" (optional) + This is a list of status codes, returned from the processing of + the most recent scheduling message sent to this participant. The + status codes MUST be valid "statcode" values as defined in the + ABNF in Section 3.8.8.3 of [RFC5545]. + + Servers MUST only add or change this property when they send a + scheduling message to the participant. Clients SHOULD NOT change + or remove this property if it was provided by the server. Clients + MAY add, change, or remove the property for participants where the + client is handling the scheduling. + + This property MUST NOT be included in scheduling messages. + + scheduleUpdated: "UTCDateTime" (optional) + This is the timestamp for the most recent response from this + participant. + + This is the "updated" property of the last response when using + iTIP. It can be compared to the "updated" property in future + responses to detect and discard older responses delivered out of + order. + + sentBy: "String" (optional) + This is the email address in the "From" header of the email that + last updated this participant via iMIP. This SHOULD only be set + if the email address is different to that in the mailto URI of + this participant's "imip" method in the "sendTo" property (i.e., + the response was received from a different address to that which + the invitation was sent to). If set, the value MUST be a valid + "addr-spec" value as defined in Section 3.4.1 of [RFC5322]. + + invitedBy: "Id" (optional) + This is the id of the participant who added this participant to + the event/task, if known. + + delegatedTo: "Id[Boolean]" (optional) + This is set of participant ids that this participant has delegated + their participation to. Each key in the set MUST be the id of a + participant. The value for each key in the map MUST be true. If + there are no delegates, this MUST be omitted (rather than + specified as an empty set). + + delegatedFrom: "Id[Boolean]" (optional) + This is a set of participant ids that this participant is acting + as a delegate for. Each key in the set MUST be the id of a + participant. The value for each key in the map MUST be true. If + there are no delegators, this MUST be omitted (rather than + specified as an empty set). + + memberOf: "Id[Boolean]" (optional) + This is a set of group participants that were invited to this + calendar object, which caused this participant to be invited due + to their membership in the group(s). Each key in the set MUST be + the id of a participant. The value for each key in the map MUST + be true. If there are no groups, this MUST be omitted (rather + than specified as an empty set). + + links: "Id[Link]" (optional) + This is a map of link ids to Link objects, representing external + resources associated with this participant, for example, a vCard + or image. If there are no links, this MUST be omitted (rather + than specified as an empty set). + + progress: "String" (optional; only allowed for participants of a + Task) + This represents the progress of the participant for this task. It + MUST NOT be set if the "participationStatus" of this participant + is any value other than "accepted". See Section 5.2.5 for allowed + values and semantics. + + progressUpdated: "UTCDateTime" (optional; only allowed for + participants of a Task) + This specifies the date-time the "progress" property was last set + on this participant. See Section 5.2.6 for allowed values and + semantics. + + percentComplete: "UnsignedInt" (optional; only allowed for + participants of a Task) + This represents the percent completion of the participant for this + task. The property value MUST be a positive integer between 0 and + 100. + +4.4.7. requestStatus + + Type: "String" (optional) + + A request status as returned from processing the most recent + scheduling request for this JSCalendar object. The allowed values + are defined by the ABNF definitions of "statcode", "statdesc" and + "extdata" in Section 3.8.8.3 of [RFC5545] and the following ABNF + [RFC5234]: + + reqstatus = statcode ";" statdesc [";" extdata] + + Servers MUST only add or change this property when they performe a + scheduling action. Clients SHOULD NOT change or remove this property + if it was provided by the server. Clients MAY add, change, or remove + the property when the client is handling the scheduling. + + This property MUST only be included in scheduling messages according + to the rules defined for the REQUEST-STATUS iCalendar property in + [RFC5546]. + +4.5. Alerts Properties + +4.5.1. useDefaultAlerts + + Type: "Boolean" (optional, default: false) + + If true, use the user's default alerts and ignore the value of the + "alerts" property. Fetching user defaults is dependent on the API + from which this JSCalendar object is being fetched and is not defined + in this specification. If an implementation cannot determine the + user's default alerts, or none are set, it MUST process the "alerts" + property as if "useDefaultAlerts" is set to false. + +4.5.2. alerts + + Type: "Id[Alert]" (optional) + + This is a map of alert ids to Alert objects, representing alerts/ + reminders to display or send to the user for this calendar object. + + An Alert object has the following properties: + + @type: "String" (mandatory) + This specifies the type of this object. This MUST be "Alert". + + trigger: "OffsetTrigger|AbsoluteTrigger|UnknownTrigger" + (mandatory) + This defines when to trigger the alert. New types may be defined + in future documents. + + An "OffsetTrigger" object has the following properties: + + @type: "String" (mandatory) + This specifies the type of this object. This MUST be + "OffsetTrigger". + + offset: "SignedDuration" (mandatory) + This defines the offset at which to trigger the alert relative + to the time property defined in the "relativeTo" property of + the alert. Negative durations signify alerts before the time + property; positive durations signify alerts after the time + property. + + relativeTo: "String" (optional, default: "start") + This specifies the time property that the alert offset is + relative to. The value MUST be one of the following: + + "start": triggers the alert relative to the start of the + calendar object + + "end": triggers the alert relative to the end/due time of the + calendar object + + An "AbsoluteTrigger" object has the following properties: + + @type: "String" (mandatory) + This specifies the type of this object. This MUST be + "AbsoluteTrigger". + + when: "UTCDateTime" (mandatory) + This defines a specific UTC date-time when the alert is + triggered. + + An "UnknownTrigger" object is an object that contains an "@type" + property whose value is not recognized (i.e., not "OffsetTrigger" + or "AbsoluteTrigger") plus zero or more other properties. This is + for compatibility with client extensions and future + specifications. Implementations SHOULD NOT trigger for trigger + types they do not understand but MUST preserve them. + + acknowledged: "UTCDateTime" (optional) + This records when an alert was last acknowledged. This is set + when the user has dismissed the alert; other clients that sync + this property SHOULD automatically dismiss or suppress duplicate + alerts (alerts with the same alert id that triggered on or before + this date-time). + + For a recurring calendar object, setting the "acknowledged" + property MUST NOT add a new override to the "recurrenceOverrides" + property. If the alert is not already overridden, the + "acknowledged" property MUST be set on the alert in the base + event/task. + + Certain kinds of alert action may not provide feedback as to when + the user sees them, for example, email-based alerts. For those + kinds of alerts, this property MUST be set immediately when the + alert is triggered and the action is successfully carried out. + + relatedTo: "String[Relation]" (optional) + This relates this alert to other alerts in the same JSCalendar + object. If the user wishes to snooze an alert, the application + MUST create an alert to trigger after snoozing. This new snooze + alert MUST set a parent relation to the identifier of the original + alert. + + action: "String" (optional, default: "display") + This describes how to alert the user. + + The value MUST be at most one of the following values, a value + registered in the IANA "JSCalendar Enum Values" registry, or a + vendor-specific value (see Section 3.3): + + "display": The alert should be displayed as appropriate for the + current device and user context. + + "email": The alert should trigger an email sent out to the user, + notifying them of the alert. This action is typically only + appropriate for server implementations. + +4.6. Multilingual Properties + +4.6.1. localizations + + Type: "String[PatchObject]" (optional) + + A map where each key is a language tag [RFC5646], and the + corresponding value is a set of patches to apply to the calendar + object in order to localize it into that locale. + + See the description of PatchObject (Section 1.4.9) for the structure + of the PatchObject. The patches are applied to the top-level + calendar object. In addition, the "locale" property of the patched + object is set to the language tag. All pointers for patches MUST end + with one of the following suffixes; any patch that does not follow + this MUST be ignored unless otherwise specified in a future RFC: + + * title + + * description + + * name + + A patch MUST NOT have the prefix "recurrenceOverrides"; any + localization of the override MUST be a patch to the "localizations" + property inside the override instead. For example, a patch to + "locations/abcd1234/title" is permissible, but a patch to "uid" or + "recurrenceOverrides/2020-01-05T14:00:00/title" is not. + + Note that this specification does not define how to maintain validity + of localized content. For example, a client application changing a + JSCalendar object's "title" property might also need to update any + localizations of this property. Client implementations SHOULD + provide the means to manage localizations, but how to achieve this is + specific to the application's workflow and requirements. + +4.7. Time Zone Properties + +4.7.1. timeZone + + Type: "TimeZoneId|null" (optional, default: null) + + This identifies the time zone the object is scheduled in or is null + for floating time. This is either a name from the IANA Time Zone + Database [TZDB] or the TimeZoneId of a custom time zone from the + "timeZones" property (Section 4.7.2). If omitted, this MUST be + presumed to be null (i.e., floating time). + +4.7.2. timeZones + + Type: "TimeZoneId[TimeZone]" (optional) + + This maps identifiers of custom time zones to their time zone + definitions. The following restrictions apply for each key in the + map: + + * To avoid conflict with names in the IANA Time Zone Database + [TZDB], it MUST start with the "/" character. + + * It MUST be a valid "paramtext" value, as specified in Section 3.1 + of [RFC5545]. + + * At least one other property in the same JSCalendar object MUST + reference a time zone using this identifier (i.e., orphaned time + zones are not allowed). + + An identifier need only be unique to this JSCalendar object. It MAY + differ from the "tzId" property value of the TimeZone object it maps + to. + + A JSCalendar object may be part of a hierarchy of other JSCalendar + objects (say, an Event is an entry in a Group). In this case, the + set of time zones is the sum of the time zone definitions of this + object and its parent objects. If multiple time zones with the same + identifier exist, then the definition closest to the calendar object + in relation to its parents MUST be used. (In context of Event, a + time zone definition in its "timeZones" property has precedence over + a definition of the same id in the Group). Time zone definitions in + any children of the calendar object MUST be ignored. + + A TimeZone object maps a VTIMEZONE component from iCalendar, and the + semantics are as defined in [RFC5545]. A valid time zone MUST define + at least one transition rule in the "standard" or "daylight" + property. Its properties are: + + @type: "String" (mandatory) + This specifies the type of this object. This MUST be "TimeZone". + + tzId: "String" (mandatory) + This is the TZID property from iCalendar. Note that this implies + that the value MUST be a valid "paramtext" value as specified in + Section 3.1. of [RFC5545]. + + updated: "UTCDateTime" (optional) + This is the LAST-MODIFIED property from iCalendar. + + url: "String" (optional) + This is the TZURL property from iCalendar. + + validUntil: "UTCDateTime" (optional) + This is the TZUNTIL property from iCalendar, specified in + [RFC7808]. + + aliases: "String[Boolean]" (optional) + This maps the TZID-ALIAS-OF properties from iCalendar, specified + in [RFC7808], to a JSON set of aliases. The set is represented as + an object, with the keys being the aliases. The value for each + key in the map MUST be true. + + standard: "TimeZoneRule[]" (optional) + This the STANDARD sub-components from iCalendar. The order MUST + be preserved during conversion. + + daylight: "TimeZoneRule[]" (optional) + This the DAYLIGHT sub-components from iCalendar. The order MUST + be preserved during conversion. + + A TimeZoneRule object maps a STANDARD or DAYLIGHT sub-component from + iCalendar, with the restriction that, at most, one recurrence rule is + allowed per rule. It has the following properties: + + @type: "String" (mandatory) + This specifies the type of this object. This MUST be + "TimeZoneRule". + + start: "LocalDateTime" (mandatory) + This is the DTSTART property from iCalendar. + + offsetFrom: "String" (mandatory) + This is the TZOFFSETFROM property from iCalendar. + + offsetTo: "String" (mandatory) + This is the TZOFFSETTO property from iCalendar. + + recurrenceRules: "RecurrenceRule[]" (optional) + This is the RRULE property mapped, as specified in Section 4.3.3. + During recurrence rule evaluation, the "until" property value MUST + be interpreted as a local time in the UTC time zone. + + recurrenceOverrides: "LocalDateTime[PatchObject]" (optional) + This maps the RDATE properties from iCalendar. The set is + represented as an object, with the keys being the recurrence + dates. The patch object MUST be the empty JSON object ({}). + + names: "String[Boolean]" optional) + This maps the TZNAME properties from iCalendar to a JSON set. The + set is represented as an object, with the keys being the names, + excluding any "tznparam" component from iCalendar. The value for + each key in the map MUST be true. + + comments: "String[]" (optional) + This maps the COMMENT properties from iCalendar. The order MUST + be preserved during conversion. + +5. Type-Specific JSCalendar Properties + +5.1. Event Properties + + In addition to the common JSCalendar object properties (Section 4), + an Event has the following properties: + +5.1.1. start + + Type: "LocalDateTime" (mandatory) + + This is the date/time the event starts in the event's time zone (as + specified in the "timeZone" property, see Section 4.7.1). + +5.1.2. duration + + Type: "Duration" (optional, default: "PT0S") + + This is the zero or positive duration of the event in the event's + start time zone. The end time of an event can be found by adding the + duration to the event's start time. + + An Event MAY involve start and end locations that are in different + time zones (e.g., a transcontinental flight). This can be expressed + using the "relativeTo" and "timeZone" properties of the Event's + Location objects (see Section 4.2.5). + +5.1.3. status + + Type: "String" (optional, default: "confirmed") + + This is the scheduling status (Section 4.4) of an Event. If set, it + MUST be one of the following values, another value registered in the + IANA "JSCalendar Enum Values" registry, or a vendor-specific value + (see Section 3.3): + + "confirmed": indicates the event is definitely happening + + "cancelled": indicates the event has been cancelled + + "tentative": indicates the event may happen + +5.2. Task Properties + + In addition to the common JSCalendar object properties (Section 4), a + Task has the following properties: + +5.2.1. due + + Type: "LocalDateTime" (optional) + + This is the date/time the task is due in the task's time zone. + +5.2.2. start + + Type: "LocalDateTime" (optional) + + This the date/time the task should start in the task's time zone. + +5.2.3. estimatedDuration + + Type: "Duration" (optional) + + This specifies the estimated positive duration of time the task takes + to complete. + +5.2.4. percentComplete + + Type: "UnsignedInt" (optional) + + This represents the percent completion of the task overall. The + property value MUST be a positive integer between 0 and 100. + +5.2.5. progress + + Type: "String" (optional) + + This defines the progress of this task. If omitted, the default + progress (Section 4.4) of a Task is defined as follows (in order of + evaluation): + + "completed": if the "progress" property value of all participants is + "completed" + + "failed": if at least one "progress" property value of a participant + is "failed" + + "in-process": if at least one "progress" property value of a + participant is "in-process" + + "needs-action": if none of the other criteria match + + If set, it MUST be one of the following values, another value + registered in the IANA "JSCalendar Enum Values" registry, or a + vendor-specific value (see Section 3.3): + + "needs-action": indicates the task needs action + + "in-process": indicates the task is in process + + "completed": indicates the task is completed + + "failed": indicates the task failed + + "cancelled": indicates the task was cancelled + +5.2.6. progressUpdated + + Type: "UTCDateTime" (optional) + + This specifies the date/time the "progress" property of either the + task overall (Section 5.2.5) or a specific participant + (Section 4.4.6) was last updated. + + If the task is recurring and has future instances, a client may want + to keep track of the last progress update timestamp of a specific + task recurrence but leave other instances unchanged. One way to + achieve this is by overriding the "progressUpdated" property in the + task "recurrenceOverrides" property. However, this could produce a + long list of timestamps for regularly recurring tasks. An + alternative approach is to split the Task into a current, single + instance of Task with this instance progress update time and a future + recurring instance. See also Section 4.1.3 on splitting. + +5.3. Group Properties + + Group supports the following common JSCalendar properties + (Section 4): + + * @type + + * uid + + * prodId + + * created + + * updated + + * title + + * description + + * descriptionContentType + + * links + + * locale + + * keywords + + * categories + + * color + + * timeZones + + In addition, the following Group-specific properties are supported: + +5.3.1. entries + + Type: "(Task|Event)[]" (mandatory) + + This is a collection of group members. Implementations MUST ignore + entries of unknown type. + +5.3.2. source + + Type: "String" (optional) + + This is the source from which updated versions of this group may be + retrieved. The value MUST be a URI. + +6. Examples + + The following examples illustrate several aspects of the JSCalendar + data model and format. The examples may omit mandatory or additional + properties, which is indicated by a placeholder property with key + "...". While most of the examples use calendar event objects, they + are also illustrative for tasks. + +6.1. Simple Event + + This example illustrates a simple one-time event. It specifies a + one-time event that begins on January 15, 2020 at 1 pm New York local + time and ends after 1 hour. + + { + "@type": "Event", + "uid": "a8df6573-0474-496d-8496-033ad45d7fea", + "updated": "2020-01-02T18:23:04Z", + "title": "Some event", + "start": "2020-01-15T13:00:00", + "timeZone": "America/New_York", + "duration": "PT1H" + } + +6.2. Simple Task + + This example illustrates a simple task for a plain to-do item. + + { + "@type": "Task", + "uid": "2a358cee-6489-4f14-a57f-c104db4dc2f2", + "updated": "2020-01-09T14:32:01Z", + "title": "Do something" + } + +6.3. Simple Group + + This example illustrates a simple calendar object group that contains + an event and a task. + + { + "@type": "Group", + "uid": "bf0ac22b-4989-4caf-9ebd-54301b4ee51a", + "updated": "2020-01-15T18:00:00Z", + "name": "A simple group", + "entries": [{ + "@type": "Event", + "uid": "a8df6573-0474-496d-8496-033ad45d7fea", + "updated": "2020-01-02T18:23:04Z", + "title": "Some event", + "start": "2020-01-15T13:00:00", + "timeZone": "America/New_York", + "duration": "PT1H" + }, + { + "@type": "Task", + "uid": "2a358cee-6489-4f14-a57f-c104db4dc2f2", + "updated": "2020-01-09T14:32:01Z", + "title": "Do something" + }] + } + +6.4. All-Day Event + + This example illustrates an event for an international holiday. It + specifies an all-day event on April 1 that occurs every year since + the year 1900. + + { + "...": "", + "title": "April Fool's Day", + "showWithoutTime": true, + "start": "1900-04-01T00:00:00", + "duration": "P1D", + "recurrenceRules": [{ + "@type": "RecurrenceRule", + "frequency": "yearly" + }] + } + +6.5. Task with a Due Date + + This example illustrates a task with a due date. It is a reminder to + buy groceries before 6 pm Vienna local time on January 19, 2020. The + calendar user expects to need 1 hour for shopping. + + { + "...": "", + "title": "Buy groceries", + "due": "2020-01-19T18:00:00", + "timeZone": "Europe/Vienna", + "estimatedDuration": "PT1H" + } + +6.6. Event with End Time Zone + + This example illustrates the use of end time zones by use of an + international flight. The flight starts on April 1, 2020 at 9 am in + Berlin local time. The duration of the flight is scheduled at 10 + hours 30 minutes. The time at the flight's destination is in the + same time zone as Tokyo. Calendar clients could use the end time + zone to display the arrival time in Tokyo local time and highlight + the time zone difference of the flight. The location names can serve + as input for navigation systems. + + { + "...": "", + "title": "Flight XY51 to Tokyo", + "start": "2020-04-01T09:00:00", + "timeZone": "Europe/Berlin", + "duration": "PT10H30M", + "locations": { + "1": { + "@type": "Location", + "rel": "start", + "name": "Frankfurt Airport (FRA)" + }, + "2": { + "@type": "Location", + "rel": "end", + "name": "Narita International Airport (NRT)", + "timeZone": "Asia/Tokyo" + } + } + } + +6.7. Floating-Time Event (with Recurrence) + + This example illustrates the use of floating time. Since January 1, + 2020, a calendar user blocks 30 minutes every day to practice yoga at + 7 am local time in whatever time zone the user is located on that + date. + + { + "...": "", + "title": "Yoga", + "start": "2020-01-01T07:00:00", + "duration": "PT30M", + "recurrenceRules": [{ + "@type": "RecurrenceRule", + "frequency": "daily" + }] + } + +6.8. Event with Multiple Locations and Localization + + This example illustrates an event that happens at both a physical and + a virtual location. Fans can see a live concert on premises or + online. The event title and descriptions are localized. + + { + "...": "", + "title": "Live from Music Bowl: The Band", + "description": "Go see the biggest music event ever!", + "locale": "en", + "start": "2020-07-04T17:00:00", + "timeZone": "America/New_York", + "duration": "PT3H", + "locations": { + "c0503d30-8c50-4372-87b5-7657e8e0fedd": { + "@type": "Location", + "name": "The Music Bowl", + "description": "Music Bowl, Central Park, New York", + "coordinates": "geo:40.7829,-73.9654" + } + }, + "virtualLocations": { + "vloc1": { + "@type": "VirtualLocation", + "name": "Free live Stream from Music Bowl", + "uri": "https://stream.example.com/the_band_2020" + } + }, + "localizations": { + "de": { + "title": "Live von der Music Bowl: The Band!", + "description": "Schau dir das größte Musikereignis an!", + "virtualLocations/vloc1/name": + "Gratis Live-Stream aus der Music Bowl" + } + } + } + +6.9. Recurring Event with Overrides + + This example illustrates the use of recurrence overrides. A math + course at a university is held for the first time on January 8, 2020 + at 9 am London time and occurs every week until June 24, 2020. Each + lecture lasts for one hour and 30 minutes and is located at the + Mathematics department. This event has exceptional occurrences: at + the last occurrence of the course is an exam, which lasts for 2 hours + and starts at 10 am. Also, the location of the exam differs from the + usual location. On April 1, no course is held. On January 7 at 2 + pm, there is an optional introduction course, which occurs before the + first regular lecture. + + { + "...": "", + "title": "Calculus I", + "start": "2020-01-08T09:00:00", + "timeZone": "Europe/London", + "duration": "PT1H30M", + "locations": { + "mlab": { + "@type": "Location", + "title": "Math lab room 1", + "description": "Math Lab I, Department of Mathematics" + } + }, + "recurrenceRules": [{ + "@type": "RecurrenceRule", + "frequency": "weekly", + "until": "2020-06-24T09:00:00" + }], + "recurrenceOverrides": { + "2020-01-07T14:00:00": { + "title": "Introduction to Calculus I (optional)" + }, + "2020-04-01T09:00:00": { + "excluded": true + }, + "2020-06-25T09:00:00": { + "title": "Calculus I Exam", + "start": "2020-06-25T10:00:00", + "duration": "PT2H", + "locations": { + "auditorium": { + "@type": "Location", + "title": "Big Auditorium", + "description": "Big Auditorium, Other Road" + } + } + } + } + } + +6.10. Recurring Event with Participants + + This example illustrates scheduled events. A team meeting occurs + every week since January 8, 2020 at 9 am Johannesburg time. The + event owner also chairs the event. Participants meet in a virtual + meeting room. An attendee has accepted the invitation, but, on March + 4, 2020, he is unavailable and declined participation for this + occurrence. + + { + "...": "", + "title": "FooBar team meeting", + "start": "2020-01-08T09:00:00", + "timeZone": "Africa/Johannesburg", + "duration": "PT1H", + "virtualLocations": { + "0": { + "@type": "VirtualLocation", + "name": "ChatMe meeting room", + "uri": "https://chatme.example.com?id=1234567&pw=a8a24627b63d" + } + }, + "recurrenceRules": [{ + "@type": "RecurrenceRule", + "frequency": "weekly" + }], + "replyTo": { + "imip": "mailto:f245f875-7f63-4a5e-a2c8@schedule.example.com" + }, + "participants": { + "dG9tQGZvb2Jhci5xlLmNvbQ": { + "@type": "Participant", + "name": "Tom Tool", + "email": "tom@foobar.example.com", + "sendTo": { + "imip": "mailto:tom@calendar.example.com" + }, + "participationStatus": "accepted", + "roles": { + "attendee": true + } + }, + "em9lQGZvb2GFtcGxlLmNvbQ": { + "@type": "Participant", + "name": "Zoe Zelda", + "email": "zoe@foobar.example.com", + "sendTo": { + "imip": "mailto:zoe@foobar.example.com" + }, + "participationStatus": "accepted", + "roles": { + "owner": true, + "attendee": true, + "chair": true + } + } + }, + "recurrenceOverrides": { + "2020-03-04T09:00:00": { + "participants/dG9tQGZvb2Jhci5xlLmNvbQ/participationStatus": + "declined" + } + } + } + +7. Security Considerations + + Calendaring and scheduling information is very privacy sensitive. It + can reveal the social network of a user, location information of this + user and those in their social network, identity and credentials + information, and patterns of behavior of the user in both the + physical and cyber realm. Additionally, calendar events and tasks + can influence the physical location of a user or their cyber behavior + within a known time window. Its transmission and storage must be + done carefully to protect it from possible threats, such as + eavesdropping, replay, message insertion, deletion, modification, and + on-path attacks. + + The data being stored and transmitted may be used in systems with + real-world consequences. For example, a home automation system may + turn an alarm on and off or a coworking space may charge money to the + organizer of an event that books one of their meeting rooms. Such + systems must be careful to authenticate all data they receive to + prevent them from being subverted and ensure the change comes from an + authorized entity. + + This document only defines the data format; such considerations are + primarily the concern of the API or method of storage and + transmission of such files. + +7.1. Expanding Recurrences + + A recurrence rule may produce infinite occurrences of an event. + Implementations MUST handle expansions carefully to prevent + accidental or deliberate resource exhaustion. + + Conversely, a recurrence rule may be specified that does not expand + to anything. It is not always possible to tell this through static + analysis of the rule, so implementations MUST be careful to avoid + getting stuck in infinite loops or otherwise exhausting resources + while searching for the next occurrence. + + Events recur in the event's time zone. If the user is in a different + time zone, daylight saving transitions may cause an event that + normally occurs at, for example, 9 am to suddenly shift an hour + earlier. This may be used in an attempt to cause a participant to + miss an important meeting. User agents must be careful to translate + date-times correctly between time zones and may wish to call out + unexpected changes in the time of a recurring event. + +7.2. JSON Parsing + + The security considerations of [RFC8259] apply to the use of JSON as + the data interchange format. + + As for any serialization format, parsers need to thoroughly check the + syntax of the supplied data. JSON uses opening and closing tags for + several types and structures, and it is possible that the end of the + supplied data will be reached when scanning for a matching closing + tag; this is an error condition, and implementations need to stop + scanning at the end of the supplied data. + + JSON also uses a string encoding with some escape sequences to encode + special characters within a string. Care is needed when processing + these escape sequences to ensure that they are fully formed before + the special processing is triggered, with special care taken when the + escape sequences appear adjacent to other (non-escaped) special + characters or adjacent to the end of data (as in the previous + paragraph). + + If parsing JSON into a non-textual structured data format, + implementations may need to allocate storage to hold JSON string + elements. Since JSON does not use explicit string lengths, the risk + of denial of service due to resource exhaustion is small, but + implementations may still wish to place limits on the size of + allocations they are willing to make in any given context, to avoid + untrusted data causing excessive memory allocation. + +7.3. URI Values + + Several JSCalendar properties contain URIs as values, and processing + these properties requires extra care. Section 7 of [RFC3986] + discusses security risks related to URIs. + + Fetching remote resources carries inherent risks. Connections must + only be allowed on well-known ports, using allowed protocols + (generally, just HTTP/HTTPS on their default ports). The URL must be + resolved externally and not allowed to access internal resources. + Connecting to an external source reveals IP (and therefore often + location) information. + + A maliciously constructed JSCalendar object may contain a very large + number of URIs. In the case of published calendars with a large + number of subscribers, such objects could be widely distributed. + Implementations should be careful to limit the automatic fetching of + linked resources to reduce the risk of this being an amplification + vector for a denial-of-service attack. + +7.4. Spam + + Calendar systems may receive JSCalendar files from untrusted sources, + in particular, as attachments to emails. This can be a vector for an + attacker to inject spam into a user's calendar. This may confuse, + annoy, and mislead users or overwhelm their calendar with bogus + events, preventing them from seeing legitimate ones. + + Heuristic, statistical, or machine-learning-based filters can be + effective in filtering out spam. Authentication mechanisms, such as + DomainKeys Identified Mail (DKIM) [RFC6376], can help establish the + source of messages and associate the data with existing relationships + (such as an address book contact). However, misclassifications are + always possible and providing a mechanism for users to quickly + correct this is advised. + + Confusable unicode characters may be used to trick a user into + trusting a JSCalendar file that appears to come from a known contact + but is actually from a similar-looking source controlled by an + attacker. + +7.5. Duplication + + It is important for calendar systems to maintain the UID of an event + when updating it to avoid an unexpected duplication of events. + Consumers of the data may not remove the previous version of the + event if it has a different UID. This can lead to a confusing + situation for the user, with many variations of the event and no + indication of which one is correct. Care must be taken by consumers + of the data to remove old events where possible to avoid an + accidental denial-of-service attack due to the volume of data. + +7.6. Time Zones + + Events recur in a particular time zone. When this differs from the + user's current time zone, it may unexpectedly cause an occurrence to + shift in time for that user due to a daylight savings change in the + event's time zone. A maliciously crafted event could attempt to + confuse users with such an event to ensure a meeting is missed. + +8. IANA Considerations + +8.1. Media Type Registration + + This document defines a media type for use with JSCalendar data + formatted in JSON. + + Type name: application + + Subtype name: jscalendar+json + + Required parameters: type + + The "type" parameter conveys the type of the JSCalendar data in + the body part. The allowed parameter values correspond to the + "@type" property of the JSON-formatted JSCalendar object in the + body: + + "event": The "@type" property value MUST be "Event". + + "task": The "@type" property value MUST be "Task". + + "group": The "@type" property value MUST be "Group". + + No other parameter values are allowed. The parameter MUST NOT + occur more than once. + + Optional parameters: none + + Encoding considerations: This is the same as the encoding + considerations of application/json, as specified in Section 11 of + [RFC8259]. + + Security considerations: See Section 7 of this document. + + Interoperability considerations: While JSCalendar is designed to + avoid ambiguities as much as possible, when converting objects + from other calendar formats to/from JSCalendar, it is possible + that differing representations for the same logical data or + ambiguities in interpretation might arise. The semantic + equivalence of two JSCalendar objects may be determined + differently by different applications, for example, where URL + values differ in case between the two objects. + + Published specification: RFC 8984 + + Applications that use this media type: Applications that currently + make use of the text/calendar and application/calendar+json media + types can use this as an alternative. Similarly, applications + that use the application/json media type to transfer calendaring + data can use this to further specify the content. + + Fragment identifier considerations: A JSON Pointer fragment + identifier may be used, as defined in [RFC6901], Section 6. + + Additional information: Magic number(s): N/A + + File extensions(s): N/A + + Macintosh file type code(s): N/A + + Person & email address to contact for further information: + calsify@ietf.org + + Intended usage: COMMON + + Restrictions on usage: N/A + + Author: See the "Author's Address" section of this document. + + Change controller: IETF + +8.2. Creation of the "JSCalendar Properties" Registry + + IANA has created the "JSCalendar Properties" registry to allow + interoperability of extensions to JSCalendar objects. + + This registry follows the Expert Review process ([RFC8126], + Section 4.5). If the "Intended Usage" field is "common", sufficient + documentation is required to enable interoperability. Preliminary + community review for this registry is optional but strongly + encouraged. + + A registration can have an intended usage of "common", "reserved", or + "obsolete". IANA will list registrations with a common usage + designation prominently and separately from those with other intended + usage values. + + A "reserved" registration reserves a property name without assigning + semantics to avoid name collisions with future extensions or protocol + use. + + An "obsolete" registration denotes a property that is no longer + expected to be added by up-to-date systems. A new property has + probably been defined covering the obsolete property's semantics. + + The JSCalendar property registration procedure is not a formal + standards process but rather an administrative procedure intended to + allow community comment and check it is coherent without excessive + time delay. It is designed to encourage vendors to document and + register new properties they add for use cases not covered by the + original specification, leading to increased interoperability. + +8.2.1. Preliminary Community Review + + Notice of a potential new registration SHOULD be sent to the Calext + mailing list for review. This mailing list is + appropriate to solicit community feedback on a proposed new property. + + Property registrations must be marked with their intended use: + "common", "reserved", or "obsolete". + + The intent of the public posting to this list is to solicit comments + and feedback on the choice of the property name, the unambiguity of + the specification document, and a review of any interoperability or + security considerations. The submitter may submit a revised + registration proposal or abandon the registration completely at any + time. + +8.2.2. Submit Request to IANA + + Registration requests can be sent to . + +8.2.3. Designated Expert Review + + The primary concern of the designated expert (DE) is preventing name + collisions and encouraging the submitter to document security and + privacy considerations. For a common-use registration, the DE is + expected to confirm that suitable documentation, as described in + Section 4.6 of [RFC8126], is available to ensure interoperability. + That documentation will usually be in an RFC, but simple definitions + are likely to use a web/wiki page, and if a sentence or two is deemed + sufficient, it could be described in the registry itself. The DE + should also verify that the property name does not conflict with work + that is active or already published within the IETF. A published + specification is not required for reserved or obsolete registrations. + + The DE will either approve or deny the registration request and + publish a notice of the decision to the Calext WG mailing list or its + successor, as well as inform IANA. A denial notice must be justified + by an explanation, and, in the cases where it is possible, concrete + suggestions on how the request can be modified so as to become + acceptable should be provided. + +8.2.4. Change Procedures + + Once a JSCalendar property has been published by IANA, the change + controller may request a change to its definition. The same + procedure that would be appropriate for the original registration + request is used to process a change request. + + JSCalendar property registrations may not be deleted; properties that + are no longer believed appropriate for use can be declared obsolete + by a change to their "intended usage" field; such properties will be + clearly marked in the IANA registry. + + Significant changes to a JSCalendar property's definition should be + requested only when there are serious omissions or errors in the + published specification, as such changes may cause interoperability + issues. When review is required, a change request may be denied if + it renders entities that were valid under the previous definition + invalid under the new definition. + + The owner of a JSCalendar property may pass responsibility to another + person or agency by informing IANA; this can be done without + discussion or review. + +8.2.5. "JSCalendar Properties" Registry Template + + Property Name: This is the name of the property. The property name + MUST NOT already be registered for any of the object types listed + in the "Property Context" field of this registration. Other + object types MAY already have registered a different property with + the same name; however, the same name SHOULD only be used when the + semantics are analogous. + + Property Type: This is the type of this property, using type + signatures, as specified in Section 1.3. The property type MUST + be registered in the "JSCalendar Types" registry. + + Property Context: This is a comma-separated list of JSCalendar + object types this property is allowed on. + + Reference or Description: This is a brief description or RFC number + and section reference where the property is specified (omitted for + "reserved" property names). + + Intended Usage: This may be "common", "reserved", or "obsolete". + + Change Controller: This is who may request a change to this entry's + definition ("IETF" for RFCs from the IETF stream). + +8.2.6. Initial Contents for the "JSCalendar Properties" Registry + + The following table lists the initial entries of the "JSCalendar + Properties" registry. All properties are for common use. All RFC + section references are for this document. The change controller for + all these properties is "IETF". + + +====================+=================+================+===========+ + |Property Name |Property Type |Property Context|Reference | + | | | |or | + | | | |Description| + +====================+=================+================+===========+ + |@type |String |Event, Task, |Section | + | | |Group, |4.1.1, | + | | |AbsoluteTrigger,|Section | + | | |Alert, Link, |4.5.2, | + | | |Location, NDay, |Section | + | | |OffsetTrigger, |1.4.11, | + | | |Participant, |Section | + | | |RecurrenceRule, |4.2.5, | + | | |Relation, |Section | + | | |TimeZone, |4.4.6, | + | | |TimeZoneRule, |Section | + | | |VirtualLocation |4.3.3, | + | | | |Section | + | | | |1.4.10, | + | | | |Section | + | | | |4.7.2, | + | | | |Section | + | | | |4.2.6 | + +--------------------+-----------------+----------------+-----------+ + |acknowledged |UTCDateTime |Alert |Section | + | | | |4.5.2 | + +--------------------+-----------------+----------------+-----------+ + |action |String |Alert |Section | + | | | |4.5.2 | + +--------------------+-----------------+----------------+-----------+ + |alerts |Id[Alert] |Event, Task |Section | + | | | |4.5.2 | + +--------------------+-----------------+----------------+-----------+ + |aliases |String[Boolean] |TimeZone |Section | + | | | |4.7.2 | + +--------------------+-----------------+----------------+-----------+ + |byDay |NDay[] |RecurrenceRule |Section | + | | | |4.3.3 | + +--------------------+-----------------+----------------+-----------+ + |byHour |UnsignedInt[] |RecurrenceRule |Section | + | | | |4.3.3 | + +--------------------+-----------------+----------------+-----------+ + |byMinute |UnsignedInt[] |RecurrenceRule |Section | + | | | |4.3.3 | + +--------------------+-----------------+----------------+-----------+ + |byMonth |String[] |RecurrenceRule |Section | + | | | |4.3.3 | + +--------------------+-----------------+----------------+-----------+ + |byMonthDay |Int[] |RecurrenceRule |Section | + | | | |4.3.3 | + +--------------------+-----------------+----------------+-----------+ + |bySecond |UnsignedInt[] |RecurrenceRule |Section | + | | | |4.3.3 | + +--------------------+-----------------+----------------+-----------+ + |bySetPosition |Int[] |RecurrenceRule |Section | + | | | |4.3.3 | + +--------------------+-----------------+----------------+-----------+ + |byWeekNo |Int[] |RecurrenceRule |Section | + | | | |4.3.3 | + +--------------------+-----------------+----------------+-----------+ + |byYearDay |Int[] |RecurrenceRule |Section | + | | | |4.3.3 | + +--------------------+-----------------+----------------+-----------+ + |categories |String[Boolean] |Event, Task, |Section | + | | |Group |4.2.10 | + +--------------------+-----------------+----------------+-----------+ + |cid |String |Link |Section | + | | | |1.4.11 | + +--------------------+-----------------+----------------+-----------+ + |color |String |Event, Task, |Section | + | | |Group |4.2.11 | + +--------------------+-----------------+----------------+-----------+ + |comments |String[] |TimeZoneRule |Section | + | | | |4.7.2 | + +--------------------+-----------------+----------------+-----------+ + |contentType |String |Link |Section | + | | | |1.4.11 | + +--------------------+-----------------+----------------+-----------+ + |coordinates |String |Location |Section | + | | | |4.2.5 | + +--------------------+-----------------+----------------+-----------+ + |count |UnsignedInt |RecurrenceRule |Section | + | | | |4.3.3 | + +--------------------+-----------------+----------------+-----------+ + |created |UTCDateTime |Event, Task, |Section | + | | |Group |4.1.5 | + +--------------------+-----------------+----------------+-----------+ + |day |String |NDay |Section | + | | | |4.3.3 | + +--------------------+-----------------+----------------+-----------+ + |daylight |TimeZoneRule[] |TimeZone |Section | + | | | |4.7.2 | + +--------------------+-----------------+----------------+-----------+ + |delegatedFrom |Id[Boolean] |Participant |Section | + | | | |4.4.6 | + +--------------------+-----------------+----------------+-----------+ + |delegatedTo |Id[Boolean] |Participant |Section | + | | | |4.4.6 | + +--------------------+-----------------+----------------+-----------+ + |description |String |Event, Task, |Section | + | | |Location, |4.2.2, | + | | |Participant, |Section | + | | |VirtualLocation |4.2.5, | + | | | |Section | + | | | |4.4.6, | + | | | |Section | + | | | |4.2.6 | + +--------------------+-----------------+----------------+-----------+ + |description |String |Event, Task |Section | + |ContentType | | |4.2.3 | + +--------------------+-----------------+----------------+-----------+ + |display |String |Link |Section | + | | | |1.4.11 | + +--------------------+-----------------+----------------+-----------+ + |due |LocalDateTime |Task |Section | + | | | |5.2.1 | + +--------------------+-----------------+----------------+-----------+ + |duration |Duration |Event |Section | + | | | |5.1.2 | + +--------------------+-----------------+----------------+-----------+ + |email |String |Participant |Section | + | | | |4.4.6 | + +--------------------+-----------------+----------------+-----------+ + |entries |(Task|Event)[] |Group |Section | + | | | |5.3.1 | + +--------------------+-----------------+----------------+-----------+ + |estimatedDuration |Duration |Task |Section | + | | | |5.2.3 | + +--------------------+-----------------+----------------+-----------+ + |excluded |Boolean |Event, Task |Section | + | | | |4.3.6 | + +--------------------+-----------------+----------------+-----------+ + |excluded |RecurrenceRule[] |Event, Task |Section | + |RecurrenceRules | | |4.3.4 | + +--------------------+-----------------+----------------+-----------+ + |expectReply |Boolean |Participant |Section | + | | | |4.4.6 | + +--------------------+-----------------+----------------+-----------+ + |features |String[Boolean] |VirtualLocation |Section | + | | | |4.2.6 | + +--------------------+-----------------+----------------+-----------+ + |firstDayOfWeek |String |RecurrenceRule |Section | + | | | |4.3.3 | + +--------------------+-----------------+----------------+-----------+ + |freeBusyStatus |String |Event, Task |Section | + | | | |4.4.2 | + +--------------------+-----------------+----------------+-----------+ + |frequency |String |RecurrenceRule |Section | + | | | |4.3.3 | + +--------------------+-----------------+----------------+-----------+ + |href |String |Link |Section | + | | | |1.4.11 | + +--------------------+-----------------+----------------+-----------+ + |interval |UnsignedInt |RecurrenceRule |Section | + | | | |4.3.3 | + +--------------------+-----------------+----------------+-----------+ + |invitedBy |Id |Participant |Section | + | | | |4.4.6 | + +--------------------+-----------------+----------------+-----------+ + |keywords |String[Boolean] |Event, Task, |Section | + | | |Group |4.2.9 | + +--------------------+-----------------+----------------+-----------+ + |kind |String |Participant |Section | + | | | |4.4.6 | + +--------------------+-----------------+----------------+-----------+ + |language |String |Participant |Section | + | | | |4.4.6 | + +--------------------+-----------------+----------------+-----------+ + |links |Id[Link] |Group, Event, |Section | + | | |Task, Location, |4.2.7, | + | | |Participant |Section | + | | | |4.2.5, | + | | | |Section | + | | | |4.4.6 | + +--------------------+-----------------+----------------+-----------+ + |locale |String |Group, Event, |Section | + | | |Task |4.2.8 | + +--------------------+-----------------+----------------+-----------+ + |localizations |String |Event, Task |Section | + | |[PatchObject] | |4.6.1 | + +--------------------+-----------------+----------------+-----------+ + |locationId |Id |Participant |Section | + | | | |4.4.6 | + +--------------------+-----------------+----------------+-----------+ + |locations |Id[Location] |Event, Task |Section | + | | | |4.2.5 | + +--------------------+-----------------+----------------+-----------+ + |locationTypes |String[Boolean] |Location |Section | + | | | |4.2.5 | + +--------------------+-----------------+----------------+-----------+ + |memberOf |Id[Boolean] |Participant |Section | + | | | |4.4.6 | + +--------------------+-----------------+----------------+-----------+ + |method |String |Event, Task |Section | + | | | |4.1.8 | + +--------------------+-----------------+----------------+-----------+ + |name |String |Location, |Section | + | | |VirtualLocation,|4.2.5, | + | | |Participant |Section | + | | | |4.2.6, | + | | | |Section | + | | | |4.4.6 | + +--------------------+-----------------+----------------+-----------+ + |names |String[Boolean] |TimeZoneRule |Section | + | | | |4.7.2 | + +--------------------+-----------------+----------------+-----------+ + |nthOfPeriod |Int |NDay |Section | + | | | |4.3.3 | + +--------------------+-----------------+----------------+-----------+ + |offset |SignedDuration |OffsetTrigger |Section | + | | | |4.5.2 | + +--------------------+-----------------+----------------+-----------+ + |offsetFrom |UTCDateTime |TimeZoneRule |Section | + | | | |4.7.2 | + +--------------------+-----------------+----------------+-----------+ + |offsetTo |UTCDateTime |TimeZoneRule |Section | + | | | |4.7.2 | + +--------------------+-----------------+----------------+-----------+ + |participants |Id[Participant] |Event, Task |Section | + | | | |4.4.6 | + +--------------------+-----------------+----------------+-----------+ + |participationComment|String |Participant |Section | + | | | |4.4.6 | + +--------------------+-----------------+----------------+-----------+ + |participationStatus |String |Participant |Section | + | | | |4.4.6 | + +--------------------+-----------------+----------------+-----------+ + |percentComplete |UnsignedInt |Task, |Section | + | | |Participant |5.2.4 | + +--------------------+-----------------+----------------+-----------+ + |priority |Int |Event, Task |Section | + | | | |4.4.1 | + +--------------------+-----------------+----------------+-----------+ + |privacy |String |Event, Task |Section | + | | | |4.4.3 | + +--------------------+-----------------+----------------+-----------+ + |prodId |String |Event, Task, |Section | + | | |Group |4.1.4 | + +--------------------+-----------------+----------------+-----------+ + |progress |String |Task, |Section | + | | |Participant |5.2.5 | + +--------------------+-----------------+----------------+-----------+ + |progressUpdated |UTCDateTime |Task, |Section | + | | |Participant |5.2.6 | + +--------------------+-----------------+----------------+-----------+ + |recurrenceId |LocalDateTime |Event, Task |Section | + | | | |4.3.1 | + +--------------------+-----------------+----------------+-----------+ + |recurrenceIdTimeZone|TimeZoneId|null |Event, Task |Section | + | | | |4.3.2 | + +--------------------+-----------------+----------------+-----------+ + |recurrenceOverrides |LocalDateTime |Event, Task, |Section | + | |[PatchObject] |TimeZoneRule |4.3.5, | + | | | |Section | + | | | |4.7.2 | + +--------------------+-----------------+----------------+-----------+ + |recurrenceRules |RecurrenceRule[] |Event, Task, |Section | + | | |TimeZoneRule |4.3.3, | + | | | |Section | + | | | |4.7.2 | + +--------------------+-----------------+----------------+-----------+ + |rel |String |Link |Section | + | | | |1.4.11 | + +--------------------+-----------------+----------------+-----------+ + |relatedTo |String[Relation] |Event, Task, |Section | + | | |Alert |4.1.3, | + | | | |Section | + | | | |4.5.2 | + +--------------------+-----------------+----------------+-----------+ + |relation |String[Boolean] |Relation |Section | + | | | |1.4.10 | + +--------------------+-----------------+----------------+-----------+ + |relativeTo |String |OffsetTrigger, |Section | + | | |Location |4.5.2, | + | | | |Section | + | | | |4.2.5 | + +--------------------+-----------------+----------------+-----------+ + |replyTo |String[String] |Event, Task |Section | + | | | |4.4.4 | + +--------------------+-----------------+----------------+-----------+ + |requestStatus |String |Event, Task |Section | + | | | |4.4.7 | + +--------------------+-----------------+----------------+-----------+ + |roles |String[Boolean] |Participant |Section | + | | | |4.4.6 | + +--------------------+-----------------+----------------+-----------+ + |rscale |String |RecurrenceRule |Section | + | | | |4.3.3 | + +--------------------+-----------------+----------------+-----------+ + |sentBy |String |Event, Task, |Section | + | | |Participant |4.4.5, | + | | | |Section | + | | | |4.4.6 | + +--------------------+-----------------+----------------+-----------+ + |standard |TimeZoneRule[] |TimeZone |Section | + | | | |4.7.2 | + +--------------------+-----------------+----------------+-----------+ + |start |LocalDateTime |TimeZoneRule |Section | + | | | |4.7.2 | + +--------------------+-----------------+----------------+-----------+ + |scheduleAgent |String |Participant |Section | + | | | |4.4.6 | + +--------------------+-----------------+----------------+-----------+ + |scheduleForceSend |Boolean |Participant |Section | + | | | |4.4.6 | + +--------------------+-----------------+----------------+-----------+ + |scheduleSequence |UnsignedInt |Participant |Section | + | | | |4.4.6 | + +--------------------+-----------------+----------------+-----------+ + |scheduleStatus |String[] |Participant |Section | + | | | |4.4.6 | + +--------------------+-----------------+----------------+-----------+ + |scheduleUpdated |UTCDateTime |Participant |Section | + | | | |4.4.6 | + +--------------------+-----------------+----------------+-----------+ + |sendTo |String[String] |Participant |Section | + | | | |4.4.6 | + +--------------------+-----------------+----------------+-----------+ + |sequence |UnsignedInt |Event, Task |Section | + | | | |4.1.7 | + +--------------------+-----------------+----------------+-----------+ + |showWithoutTime |Boolean |Event, Task |Section | + | | | |4.2.4 | + +--------------------+-----------------+----------------+-----------+ + |size |UnsignedInt |Link |Section | + | | | |1.4.11 | + +--------------------+-----------------+----------------+-----------+ + |skip |String |RecurrenceRule |Section | + | | | |4.3.3 | + +--------------------+-----------------+----------------+-----------+ + |source |String |Group |Section | + | | | |5.3.2 | + +--------------------+-----------------+----------------+-----------+ + |start |LocalDateTime |Event, Task |Section | + | | | |5.1.1, | + | | | |Section | + | | | |5.2.2 | + +--------------------+-----------------+----------------+-----------+ + |status |String |Event |Section | + | | | |5.1.3 | + +--------------------+-----------------+----------------+-----------+ + |timeZone |TimeZoneId|null |Event, Task, |Section | + | | |Location |4.7.1, | + | | | |Section | + | | | |4.2.5 | + +--------------------+-----------------+----------------+-----------+ + |timeZones |TimeZoneId |Event, Task |Section | + | |[TimeZone] | |4.7.2 | + +--------------------+-----------------+----------------+-----------+ + |title |String |Event, Task, |Section | + | | |Group, Link |4.2.1 | + +--------------------+-----------------+----------------+-----------+ + |trigger |OffsetTrigger| |Alert |Section | + | |AbsoluteTrigger| | |4.5.2 | + | |UnknownTrigger | | | + +--------------------+-----------------+----------------+-----------+ + |tzId |String |TimeZone |Section | + | | | |4.7.2 | + +--------------------+-----------------+----------------+-----------+ + |uid |String |Event, Task, |Section | + | | |Group |4.1.2 | + +--------------------+-----------------+----------------+-----------+ + |until |LocalDateTime |RecurrenceRule |Section | + | | | |4.3.3 | + +--------------------+-----------------+----------------+-----------+ + |updated |UTCDateTime |Event, Task, |Section | + | | |Group |4.1.6 | + +--------------------+-----------------+----------------+-----------+ + |uri |String |VirtualLocation |Section | + | | | |4.2.6 | + +--------------------+-----------------+----------------+-----------+ + |url |String |TimeZone |Section | + | | | |4.7.2 | + +--------------------+-----------------+----------------+-----------+ + |useDefaultAlerts |Boolean |Event, Task |Section | + | | | |4.5.1 | + +--------------------+-----------------+----------------+-----------+ + |validUntil |UTCDateTime |TimeZone |Section | + | | | |4.7.2 | + +--------------------+-----------------+----------------+-----------+ + |virtualLocations |Id |Event, Task |Section | + | |[VirtualLocation]| |4.2.6 | + +--------------------+-----------------+----------------+-----------+ + |when |UTCDateTime |AbsoluteTrigger |Section | + | | | |4.5.2 | + +--------------------+-----------------+----------------+-----------+ + + Table 1: Initial Contents of the "JSCalendar Properties" Registry + +8.3. Creation of the "JSCalendar Types" Registry + + IANA has created the "JSCalendar Types" registry to avoid name + collisions and provide a complete reference for all data types used + for JSCalendar property values. The registration process is the same + as for the "JSCalendar Properties" registry, as defined in + Section 8.2. + +8.3.1. "JSCalendar Types" Registry Template + + Type Name: the name of the type + + Reference or Description: a brief description or RFC number and + section reference where the Type is specified (may be omitted for + "reserved" type names) + + Intended Use: common, reserved, or obsolete + + Change Controller: who may request a change to this entry's + definition ("IETF" for RFCs from the IETF stream) + +8.3.2. Initial Contents for the "JSCalendar Types" Registry + + The following table lists the initial entries of the JSCalendar Types + registry. All properties are for common use. All RFC section + references are for this document. The change controller for all + these properties is "IETF". + + +=================+==========================+ + | Type Name | Reference or Description | + +=================+==========================+ + | Alert | Section 4.5.2 | + +-----------------+--------------------------+ + | Boolean | Section 1.3 | + +-----------------+--------------------------+ + | Duration | Section 1.4.6 | + +-----------------+--------------------------+ + | Id | Section 1.4.1 | + +-----------------+--------------------------+ + | Int | Section 1.4.2 | + +-----------------+--------------------------+ + | LocalDateTime | Section 1.4.5 | + +-----------------+--------------------------+ + | Link | Section 1.4.11 | + +-----------------+--------------------------+ + | Location | Section 4.2.5 | + +-----------------+--------------------------+ + | NDay | Section 4.3.3 | + +-----------------+--------------------------+ + | Number | Section 1.3 | + +-----------------+--------------------------+ + | Participant | Section 4.4.6 | + +-----------------+--------------------------+ + | PatchObject | Section 1.4.9 | + +-----------------+--------------------------+ + | RecurrenceRule | Section 4.3.3 | + +-----------------+--------------------------+ + | Relation | Section 1.4.10 | + +-----------------+--------------------------+ + | SignedDuration | Section 1.4.7 | + +-----------------+--------------------------+ + | String | Section 1.3 | + +-----------------+--------------------------+ + | TimeZone | Section 4.7.2 | + +-----------------+--------------------------+ + | TimeZoneId | Section 1.4.8 | + +-----------------+--------------------------+ + | TimeZoneRule | Section 4.7.2 | + +-----------------+--------------------------+ + | UnsignedInt | Section 1.4.3 | + +-----------------+--------------------------+ + | UTCDateTime | Section 1.4.4 | + +-----------------+--------------------------+ + | VirtualLocation | Section 4.2.6 | + +-----------------+--------------------------+ + + Table 2: Initial Contents of the + "JSCalendar Types" Registry + +8.4. Creation of the "JSCalendar Enum Values" Registry + + IANA has created the "JSCalendar Enum Values" registry to allow + interoperable extension of semantics for properties with enumerable + values. Each such property will have a subregistry of allowed + values. The registration process for a new enum value or adding a + new enumerable property is the same as for the "JSCalendar + Properties" registry, as defined in Section 8.2. + +8.4.1. "JSCalendar Enum Values" Registry Property Template + + This template is for adding a subregistry for a new enumerable + property to the "JSCalendar Enum" registry. + + Property Name: These are the name(s) of the property or properties + where these values may be used. This MUST be registered in the + "JSCalendar Properties" registry. + + Context: This is the list of allowed object types where the property + or properties may appear, as registered in the "JSCalendar + Properties" registry. This disambiguates where there may be two + distinct properties with the same name in different contexts. + + Change Controller: ("IETF" for properties defined in RFCs from the + IETF stream). + + Initial Contents: This is the initial list of defined values for + this enum, using the template defined in Section 8.4.2. A + subregistry will be created with these values for this property + name/context tuple. + +8.4.2. "JSCalendar Enum Values" Registry Value Template + + This template is for adding a new enum value to a subregistry in the + JSCalendar Enum registry. + + Enum Value: the verbatim value of the enum + + Reference or Description: a brief description or RFC number and + section reference for the semantics of this value + +8.4.3. Initial Contents for the "JSCalendar Enum Values" Registry + + For each subregistry created in this section, all RFC section + references are for this document. + + Property Name: action + Context: Alert + Change Controller: IETF + Initial Contents: + +============+==========================+ + | Enum Value | Reference or Description | + +============+==========================+ + | display | Section 4.5.2 | + +------------+--------------------------+ + | email | Section 4.5.2 | + +------------+--------------------------+ + + Table 3: JSCalendar Enum Values for + action (Context: Alert) + + Property Name: display + Context: Link + Change Controller: IETF + Initial Contents: + +============+==========================+ + | Enum Value | Reference or Description | + +============+==========================+ + | badge | Section 1.4.11 | + +------------+--------------------------+ + | graphic | Section 1.4.11 | + +------------+--------------------------+ + | fullsize | Section 1.4.11 | + +------------+--------------------------+ + | thumbnail | Section 1.4.11 | + +------------+--------------------------+ + + Table 4: JSCalendar Enum Values for + display (Context: Link) + + Property Name: features + Context: VirtualLocation + Change Controller: IETF + Initial Contents: + +============+==========================+ + | Enum Value | Reference or Description | + +============+==========================+ + | audio | Section 4.2.6 | + +------------+--------------------------+ + | chat | Section 4.2.6 | + +------------+--------------------------+ + | feed | Section 4.2.6 | + +------------+--------------------------+ + | moderator | Section 4.2.6 | + +------------+--------------------------+ + | phone | Section 4.2.6 | + +------------+--------------------------+ + | screen | Section 4.2.6 | + +------------+--------------------------+ + | video | Section 4.2.6 | + +------------+--------------------------+ + + Table 5: JSCalendar Enum Values for + features (Context: VirtualLocation) + + Property Name: freeBusyStatus + Context: Event, Task + Change Controller: IETF + Initial Contents: + +============+==========================+ + | Enum Value | Reference or Description | + +============+==========================+ + | free | Section 4.4.2 | + +------------+--------------------------+ + | busy | Section 4.4.2 | + +------------+--------------------------+ + + Table 6: JSCalendar Enum Values for + freeBusyStatus (Context: Event, Task) + + Property Name: kind + Context: Participant + Change Controller: IETF + Initial Contents: + +============+==========================+ + | Enum Value | Reference or Description | + +============+==========================+ + | individual | Section 4.4.6 | + +------------+--------------------------+ + | group | Section 4.4.6 | + +------------+--------------------------+ + | resource | Section 4.4.6 | + +------------+--------------------------+ + | location | Section 4.4.6 | + +------------+--------------------------+ + + Table 7: JSCalendar Enum Values for + kind (Context: Participant) + + Property Name: participationStatus + Context: Participant + Change Controller: IETF + Initial Contents: + +==============+==========================+ + | Enum Value | Reference or Description | + +==============+==========================+ + | needs-action | Section 4.4.6 | + +--------------+--------------------------+ + | accepted | Section 4.4.6 | + +--------------+--------------------------+ + | declined | Section 4.4.6 | + +--------------+--------------------------+ + | tentative | Section 4.4.6 | + +--------------+--------------------------+ + | delegated | Section 4.4.6 | + +--------------+--------------------------+ + + Table 8: JSCalendar Enum Values for + participationStatus (Context: + Participant) + + Property Name: privacy + Context: Event, Task + Change Controller: IETF + Initial Contents: + +============+==========================+ + | Enum Value | Reference or Description | + +============+==========================+ + | public | Section 4.4.3 | + +------------+--------------------------+ + | private | Section 4.4.3 | + +------------+--------------------------+ + | secret | Section 4.4.3 | + +------------+--------------------------+ + + Table 9: JSCalendar Enum Values for + privacy (Context: Event, Task) + + Property Name: progress + Context: Task, Participant + Change Controller: IETF + Initial Contents: + +==============+==========================+ + | Enum Value | Reference or Description | + +==============+==========================+ + | needs-action | Section 5.2.5 | + +--------------+--------------------------+ + | in-process | Section 5.2.5 | + +--------------+--------------------------+ + | completed | Section 5.2.5 | + +--------------+--------------------------+ + | failed | Section 5.2.5 | + +--------------+--------------------------+ + | cancelled | Section 5.2.5 | + +--------------+--------------------------+ + + Table 10: JSCalendar Enum Values for + progress (Context: Task, Participant) + + Property Name: relation + Context: Relation + Change Controller: IETF + Initial Contents: + +============+==========================+ + | Enum Value | Reference or Description | + +============+==========================+ + | first | Section 1.4.10 | + +------------+--------------------------+ + | next | Section 1.4.10 | + +------------+--------------------------+ + | child | Section 1.4.10 | + +------------+--------------------------+ + | parent | Section 1.4.10 | + +------------+--------------------------+ + + Table 11: JSCalendar Enum Values for + relation (Context: Relation) + + Property Name: relativeTo + Context: OffsetTrigger, Location + Change Controller: IETF + Initial Contents: + +============+==========================+ + | Enum Value | Reference or Description | + +============+==========================+ + | start | Section 4.5.2 | + +------------+--------------------------+ + | end | Section 4.5.2 | + +------------+--------------------------+ + + Table 12: JSCalendar Enum Values for + relativeTo (Context: OffsetTrigger, + Location) + + Property Name: roles + Context: Participant + Change Controller: IETF + Initial Contents: + +===============+==========================+ + | Enum Value | Reference or Description | + +===============+==========================+ + | owner | Section 4.4.6 | + +---------------+--------------------------+ + | attendee | Section 4.4.6 | + +---------------+--------------------------+ + | optional | Section 4.4.6 | + +---------------+--------------------------+ + | informational | Section 4.4.6 | + +---------------+--------------------------+ + | chair | Section 4.4.6 | + +---------------+--------------------------+ + | contact | Section 4.4.6 | + +---------------+--------------------------+ + + Table 13: JSCalendar Enum Values for + roles (Context: Participant) + + Property Name: scheduleAgent + Context: Participant + Change Controller: IETF + Initial Contents: + +============+==========================+ + | Enum Value | Reference or Description | + +============+==========================+ + | server | Section 4.4.6 | + +------------+--------------------------+ + | client | Section 4.4.6 | + +------------+--------------------------+ + | none | Section 4.4.6 | + +------------+--------------------------+ + + Table 14: JSCalendar Enum Values for + scheduleAgent (Context: Participant) + + Property Name: status + Context: Event + Change Controller: IETF + Initial Contents: + +============+==========================+ + | Enum Value | Reference or Description | + +============+==========================+ + | confirmed | Section 5.1.3 | + +------------+--------------------------+ + | cancelled | Section 5.1.3 | + +------------+--------------------------+ + | tentative | Section 5.1.3 | + +------------+--------------------------+ + + Table 15: JSCalendar Enum Values for + status (Context: Event) + +9. References + +9.1. Normative References + + [CLDR] "Unicode Common Locale Data Repository", + . + + [COLORS] Çelik, T., Lilley, C., and L. Baron, "CSS Color Module + Level 3", W3C Recommendation, June 2018, + . + + [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate + Requirement Levels", BCP 14, RFC 2119, + DOI 10.17487/RFC2119, March 1997, + . + + [RFC2392] Levinson, E., "Content-ID and Message-ID Uniform Resource + Locators", RFC 2392, DOI 10.17487/RFC2392, August 1998, + . + + [RFC2397] Masinter, L., "The "data" URL scheme", RFC 2397, + DOI 10.17487/RFC2397, August 1998, + . + + [RFC3339] Klyne, G. and C. Newman, "Date and Time on the Internet: + Timestamps", RFC 3339, DOI 10.17487/RFC3339, July 2002, + . + + [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform + Resource Identifier (URI): Generic Syntax", STD 66, + RFC 3986, DOI 10.17487/RFC3986, January 2005, + . + + [RFC4122] Leach, P., Mealling, M., and R. Salz, "A Universally + Unique IDentifier (UUID) URN Namespace", RFC 4122, + DOI 10.17487/RFC4122, July 2005, + . + + [RFC4589] Schulzrinne, H. and H. Tschofenig, "Location Types + Registry", RFC 4589, DOI 10.17487/RFC4589, July 2006, + . + + [RFC4648] Josefsson, S., "The Base16, Base32, and Base64 Data + Encodings", RFC 4648, DOI 10.17487/RFC4648, October 2006, + . + + [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax + Specifications: ABNF", STD 68, RFC 5234, + DOI 10.17487/RFC5234, January 2008, + . + + [RFC5322] Resnick, P., Ed., "Internet Message Format", RFC 5322, + DOI 10.17487/RFC5322, October 2008, + . + + [RFC5545] Desruisseaux, B., Ed., "Internet Calendaring and + Scheduling Core Object Specification (iCalendar)", + RFC 5545, DOI 10.17487/RFC5545, September 2009, + . + + [RFC5546] Daboo, C., Ed., "iCalendar Transport-Independent + Interoperability Protocol (iTIP)", RFC 5546, + DOI 10.17487/RFC5546, December 2009, + . + + [RFC5646] Phillips, A., Ed. and M. Davis, Ed., "Tags for Identifying + Languages", BCP 47, RFC 5646, DOI 10.17487/RFC5646, + September 2009, . + + [RFC5870] Mayrhofer, A. and C. Spanring, "A Uniform Resource + Identifier for Geographic Locations ('geo' URI)", + RFC 5870, DOI 10.17487/RFC5870, June 2010, + . + + [RFC6047] Melnikov, A., Ed., "iCalendar Message-Based + Interoperability Protocol (iMIP)", RFC 6047, + DOI 10.17487/RFC6047, December 2010, + . + + [RFC6838] Freed, N., Klensin, J., and T. Hansen, "Media Type + Specifications and Registration Procedures", BCP 13, + RFC 6838, DOI 10.17487/RFC6838, January 2013, + . + + [RFC6901] Bryan, P., Ed., Zyp, K., and M. Nottingham, Ed., + "JavaScript Object Notation (JSON) Pointer", RFC 6901, + DOI 10.17487/RFC6901, April 2013, + . + + [RFC7493] Bray, T., Ed., "The I-JSON Message Format", RFC 7493, + DOI 10.17487/RFC7493, March 2015, + . + + [RFC7529] Daboo, C. and G. Yakushev, "Non-Gregorian Recurrence Rules + in the Internet Calendaring and Scheduling Core Object + Specification (iCalendar)", RFC 7529, + DOI 10.17487/RFC7529, May 2015, + . + + [RFC7808] Douglass, M. and C. Daboo, "Time Zone Data Distribution + Service", RFC 7808, DOI 10.17487/RFC7808, March 2016, + . + + [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for + Writing an IANA Considerations Section in RFCs", BCP 26, + RFC 8126, DOI 10.17487/RFC8126, June 2017, + . + + [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC + 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, + May 2017, . + + [RFC8259] Bray, T., Ed., "The JavaScript Object Notation (JSON) Data + Interchange Format", STD 90, RFC 8259, + DOI 10.17487/RFC8259, December 2017, + . + + [RFC8288] Nottingham, M., "Web Linking", RFC 8288, + DOI 10.17487/RFC8288, October 2017, + . + + [TZDB] IANA, "Time Zone Database", + . + +9.2. Informative References + + [ISO.9070.1991] + ISO/IEC, "Information technology -- SGML support + facilities -- Registration procedures for public text + owner identifiers", Edition 2, ISO/IEC 9070:1991, April + 1991, . + + [LINKRELS] IANA, "Link Relations: Link Relation Types", + . + + [LOCATIONTYPES] + IANA, "Location Types Registry", + . + + [MEDIATYPES] + IANA, "Media Types", + . + + [RFC6376] Crocker, D., Ed., Hansen, T., Ed., and M. Kucherawy, Ed., + "DomainKeys Identified Mail (DKIM) Signatures", STD 76, + RFC 6376, DOI 10.17487/RFC6376, September 2011, + . + + [RFC7265] Kewisch, P., Daboo, C., and M. Douglass, "jCal: The JSON + Format for iCalendar", RFC 7265, DOI 10.17487/RFC7265, May + 2014, . + + [RFC7986] Daboo, C., "New Properties for iCalendar", RFC 7986, + DOI 10.17487/RFC7986, October 2016, + . + +Acknowledgments + + The authors would like to thank the members of CalConnect for their + valuable contributions. This specification originated from the work + of the API technical committee of CalConnect: The Calendaring and + Scheduling Consortium. + +Authors' Addresses + + Neil Jenkins + Fastmail + Collins St. West + P.O. Box 234 + Melbourne VIC 8007 + Australia + + Email: neilj@fastmailteam.com + URI: https://www.fastmail.com + + + Robert Stepanek + Fastmail + Collins St. West + P.O. Box 234 + Melbourne VIC 8007 + Australia + + Email: rsto@fastmailteam.com + URI: https://www.fastmail.com diff --git a/specifications/calendar/rfc9670.pdf b/specifications/calendar/rfc9670.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d63d9fd554c4259782386cc68e9bdc018c3b1c49 GIT binary patch literal 158604 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. + + [RFC5322] Resnick, P., Ed., "Internet Message Format", RFC 5322, + DOI 10.17487/RFC5322, October 2008, + . + + [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC + 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, + May 2017, . + + [RFC8620] Jenkins, N. and C. Newman, "The JSON Meta Application + Protocol (JMAP)", RFC 8620, DOI 10.17487/RFC8620, July + 2019, . + +8.2. Informative References + + [IANA-JMAP] + IANA, "JMAP Data Types", + . + + [IANA-TZDB] + IANA, "Time Zone Database", + . + + [RFC8264] Saint-Andre, P. and M. Blanchet, "PRECIS Framework: + Preparation, Enforcement, and Comparison of + Internationalized Strings in Application Protocols", + RFC 8264, DOI 10.17487/RFC8264, October 2017, + . + +Author's Address + + Neil Jenkins (editor) + Fastmail + PO Box 234, Collins St West + Melbourne VIC 8007 + Australia + Email: neilj@fastmailteam.com + URI: https://www.fastmail.com diff --git a/specifications/contacts/rfc6350.pdf b/specifications/contacts/rfc6350.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a40987ca4f07d289eb4b195f108fb83b28b6ffd9 GIT binary patch literal 102357 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 a@xI;9cl-VjPe)-lef8aUKm7FfSN{b)fuo=R literal 0 HcmV?d00001 diff --git a/specifications/contacts/rfc6350.txt b/specifications/contacts/rfc6350.txt new file mode 100644 index 00000000..d853cbc6 --- /dev/null +++ b/specifications/contacts/rfc6350.txt @@ -0,0 +1,4147 @@ + + + + + + +Internet Engineering Task Force (IETF) S. Perreault +Request for Comments: 6350 Viagenie +Obsoletes: 2425, 2426, 4770 August 2011 +Updates: 2739 +Category: Standards Track +ISSN: 2070-1721 + + + vCard Format Specification + +Abstract + + This document defines the vCard data format for representing and + exchanging a variety of information about individuals and other + entities (e.g., formatted and structured name and delivery addresses, + email address, multiple telephone numbers, photograph, logo, audio + clips, etc.). This document obsoletes RFCs 2425, 2426, and 4770, and + updates RFC 2739. + +Status of This Memo + + This is an Internet Standards Track document. + + This document is a product of the Internet Engineering Task Force + (IETF). It represents the consensus of the IETF community. It has + received public review and has been approved for publication by the + Internet Engineering Steering Group (IESG). Further information on + Internet Standards is available in Section 2 of RFC 5741. + + Information about the current status of this document, any errata, + and how to provide feedback on it may be obtained at + http://www.rfc-editor.org/info/rfc6350. + +Copyright Notice + + Copyright (c) 2011 IETF Trust and the persons identified as the + document authors. All rights reserved. + + This document is subject to BCP 78 and the IETF Trust's Legal + Provisions Relating to IETF Documents + (http://trustee.ietf.org/license-info) in effect on the date of + publication of this document. Please review these documents + carefully, as they describe your rights and restrictions with respect + to this document. Code Components extracted from this document must + include Simplified BSD License text as described in Section 4.e of + the Trust Legal Provisions and are provided without warranty as + described in the Simplified BSD License. + + + + +Perreault Standards Track [Page 1] + +RFC 6350 vCard August 2011 + + + This document may contain material from IETF Documents or IETF + Contributions published or made publicly available before November + 10, 2008. The person(s) controlling the copyright in some of this + material may not have granted the IETF Trust the right to allow + modifications of such material outside the IETF Standards Process. + Without obtaining an adequate license from the person(s) controlling + the copyright in such materials, this document may not be modified + outside the IETF Standards Process, and derivative works of it may + not be created outside the IETF Standards Process, except to format + it for publication as an RFC or to translate it into languages other + than English. + +Table of Contents + + 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 5 + 2. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . 5 + 3. vCard Format Specification . . . . . . . . . . . . . . . . . . 5 + 3.1. Charset . . . . . . . . . . . . . . . . . . . . . . . . . 5 + 3.2. Line Delimiting and Folding . . . . . . . . . . . . . . . 5 + 3.3. ABNF Format Definition . . . . . . . . . . . . . . . . . . 6 + 3.4. Property Value Escaping . . . . . . . . . . . . . . . . . 9 + 4. Property Value Data Types . . . . . . . . . . . . . . . . . . 9 + 4.1. TEXT . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 + 4.2. URI . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 + 4.3. DATE, TIME, DATE-TIME, DATE-AND-OR-TIME, and TIMESTAMP . . 12 + 4.3.1. DATE . . . . . . . . . . . . . . . . . . . . . . . . . 12 + 4.3.2. TIME . . . . . . . . . . . . . . . . . . . . . . . . . 13 + 4.3.3. DATE-TIME . . . . . . . . . . . . . . . . . . . . . . 13 + 4.3.4. DATE-AND-OR-TIME . . . . . . . . . . . . . . . . . . . 14 + 4.3.5. TIMESTAMP . . . . . . . . . . . . . . . . . . . . . . 14 + 4.4. BOOLEAN . . . . . . . . . . . . . . . . . . . . . . . . . 14 + 4.5. INTEGER . . . . . . . . . . . . . . . . . . . . . . . . . 15 + 4.6. FLOAT . . . . . . . . . . . . . . . . . . . . . . . . . . 15 + 4.7. UTC-OFFSET . . . . . . . . . . . . . . . . . . . . . . . . 15 + 4.8. LANGUAGE-TAG . . . . . . . . . . . . . . . . . . . . . . . 16 + 5. Property Parameters . . . . . . . . . . . . . . . . . . . . . 16 + 5.1. LANGUAGE . . . . . . . . . . . . . . . . . . . . . . . . . 16 + 5.2. VALUE . . . . . . . . . . . . . . . . . . . . . . . . . . 16 + 5.3. PREF . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 + 5.4. ALTID . . . . . . . . . . . . . . . . . . . . . . . . . . 18 + 5.5. PID . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 + 5.6. TYPE . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 + 5.7. MEDIATYPE . . . . . . . . . . . . . . . . . . . . . . . . 20 + 5.8. CALSCALE . . . . . . . . . . . . . . . . . . . . . . . . . 20 + 5.9. SORT-AS . . . . . . . . . . . . . . . . . . . . . . . . . 21 + 5.10. GEO . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 + 5.11. TZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 + + + + +Perreault Standards Track [Page 2] + +RFC 6350 vCard August 2011 + + + 6. vCard Properties . . . . . . . . . . . . . . . . . . . . . . . 23 + 6.1. General Properties . . . . . . . . . . . . . . . . . . . . 23 + 6.1.1. BEGIN . . . . . . . . . . . . . . . . . . . . . . . . 23 + 6.1.2. END . . . . . . . . . . . . . . . . . . . . . . . . . 23 + 6.1.3. SOURCE . . . . . . . . . . . . . . . . . . . . . . . . 24 + 6.1.4. KIND . . . . . . . . . . . . . . . . . . . . . . . . . 25 + 6.1.5. XML . . . . . . . . . . . . . . . . . . . . . . . . . 27 + 6.2. Identification Properties . . . . . . . . . . . . . . . . 28 + 6.2.1. FN . . . . . . . . . . . . . . . . . . . . . . . . . . 28 + 6.2.2. N . . . . . . . . . . . . . . . . . . . . . . . . . . 29 + 6.2.3. NICKNAME . . . . . . . . . . . . . . . . . . . . . . . 29 + 6.2.4. PHOTO . . . . . . . . . . . . . . . . . . . . . . . . 30 + 6.2.5. BDAY . . . . . . . . . . . . . . . . . . . . . . . . . 30 + 6.2.6. ANNIVERSARY . . . . . . . . . . . . . . . . . . . . . 31 + 6.2.7. GENDER . . . . . . . . . . . . . . . . . . . . . . . . 32 + 6.3. Delivery Addressing Properties . . . . . . . . . . . . . . 32 + 6.3.1. ADR . . . . . . . . . . . . . . . . . . . . . . . . . 32 + 6.4. Communications Properties . . . . . . . . . . . . . . . . 34 + 6.4.1. TEL . . . . . . . . . . . . . . . . . . . . . . . . . 34 + 6.4.2. EMAIL . . . . . . . . . . . . . . . . . . . . . . . . 36 + 6.4.3. IMPP . . . . . . . . . . . . . . . . . . . . . . . . . 36 + 6.4.4. LANG . . . . . . . . . . . . . . . . . . . . . . . . . 37 + 6.5. Geographical Properties . . . . . . . . . . . . . . . . . 37 + 6.5.1. TZ . . . . . . . . . . . . . . . . . . . . . . . . . . 37 + 6.5.2. GEO . . . . . . . . . . . . . . . . . . . . . . . . . 38 + 6.6. Organizational Properties . . . . . . . . . . . . . . . . 39 + 6.6.1. TITLE . . . . . . . . . . . . . . . . . . . . . . . . 39 + 6.6.2. ROLE . . . . . . . . . . . . . . . . . . . . . . . . . 39 + 6.6.3. LOGO . . . . . . . . . . . . . . . . . . . . . . . . . 40 + 6.6.4. ORG . . . . . . . . . . . . . . . . . . . . . . . . . 40 + 6.6.5. MEMBER . . . . . . . . . . . . . . . . . . . . . . . . 41 + 6.6.6. RELATED . . . . . . . . . . . . . . . . . . . . . . . 42 + 6.7. Explanatory Properties . . . . . . . . . . . . . . . . . . 43 + 6.7.1. CATEGORIES . . . . . . . . . . . . . . . . . . . . . . 43 + 6.7.2. NOTE . . . . . . . . . . . . . . . . . . . . . . . . . 44 + 6.7.3. PRODID . . . . . . . . . . . . . . . . . . . . . . . . 44 + 6.7.4. REV . . . . . . . . . . . . . . . . . . . . . . . . . 45 + 6.7.5. SOUND . . . . . . . . . . . . . . . . . . . . . . . . 45 + 6.7.6. UID . . . . . . . . . . . . . . . . . . . . . . . . . 46 + 6.7.7. CLIENTPIDMAP . . . . . . . . . . . . . . . . . . . . . 47 + 6.7.8. URL . . . . . . . . . . . . . . . . . . . . . . . . . 47 + 6.7.9. VERSION . . . . . . . . . . . . . . . . . . . . . . . 48 + 6.8. Security Properties . . . . . . . . . . . . . . . . . . . 48 + 6.8.1. KEY . . . . . . . . . . . . . . . . . . . . . . . . . 48 + 6.9. Calendar Properties . . . . . . . . . . . . . . . . . . . 49 + 6.9.1. FBURL . . . . . . . . . . . . . . . . . . . . . . . . 49 + 6.9.2. CALADRURI . . . . . . . . . . . . . . . . . . . . . . 50 + 6.9.3. CALURI . . . . . . . . . . . . . . . . . . . . . . . . 50 + + + +Perreault Standards Track [Page 3] + +RFC 6350 vCard August 2011 + + + 6.10. Extended Properties and Parameters . . . . . . . . . . . . 51 + 7. Synchronization . . . . . . . . . . . . . . . . . . . . . . . 51 + 7.1. Mechanisms . . . . . . . . . . . . . . . . . . . . . . . . 51 + 7.1.1. Matching vCard Instances . . . . . . . . . . . . . . . 51 + 7.1.2. Matching Property Instances . . . . . . . . . . . . . 52 + 7.1.3. PID Matching . . . . . . . . . . . . . . . . . . . . . 52 + 7.2. Example . . . . . . . . . . . . . . . . . . . . . . . . . 53 + 7.2.1. Creation . . . . . . . . . . . . . . . . . . . . . . . 53 + 7.2.2. Initial Sharing . . . . . . . . . . . . . . . . . . . 53 + 7.2.3. Adding and Sharing a Property . . . . . . . . . . . . 54 + 7.2.4. Simultaneous Editing . . . . . . . . . . . . . . . . . 54 + 7.2.5. Global Context Simplification . . . . . . . . . . . . 56 + 8. Example: Author's vCard . . . . . . . . . . . . . . . . . . . 56 + 9. Security Considerations . . . . . . . . . . . . . . . . . . . 57 + 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 58 + 10.1. Media Type Registration . . . . . . . . . . . . . . . . . 58 + 10.2. Registering New vCard Elements . . . . . . . . . . . . . . 59 + 10.2.1. Registration Procedure . . . . . . . . . . . . . . . . 59 + 10.2.2. Vendor Namespace . . . . . . . . . . . . . . . . . . . 60 + 10.2.3. Registration Template for Properties . . . . . . . . . 61 + 10.2.4. Registration Template for Parameters . . . . . . . . . 61 + 10.2.5. Registration Template for Value Data Types . . . . . . 62 + 10.2.6. Registration Template for Values . . . . . . . . . . . 62 + 10.3. Initial vCard Elements Registries . . . . . . . . . . . . 63 + 10.3.1. Properties Registry . . . . . . . . . . . . . . . . . 64 + 10.3.2. Parameters Registry . . . . . . . . . . . . . . . . . 65 + 10.3.3. Value Data Types Registry . . . . . . . . . . . . . . 65 + 10.3.4. Values Registries . . . . . . . . . . . . . . . . . . 66 + 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 69 + 12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 69 + 12.1. Normative References . . . . . . . . . . . . . . . . . . . 69 + 12.2. Informative References . . . . . . . . . . . . . . . . . . 71 + Appendix A. Differences from RFCs 2425 and 2426 . . . . . . . . . 73 + A.1. New Structure . . . . . . . . . . . . . . . . . . . . . . 73 + A.2. Removed Features . . . . . . . . . . . . . . . . . . . . . 73 + A.3. New Properties and Parameters . . . . . . . . . . . . . . 73 + + + + + + + + + + + + + + + +Perreault Standards Track [Page 4] + +RFC 6350 vCard August 2011 + + +1. Introduction + + Electronic address books have become ubiquitous. Their increased + presence on portable, connected devices as well as the diversity of + platforms that exchange contact data call for a standard. This memo + defines the vCard format, which allows the capture and exchange of + information normally stored within an address book or directory + application. + + A high-level overview of the differences from RFCs 2425 and 2426 can + be found in Appendix A. + +2. Conventions + + The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", + "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and + "OPTIONAL" in this document are to be interpreted as described in + [RFC2119]. + +3. vCard Format Specification + + The text/vcard MIME content type (hereafter known as "vCard"; see + Section 10.1) contains contact information, typically pertaining to a + single contact or group of contacts. The content consists of one or + more lines in the format given below. + +3.1. Charset + + The charset (see [RFC3536] for internationalization terminology) for + vCard is UTF-8 as defined in [RFC3629]. There is no way to override + this. It is invalid to specify a value other than "UTF-8" in the + "charset" MIME parameter (see Section 10.1). + +3.2. Line Delimiting and Folding + + Individual lines within vCard are delimited by the [RFC5322] line + break, which is a CRLF sequence (U+000D followed by U+000A). Long + logical lines of text can be split into a multiple-physical-line + representation using the following folding technique. Content lines + SHOULD be folded to a maximum width of 75 octets, excluding the line + break. Multi-octet characters MUST remain contiguous. The rationale + for this folding process can be found in [RFC5322], Section 2.1.1. + + A logical line MAY be continued on the next physical line anywhere + between two characters by inserting a CRLF immediately followed by a + single white space character (space (U+0020) or horizontal tab + (U+0009)). The folded line MUST contain at least one character. Any + sequence of CRLF followed immediately by a single white space + + + +Perreault Standards Track [Page 5] + +RFC 6350 vCard August 2011 + + + character is ignored (removed) when processing the content type. For + example, the line: + + NOTE:This is a long description that exists on a long line. + + can be represented as: + + NOTE:This is a long description + that exists on a long line. + + It could also be represented as: + + NOTE:This is a long descrip + tion that exists o + n a long line. + + The process of moving from this folded multiple-line representation + of a property definition to its single-line representation is called + unfolding. Unfolding is accomplished by regarding CRLF immediately + followed by a white space character (namely, HTAB (U+0009) or SPACE + (U+0020)) as equivalent to no characters at all (i.e., the CRLF and + single white space character are removed). + + Note: It is possible for very simple implementations to generate + improperly folded lines in the middle of a UTF-8 multi-octet + sequence. For this reason, implementations SHOULD unfold lines in + such a way as to properly restore the original sequence. + + Note: Unfolding is done differently than in [RFC5322]. Unfolding + in [RFC5322] only removes the CRLF, not the space following it. + + Folding is done after any content encoding of a type value. + Unfolding is done before any decoding of a type value in a content + line. + +3.3. ABNF Format Definition + + The following ABNF uses the notation of [RFC5234], which also defines + CRLF, WSP, DQUOTE, VCHAR, ALPHA, and DIGIT. + + vcard-entity = 1*vcard + + vcard = "BEGIN:VCARD" CRLF + "VERSION:4.0" CRLF + 1*contentline + "END:VCARD" CRLF + ; A vCard object MUST include the VERSION and FN properties. + ; VERSION MUST come immediately after BEGIN:VCARD. + + + +Perreault Standards Track [Page 6] + +RFC 6350 vCard August 2011 + + + contentline = [group "."] name *(";" param) ":" value CRLF + ; When parsing a content line, folded lines must first + ; be unfolded according to the unfolding procedure + ; described in Section 3.2. + ; When generating a content line, lines longer than 75 + ; characters SHOULD be folded according to the folding + ; procedure described in Section 3.2. + + group = 1*(ALPHA / DIGIT / "-") + name = "SOURCE" / "KIND" / "FN" / "N" / "NICKNAME" + / "PHOTO" / "BDAY" / "ANNIVERSARY" / "GENDER" / "ADR" / "TEL" + / "EMAIL" / "IMPP" / "LANG" / "TZ" / "GEO" / "TITLE" / "ROLE" + / "LOGO" / "ORG" / "MEMBER" / "RELATED" / "CATEGORIES" + / "NOTE" / "PRODID" / "REV" / "SOUND" / "UID" / "CLIENTPIDMAP" + / "URL" / "KEY" / "FBURL" / "CALADRURI" / "CALURI" / "XML" + / iana-token / x-name + ; Parsing of the param and value is based on the "name" as + ; defined in ABNF sections below. + ; Group and name are case-insensitive. + + iana-token = 1*(ALPHA / DIGIT / "-") + ; identifier registered with IANA + + x-name = "x-" 1*(ALPHA / DIGIT / "-") + ; Names that begin with "x-" or "X-" are + ; reserved for experimental use, not intended for released + ; products, or for use in bilateral agreements. + + param = language-param / value-param / pref-param / pid-param + / type-param / geo-parameter / tz-parameter / sort-as-param + / calscale-param / any-param + ; Allowed parameters depend on property name. + + param-value = *SAFE-CHAR / DQUOTE *QSAFE-CHAR DQUOTE + + any-param = (iana-token / x-name) "=" param-value *("," param-value) + + NON-ASCII = UTF8-2 / UTF8-3 / UTF8-4 + ; UTF8-{2,3,4} are defined in [RFC3629] + + QSAFE-CHAR = WSP / "!" / %x23-7E / NON-ASCII + ; Any character except CTLs, DQUOTE + + SAFE-CHAR = WSP / "!" / %x23-39 / %x3C-7E / NON-ASCII + ; Any character except CTLs, DQUOTE, ";", ":" + + VALUE-CHAR = WSP / VCHAR / NON-ASCII + ; Any textual character + + + +Perreault Standards Track [Page 7] + +RFC 6350 vCard August 2011 + + + A line that begins with a white space character is a continuation of + the previous line, as described in Section 3.2. The white space + character and immediately preceeding CRLF should be discarded when + reconstructing the original line. Note that this line-folding + convention differs from that found in [RFC5322], in that the sequence + found anywhere in the content indicates a continued line + and should be removed. + + Property names and parameter names are case-insensitive (e.g., the + property name "fn" is the same as "FN" and "Fn"). Parameter values + MAY be case-sensitive or case-insensitive, depending on their + definition. Parameter values that are not explicitly defined as + being case-sensitive are case-insensitive. Based on experience with + vCard 3 interoperability, it is RECOMMENDED that property and + parameter names be upper-case on output. + + The group construct is used to group related properties together. + The group name is a syntactic convention used to indicate that all + property names prefaced with the same group name SHOULD be grouped + together when displayed by an application. It has no other + significance. Implementations that do not understand or support + grouping MAY simply strip off any text before a "." to the left of + the type name and present the types and values as normal. + + Property cardinalities are indicated using the following notation, + which is based on ABNF (see [RFC5234], Section 3.6): + + +-------------+--------------------------------------------------+ + | Cardinality | Meaning | + +-------------+--------------------------------------------------+ + | 1 | Exactly one instance per vCard MUST be present. | + | *1 | Exactly one instance per vCard MAY be present. | + | 1* | One or more instances per vCard MUST be present. | + | * | One or more instances per vCard MAY be present. | + +-------------+--------------------------------------------------+ + + Properties defined in a vCard instance may have multiple values + depending on the property cardinality. The general rule for encoding + multi-valued properties is to simply create a new content line for + each value (including the property name). However, it should be + noted that some value types support encoding multiple values in a + single content line by separating the values with a comma ",". This + approach has been taken for several of the content types defined + below (date, time, integer, float). + + + + + + + +Perreault Standards Track [Page 8] + +RFC 6350 vCard August 2011 + + +3.4. Property Value Escaping + + Some properties may contain one or more values delimited by a COMMA + character (U+002C). Therefore, a COMMA character in a value MUST be + escaped with a BACKSLASH character (U+005C), even for properties that + don't allow multiple instances (for consistency). + + Some properties (e.g., N and ADR) comprise multiple fields delimited + by a SEMICOLON character (U+003B). Therefore, a SEMICOLON in a field + of such a "compound" property MUST be escaped with a BACKSLASH + character. SEMICOLON characters in non-compound properties MAY be + escaped. On input, an escaped SEMICOLON character is never a field + separator. An unescaped SEMICOLON character may be a field + separator, depending on the property in which it appears. + + Furthermore, some fields of compound properties may contain a list of + values delimited by a COMMA character. Therefore, a COMMA character + in one of a field's values MUST be escaped with a BACKSLASH + character, even for fields that don't allow multiple values (for + consistency). Compound properties allowing multiple instances MUST + NOT be encoded in a single content line. + + Finally, BACKSLASH characters in values MUST be escaped with a + BACKSLASH character. NEWLINE (U+000A) characters in values MUST be + encoded by two characters: a BACKSLASH followed by either an 'n' + (U+006E) or an 'N' (U+004E). + + In all other cases, escaping MUST NOT be used. + +4. Property Value Data Types + + Standard value types are defined below. + + value = text + / text-list + / date-list + / time-list + / date-time-list + / date-and-or-time-list + / timestamp-list + / boolean + / integer-list + / float-list + / URI ; from Section 3 of [RFC3986] + / utc-offset + / Language-Tag + / iana-valuespec + ; Actual value type depends on property name and VALUE parameter. + + + +Perreault Standards Track [Page 9] + +RFC 6350 vCard August 2011 + + + text = *TEXT-CHAR + + TEXT-CHAR = "\\" / "\," / "\n" / WSP / NON-ASCII + / %x21-2B / %x2D-5B / %x5D-7E + ; Backslashes, commas, and newlines must be encoded. + + component = "\\" / "\," / "\;" / "\n" / WSP / NON-ASCII + / %x21-2B / %x2D-3A / %x3C-5B / %x5D-7E + list-component = component *("," component) + + text-list = text *("," text) + date-list = date *("," date) + time-list = time *("," time) + date-time-list = date-time *("," date-time) + date-and-or-time-list = date-and-or-time *("," date-and-or-time) + timestamp-list = timestamp *("," timestamp) + integer-list = integer *("," integer) + float-list = float *("," float) + + boolean = "TRUE" / "FALSE" + integer = [sign] 1*DIGIT + float = [sign] 1*DIGIT ["." 1*DIGIT] + + sign = "+" / "-" + + year = 4DIGIT ; 0000-9999 + month = 2DIGIT ; 01-12 + day = 2DIGIT ; 01-28/29/30/31 depending on month and leap year + hour = 2DIGIT ; 00-23 + minute = 2DIGIT ; 00-59 + second = 2DIGIT ; 00-58/59/60 depending on leap second + zone = utc-designator / utc-offset + utc-designator = %x5A ; uppercase "Z" + + date = year [month day] + / year "-" month + / "--" month [day] + / "--" "-" day + date-noreduc = year month day + / "--" month day + / "--" "-" day + date-complete = year month day + + time = hour [minute [second]] [zone] + / "-" minute [second] [zone] + / "-" "-" second [zone] + time-notrunc = hour [minute [second]] [zone] + time-complete = hour minute second [zone] + + + +Perreault Standards Track [Page 10] + +RFC 6350 vCard August 2011 + + + time-designator = %x54 ; uppercase "T" + date-time = date-noreduc time-designator time-notrunc + timestamp = date-complete time-designator time-complete + + date-and-or-time = date-time / date / time-designator time + + utc-offset = sign hour [minute] + + Language-Tag = + + iana-valuespec = + ; a publicly defined valuetype format, registered + ; with IANA, as defined in Section 12 of this + ; document. + +4.1. TEXT + + "text": The "text" value type should be used to identify values that + contain human-readable text. As for the language, it is controlled + by the LANGUAGE property parameter defined in Section 5.1. + + Examples for "text": + + this is a text value + this is one value,this is another + this is a single value\, with a comma encoded + + A formatted text line break in a text value type MUST be represented + as the character sequence backslash (U+005C) followed by a Latin + small letter n (U+006E) or a Latin capital letter N (U+004E), that + is, "\n" or "\N". + + For example, a multiple line NOTE value of: + + Mythical Manager + Hyjinx Software Division + BabsCo, Inc. + + could be represented as: + + NOTE:Mythical Manager\nHyjinx Software Division\n + BabsCo\, Inc.\n + + demonstrating the \n literal formatted line break technique, the + CRLF-followed-by-space line folding technique, and the backslash + escape technique. + + + + + +Perreault Standards Track [Page 11] + +RFC 6350 vCard August 2011 + + +4.2. URI + + "uri": The "uri" value type should be used to identify values that + are referenced by a Uniform Resource Identifier (URI) instead of + encoded in-line. These value references might be used if the value + is too large, or otherwise undesirable to include directly. The + format for the URI is as defined in Section 3 of [RFC3986]. Note + that the value of a property of type "uri" is what the URI points to, + not the URI itself. + + Examples for "uri": + + http://www.example.com/my/picture.jpg + ldap://ldap.example.com/cn=babs%20jensen + +4.3. DATE, TIME, DATE-TIME, DATE-AND-OR-TIME, and TIMESTAMP + + "date", "time", "date-time", "date-and-or-time", and "timestamp": + Each of these value types is based on the definitions in + [ISO.8601.2004]. Multiple such values can be specified using the + comma-separated notation. + + Only the basic format is supported. + +4.3.1. DATE + + A calendar date as specified in [ISO.8601.2004], Section 4.1.2. + + Reduced accuracy, as specified in [ISO.8601.2004], Sections 4.1.2.3 + a) and b), but not c), is permitted. + + Expanded representation, as specified in [ISO.8601.2004], Section + 4.1.4, is forbidden. + + Truncated representation, as specified in [ISO.8601.2000], Sections + 5.2.1.3 d), e), and f), is permitted. + + Examples for "date": + + 19850412 + 1985-04 + 1985 + --0412 + ---12 + + + + + + + +Perreault Standards Track [Page 12] + +RFC 6350 vCard August 2011 + + + Note the use of YYYY-MM in the second example above. YYYYMM is + disallowed to prevent confusion with YYMMDD. Note also that + YYYY-MM-DD is disallowed since we are using the basic format instead + of the extended format. + +4.3.2. TIME + + A time of day as specified in [ISO.8601.2004], Section 4.2. + + Reduced accuracy, as specified in [ISO.8601.2004], Section 4.2.2.3, + is permitted. + + Representation with decimal fraction, as specified in + [ISO.8601.2004], Section 4.2.2.4, is forbidden. + + The midnight hour is always represented by 00, never 24 (see + [ISO.8601.2004], Section 4.2.3). + + Truncated representation, as specified in [ISO.8601.2000], Sections + 5.3.1.4 a), b), and c), is permitted. + + Examples for "time": + + 102200 + 1022 + 10 + -2200 + --00 + 102200Z + 102200-0800 + +4.3.3. DATE-TIME + + A date and time of day combination as specified in [ISO.8601.2004], + Section 4.3. + + Truncation of the date part, as specified in [ISO.8601.2000], Section + 5.4.2 c), is permitted. + + Examples for "date-time": + + 19961022T140000 + --1022T1400 + ---22T14 + + + + + + + +Perreault Standards Track [Page 13] + +RFC 6350 vCard August 2011 + + +4.3.4. DATE-AND-OR-TIME + + Either a DATE-TIME, a DATE, or a TIME value. To allow unambiguous + interpretation, a stand-alone TIME value is always preceded by a "T". + + Examples for "date-and-or-time": + + 19961022T140000 + --1022T1400 + ---22T14 + 19850412 + 1985-04 + 1985 + --0412 + ---12 + T102200 + T1022 + T10 + T-2200 + T--00 + T102200Z + T102200-0800 + +4.3.5. TIMESTAMP + + A complete date and time of day combination as specified in + [ISO.8601.2004], Section 4.3.2. + + Examples for "timestamp": + + 19961022T140000 + 19961022T140000Z + 19961022T140000-05 + 19961022T140000-0500 + +4.4. BOOLEAN + + "boolean": The "boolean" value type is used to express boolean + values. These values are case-insensitive. + + Examples: + + TRUE + false + True + + + + + + +Perreault Standards Track [Page 14] + +RFC 6350 vCard August 2011 + + +4.5. INTEGER + + "integer": The "integer" value type is used to express signed + integers in decimal format. If sign is not specified, the value is + assumed positive "+". Multiple "integer" values can be specified + using the comma-separated notation. The maximum value is + 9223372036854775807, and the minimum value is -9223372036854775808. + These limits correspond to a signed 64-bit integer using two's- + complement arithmetic. + + Examples: + + 1234567890 + -1234556790 + +1234556790,432109876 + +4.6. FLOAT + + "float": The "float" value type is used to express real numbers. If + sign is not specified, the value is assumed positive "+". Multiple + "float" values can be specified using the comma-separated notation. + Implementations MUST support a precision equal or better than that of + the IEEE "binary64" format [IEEE.754.2008]. + + Note: Scientific notation is disallowed. Implementers wishing to + use their favorite language's %f formatting should be careful. + + Examples: + + 20.30 + 1000000.0000001 + 1.333,3.14 + +4.7. UTC-OFFSET + + "utc-offset": The "utc-offset" value type specifies that the property + value is a signed offset from UTC. This value type can be specified + in the TZ property. + + The value type is an offset from Coordinated Universal Time (UTC). + It is specified as a positive or negative difference in units of + hours and minutes (e.g., +hhmm). The time is specified as a 24-hour + clock. Hour values are from 00 to 23, and minute values are from 00 + to 59. Hour and minutes are 2 digits with high-order zeroes required + to maintain digit count. The basic format for ISO 8601 UTC offsets + MUST be used. + + + + + +Perreault Standards Track [Page 15] + +RFC 6350 vCard August 2011 + + +4.8. LANGUAGE-TAG + + "language-tag": A single language tag, as defined in [RFC5646]. + +5. Property Parameters + + A property can have attributes associated with it. These "property + parameters" contain meta-information about the property or the + property value. In some cases, the property parameter can be multi- + valued in which case the property parameter value elements are + separated by a COMMA (U+002C). + + Property parameter value elements that contain the COLON (U+003A), + SEMICOLON (U+003B), or COMMA (U+002C) character separators MUST be + specified as quoted-string text values. Property parameter values + MUST NOT contain the DQUOTE (U+0022) character. The DQUOTE character + is used as a delimiter for parameter values that contain restricted + characters or URI text. + + Applications MUST ignore x-param and iana-param values they don't + recognize. + +5.1. LANGUAGE + + The LANGUAGE property parameter is used to identify data in multiple + languages. There is no concept of "default" language, except as + specified by any "Content-Language" MIME header parameter that is + present [RFC3282]. The value of the LANGUAGE property parameter is a + language tag as defined in Section 2 of [RFC5646]. + + Examples: + + ROLE;LANGUAGE=tr:hoca + + ABNF: + + language-param = "LANGUAGE=" Language-Tag + ; Language-Tag is defined in section 2.1 of RFC 5646 + +5.2. VALUE + + The VALUE parameter is OPTIONAL, used to identify the value type + (data type) and format of the value. The use of these predefined + formats is encouraged even if the value parameter is not explicitly + used. By defining a standard set of value types and their formats, + existing parsing and processing code can be leveraged. The + + + + + +Perreault Standards Track [Page 16] + +RFC 6350 vCard August 2011 + + + predefined data type values MUST NOT be repeated in COMMA-separated + value lists except within the N, NICKNAME, ADR, and CATEGORIES + properties. + + ABNF: + + value-param = "VALUE=" value-type + + value-type = "text" + / "uri" + / "date" + / "time" + / "date-time" + / "date-and-or-time" + / "timestamp" + / "boolean" + / "integer" + / "float" + / "utc-offset" + / "language-tag" + / iana-token ; registered as described in section 12 + / x-name + +5.3. PREF + + The PREF parameter is OPTIONAL and is used to indicate that the + corresponding instance of a property is preferred by the vCard + author. Its value MUST be an integer between 1 and 100 that + quantifies the level of preference. Lower values correspond to a + higher level of preference, with 1 being most preferred. + + When the parameter is absent, the default MUST be to interpret the + property instance as being least preferred. + + Note that the value of this parameter is to be interpreted only in + relation to values assigned to other instances of the same property + in the same vCard. A given value, or the absence of a value, MUST + NOT be interpreted on its own. + + This parameter MAY be applied to any property that allows multiple + instances. + + ABNF: + + pref-param = "PREF=" (1*2DIGIT / "100") + ; An integer between 1 and 100. + + + + + +Perreault Standards Track [Page 17] + +RFC 6350 vCard August 2011 + + +5.4. ALTID + + The ALTID parameter is used to "tag" property instances as being + alternative representations of the same logical property. For + example, translations of a property in multiple languages generates + multiple property instances having different LANGUAGE (Section 5.1) + parameter that are tagged with the same ALTID value. + + This parameter's value is treated as an opaque string. Its sole + purpose is to be compared for equality against other ALTID parameter + values. + + Two property instances are considered alternative representations of + the same logical property if and only if their names as well as the + value of their ALTID parameters are identical. Property instances + without the ALTID parameter MUST NOT be considered an alternative + representation of any other property instance. Values for the ALTID + parameter are not globally unique: they MAY be reused for different + property names. + + Property instances having the same ALTID parameter value count as 1 + toward cardinality. Therefore, since N (Section 6.2.2) has + cardinality *1 and TITLE (Section 6.6.1) has cardinality *, these + three examples would be legal: + + N;ALTID=1;LANGUAGE=jp:;;;; + N;ALTID=1;LANGUAGE=en:Yamada;Taro;;; + ( denotes a UTF8-encoded Unicode character.) + + TITLE;ALTID=1;LANGUAGE=fr:Patron + TITLE;ALTID=1;LANGUAGE=en:Boss + + TITLE;ALTID=1;LANGUAGE=fr:Patron + TITLE;ALTID=1;LANGUAGE=en:Boss + TITLE;ALTID=2;LANGUAGE=en:Chief vCard Evangelist + + while this one would not: + + N;ALTID=1;LANGUAGE=jp:;;;; + N:Yamada;Taro;;; + (Two instances of the N property.) + + and these three would be legal but questionable: + + TITLE;ALTID=1;LANGUAGE=fr:Patron + TITLE;ALTID=2;LANGUAGE=en:Boss + (Should probably have the same ALTID value.) + + + + +Perreault Standards Track [Page 18] + +RFC 6350 vCard August 2011 + + + TITLE;ALTID=1;LANGUAGE=fr:Patron + TITLE:LANGUAGE=en:Boss + (Second line should probably have ALTID=1.) + + N;ALTID=1;LANGUAGE=jp:;;;; + N;ALTID=1;LANGUAGE=en:Yamada;Taro;;; + N;ALTID=1;LANGUAGE=en:Smith;John;;; + (The last line should probably have ALTID=2. But that would be + illegal because N has cardinality *1.) + + The ALTID property MAY also be used in may contexts other than with + the LANGUAGE parameter. Here's an example with two representations + of the same photo in different file formats: + + PHOTO;ALTID=1:data:image/jpeg;base64,... + PHOTO;ALTID=1;data:image/jp2;base64,... + + ABNF: + + altid-param = "ALTID=" param-value + +5.5. PID + + The PID parameter is used to identify a specific property among + multiple instances. It plays a role analogous to the UID property + (Section 6.7.6) on a per-property instead of per-vCard basis. It MAY + appear more than once in a given property. It MUST NOT appear on + properties that may have only one instance per vCard. Its value is + either a single small positive integer or a pair of small positive + integers separated by a dot. Multiple values may be encoded in a + single PID parameter by separating the values with a comma ",". See + Section 7 for more details on its usage. + + ABNF: + + pid-param = "PID=" pid-value *("," pid-value) + pid-value = 1*DIGIT ["." 1*DIGIT] + +5.6. TYPE + + The TYPE parameter has multiple, different uses. In general, it is a + way of specifying class characteristics of the associated property. + Most of the time, its value is a comma-separated subset of a + predefined enumeration. In this document, the following properties + make use of this parameter: FN, NICKNAME, PHOTO, ADR, TEL, EMAIL, + IMPP, LANG, TZ, GEO, TITLE, ROLE, LOGO, ORG, RELATED, CATEGORIES, + + + + + +Perreault Standards Track [Page 19] + +RFC 6350 vCard August 2011 + + + NOTE, SOUND, URL, KEY, FBURL, CALADRURI, and CALURI. The TYPE + parameter MUST NOT be applied on other properties defined in this + document. + + The "work" and "home" values act like tags. The "work" value implies + that the property is related to an individual's work place, while the + "home" value implies that the property is related to an individual's + personal life. When neither "work" nor "home" is present, it is + implied that the property is related to both an individual's work + place and personal life in the case that the KIND property's value is + "individual", or to none in other cases. + + ABNF: + + type-param = "TYPE=" type-value *("," type-value) + + type-value = "work" / "home" / type-param-tel + / type-param-related / iana-token / x-name + ; This is further defined in individual property sections. + +5.7. MEDIATYPE + + The MEDIATYPE parameter is used with properties whose value is a URI. + Its use is OPTIONAL. It provides a hint to the vCard consumer + application about the media type [RFC2046] of the resource identified + by the URI. Some URI schemes do not need this parameter. For + example, the "data" scheme allows the media type to be explicitly + indicated as part of the URI [RFC2397]. Another scheme, "http", + provides the media type as part of the URI resolution process, with + the Content-Type HTTP header [RFC2616]. The MEDIATYPE parameter is + intended to be used with URI schemes that do not provide such + functionality (e.g., "ftp" [RFC1738]). + + ABNF: + + mediatype-param = "MEDIATYPE=" mediatype + mediatype = type-name "/" subtype-name *( ";" attribute "=" value ) + ; "attribute" and "value" are from [RFC2045] + ; "type-name" and "subtype-name" are from [RFC4288] + +5.8. CALSCALE + + The CALSCALE parameter is identical to the CALSCALE property in + iCalendar (see [RFC5545], Section 3.7.1). It is used to define the + calendar system in which a date or date-time value is expressed. The + only value specified by iCalendar is "gregorian", which stands for + the Gregorian system. It is the default when the parameter is + absent. Additional values may be defined in extension documents and + + + +Perreault Standards Track [Page 20] + +RFC 6350 vCard August 2011 + + + registered with IANA (see Section 10.3.4). A vCard implementation + MUST ignore properties with a CALSCALE parameter value that it does + not understand. + + ABNF: + + calscale-param = "CALSCALE=" calscale-value + + calscale-value = "gregorian" / iana-token / x-name + +5.9. SORT-AS + + The "sort-as" parameter is used to specify the string to be used for + national-language-specific sorting. Without this information, + sorting algorithms could incorrectly sort this vCard within a + sequence of sorted vCards. When this property is present in a vCard, + then the given strings are used for sorting the vCard. + + This parameter's value is a comma-separated list that MUST have as + many or fewer elements as the corresponding property value has + components. This parameter's value is case-sensitive. + + ABNF: + + sort-as-param = "SORT-AS=" sort-as-value + + sort-as-value = param-value *("," param-value) + + Examples: For the case of surname and given name sorting, the + following examples define common sort string usage with the N + property. + + FN:Rene van der Harten + N;SORT-AS="Harten,Rene":van der Harten;Rene,J.;Sir;R.D.O.N. + + FN:Robert Pau Shou Chang + N;SORT-AS="Pau Shou Chang,Robert":Shou Chang;Robert,Pau;; + + FN:Osamu Koura + N;SORT-AS="Koura,Osamu":Koura;Osamu;; + + FN:Oscar del Pozo + N;SORT-AS="Pozo,Oscar":del Pozo Triscon;Oscar;; + + FN:Chistine d'Aboville + N;SORT-AS="Aboville,Christine":d'Aboville;Christine;; + + + + + +Perreault Standards Track [Page 21] + +RFC 6350 vCard August 2011 + + + FN:H. James de Mann + N;SORT-AS="Mann,James":de Mann;Henry,James;; + + If sorted by surname, the results would be: + + Christine d'Aboville + Rene van der Harten + Osamu Koura + H. James de Mann + Robert Pau Shou Chang + Oscar del Pozo + + If sorted by given name, the results would be: + + Christine d'Aboville + H. James de Mann + Osamu Koura + Oscar del Pozo + Rene van der Harten + Robert Pau Shou Chang + +5.10. GEO + + The GEO parameter can be used to indicate global positioning + information that is specific to an address. Its value is the same as + that of the GEO property (see Section 6.5.2). + + ABNF: + + geo-parameter = "GEO=" DQUOTE URI DQUOTE + +5.11. TZ + + The TZ parameter can be used to indicate time zone information that + is specific to an address. Its value is the same as that of the TZ + property. + + ABNF: + + tz-parameter = "TZ=" (param-value / DQUOTE URI DQUOTE) + + + + + + + + + + + +Perreault Standards Track [Page 22] + +RFC 6350 vCard August 2011 + + +6. vCard Properties + + What follows is an enumeration of the standard vCard properties. + +6.1. General Properties + +6.1.1. BEGIN + + Purpose: To denote the beginning of a syntactic entity within a + text/vcard content-type. + + Value type: text + + Cardinality: 1 + + Special notes: The content entity MUST begin with the BEGIN property + with a value of "VCARD". The value is case-insensitive. + + The BEGIN property is used in conjunction with the END property to + delimit an entity containing a related set of properties within a + text/vcard content-type. This construct can be used instead of + including multiple vCards as body parts inside of a multipart/ + alternative MIME message. It is provided for applications that + wish to define content that can contain multiple entities within + the same text/vcard content-type or to define content that can be + identifiable outside of a MIME environment. + + ABNF: + + BEGIN-param = 0" " ; no parameter allowed + BEGIN-value = "VCARD" + + Example: + + BEGIN:VCARD + +6.1.2. END + + Purpose: To denote the end of a syntactic entity within a text/vcard + content-type. + + Value type: text + + Cardinality: 1 + + Special notes: The content entity MUST end with the END type with a + value of "VCARD". The value is case-insensitive. + + + + +Perreault Standards Track [Page 23] + +RFC 6350 vCard August 2011 + + + The END property is used in conjunction with the BEGIN property to + delimit an entity containing a related set of properties within a + text/vcard content-type. This construct can be used instead of or + in addition to wrapping separate sets of information inside + additional MIME headers. It is provided for applications that + wish to define content that can contain multiple entities within + the same text/vcard content-type or to define content that can be + identifiable outside of a MIME environment. + + ABNF: + + END-param = 0" " ; no parameter allowed + END-value = "VCARD" + + Example: + + END:VCARD + +6.1.3. SOURCE + + Purpose: To identify the source of directory information contained + in the content type. + + Value type: uri + + Cardinality: * + + Special notes: The SOURCE property is used to provide the means by + which applications knowledgable in the given directory service + protocol can obtain additional or more up-to-date information from + the directory service. It contains a URI as defined in [RFC3986] + and/or other information referencing the vCard to which the + information pertains. When directory information is available + from more than one source, the sending entity can pick what it + considers to be the best source, or multiple SOURCE properties can + be included. + + ABNF: + + SOURCE-param = "VALUE=uri" / pid-param / pref-param / altid-param + / mediatype-param / any-param + SOURCE-value = URI + + Examples: + + SOURCE:ldap://ldap.example.com/cn=Babs%20Jensen,%20o=Babsco,%20c=US + + + + + +Perreault Standards Track [Page 24] + +RFC 6350 vCard August 2011 + + + SOURCE:http://directory.example.com/addressbooks/jdoe/ + Jean%20Dupont.vcf + +6.1.4. KIND + + Purpose: To specify the kind of object the vCard represents. + + Value type: A single text value. + + Cardinality: *1 + + Special notes: The value may be one of the following: + + "individual" for a vCard representing a single person or entity. + This is the default kind of vCard. + + "group" for a vCard representing a group of persons or entities. + The group's member entities can be other vCards or other types + of entities, such as email addresses or web sites. A group + vCard will usually contain MEMBER properties to specify the + members of the group, but it is not required to. A group vCard + without MEMBER properties can be considered an abstract + grouping, or one whose members are known empirically (perhaps + "IETF Participants" or "Republican U.S. Senators"). + + All properties in a group vCard apply to the group as a whole, + and not to any particular MEMBER. For example, an EMAIL + property might specify the address of a mailing list associated + with the group, and an IMPP property might refer to a group + chat room. + + "org" for a vCard representing an organization. An organization + vCard will not (in fact, MUST NOT) contain MEMBER properties, + and so these are something of a cross between "individual" and + "group". An organization is a single entity, but not a person. + It might represent a business or government, a department or + division within a business or government, a club, an + association, or the like. + + All properties in an organization vCard apply to the + organization as a whole, as is the case with a group vCard. + For example, an EMAIL property might specify the address of a + contact point for the organization. + + + + + + + + +Perreault Standards Track [Page 25] + +RFC 6350 vCard August 2011 + + + "location" for a named geographical place. A location vCard will + usually contain a GEO property, but it is not required to. A + location vCard without a GEO property can be considered an + abstract location, or one whose definition is known empirically + (perhaps "New England" or "The Seashore"). + + All properties in a location vCard apply to the location + itself, and not with any entity that might exist at that + location. For example, in a vCard for an office building, an + ADR property might give the mailing address for the building, + and a TEL property might specify the telephone number of the + receptionist. + + An x-name. vCards MAY include private or experimental values for + KIND. Remember that x-name values are not intended for general + use and are unlikely to interoperate. + + An iana-token. Additional values may be registered with IANA (see + Section 10.3.4). A new value's specification document MUST + specify which properties make sense for that new kind of vCard + and which do not. + + Implementations MUST support the specific string values defined + above. If this property is absent, "individual" MUST be assumed + as the default. If this property is present but the + implementation does not understand its value (the value is an + x-name or iana-token that the implementation does not support), + the implementation SHOULD act in a neutral way, which usually + means treating the vCard as though its kind were "individual". + The presence of MEMBER properties MAY, however, be taken as an + indication that the unknown kind is an extension of "group". + + Clients often need to visually distinguish contacts based on what + they represent, and the KIND property provides a direct way for + them to do so. For example, when displaying contacts in a list, + an icon could be displayed next to each one, using distinctive + icons for the different kinds; a client might use an outline of a + single person to represent an "individual", an outline of multiple + people to represent a "group", and so on. Alternatively, or in + addition, a client might choose to segregate different kinds of + vCards to different panes, tabs, or selections in the user + interface. + + Some clients might also make functional distinctions among the + kinds, ignoring "location" vCards for some purposes and + considering only "location" vCards for others. + + + + + +Perreault Standards Track [Page 26] + +RFC 6350 vCard August 2011 + + + When designing those sorts of visual and functional distinctions, + client implementations have to decide how to fit unsupported kinds + into the scheme. What icon is used for them? The one for + "individual"? A unique one, such as an icon of a question mark? + Which tab do they go into? It is beyond the scope of this + specification to answer these questions, but these are things + implementers need to consider. + + ABNF: + + KIND-param = "VALUE=text" / any-param + KIND-value = "individual" / "group" / "org" / "location" + / iana-token / x-name + + Example: + + This represents someone named Jane Doe working in the marketing + department of the North American division of ABC Inc. + + BEGIN:VCARD + VERSION:4.0 + KIND:individual + FN:Jane Doe + ORG:ABC\, Inc.;North American Division;Marketing + END:VCARD + + This represents the department itself, commonly known as ABC + Marketing. + + BEGIN:VCARD + VERSION:4.0 + KIND:org + FN:ABC Marketing + ORG:ABC\, Inc.;North American Division;Marketing + END:VCARD + +6.1.5. XML + + Purpose: To include extended XML-encoded vCard data in a plain + vCard. + + Value type: A single text value. + + Cardinality: * + + Special notes: The content of this property is a single XML 1.0 + [W3C.REC-xml-20081126] element whose namespace MUST be explicitly + specified using the xmlns attribute and MUST NOT be the vCard 4 + + + +Perreault Standards Track [Page 27] + +RFC 6350 vCard August 2011 + + + namespace ("urn:ietf:params:xml:ns:vcard-4.0"). (This implies + that it cannot duplicate a standard vCard property.) The element + is to be interpreted as if it was contained in a element, + as defined in [RFC6351]. + + The fragment is subject to normal line folding and escaping, i.e., + replace all backslashes with "\\", then replace all newlines with + "\n", then fold long lines. + + Support for this property is OPTIONAL, but implementations of this + specification MUST preserve instances of this property when + propagating vCards. + + See [RFC6351] for more information on the intended use of this + property. + + ABNF: + + XML-param = "VALUE=text" / altid-param + XML-value = text + +6.2. Identification Properties + + These types are used to capture information associated with the + identification and naming of the entity associated with the vCard. + +6.2.1. FN + + Purpose: To specify the formatted text corresponding to the name of + the object the vCard represents. + + Value type: A single text value. + + Cardinality: 1* + + Special notes: This property is based on the semantics of the X.520 + Common Name attribute [CCITT.X520.1988]. The property MUST be + present in the vCard object. + + ABNF: + + FN-param = "VALUE=text" / type-param / language-param / altid-param + / pid-param / pref-param / any-param + FN-value = text + + Example: + + FN:Mr. John Q. Public\, Esq. + + + +Perreault Standards Track [Page 28] + +RFC 6350 vCard August 2011 + + +6.2.2. N + + Purpose: To specify the components of the name of the object the + vCard represents. + + Value type: A single structured text value. Each component can have + multiple values. + + Cardinality: *1 + + Special note: The structured property value corresponds, in + sequence, to the Family Names (also known as surnames), Given + Names, Additional Names, Honorific Prefixes, and Honorific + Suffixes. The text components are separated by the SEMICOLON + character (U+003B). Individual text components can include + multiple text values separated by the COMMA character (U+002C). + This property is based on the semantics of the X.520 individual + name attributes [CCITT.X520.1988]. The property SHOULD be present + in the vCard object when the name of the object the vCard + represents follows the X.520 model. + + The SORT-AS parameter MAY be applied to this property. + + ABNF: + + N-param = "VALUE=text" / sort-as-param / language-param + / altid-param / any-param + N-value = list-component 4(";" list-component) + + Examples: + + N:Public;John;Quinlan;Mr.;Esq. + + N:Stevenson;John;Philip,Paul;Dr.;Jr.,M.D.,A.C.P. + +6.2.3. NICKNAME + + Purpose: To specify the text corresponding to the nickname of the + object the vCard represents. + + Value type: One or more text values separated by a COMMA character + (U+002C). + + Cardinality: * + + + + + + + +Perreault Standards Track [Page 29] + +RFC 6350 vCard August 2011 + + + Special note: The nickname is the descriptive name given instead of + or in addition to the one belonging to the object the vCard + represents. It can also be used to specify a familiar form of a + proper name specified by the FN or N properties. + + ABNF: + + NICKNAME-param = "VALUE=text" / type-param / language-param + / altid-param / pid-param / pref-param / any-param + NICKNAME-value = text-list + + Examples: + + NICKNAME:Robbie + + NICKNAME:Jim,Jimmie + + NICKNAME;TYPE=work:Boss + +6.2.4. PHOTO + + Purpose: To specify an image or photograph information that + annotates some aspect of the object the vCard represents. + + Value type: A single URI. + + Cardinality: * + + ABNF: + + PHOTO-param = "VALUE=uri" / altid-param / type-param + / mediatype-param / pref-param / pid-param / any-param + PHOTO-value = URI + + Examples: + + PHOTO:http://www.example.com/pub/photos/jqpublic.gif + + PHOTO:data:image/jpeg;base64,MIICajCCAdOgAwIBAgICBEUwDQYJKoZIhv + AQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlIENvbW11bm + ljYXRpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZvcm1hdGlvbiBTeXN0 + <...remainder of base64-encoded data...> + +6.2.5. BDAY + + Purpose: To specify the birth date of the object the vCard + represents. + + + + +Perreault Standards Track [Page 30] + +RFC 6350 vCard August 2011 + + + Value type: The default is a single date-and-or-time value. It can + also be reset to a single text value. + + Cardinality: *1 + + ABNF: + + BDAY-param = BDAY-param-date / BDAY-param-text + BDAY-value = date-and-or-time / text + ; Value and parameter MUST match. + + BDAY-param-date = "VALUE=date-and-or-time" + BDAY-param-text = "VALUE=text" / language-param + + BDAY-param =/ altid-param / calscale-param / any-param + ; calscale-param can only be present when BDAY-value is + ; date-and-or-time and actually contains a date or date-time. + + Examples: + + BDAY:19960415 + BDAY:--0415 + BDAY;19531015T231000Z + BDAY;VALUE=text:circa 1800 + +6.2.6. ANNIVERSARY + + Purpose: The date of marriage, or equivalent, of the object the + vCard represents. + + Value type: The default is a single date-and-or-time value. It can + also be reset to a single text value. + + Cardinality: *1 + + ABNF: + + ANNIVERSARY-param = "VALUE=" ("date-and-or-time" / "text") + ANNIVERSARY-value = date-and-or-time / text + ; Value and parameter MUST match. + + ANNIVERSARY-param =/ altid-param / calscale-param / any-param + ; calscale-param can only be present when ANNIVERSARY-value is + ; date-and-or-time and actually contains a date or date-time. + + Examples: + + ANNIVERSARY:19960415 + + + +Perreault Standards Track [Page 31] + +RFC 6350 vCard August 2011 + + +6.2.7. GENDER + + Purpose: To specify the components of the sex and gender identity of + the object the vCard represents. + + Value type: A single structured value with two components. Each + component has a single text value. + + Cardinality: *1 + + Special notes: The components correspond, in sequence, to the sex + (biological), and gender identity. Each component is optional. + + Sex component: A single letter. M stands for "male", F stands + for "female", O stands for "other", N stands for "none or not + applicable", U stands for "unknown". + + Gender identity component: Free-form text. + + ABNF: + + GENDER-param = "VALUE=text" / any-param + GENDER-value = sex [";" text] + + sex = "" / "M" / "F" / "O" / "N" / "U" + + Examples: + + GENDER:M + GENDER:F + GENDER:M;Fellow + GENDER:F;grrrl + GENDER:O;intersex + GENDER:;it's complicated + +6.3. Delivery Addressing Properties + + These types are concerned with information related to the delivery + addressing or label for the vCard object. + +6.3.1. ADR + + Purpose: To specify the components of the delivery address for the + vCard object. + + Value type: A single structured text value, separated by the + SEMICOLON character (U+003B). + + + + +Perreault Standards Track [Page 32] + +RFC 6350 vCard August 2011 + + + Cardinality: * + + Special notes: The structured type value consists of a sequence of + address components. The component values MUST be specified in + their corresponding position. The structured type value + corresponds, in sequence, to + the post office box; + the extended address (e.g., apartment or suite number); + the street address; + the locality (e.g., city); + the region (e.g., state or province); + the postal code; + the country name (full name in the language specified in + Section 5.1). + + When a component value is missing, the associated component + separator MUST still be specified. + + Experience with vCard 3 has shown that the first two components + (post office box and extended address) are plagued with many + interoperability issues. To ensure maximal interoperability, + their values SHOULD be empty. + + The text components are separated by the SEMICOLON character + (U+003B). Where it makes semantic sense, individual text + components can include multiple text values (e.g., a "street" + component with multiple lines) separated by the COMMA character + (U+002C). + + The property can include the "PREF" parameter to indicate the + preferred delivery address when more than one address is + specified. + + The GEO and TZ parameters MAY be used with this property. + + The property can also include a "LABEL" parameter to present a + delivery address label for the address. Its value is a plain-text + string representing the formatted address. Newlines are encoded + as \n, as they are for property values. + + ABNF: + + label-param = "LABEL=" param-value + + ADR-param = "VALUE=text" / label-param / language-param + / geo-parameter / tz-parameter / altid-param / pid-param + / pref-param / type-param / any-param + + + + +Perreault Standards Track [Page 33] + +RFC 6350 vCard August 2011 + + + ADR-value = ADR-component-pobox ";" ADR-component-ext ";" + ADR-component-street ";" ADR-component-locality ";" + ADR-component-region ";" ADR-component-code ";" + ADR-component-country + ADR-component-pobox = list-component + ADR-component-ext = list-component + ADR-component-street = list-component + ADR-component-locality = list-component + ADR-component-region = list-component + ADR-component-code = list-component + ADR-component-country = list-component + + Example: In this example, the post office box and the extended + address are absent. + + ADR;GEO="geo:12.3457,78.910";LABEL="Mr. John Q. Public, Esq.\n + Mail Drop: TNE QB\n123 Main Street\nAny Town, CA 91921-1234\n + U.S.A.":;;123 Main Street;Any Town;CA;91921-1234;U.S.A. + +6.4. Communications Properties + + These properties describe information about how to communicate with + the object the vCard represents. + +6.4.1. TEL + + Purpose: To specify the telephone number for telephony communication + with the object the vCard represents. + + Value type: By default, it is a single free-form text value (for + backward compatibility with vCard 3), but it SHOULD be reset to a + URI value. It is expected that the URI scheme will be "tel", as + specified in [RFC3966], but other schemes MAY be used. + + Cardinality: * + + Special notes: This property is based on the X.520 Telephone Number + attribute [CCITT.X520.1988]. + + The property can include the "PREF" parameter to indicate a + preferred-use telephone number. + + The property can include the parameter "TYPE" to specify intended + use for the telephone number. The predefined values for the TYPE + parameter are: + + + + + + +Perreault Standards Track [Page 34] + +RFC 6350 vCard August 2011 + + + +-----------+-------------------------------------------------------+ + | Value | Description | + +-----------+-------------------------------------------------------+ + | text | Indicates that the telephone number supports text | + | | messages (SMS). | + | voice | Indicates a voice telephone number. | + | fax | Indicates a facsimile telephone number. | + | cell | Indicates a cellular or mobile telephone number. | + | video | Indicates a video conferencing telephone number. | + | pager | Indicates a paging device telephone number. | + | textphone | Indicates a telecommunication device for people with | + | | hearing or speech difficulties. | + +-----------+-------------------------------------------------------+ + + The default type is "voice". These type parameter values can be + specified as a parameter list (e.g., TYPE=text;TYPE=voice) or as a + value list (e.g., TYPE="text,voice"). The default can be + overridden to another set of values by specifying one or more + alternate values. For example, the default TYPE of "voice" can be + reset to a VOICE and FAX telephone number by the value list + TYPE="voice,fax". + + If this property's value is a URI that can also be used for + instant messaging, the IMPP (Section 6.4.3) property SHOULD be + used in addition to this property. + + ABNF: + + TEL-param = TEL-text-param / TEL-uri-param + TEL-value = TEL-text-value / TEL-uri-value + ; Value and parameter MUST match. + + TEL-text-param = "VALUE=text" + TEL-text-value = text + + TEL-uri-param = "VALUE=uri" / mediatype-param + TEL-uri-value = URI + + TEL-param =/ type-param / pid-param / pref-param / altid-param + / any-param + + type-param-tel = "text" / "voice" / "fax" / "cell" / "video" + / "pager" / "textphone" / iana-token / x-name + ; type-param-tel MUST NOT be used with a property other than TEL. + + + + + + + +Perreault Standards Track [Page 35] + +RFC 6350 vCard August 2011 + + + Example: + + TEL;VALUE=uri;PREF=1;TYPE="voice,home":tel:+1-555-555-5555;ext=5555 + TEL;VALUE=uri;TYPE=home:tel:+33-01-23-45-67 + +6.4.2. EMAIL + + Purpose: To specify the electronic mail address for communication + with the object the vCard represents. + + Value type: A single text value. + + Cardinality: * + + Special notes: The property can include tye "PREF" parameter to + indicate a preferred-use email address when more than one is + specified. + + Even though the value is free-form UTF-8 text, it is likely to be + interpreted by a Mail User Agent (MUA) as an "addr-spec", as + defined in [RFC5322], Section 3.4.1. Readers should also be aware + of the current work toward internationalized email addresses + [RFC5335bis]. + + ABNF: + + EMAIL-param = "VALUE=text" / pid-param / pref-param / type-param + / altid-param / any-param + EMAIL-value = text + + Example: + + EMAIL;TYPE=work:jqpublic@xyz.example.com + + EMAIL;PREF=1:jane_doe@example.com + +6.4.3. IMPP + + Purpose: To specify the URI for instant messaging and presence + protocol communications with the object the vCard represents. + + Value type: A single URI. + + Cardinality: * + + Special notes: The property may include the "PREF" parameter to + indicate that this is a preferred address and has the same + semantics as the "PREF" parameter in a TEL property. + + + +Perreault Standards Track [Page 36] + +RFC 6350 vCard August 2011 + + + If this property's value is a URI that can be used for voice + and/or video, the TEL property (Section 6.4.1) SHOULD be used in + addition to this property. + + This property is adapted from [RFC4770], which is made obsolete by + this document. + + ABNF: + + IMPP-param = "VALUE=uri" / pid-param / pref-param / type-param + / mediatype-param / altid-param / any-param + IMPP-value = URI + + Example: + + IMPP;PREF=1:xmpp:alice@example.com + +6.4.4. LANG + + Purpose: To specify the language(s) that may be used for contacting + the entity associated with the vCard. + + Value type: A single language-tag value. + + Cardinality: * + + ABNF: + + LANG-param = "VALUE=language-tag" / pid-param / pref-param + / altid-param / type-param / any-param + LANG-value = Language-Tag + + Example: + + LANG;TYPE=work;PREF=1:en + LANG;TYPE=work;PREF=2:fr + LANG;TYPE=home:fr + +6.5. Geographical Properties + + These properties are concerned with information associated with + geographical positions or regions associated with the object the + vCard represents. + +6.5.1. TZ + + Purpose: To specify information related to the time zone of the + object the vCard represents. + + + +Perreault Standards Track [Page 37] + +RFC 6350 vCard August 2011 + + + Value type: The default is a single text value. It can also be + reset to a single URI or utc-offset value. + + Cardinality: * + + Special notes: It is expected that names from the public-domain + Olson database [TZ-DB] will be used, but this is not a + restriction. See also [IANA-TZ]. + + Efforts are currently being directed at creating a standard URI + scheme for expressing time zone information. Usage of such a + scheme would ensure a high level of interoperability between + implementations that support it. + + Note that utc-offset values SHOULD NOT be used because the UTC + offset varies with time -- not just because of the usual daylight + saving time shifts that occur in may regions, but often entire + regions will "re-base" their overall offset. The actual offset + may be +/- 1 hour (or perhaps a little more) than the one given. + + ABNF: + + TZ-param = "VALUE=" ("text" / "uri" / "utc-offset") + TZ-value = text / URI / utc-offset + ; Value and parameter MUST match. + + TZ-param =/ altid-param / pid-param / pref-param / type-param + / mediatype-param / any-param + + Examples: + + TZ:Raleigh/North America + + TZ;VALUE=utc-offset:-0500 + ; Note: utc-offset format is NOT RECOMMENDED. + +6.5.2. GEO + + Purpose: To specify information related to the global positioning of + the object the vCard represents. + + Value type: A single URI. + + Cardinality: * + + Special notes: The "geo" URI scheme [RFC5870] is particularly well + suited for this property, but other schemes MAY be used. + + + + +Perreault Standards Track [Page 38] + +RFC 6350 vCard August 2011 + + + ABNF: + + GEO-param = "VALUE=uri" / pid-param / pref-param / type-param + / mediatype-param / altid-param / any-param + GEO-value = URI + + Example: + + GEO:geo:37.386013,-122.082932 + +6.6. Organizational Properties + + These properties are concerned with information associated with + characteristics of the organization or organizational units of the + object that the vCard represents. + +6.6.1. TITLE + + Purpose: To specify the position or job of the object the vCard + represents. + + Value type: A single text value. + + Cardinality: * + + Special notes: This property is based on the X.520 Title attribute + [CCITT.X520.1988]. + + ABNF: + + TITLE-param = "VALUE=text" / language-param / pid-param + / pref-param / altid-param / type-param / any-param + TITLE-value = text + + Example: + + TITLE:Research Scientist + +6.6.2. ROLE + + Purpose: To specify the function or part played in a particular + situation by the object the vCard represents. + + Value type: A single text value. + + Cardinality: * + + + + + +Perreault Standards Track [Page 39] + +RFC 6350 vCard August 2011 + + + Special notes: This property is based on the X.520 Business Category + explanatory attribute [CCITT.X520.1988]. This property is + included as an organizational type to avoid confusion with the + semantics of the TITLE property and incorrect usage of that + property when the semantics of this property is intended. + + ABNF: + + ROLE-param = "VALUE=text" / language-param / pid-param / pref-param + / type-param / altid-param / any-param + ROLE-value = text + + Example: + + ROLE:Project Leader + +6.6.3. LOGO + + Purpose: To specify a graphic image of a logo associated with the + object the vCard represents. + + Value type: A single URI. + + Cardinality: * + + ABNF: + + LOGO-param = "VALUE=uri" / language-param / pid-param / pref-param + / type-param / mediatype-param / altid-param / any-param + LOGO-value = URI + + Examples: + + LOGO:http://www.example.com/pub/logos/abccorp.jpg + + LOGO:data:image/jpeg;base64,MIICajCCAdOgAwIBAgICBEUwDQYJKoZIhvc + AQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlIENvbW11bm + ljYXRpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZvcm1hdGlvbiBTeXN0 + <...the remainder of base64-encoded data...> + +6.6.4. ORG + + Purpose: To specify the organizational name and units associated + with the vCard. + + Value type: A single structured text value consisting of components + separated by the SEMICOLON character (U+003B). + + + + +Perreault Standards Track [Page 40] + +RFC 6350 vCard August 2011 + + + Cardinality: * + + Special notes: The property is based on the X.520 Organization Name + and Organization Unit attributes [CCITT.X520.1988]. The property + value is a structured type consisting of the organization name, + followed by zero or more levels of organizational unit names. + + The SORT-AS parameter MAY be applied to this property. + + ABNF: + + ORG-param = "VALUE=text" / sort-as-param / language-param + / pid-param / pref-param / altid-param / type-param + / any-param + ORG-value = component *(";" component) + + Example: A property value consisting of an organizational name, + organizational unit #1 name, and organizational unit #2 name. + + ORG:ABC\, Inc.;North American Division;Marketing + +6.6.5. MEMBER + + Purpose: To include a member in the group this vCard represents. + + Value type: A single URI. It MAY refer to something other than a + vCard object. For example, an email distribution list could + employ the "mailto" URI scheme [RFC6068] for efficiency. + + Cardinality: * + + Special notes: This property MUST NOT be present unless the value of + the KIND property is "group". + + ABNF: + + MEMBER-param = "VALUE=uri" / pid-param / pref-param / altid-param + / mediatype-param / any-param + MEMBER-value = URI + + + + + + + + + + + + +Perreault Standards Track [Page 41] + +RFC 6350 vCard August 2011 + + + Examples: + + BEGIN:VCARD + VERSION:4.0 + KIND:group + FN:The Doe family + MEMBER:urn:uuid:03a0e51f-d1aa-4385-8a53-e29025acd8af + MEMBER:urn:uuid:b8767877-b4a1-4c70-9acc-505d3819e519 + END:VCARD + BEGIN:VCARD + VERSION:4.0 + FN:John Doe + UID:urn:uuid:03a0e51f-d1aa-4385-8a53-e29025acd8af + END:VCARD + BEGIN:VCARD + VERSION:4.0 + FN:Jane Doe + UID:urn:uuid:b8767877-b4a1-4c70-9acc-505d3819e519 + END:VCARD + + BEGIN:VCARD + VERSION:4.0 + KIND:group + FN:Funky distribution list + MEMBER:mailto:subscriber1@example.com + MEMBER:xmpp:subscriber2@example.com + MEMBER:sip:subscriber3@example.com + MEMBER:tel:+1-418-555-5555 + END:VCARD + +6.6.6. RELATED + + Purpose: To specify a relationship between another entity and the + entity represented by this vCard. + + Value type: A single URI. It can also be reset to a single text + value. The text value can be used to specify textual information. + + Cardinality: * + + Special notes: The TYPE parameter MAY be used to characterize the + related entity. It contains a comma-separated list of values that + are registered with IANA as described in Section 10.2. The + registry is pre-populated with the values defined in [xfn]. This + document also specifies two additional values: + + agent: an entity who may sometimes act on behalf of the entity + associated with the vCard. + + + +Perreault Standards Track [Page 42] + +RFC 6350 vCard August 2011 + + + emergency: indicates an emergency contact + + ABNF: + + RELATED-param = RELATED-param-uri / RELATED-param-text + RELATED-value = URI / text + ; Parameter and value MUST match. + + RELATED-param-uri = "VALUE=uri" / mediatype-param + RELATED-param-text = "VALUE=text" / language-param + + RELATED-param =/ pid-param / pref-param / altid-param / type-param + / any-param + + type-param-related = related-type-value *("," related-type-value) + ; type-param-related MUST NOT be used with a property other than + ; RELATED. + + related-type-value = "contact" / "acquaintance" / "friend" / "met" + / "co-worker" / "colleague" / "co-resident" + / "neighbor" / "child" / "parent" + / "sibling" / "spouse" / "kin" / "muse" + / "crush" / "date" / "sweetheart" / "me" + / "agent" / "emergency" + + Examples: + + RELATED;TYPE=friend:urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6 + RELATED;TYPE=contact:http://example.com/directory/jdoe.vcf + RELATED;TYPE=co-worker;VALUE=text:Please contact my assistant Jane + Doe for any inquiries. + +6.7. Explanatory Properties + + These properties are concerned with additional explanations, such as + that related to informational notes or revisions specific to the + vCard. + +6.7.1. CATEGORIES + + Purpose: To specify application category information about the + vCard, also known as "tags". + + Value type: One or more text values separated by a COMMA character + (U+002C). + + Cardinality: * + + + + +Perreault Standards Track [Page 43] + +RFC 6350 vCard August 2011 + + + ABNF: + + CATEGORIES-param = "VALUE=text" / pid-param / pref-param + / type-param / altid-param / any-param + CATEGORIES-value = text-list + + Example: + + CATEGORIES:TRAVEL AGENT + + CATEGORIES:INTERNET,IETF,INDUSTRY,INFORMATION TECHNOLOGY + +6.7.2. NOTE + + Purpose: To specify supplemental information or a comment that is + associated with the vCard. + + Value type: A single text value. + + Cardinality: * + + Special notes: The property is based on the X.520 Description + attribute [CCITT.X520.1988]. + + ABNF: + + NOTE-param = "VALUE=text" / language-param / pid-param / pref-param + / type-param / altid-param / any-param + NOTE-value = text + + Example: + + NOTE:This fax number is operational 0800 to 1715 + EST\, Mon-Fri. + +6.7.3. PRODID + + Purpose: To specify the identifier for the product that created the + vCard object. + + Type value: A single text value. + + Cardinality: *1 + + Special notes: Implementations SHOULD use a method such as that + specified for Formal Public Identifiers in [ISO9070] or for + Universal Resource Names in [RFC3406] to ensure that the text + value is unique. + + + +Perreault Standards Track [Page 44] + +RFC 6350 vCard August 2011 + + + ABNF: + + PRODID-param = "VALUE=text" / any-param + PRODID-value = text + + Example: + + PRODID:-//ONLINE DIRECTORY//NONSGML Version 1//EN + +6.7.4. REV + + Purpose: To specify revision information about the current vCard. + + Value type: A single timestamp value. + + Cardinality: *1 + + Special notes: The value distinguishes the current revision of the + information in this vCard for other renditions of the information. + + ABNF: + + REV-param = "VALUE=timestamp" / any-param + REV-value = timestamp + + Example: + + REV:19951031T222710Z + +6.7.5. SOUND + + Purpose: To specify a digital sound content information that + annotates some aspect of the vCard. This property is often used + to specify the proper pronunciation of the name property value of + the vCard. + + Value type: A single URI. + + Cardinality: * + + ABNF: + + SOUND-param = "VALUE=uri" / language-param / pid-param / pref-param + / type-param / mediatype-param / altid-param + / any-param + SOUND-value = URI + + + + + +Perreault Standards Track [Page 45] + +RFC 6350 vCard August 2011 + + + Example: + + SOUND:CID:JOHNQPUBLIC.part8.19960229T080000.xyzMail@example.com + + SOUND:data:audio/basic;base64,MIICajCCAdOgAwIBAgICBEUwDQYJKoZIh + AQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlIENvbW11bm + ljYXRpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZvcm1hdGlvbiBTeXN0 + <...the remainder of base64-encoded data...> + +6.7.6. UID + + Purpose: To specify a value that represents a globally unique + identifier corresponding to the entity associated with the vCard. + + Value type: A single URI value. It MAY also be reset to free-form + text. + + Cardinality: *1 + + Special notes: This property is used to uniquely identify the object + that the vCard represents. The "uuid" URN namespace defined in + [RFC4122] is particularly well suited to this task, but other URI + schemes MAY be used. Free-form text MAY also be used. + + ABNF: + + UID-param = UID-uri-param / UID-text-param + UID-value = UID-uri-value / UID-text-value + ; Value and parameter MUST match. + + UID-uri-param = "VALUE=uri" + UID-uri-value = URI + + UID-text-param = "VALUE=text" + UID-text-value = text + + UID-param =/ any-param + + Example: + + UID:urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6 + + + + + + + + + + +Perreault Standards Track [Page 46] + +RFC 6350 vCard August 2011 + + +6.7.7. CLIENTPIDMAP + + Purpose: To give a global meaning to a local PID source identifier. + + Value type: A semicolon-separated pair of values. The first field + is a small integer corresponding to the second field of a PID + parameter instance. The second field is a URI. The "uuid" URN + namespace defined in [RFC4122] is particularly well suited to this + task, but other URI schemes MAY be used. + + Cardinality: * + + Special notes: PID source identifiers (the source identifier is the + second field in a PID parameter instance) are small integers that + only have significance within the scope of a single vCard + instance. Each distinct source identifier present in a vCard MUST + have an associated CLIENTPIDMAP. See Section 7 for more details + on the usage of CLIENTPIDMAP. + + PID source identifiers MUST be strictly positive. Zero is not + allowed. + + As a special exception, the PID parameter MUST NOT be applied to + this property. + + ABNF: + + CLIENTPIDMAP-param = any-param + CLIENTPIDMAP-value = 1*DIGIT ";" URI + + Example: + + TEL;PID=3.1,4.2;VALUE=uri:tel:+1-555-555-5555 + EMAIL;PID=4.1,5.2:jdoe@example.com + CLIENTPIDMAP:1;urn:uuid:3df403f4-5924-4bb7-b077-3c711d9eb34b + CLIENTPIDMAP:2;urn:uuid:d89c9c7a-2e1b-4832-82de-7e992d95faa5 + +6.7.8. URL + + Purpose: To specify a uniform resource locator associated with the + object to which the vCard refers. Examples for individuals + include personal web sites, blogs, and social networking site + identifiers. + + Cardinality: * + + Value type: A single uri value. + + + + +Perreault Standards Track [Page 47] + +RFC 6350 vCard August 2011 + + + ABNF: + + URL-param = "VALUE=uri" / pid-param / pref-param / type-param + / mediatype-param / altid-param / any-param + URL-value = URI + + Example: + + URL:http://example.org/restaurant.french/~chezchic.html + +6.7.9. VERSION + + Purpose: To specify the version of the vCard specification used to + format this vCard. + + Value type: A single text value. + + Cardinality: 1 + + Special notes: This property MUST be present in the vCard object, + and it must appear immediately after BEGIN:VCARD. The value MUST + be "4.0" if the vCard corresponds to this specification. Note + that earlier versions of vCard allowed this property to be placed + anywhere in the vCard object, or even to be absent. + + ABNF: + + VERSION-param = "VALUE=text" / any-param + VERSION-value = "4.0" + + Example: + + VERSION:4.0 + +6.8. Security Properties + + These properties are concerned with the security of communication + pathways or access to the vCard. + +6.8.1. KEY + + Purpose: To specify a public key or authentication certificate + associated with the object that the vCard represents. + + Value type: A single URI. It can also be reset to a text value. + + Cardinality: * + + + + +Perreault Standards Track [Page 48] + +RFC 6350 vCard August 2011 + + + ABNF: + + KEY-param = KEY-uri-param / KEY-text-param + KEY-value = KEY-uri-value / KEY-text-value + ; Value and parameter MUST match. + + KEY-uri-param = "VALUE=uri" / mediatype-param + KEY-uri-value = URI + + KEY-text-param = "VALUE=text" + KEY-text-value = text + + KEY-param =/ altid-param / pid-param / pref-param / type-param + / any-param + + Examples: + + KEY:http://www.example.com/keys/jdoe.cer + + KEY;MEDIATYPE=application/pgp-keys:ftp://example.com/keys/jdoe + + KEY:data:application/pgp-keys;base64,MIICajCCAdOgAwIBAgICBE + UwDQYJKoZIhvcNAQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05l + <... remainder of base64-encoded data ...> + +6.9. Calendar Properties + + These properties are further specified in [RFC2739]. + +6.9.1. FBURL + + Purpose: To specify the URI for the busy time associated with the + object that the vCard represents. + + Value type: A single URI value. + + Cardinality: * + + Special notes: Where multiple FBURL properties are specified, the + default FBURL property is indicated with the PREF parameter. The + FTP [RFC1738] or HTTP [RFC2616] type of URI points to an iCalendar + [RFC5545] object associated with a snapshot of the next few weeks + or months of busy time data. If the iCalendar object is + represented as a file or document, its file extension should be + ".ifb". + + + + + + +Perreault Standards Track [Page 49] + +RFC 6350 vCard August 2011 + + + ABNF: + + FBURL-param = "VALUE=uri" / pid-param / pref-param / type-param + / mediatype-param / altid-param / any-param + FBURL-value = URI + + Examples: + + FBURL;PREF=1:http://www.example.com/busy/janedoe + FBURL;MEDIATYPE=text/calendar:ftp://example.com/busy/project-a.ifb + +6.9.2. CALADRURI + + Purpose: To specify the calendar user address [RFC5545] to which a + scheduling request [RFC5546] should be sent for the object + represented by the vCard. + + Value type: A single URI value. + + Cardinality: * + + Special notes: Where multiple CALADRURI properties are specified, + the default CALADRURI property is indicated with the PREF + parameter. + + ABNF: + + CALADRURI-param = "VALUE=uri" / pid-param / pref-param / type-param + / mediatype-param / altid-param / any-param + CALADRURI-value = URI + + Example: + + CALADRURI;PREF=1:mailto:janedoe@example.com + CALADRURI:http://example.com/calendar/jdoe + +6.9.3. CALURI + + Purpose: To specify the URI for a calendar associated with the + object represented by the vCard. + + Value type: A single URI value. + + Cardinality: * + + Special notes: Where multiple CALURI properties are specified, the + default CALURI property is indicated with the PREF parameter. The + property should contain a URI pointing to an iCalendar [RFC5545] + + + +Perreault Standards Track [Page 50] + +RFC 6350 vCard August 2011 + + + object associated with a snapshot of the user's calendar store. + If the iCalendar object is represented as a file or document, its + file extension should be ".ics". + + ABNF: + + CALURI-param = "VALUE=uri" / pid-param / pref-param / type-param + / mediatype-param / altid-param / any-param + CALURI-value = URI + + Examples: + + CALURI;PREF=1:http://cal.example.com/calA + CALURI;MEDIATYPE=text/calendar:ftp://ftp.example.com/calA.ics + +6.10. Extended Properties and Parameters + + The properties and parameters defined by this document can be + extended. Non-standard, private properties and parameters with a + name starting with "X-" may be defined bilaterally between two + cooperating agents without outside registration or standardization. + +7. Synchronization + + vCard data often needs to be synchronized between devices. In this + context, synchronization is defined as the intelligent merging of two + representations of the same object. vCard 4.0 includes mechanisms to + aid this process. + +7.1. Mechanisms + + Two mechanisms are available: the UID property is used to match + multiple instances of the same vCard, while the PID parameter is used + to match multiple instances of the same property. + + The term "matching" is used here to mean recognizing that two + instances are in fact representations of the same object. For + example, a single vCard that is shared with someone results in two + vCard instances. After they have evolved separately, they still + represent the same object, and therefore may be matched by a + synchronization engine. + +7.1.1. Matching vCard Instances + + vCard instances for which the UID properties (Section 6.7.6) are + equivalent MUST be matched. Equivalence is determined as specified + in [RFC3986], Section 6. + + + + +Perreault Standards Track [Page 51] + +RFC 6350 vCard August 2011 + + + In all other cases, vCard instances MAY be matched at the discretion + of the synchronization engine. + +7.1.2. Matching Property Instances + + Property instances belonging to unmatched vCards MUST NOT be matched. + + Property instances whose name (e.g., EMAIL, TEL, etc.) is not the + same MUST NOT be matched. + + Property instances whose name is CLIENTPIDMAP are handled separately + and MUST NOT be matched. The synchronization MUST ensure that there + is consistency of CLIENTPIDMAPs among matched vCard instances. + + Property instances belonging to matched vCards, whose name is the + same, and whose maximum cardinality is 1, MUST be matched. + + Property instances belonging to matched vCards, whose name is the + same, and whose PID parameters match, MUST be matched. See + Section 7.1.3 for details on PID matching. + + In all other cases, property instances MAY be matched at the + discretion of the synchronization engine. + +7.1.3. PID Matching + + Two PID values for which the first fields are equivalent represent + the same local value. + + Two PID values representing the same local value and for which the + second fields point to CLIENTPIDMAP properties whose second field + URIs are equivalent (as specified in [RFC3986], Section 6) also + represent the same global value. + + PID parameters for which at least one pair of their values represent + the same global value MUST be matched. + + In all other cases, PID parameters MAY be matched at the discretion + of the synchronization engine. + + For example, PID value "5.1", in the first vCard below, and PID value + "5.2", in the second vCard below, represent the same global value. + + + + + + + + + +Perreault Standards Track [Page 52] + +RFC 6350 vCard August 2011 + + + BEGIN:VCARD + VERSION:4.0 + EMAIL;PID=4.2,5.1:jdoe@example.com + CLIENTPIDMAP:1;urn:uuid:3eef374e-7179-4196-a914-27358c3e6527 + CLIENTPIDMAP:2;urn:uuid:42bcd5a7-1699-4514-87b4-056edf68e9cc + END:VCARD + + BEGIN:VCARD + VERSION:4.0 + EMAIL;PID=5.1,5.2:john@example.com + CLIENTPIDMAP:1;urn:uuid:0c75c629-6a8d-4d5e-a07f-1bb35846854d + CLIENTPIDMAP:2;urn:uuid:3eef374e-7179-4196-a914-27358c3e6527 + END:VCARD + +7.2. Example + +7.2.1. Creation + + The following simple vCard is first created on a given device. + + BEGIN:VCARD + VERSION:4.0 + UID:urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1 + FN;PID=1.1:J. Doe + N:Doe;J.;;; + EMAIL;PID=1.1:jdoe@example.com + CLIENTPIDMAP:1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556 + END:VCARD + + This new vCard is assigned the UID + "urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1" by the creating + device. The FN and EMAIL properties are assigned the same local + value of 1, and this value is given global context by associating it + with "urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556", which + represents the creating device. We are at liberty to reuse the same + local value since instances of different properties will never be + matched. The N property has no PID because it is forbidden by its + maximum cardinality of 1. + +7.2.2. Initial Sharing + + This vCard is shared with a second device. Upon inspecting the UID + property, the second device understands that this is a new vCard + (i.e., unmatched) and thus the synchronization results in a simple + copy. + + + + + + +Perreault Standards Track [Page 53] + +RFC 6350 vCard August 2011 + + +7.2.3. Adding and Sharing a Property + + A new phone number is created on the first device, then the vCard is + shared with the second device. This is what the second device + receives: + + BEGIN:VCARD + VERSION:4.0 + UID:urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1 + FN;PID=1.1:J. Doe + N:Doe;J.;;; + EMAIL;PID=1.1:jdoe@example.com + TEL;PID=1.1;VALUE=uri:tel:+1-555-555-5555 + CLIENTPIDMAP:1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556 + END:VCARD + + Upon inspecting the UID property, the second device matches the vCard + it received to the vCard that it already has stored. It then starts + comparing the properties of the two vCards in same-named pairs. + + The FN properties are matched because the PID parameters have the + same global value. Since the property value is the same, no update + takes place. + + The N properties are matched automatically because their maximum + cardinality is 1. Since the property value is the same, no update + takes place. + + The EMAIL properties are matched because the PID parameters have the + same global value. Since the property value is the same, no update + takes place. + + The TEL property in the new vCard is not matched to any in the stored + vCard because no property in the stored vCard has the same name. + Therefore, this property is copied from the new vCard to the stored + vCard. + + The CLIENTPIDMAP property is handled separately by the + synchronization engine. It ensures that it is consistent with the + stored one. If it was not, the results would be up to the + synchronization engine, and thus undefined by this document. + +7.2.4. Simultaneous Editing + + A new email address and a new phone number are added to the vCard on + each of the two devices, and then a new synchronization event + happens. Here are the vCards that are communicated to each other: + + + + +Perreault Standards Track [Page 54] + +RFC 6350 vCard August 2011 + + + BEGIN:VCARD + VERSION:4.0 + UID:urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1 + FN;PID=1.1:J. Doe + N:Doe;J.;;; + EMAIL;PID=1.1:jdoe@example.com + EMAIL;PID=2.1:boss@example.com + TEL;PID=1.1;VALUE=uri:tel:+1-555-555-5555 + TEL;PID=2.1;VALUE=uri:tel:+1-666-666-6666 + CLIENTPIDMAP:1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556 + END:VCARD + + BEGIN:VCARD + VERSION:4.0 + UID:urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1 + FN;PID=1.1:J. Doe + N:Doe;J.;;; + EMAIL;PID=1.1:jdoe@example.com + EMAIL;PID=2.2:ceo@example.com + TEL;PID=1.1;VALUE=uri:tel:+1-555-555-5555 + TEL;PID=2.2;VALUE=uri:tel:+1-666-666-6666 + CLIENTPIDMAP:1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556 + CLIENTPIDMAP:2;urn:uuid:1f762d2b-03c4-4a83-9a03-75ff658a6eee + END:VCARD + + On the first device, the same PID source identifier (1) is reused for + the new EMAIL and TEL properties. On the second device, a new source + identifier (2) is generated, and a corresponding CLIENTPIDMAP + property is created. It contains the second device's identifier, + "urn:uuid:1f762d2b-03c4-4a83-9a03-75ff658a6eee". + + The new EMAIL properties are unmatched on both sides since the PID + global value is new in both cases. The sync thus results in a copy + on both sides. + + Although the situation appears to be the same for the TEL properties, + in this case, the synchronization engine is particularly smart and + matches the two new TEL properties even though their PID global + values are different. Note that in this case, the rules of + Section 7.1.2 state that two properties MAY be matched at the + discretion of the synchronization engine. Therefore, the two + properties are merged. + + All this results in the following vCard, which is stored on both + devices: + + + + + + +Perreault Standards Track [Page 55] + +RFC 6350 vCard August 2011 + + + BEGIN:VCARD + VERSION:4.0 + UID:urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1 + FN:J. Doe + N:Doe;J.;;; + EMAIL;PID=1.1:jdoe@example.com + EMAIL;PID=2.1:boss@example.com + EMAIL;PID=2.2:ceo@example.com + TEL;PID=1.1;VALUE=uri:tel:+1-555-555-5555 + TEL;PID=2.1,2.2;VALUE=uri:tel:+1-666-666-6666 + CLIENTPIDMAP:1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556 + CLIENTPIDMAP:2;urn:uuid:1f762d2b-03c4-4a83-9a03-75ff658a6eee + END:VCARD + +7.2.5. Global Context Simplification + + The two devices finish their synchronization procedure by simplifying + their global contexts. Since they haven't talked to any other + device, the following vCard is for all purposes equivalent to the + above. It is also shorter. + + BEGIN:VCARD + VERSION:4.0 + UID:urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1 + FN:J. Doe + N:Doe;J.;;; + EMAIL;PID=1.1:jdoe@example.com + EMAIL;PID=2.1:boss@example.com + EMAIL;PID=3.1:ceo@example.com + TEL;PID=1.1;VALUE=uri:tel:+1-555-555-5555 + TEL;PID=2.1;VALUE=uri:tel:+1-666-666-6666 + CLIENTPIDMAP:1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556 + END:VCARD + + The details of global context simplification are unspecified by this + document. They are left up to the synchronization engine. This + example is merely intended to illustrate the possibility, which + investigating would be, in the author's opinion, worthwhile. + +8. Example: Author's vCard + + BEGIN:VCARD + VERSION:4.0 + FN:Simon Perreault + N:Perreault;Simon;;;ing. jr,M.Sc. + BDAY:--0203 + ANNIVERSARY:20090808T1430-0500 + GENDER:M + + + +Perreault Standards Track [Page 56] + +RFC 6350 vCard August 2011 + + + LANG;PREF=1:fr + LANG;PREF=2:en + ORG;TYPE=work:Viagenie + ADR;TYPE=work:;Suite D2-630;2875 Laurier; + Quebec;QC;G1V 2M2;Canada + TEL;VALUE=uri;TYPE="work,voice";PREF=1:tel:+1-418-656-9254;ext=102 + TEL;VALUE=uri;TYPE="work,cell,voice,video,text":tel:+1-418-262-6501 + EMAIL;TYPE=work:simon.perreault@viagenie.ca + GEO;TYPE=work:geo:46.772673,-71.282945 + KEY;TYPE=work;VALUE=uri: + http://www.viagenie.ca/simon.perreault/simon.asc + TZ:-0500 + URL;TYPE=home:http://nomis80.org + END:VCARD + +9. Security Considerations + + o Internet mail is often used to transport vCards and is subject to + many well-known security attacks, including monitoring, replay, + and forgery. Care should be taken by any directory service in + allowing information to leave the scope of the service itself, + where any access controls or confidentiality can no longer be + guaranteed. Applications should also take care to display + directory data in a "safe" environment. + + o vCards can carry cryptographic keys or certificates, as described + in Section 6.8.1. + + o vCards often carry information that can be sensitive (e.g., + birthday, address, and phone information). Although vCards have + no inherent authentication or confidentiality provisions, they can + easily be carried by any security mechanism that transfers MIME + objects to address authentication or confidentiality (e.g., S/MIME + [RFC5751], OpenPGP [RFC4880]). In cases where the confidentiality + or authenticity of information contained in vCard is a concern, + the vCard SHOULD be transported using one of these secure + mechanisms. The KEY property (Section 6.8.1) can be used to + transport the public key used by these mechanisms. + + o The information in a vCard may become out of date. In cases where + the vitality of data is important to an originator of a vCard, the + SOURCE property (Section 6.1.3) SHOULD be specified. In addition, + the "REV" type described in Section 6.7.4 can be specified to + indicate the last time that the vCard data was updated. + + o Many vCard properties may be used to transport URIs. Please refer + to [RFC3986], Section 7, for considerations related to URIs. + + + + +Perreault Standards Track [Page 57] + +RFC 6350 vCard August 2011 + + +10. IANA Considerations + +10.1. Media Type Registration + + IANA has registered the following Media Type (in + ) and marked the text/directory Media Type as + DEPRECATED. + + To: ietf-types@iana.org + + Subject: Registration of media type text/vcard + + Type name: text + + Subtype name: vcard + + Required parameters: none + + Optional parameters: version + + The "version" parameter is to be interpreted identically as the + VERSION vCard property. If this parameter is present, all vCards + in a text/vcard body part MUST have a VERSION property with value + identical to that of this MIME parameter. + + "charset": as defined for text/plain [RFC2046]; encodings other + than UTF-8 [RFC3629] MUST NOT be used. + + Encoding considerations: 8bit + + Security considerations: See Section 9. + + Interoperability considerations: The text/vcard media type is + intended to identify vCard data of any version. There are older + specifications of vCard [RFC2426][vCard21] still in common use. + While these formats are similar, they are not strictly compatible. + In general, it is necessary to inspect the value of the VERSION + property (see Section 6.7.9) for identifying the standard to which + a given vCard object conforms. + + In addition, the following media types are known to have been used + to refer to vCard data. They should be considered deprecated in + favor of text/vcard. + + * text/directory + * text/directory; profile=vcard + * text/x-vcard + + + + +Perreault Standards Track [Page 58] + +RFC 6350 vCard August 2011 + + + Published specification: RFC 6350 + + Applications that use this media type: They are numerous, diverse, + and include mail user agents, instant messaging clients, address + book applications, directory servers, and customer relationship + management software. + + Additional information: + + Magic number(s): + + File extension(s): .vcf .vcard + + Macintosh file type code(s): + + Person & email address to contact for further information: vCard + discussion mailing list + + Intended usage: COMMON + + Restrictions on usage: none + + Author: Simon Perreault + + Change controller: IETF + +10.2. Registering New vCard Elements + + This section defines the process for registering new or modified + vCard elements (i.e., properties, parameters, value data types, and + values) with IANA. + +10.2.1. Registration Procedure + + The IETF has created a mailing list, vcarddav@ietf.org, which can be + used for public discussion of vCard element proposals prior to + registration. Use of the mailing list is strongly encouraged. The + IESG has appointed a designated expert who will monitor the + vcarddav@ietf.org mailing list and review registrations. + + Registration of new vCard elements MUST be reviewed by the designated + expert and published in an RFC. A Standards Track RFC is REQUIRED + for the registration of new value data types that modify existing + properties. A Standards Track RFC is also REQUIRED for registration + of vCard elements that modify vCard elements previously documented in + a Standards Track RFC. + + + + + +Perreault Standards Track [Page 59] + +RFC 6350 vCard August 2011 + + + The registration procedure begins when a completed registration + template, defined in the sections below, is sent to vcarddav@ietf.org + and iana@iana.org. Within two weeks, the designated expert is + expected to tell IANA and the submitter of the registration whether + the registration is approved, approved with minor changes, or + rejected with cause. When a registration is rejected with cause, it + can be re-submitted if the concerns listed in the cause are + addressed. Decisions made by the designated expert can be appealed + to the IESG Applications Area Director, then to the IESG. They + follow the normal appeals procedure for IESG decisions. + + Once the registration procedure concludes successfully, IANA creates + or modifies the corresponding record in the vCard registry. The + completed registration template is discarded. + + An RFC specifying new vCard elements MUST include the completed + registration templates, which MAY be expanded with additional + information. These completed templates are intended to go in the + body of the document, not in the IANA Considerations section. + + Finally, note that there is an XML representation for vCard defined + in [RFC6351]. An XML representation SHOULD be defined for new vCard + elements. + +10.2.2. Vendor Namespace + + The vendor namespace is used for vCard elements associated with + commercially available products. "Vendor" or "producer" are + construed as equivalent and very broadly in this context. + + A registration may be placed in the vendor namespace by anyone who + needs to interchange files associated with the particular product. + However, the registration formally belongs to the vendor or + organization handling the vCard elements in the namespace being + registered. Changes to the specification will be made at their + request, as discussed in subsequent sections. + + vCard elements belonging to the vendor namespace will be + distinguished by the "VND-" prefix. This is followed by an IANA- + registered Private Enterprise Number (PEN), a dash, and a vCard + element designation of the vendor's choosing (e.g., "VND-123456- + MUDPIE"). + + While public exposure and review of vCard elements to be registered + in the vendor namespace are not required, using the vcarddav@ietf.org + mailing list for review is strongly encouraged to improve the quality + of those specifications. Registrations in the vendor namespace may + be submitted directly to the IANA. + + + +Perreault Standards Track [Page 60] + +RFC 6350 vCard August 2011 + + +10.2.3. Registration Template for Properties + + A property is defined by completing the following template. + + Namespace: Empty for the global namespace, "VND-NNNN-" for a vendor- + specific property (where NNNN is replaced by the vendor's PEN). + + Property name: The name of the property. + + Purpose: The purpose of the property. Give a short but clear + description. + + Value type: Any of the valid value types for the property value + needs to be specified. The default value type also needs to be + specified. + + Cardinality: See Section 6. + + Property parameters: Any of the valid property parameters for the + property MUST be specified. + + Description: Any special notes about the property, how it is to be + used, etc. + + Format definition: The ABNF for the property definition needs to be + specified. + + Example(s): One or more examples of instances of the property need + to be specified. + +10.2.4. Registration Template for Parameters + + A parameter is defined by completing the following template. + + Namespace: Empty for the global namespace, "VND-NNNN-" for a vendor- + specific property (where NNNN is replaced by the vendor's PEN). + + Parameter name: The name of the parameter. + + Purpose: The purpose of the parameter. Give a short but clear + description. + + Description: Any special notes about the parameter, how it is to be + used, etc. + + Format definition: The ABNF for the parameter definition needs to be + specified. + + + + +Perreault Standards Track [Page 61] + +RFC 6350 vCard August 2011 + + + Example(s): One or more examples of instances of the parameter need + to be specified. + +10.2.5. Registration Template for Value Data Types + + A value data type is defined by completing the following template. + + Value name: The name of the value type. + + Purpose: The purpose of the value type. Give a short but clear + description. + + Description: Any special notes about the value type, how it is to be + used, etc. + + Format definition: The ABNF for the value type definition needs to + be specified. + + Example(s): One or more examples of instances of the value type need + to be specified. + +10.2.6. Registration Template for Values + + A value is defined by completing the following template. + + Value: The value literal. + + Purpose: The purpose of the value. Give a short but clear + description. + + Conformance: The vCard properties and/or parameters that can take + this value needs to be specified. + + Example(s): One or more examples of instances of the value need to + be specified. + + The following is a fictitious example of a registration of a vCard + value: + + Value: supervisor + + Purpose: It means that the related entity is the direct hierarchical + superior (i.e., supervisor or manager) of the entity this vCard + represents. + + Conformance: This value can be used with the "TYPE" parameter + applied on the "RELATED" property. + + + + +Perreault Standards Track [Page 62] + +RFC 6350 vCard August 2011 + + + Example(s): + + RELATED;TYPE=supervisor:urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6 + +10.3. Initial vCard Elements Registries + + The IANA has created and will maintain the following registries for + vCard elements with pointers to appropriate reference documents. The + registries are grouped together under the heading "vCard Elements". + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Perreault Standards Track [Page 63] + +RFC 6350 vCard August 2011 + + +10.3.1. Properties Registry + + The following table has been used to initialize the properties + registry. + + +-----------+--------------+-------------------------+ + | Namespace | Property | Reference | + +-----------+--------------+-------------------------+ + | | SOURCE | RFC 6350, Section 6.1.3 | + | | KIND | RFC 6350, Section 6.1.4 | + | | XML | RFC 6350, Section 6.1.5 | + | | FN | RFC 6350, Section 6.2.1 | + | | N | RFC 6350, Section 6.2.2 | + | | NICKNAME | RFC 6350, Section 6.2.3 | + | | PHOTO | RFC 6350, Section 6.2.4 | + | | BDAY | RFC 6350, Section 6.2.5 | + | | ANNIVERSARY | RFC 6350, Section 6.2.6 | + | | GENDER | RFC 6350, Section 6.2.7 | + | | ADR | RFC 6350, Section 6.3.1 | + | | TEL | RFC 6350, Section 6.4.1 | + | | EMAIL | RFC 6350, Section 6.4.2 | + | | IMPP | RFC 6350, Section 6.4.3 | + | | LANG | RFC 6350, Section 6.4.4 | + | | TZ | RFC 6350, Section 6.5.1 | + | | GEO | RFC 6350, Section 6.5.2 | + | | TITLE | RFC 6350, Section 6.6.1 | + | | ROLE | RFC 6350, Section 6.6.2 | + | | LOGO | RFC 6350, Section 6.6.3 | + | | ORG | RFC 6350, Section 6.6.4 | + | | MEMBER | RFC 6350, Section 6.6.5 | + | | RELATED | RFC 6350, Section 6.6.6 | + | | CATEGORIES | RFC 6350, Section 6.7.1 | + | | NOTE | RFC 6350, Section 6.7.2 | + | | PRODID | RFC 6350, Section 6.7.3 | + | | REV | RFC 6350, Section 6.7.4 | + | | SOUND | RFC 6350, Section 6.7.5 | + | | UID | RFC 6350, Section 6.7.6 | + | | CLIENTPIDMAP | RFC 6350, Section 6.7.7 | + | | URL | RFC 6350, Section 6.7.8 | + | | VERSION | RFC 6350, Section 6.7.9 | + | | KEY | RFC 6350, Section 6.8.1 | + | | FBURL | RFC 6350, Section 6.9.1 | + | | CALADRURI | RFC 6350, Section 6.9.2 | + | | CALURI | RFC 6350, Section 6.9.3 | + +-----------+--------------+-------------------------+ + + + + + + +Perreault Standards Track [Page 64] + +RFC 6350 vCard August 2011 + + +10.3.2. Parameters Registry + + The following table has been used to initialize the parameters + registry. + + +-----------+-----------+------------------------+ + | Namespace | Parameter | Reference | + +-----------+-----------+------------------------+ + | | LANGUAGE | RFC 6350, Section 5.1 | + | | VALUE | RFC 6350, Section 5.2 | + | | PREF | RFC 6350, Section 5.3 | + | | ALTID | RFC 6350, Section 5.4 | + | | PID | RFC 6350, Section 5.5 | + | | TYPE | RFC 6350, Section 5.6 | + | | MEDIATYPE | RFC 6350, Section 5.7 | + | | CALSCALE | RFC 6350, Section 5.8 | + | | SORT-AS | RFC 6350, Section 5.9 | + | | GEO | RFC 6350, Section 5.10 | + | | TZ | RFC 6350, Section 5.11 | + +-----------+-----------+------------------------+ + +10.3.3. Value Data Types Registry + + The following table has been used to initialize the parameters + registry. + + +------------------+-------------------------+ + | Value Data Type | Reference | + +------------------+-------------------------+ + | BOOLEAN | RFC 6350, Section 4.4 | + | DATE | RFC 6350, Section 4.3.1 | + | DATE-AND-OR-TIME | RFC 6350, Section 4.3.4 | + | DATE-TIME | RFC 6350, Section 4.3.3 | + | FLOAT | RFC 6350, Section 4.6 | + | INTEGER | RFC 6350, Section 4.5 | + | LANGUAGE-TAG | RFC 6350, Section 4.8 | + | TEXT | RFC 6350, Section 4.1 | + | TIME | RFC 6350, Section 4.3.2 | + | TIMESTAMP | RFC 6350, Section 4.3.5 | + | URI | RFC 6350, Section 4.2 | + | UTC-OFFSET | RFC 6350, Section 4.7 | + +------------------+-------------------------+ + + + + + + + + + +Perreault Standards Track [Page 65] + +RFC 6350 vCard August 2011 + + +10.3.4. Values Registries + + Separate tables are used for property and parameter values. + + The following table is to be used to initialize the property values + registry. + + +----------+------------+-------------------------+ + | Property | Value | Reference | + +----------+------------+-------------------------+ + | BEGIN | VCARD | RFC 6350, Section 6.1.1 | + | END | VCARD | RFC 6350, Section 6.1.2 | + | KIND | individual | RFC 6350, Section 6.1.4 | + | KIND | group | RFC 6350, Section 6.1.4 | + | KIND | org | RFC 6350, Section 6.1.4 | + | KIND | location | RFC 6350, Section 6.1.4 | + +----------+------------+-------------------------+ + + The following table has been used to initialize the parameter values + registry. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Perreault Standards Track [Page 66] + +RFC 6350 vCard August 2011 + + + +------------------------+-----------+--------------+---------------+ + | Property | Parameter | Value | Reference | + +------------------------+-----------+--------------+---------------+ + | FN, NICKNAME, PHOTO, | TYPE | work | RFC 6350, | + | ADR, TEL, EMAIL, IMPP, | | | Section 5.6 | + | LANG, TZ, GEO, TITLE, | | | | + | ROLE, LOGO, ORG, | | | | + | RELATED, CATEGORIES, | | | | + | NOTE, SOUND, URL, KEY, | | | | + | FBURL, CALADRURI, and | | | | + | CALURI | | | | + | FN, NICKNAME, PHOTO, | TYPE | home | RFC 6350, | + | ADR, TEL, EMAIL, IMPP, | | | Section 5.6 | + | LANG, TZ, GEO, TITLE, | | | | + | ROLE, LOGO, ORG, | | | | + | RELATED, CATEGORIES, | | | | + | NOTE, SOUND, URL, KEY, | | | | + | FBURL, CALADRURI, and | | | | + | CALURI | | | | + | TEL | TYPE | text | RFC 6350, | + | | | | Section 6.4.1 | + | TEL | TYPE | voice | RFC 6350, | + | | | | Section 6.4.1 | + | TEL | TYPE | fax | RFC 6350, | + | | | | Section 6.4.1 | + | TEL | TYPE | cell | RFC 6350, | + | | | | Section 6.4.1 | + | TEL | TYPE | video | RFC 6350, | + | | | | Section 6.4.1 | + | TEL | TYPE | pager | RFC 6350, | + | | | | Section 6.4.1 | + | TEL | TYPE | textphone | RFC 6350, | + | | | | Section 6.4.1 | + | BDAY, ANNIVERSARY | CALSCALE | gregorian | RFC 6350, | + | | | | Section 5.8 | + | RELATED | TYPE | contact | RFC 6350, | + | | | | Section 6.6.6 | + | | | | and [xfn] | + | RELATED | TYPE | acquaintance | RFC 6350, | + | | | | Section 6.6.6 | + | | | | and [xfn] | + | RELATED | TYPE | friend | RFC 6350, | + | | | | Section 6.6.6 | + | | | | and [xfn] | + | RELATED | TYPE | met | RFC 6350, | + | | | | Section 6.6.6 | + | | | | and [xfn] | + + + + +Perreault Standards Track [Page 67] + +RFC 6350 vCard August 2011 + + + | RELATED | TYPE | co-worker | RFC 6350, | + | | | | Section 6.6.6 | + | | | | and [xfn] | + | RELATED | TYPE | colleague | RFC 6350, | + | | | | Section 6.6.6 | + | | | | and [xfn] | + | RELATED | TYPE | co-resident | RFC 6350, | + | | | | Section 6.6.6 | + | | | | and [xfn] | + | RELATED | TYPE | neighbor | RFC 6350, | + | | | | Section 6.6.6 | + | | | | and [xfn] | + | RELATED | TYPE | child | RFC 6350, | + | | | | Section 6.6.6 | + | | | | and [xfn] | + | RELATED | TYPE | parent | RFC 6350, | + | | | | Section 6.6.6 | + | | | | and [xfn] | + | RELATED | TYPE | sibling | RFC 6350, | + | | | | Section 6.6.6 | + | | | | and [xfn] | + | RELATED | TYPE | spouse | RFC 6350, | + | | | | Section 6.6.6 | + | | | | and [xfn] | + | RELATED | TYPE | kin | RFC 6350, | + | | | | Section 6.6.6 | + | | | | and [xfn] | + | RELATED | TYPE | muse | RFC 6350, | + | | | | Section 6.6.6 | + | | | | and [xfn] | + | RELATED | TYPE | crush | RFC 6350, | + | | | | Section 6.6.6 | + | | | | and [xfn] | + | RELATED | TYPE | date | RFC 6350, | + | | | | Section 6.6.6 | + | | | | and [xfn] | + | RELATED | TYPE | sweetheart | RFC 6350, | + | | | | Section 6.6.6 | + | | | | and [xfn] | + | RELATED | TYPE | me | RFC 6350, | + | | | | Section 6.6.6 | + | | | | and [xfn] | + | RELATED | TYPE | agent | RFC 6350, | + | | | | Section 6.6.6 | + | RELATED | TYPE | emergency | RFC 6350, | + | | | | Section 6.6.6 | + +------------------------+-----------+--------------+---------------+ + + + + +Perreault Standards Track [Page 68] + +RFC 6350 vCard August 2011 + + +11. Acknowledgments + + The authors would like to thank Tim Howes, Mark Smith, and Frank + Dawson, the original authors of [RFC2425] and [RFC2426], Pete + Resnick, who got this effort started and provided help along the way, + as well as the following individuals who have participated in the + drafting, review, and discussion of this memo: + + Aki Niemi, Andy Mabbett, Alexander Mayrhofer, Alexey Melnikov, Anil + Srivastava, Barry Leiba, Ben Fortuna, Bernard Desruisseaux, Bernie + Hoeneisen, Bjoern Hoehrmann, Caleb Richardson, Chris Bryant, Chris + Newman, Cyrus Daboo, Daisuke Miyakawa, Dan Brickley, Dan Mosedale, + Dany Cauchie, Darryl Champagne, Dave Thewlis, Filip Navara, Florian + Zeitz, Helge Hess, Jari Urpalainen, Javier Godoy, Jean-Luc Schellens, + Joe Hildebrand, Jose Luis Gayosso, Joseph Smarr, Julian Reschke, + Kepeng Li, Kevin Marks, Kevin Wu Won, Kurt Zeilenga, Lisa Dusseault, + Marc Blanchet, Mark Paterson, Markus Lorenz, Michael Haardt, Mike + Douglass, Nick Levinson, Peter K. Sheerin, Peter Mogensen, Peter + Saint-Andre, Renato Iannella, Rohit Khare, Sly Gryphon, Stephane + Bortzmeyer, Tantek Celik, and Zoltan Ordogh. + +12. References + +12.1. Normative References + + [CCITT.X520.1988] + International Telephone and Telegraph Consultative + Committee, "Information Technology - Open Systems + Interconnection - The Directory: Selected Attribute + Types", CCITT Recommendation X.520, November 1988. + + [IEEE.754.2008] + Institute of Electrical and Electronics Engineers, + "Standard for Binary Floating-Point Arithmetic", + IEEE Standard 754, August 2008. + + [ISO.8601.2000] + International Organization for Standardization, "Data + elements and interchange formats - Information interchange + - Representation of dates and times", ISO Standard 8601, + December 2000. + + [ISO.8601.2004] + International Organization for Standardization, "Data + elements and interchange formats - Information interchange + - Representation of dates and times", ISO Standard 8601, + December 2004. + + + + +Perreault Standards Track [Page 69] + +RFC 6350 vCard August 2011 + + + [RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail + Extensions (MIME) Part One: Format of Internet Message + Bodies", RFC 2045, November 1996. + + [RFC2046] Freed, N. and N. Borenstein, "Multipurpose Internet Mail + Extensions (MIME) Part Two: Media Types", RFC 2046, + November 1996. + + [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate + Requirement Levels", BCP 14, RFC 2119, March 1997. + + [RFC2739] Small, T., Hennessy, D., and F. Dawson, "Calendar + Attributes for vCard and LDAP", RFC 2739, January 2000. + + [RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO + 10646", STD 63, RFC 3629, November 2003. + + [RFC3966] Schulzrinne, H., "The tel URI for Telephone Numbers", + RFC 3966, December 2004. + + [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform + Resource Identifier (URI): Generic Syntax", STD 66, + RFC 3986, January 2005. + + [RFC4122] Leach, P., Mealling, M., and R. Salz, "A Universally + Unique IDentifier (UUID) URN Namespace", RFC 4122, + July 2005. + + [RFC4288] Freed, N. and J. Klensin, "Media Type Specifications and + Registration Procedures", BCP 13, RFC 4288, December 2005. + + [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax + Specifications: ABNF", STD 68, RFC 5234, January 2008. + + [RFC5322] Resnick, P., Ed., "Internet Message Format", RFC 5322, + October 2008. + + [RFC5545] Desruisseaux, B., "Internet Calendaring and Scheduling + Core Object Specification (iCalendar)", RFC 5545, + September 2009. + + [RFC5546] Daboo, C., "iCalendar Transport-Independent + Interoperability Protocol (iTIP)", RFC 5546, + December 2009. + + [RFC5646] Phillips, A. and M. Davis, "Tags for Identifying + Languages", BCP 47, RFC 5646, September 2009. + + + + +Perreault Standards Track [Page 70] + +RFC 6350 vCard August 2011 + + + [RFC5870] Mayrhofer, A. and C. Spanring, "A Uniform Resource + Identifier for Geographic Locations ('geo' URI)", + RFC 5870, June 2010. + + [RFC6351] Perreault, S., "xCard: vCard XML Representation", + RFC 6351, August 2011. + + [W3C.REC-xml-20081126] + Maler, E., Yergeau, F., Sperberg-McQueen, C., Paoli, J., + and T. Bray, "Extensible Markup Language (XML) 1.0 (Fifth + Edition)", World Wide Web Consortium Recommendation REC- + xml-20081126, November 2008, + . + + [xfn] Celik, T., Mullenweg, M., and E. Meyer, "XFN 1.1 profile", + . + +12.2. Informative References + + [IANA-TZ] Lear, E. and P. Eggert, "IANA Procedures for Maintaining + the Timezone Database", Work in Progress, May 2011. + + [ISO9070] International Organization for Standardization, + "Information Processing - SGML support facilities - + Registration Procedures for Public Text Owner + Identifiers", ISO 9070, April 1991. + + [RFC1738] Berners-Lee, T., Masinter, L., and M. McCahill, "Uniform + Resource Locators (URL)", RFC 1738, December 1994. + + [RFC2397] Masinter, L., "The "data" URL scheme", RFC 2397, + August 1998. + + [RFC2425] Howes, T., Smith, M., and F. Dawson, "A MIME Content-Type + for Directory Information", RFC 2425, September 1998. + + [RFC2426] Dawson, F. and T. Howes, "vCard MIME Directory Profile", + RFC 2426, September 1998. + + [RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., + Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext + Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999. + + [RFC3282] Alvestrand, H., "Content Language Headers", RFC 3282, + May 2002. + + + + + + +Perreault Standards Track [Page 71] + +RFC 6350 vCard August 2011 + + + [RFC3406] Daigle, L., van Gulik, D., Iannella, R., and P. Faltstrom, + "Uniform Resource Names (URN) Namespace Definition + Mechanisms", BCP 66, RFC 3406, October 2002. + + [RFC3536] Hoffman, P., "Terminology Used in Internationalization in + the IETF", RFC 3536, May 2003. + + [RFC4770] Jennings, C. and J. Reschke, Ed., "vCard Extensions for + Instant Messaging (IM)", RFC 4770, January 2007. + + [RFC4880] Callas, J., Donnerhacke, L., Finney, H., Shaw, D., and R. + Thayer, "OpenPGP Message Format", RFC 4880, November 2007. + + [RFC5335bis] + Yang, A. and S. Steele, "Internationalized Email Headers", + Work in Progress, July 2011. + + [RFC5751] Ramsdell, B. and S. Turner, "Secure/Multipurpose Internet + Mail Extensions (S/MIME) Version 3.2 Message + Specification", RFC 5751, January 2010. + + [RFC6068] Duerst, M., Masinter, L., and J. Zawinski, "The 'mailto' + URI Scheme", RFC 6068, October 2010. + + [TZ-DB] Olson, A., "Time zone code and data", + . + + [vCard21] Internet Mail Consortium, "vCard - The Electronic Business + Card Version 2.1", September 1996. + + + + + + + + + + + + + + + + + + + + + + +Perreault Standards Track [Page 72] + +RFC 6350 vCard August 2011 + + +Appendix A. Differences from RFCs 2425 and 2426 + + This appendix contains a high-level overview of the major changes + that have been made in the vCard specification from RFCs 2425 and + 2426. It is incomplete, as it only lists the most important changes. + +A.1. New Structure + + o [RFC2425] and [RFC2426] have been merged. + + o vCard is now not only a MIME type but a stand-alone format. + + o A proper MIME type registration form has been included. + + o UTF-8 is now the only possible character set. + + o New vCard elements can be registered from IANA. + +A.2. Removed Features + + o The CONTEXT and CHARSET parameters are no more. + + o The NAME, MAILER, LABEL, and CLASS properties are no more. + + o The "intl", "dom", "postal", and "parcel" TYPE parameter values + for the ADR property have been removed. + + o In-line vCards (such as the value of the AGENT property) are no + longer supported. + +A.3. New Properties and Parameters + + o The KIND, GENDER, LANG, ANNIVERSARY, XML, and CLIENTPIDMAP + properties have been added. + + o [RFC2739], which defines the FBURL, CALADRURI, CAPURI, and CALURI + properties, has been merged in. + + o [RFC4770], which defines the IMPP property, has been merged in. + + o The "work" and "home" TYPE parameter values are now applicable to + many more properties. + + o The "pref" value of the TYPE parameter is now a parameter of its + own, with a positive integer value indicating the level of + preference. + + o The ALTID and PID parameters have been added. + + + +Perreault Standards Track [Page 73] + +RFC 6350 vCard August 2011 + + + o The MEDIATYPE parameter has been added and replaces the TYPE + parameter when it was used for indicating the media type of the + property's content. + +Author's Address + + Simon Perreault + Viagenie + 2875 Laurier, suite D2-630 + Quebec, QC G1V 2M2 + Canada + + Phone: +1 418 656 9254 + EMail: simon.perreault@viagenie.ca + URI: http://www.viagenie.ca + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Perreault Standards Track [Page 74] + diff --git a/specifications/contacts/rfc9553.pdf b/specifications/contacts/rfc9553.pdf new file mode 100644 index 00000000..d58949d8 --- /dev/null +++ b/specifications/contacts/rfc9553.pdf @@ -0,0 +1,17115 @@ +%PDF-1.7 % +3 0 obj +<>/EmbeddedFiles 1639 0 R>>/Outlines 1788 0 R/OutputIntents 1789 0 R/Pages 1 0 R/Type/Catalog>> +endobj +1637 0 obj +<>stream + + + + + application/pdf + + + Robert Stepanek, Mario Loffredo + + + + + This specification defines a data model and JavaScript Object Notation (JSON) representation of contact card information that can be used for data storage and exchange in address book or directory applications. It aims to be an alternative to the vCard data format and to be unambiguous, extendable, and simple to process. In contrast to the JSON-based jCard format, it is not a direct mapping from the vCard data model and expands semantics where appropriate. Two additional specifications define new vCard elements and how to convert between JSContact and vCard. + + + + + RFC 9553: JSContact: A JSON Representation of Contact Data + + + xml2rfc 3.21.0 + 2024-05-07T07:30:35-07:00 + 2024-05-07T07:30:31-07:00 + 2024-05-07T07:30:35-07:00 + WeasyPrint 56.1 + uuid:add3157a-b9ce-11b2-0a00-000000000000 + uuid:adda0949-b9ce-11b2-0a00-690800000000 + default + 1 + + + + converted + uuid:add3157e-b9ce-11b2-0a00-810700000000 + converted to PDF/A-3u + pdfaPilot + 2024-05-07T07:30:35-07:00 + + + + 3 + U + + + + http://ns.adobe.com/pdf/1.3/ + pdf + Adobe PDF Schema + + + + internal + A name object indicating whether the document has been modified to include trapping information + Trapped + Text + + + + + + http://ns.adobe.com/xap/1.0/mm/ + xmpMM + XMP Media Management Schema + + + + internal + UUID based identifier for specific incarnation of a document + InstanceID + URI + + + internal + The common identifier for all versions and renditions of a document. + OriginalDocumentID + URI + + + + + + http://www.aiim.org/pdfa/ns/id/ + pdfaid + PDF/A ID Schema + + + + internal + Part of PDF/A standard + part + Integer + + + internal + Amendment of PDF/A standard + amd + Text + + + internal + Conformance level of PDF/A standard + conformance + Text + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +endstream +endobj +1788 0 obj +<> +endobj +1789 0 obj +[1792 0 R] +endobj +1 0 obj +<> +endobj +6 0 obj +<> +endobj +14 0 obj +<> +endobj +95 0 obj +<> +endobj +187 0 obj +<> +endobj +276 0 obj +<> +endobj +338 0 obj +<> +endobj +358 0 obj +<> +endobj +376 0 obj +<> +endobj +385 0 obj +<> +endobj +397 0 obj +<> +endobj +408 0 obj +<> +endobj +428 0 obj +<> +endobj +453 0 obj +<> +endobj +470 0 obj +<> +endobj +491 0 obj +<> +endobj +513 0 obj +<> +endobj +529 0 obj +<> +endobj +551 0 obj +<> +endobj +570 0 obj +<> +endobj +585 0 obj +<> +endobj +601 0 obj +<> +endobj +616 0 obj +<> +endobj +629 0 obj +<> +endobj +642 0 obj +<> +endobj +651 0 obj +<> +endobj +659 0 obj +<> +endobj +670 0 obj +<> +endobj +677 0 obj +<> +endobj +687 0 obj +<> +endobj +699 0 obj +<> +endobj +710 0 obj +<> +endobj +726 0 obj +<> +endobj +740 0 obj +<> +endobj +752 0 obj +<> +endobj +769 0 obj +<> +endobj +780 0 obj +<> +endobj +792 0 obj +<> +endobj +799 0 obj +<> +endobj +804 0 obj +<> +endobj +814 0 obj +<> +endobj +826 0 obj +<> +endobj +840 0 obj +<> +endobj +855 0 obj +<> +endobj +861 0 obj +<> +endobj +871 0 obj +<> +endobj +880 0 obj +<> +endobj +890 0 obj +<> +endobj +899 0 obj +<> +endobj +912 0 obj +<> +endobj +926 0 obj +<> +endobj +936 0 obj +<> +endobj +952 0 obj +<> +endobj +960 0 obj +<> +endobj +1021 0 obj +<> +endobj +1055 0 obj +<> +endobj +1100 0 obj +<> +endobj +1141 0 obj +<> +endobj +1173 0 obj +<> +endobj +1189 0 obj +<> +endobj +1215 0 obj +<> +endobj +1235 0 obj +<> +endobj +1246 0 obj +<> +endobj +1267 0 obj +<> +endobj +1289 0 obj +<> +endobj +1313 0 obj +<> +endobj +1334 0 obj +<> +endobj +1357 0 obj +<> +endobj +1376 0 obj +<> +endobj +1400 0 obj +<> +endobj +1414 0 obj +<> +endobj +1432 0 obj +<> +endobj +1454 0 obj +<> +endobj +1476 0 obj +<> +endobj +1865 0 obj +<>stream +x[[s>ԲXu);MNN*KZJb3mʋ}Cz i$Lc@,p=o]HxNHBΌq{.?ӗ?qͽ>Q#9 ?}?|7 ~H2eI}PNgè,detYNj~=Z:P˥~:oT\pa{)dc #)W:*yq'oOF̲.{xgh|fn(Kkb>w{E.~Q!˷- +-1:7Vp"8Ո"Gl̞@c7̲ePm):W^fc ţW\< + +A˜6"٪S@L^c&ZC9./Td +,` ttniHc9빶p핗m4[b:9UV޲ + p1R 0]nrBXaLj M0̬4RL쀱#RfQDnPj=NP&,#ܲ/نhdX/rxaƭ,leB)7핐VpCyu?|M6344 q/X0gl-Q`LZՓyKs;vy&J7P[#CU>.9"ƈДyZfH8D.䵇U\m0iu& ~Qyx0eS%%88\r#=9a^ڞF'¹j)٥`}3iykMWii$0PMjR$u@J2VׄPEVYQMjpeW/HJߑNSuE=h|5+AsdCN;}+2+<\GNw!@߮vf`^UvR00ž\=-N5@=hKߪڝ6BTwy>D.K2 $O_[XMDbfx~Eqvk֮M|QRh +f:8gĵ;jx4xwPD_$ uxxd^⬖`EиyhsaOj;q>q.J}}wfcTnAߧO +ɳC\Z2_t]ؠ{f`%PP5Y5joJ| 9,ɹ([P\m> 2$l(?3f㸱2Yͷ)Ý$M$?,vwGi[ٵw-O4Nt-:n;c[ll6[/nSutt-W-iya &٪K6 c`QSz}l*%qa74i~@g 8\Uq] $%ϬBxɦYɽVWfҪiwOYTFi~uקK5z^=J%ҔFgT^0P,QDžFDS ѧXCR56Žxs>/Font<>>> +endobj +1615 0 obj +<> +endobj +1619 0 obj +<> +endobj +1867 0 obj +<>stream +HtS0!RBBUEʒ]Ce{C8Cͼ/ꠚ3}@ F*bqlPO +Ԕw zLcɒS-A?.S<v=ԩ.8ڑ˘a?\҉{b + +LeC1ڶT8@+Zwk`H#&\YFAL/}{fH-qhԮC幐r3Jp,!'9:$z%)mB]s":ru"vDs(&t3<-Y| YY5mL!.yy-O@=PcBטQz>/CIDToGIDMap/Identity/FontDescriptor 1617 0 R/Subtype/CIDFontType2/Type/Font/W[3[260]5[408 559]9[742 220 346 346 500 559 250 310 250 288]19 28 559 29 30 286 31 33 559 35[921 705 654 614 727 623 590 714 793 367 357 700 623 938 763 742 604 742 656 544 613 717 675 1047 660 625 592 360]64[360]66[459]68[563 614 492 614 535 369 538 635 320 300 585 310 945 645 577 614 614 471 451 352 635 579 862 578 565 511]95[559]98[260]526[362]1079[330]1119[547]1170[139]1177[336]2170[1002]2172[663 662]3200[708]]>> +endobj +1617 0 obj +<> +endobj +1868 0 obj +<>stream +HU{L[?^ c.66'8,DB!@iFvDլmVKJX)꒨YJLmmi۪$ӒfǢ%x߽0=s{E!z_;^m'k@  F.!U.6j##T8>Rl*}p^8046V!XoF.M?v#4 t67nZ7|=6ԧmIkcב!^$joRÚߋ8=wgn#=G<7Ww-U8~>٘A܌{(>Lx* ϑo&rswB[#|A#=)zOUJuS3w))S))fvH-[W&[~/C11#I$"#h\U6@_I$/$#8D蟌[p1,$DI$D}ʺDI$DI"ۋ"s`,@a~֡ + un4v9bGK|HkJ -bP#㟮9cހ@])OLn &I)xhpP:X::4N#% r#pDwP|s()D~fhЯ_>= /byV;e*EnTP˰β2M\.(EYVr}'۲^-'ƍVưY]?-I=d*:%c\p -79J^}̶Ǻf[p!WUgK;LLȍ*Xc/4u ͜ ޖH +VЀI|{,L$H)W`OǨ9QJ5Ӆc&'m4.HVa BRi0ē6oJ ǎNLEx +_H(Rh. ֽڠ~Mw55:lGbjٚ:ڋo>{o;sfqk[9$Z >5ny\7_5{3WIrRS N<\ȔXp==|Zf*^dJ 3=L zLBBl[\dT-6@hnpq7(;8;;??;{2|`@'K$ҁ[#+Z+՚ʪ"RzyQ9HXQrDe:Sp[4[ +=ȑk4%0 Vlj1kM!jӸ O K쉼ѱVQR#!k~c)KL6"1SY].47nWhlHSlt0O 0FJ/jG ȓsmؑEo8 IR.|]ڌX@jU*_^kX/6Z%E]UPBaiBg`@yQ,ZROE}ҸYhR4SR5si3nn4IR(FsYf JyDUEu e] +>J.?]4fƶicsu=@xnOg B=n^*h `Uiz\ #wc+߿CL9Dk +Qf ;2a +9w}IwSW= r"<$v֠UFU[pAt9uȩqehR+hlQ]r΃D- >uW*i%Ճ>M_cuISdR :ʴ~vv+?-n+\Y8yyG>vV.m[vv2R\ecIЖLcC@s5^ctm-Ϯm.QujKBFDgVMG&O}-}훟oF1V.% ~ο1^MwwĎ_ؗ;NL8MbBBRh"Uj)HЊAh0&6iN6VֲU+PD1;~?:w5J9]X~` +N_502qT1򚃆'4Z*PVG=)6{l˽KIֲ*¬gjB@aBJz~1}tTo?m6 OӴ0&oK?Z{;-ɡU;6_64tW0F:Rzf +xWjEx{_O7^0s$xtf/Pnlzb2uxfdewթJu`L5rfnǙx榚< _K+|!?F4 +Z(|Ҏ {$ ɡȉGBA6`*(i3gxm/pT_ǣ9Jy*3酺t ms0Xl]?{{b'yG@⑽پbJo٧"['Uc' +4k b01 +pxaBk1̟p +Q5ɚ_] oV]J]ʯe~P%+Br'{p{tH>_O1ر4nXqu81nM4YYbjZ\{jmC?h +'Ɛn*wlu.H#,q:IsOrs<8^9d'#΢݀E8Љ3jo=$ؔ9նExzCj(vOO)h-DN$QJA`*U -5#2+/j'0ZvId/9UC*9rD&_"v 仈њrb׳:Bi J>ZwnkyqU;@GξV,y2H#=&SbI%K]M =*ӃQԁW,ML6 yw A: +"cKSdawLnՊo&b`;9<3t +R2V`3|JF8Q,lY !sj^Bh8OeK{2#hL}H8y 4ADx3 7ewwES-9֢:{OMՄA[dx]$pD'RM&t^!V%c= +h/,LB^I5_[eiF2Έ'7/1e vWCH$@rf_`w&5 [j~|W0YҦn/wԌnrl6qy`8l6{f&{$JSs4I d_WcoG5[D~%;Eiw7,u+ep֤[b#rieFpNmȉzh km5#C+5QdQ2.# ^qԣ?o7~)6)գVF"q_\`J#d/ҜEvqϑ9]O<ϜH:eBEZ~-%j'|sXzbz٨9fu 42^4]V[<0a؉,hb̢Wc2_)!7F-b~9&ɸ%anea^x\ELj{VIJșʄ g!Kq)k AYUk"uNSD +5BZ?`&QixNvuxϳsPr/۸ؚrHUDXW/!LÓh!Ge"A,N?$uxɂ'n05+Zj$)eoWTפ1 HSD͜6^ynEK8gLy ~[v1  ?&նyx}X\*7LF@EoU.Wɫu7lV XnY4>ENR5de>oV-᢯AO}=3sRDt)ost򖑍{S{TmȎ%NfaJ8so1d3 خއ.A'^|NFZBF+LLSOIk1k#|$wG4Qh꩑Cj|m`m\NՑx&\j`]kX?o/h$jʕx%VkrzO_4w]LdG4iaW4f1)\ķd3m٪)7ֺ +9src+)]b}\| Aw};sbN]ctf6Rc[ =!KPctdR)nrB8nDZq XEܸ. +,XcƒXZ$cXbF0>l霄݁2|~,#Xށ}2F ?&nSX4? +A9=Iׁ)嬻]MIH )ʽr"== 9bLIZYob{ȇ!o@l+ib4 :yK,7@}e| C ~2 W>BS{jzj=8Tq mh/I% +loŢ bOmS0Z[6xLkzW`?oݰgg AZq|Lcovhjك]4Hk?+Gp 7<ʪG*:(`oaWdR%kƕC8%w/kF)+އЮBmcÙXg!6ݎc->ett9Z 8JԠS{ SqN]AB2k5>|!N +endstream +endobj +1866 0 obj +<>stream +H|n0E i B*JT*MH9ɂǓTU,3׏> 9` +ڴVb~K`0ٖBWG[#l`n:oFjY +{h\_qn3 yLo*RWL""hg֦5Au fVK \6Yɩn@̜j>O 9fTx餭)6?Z]Z"DOGN„{ǜSuJ>bBKXy/d>C&R{ѤRVw^MW ;|@Cq{nisyva&Cl#?p)+n;3IzNZia|=*SQfK+t +endstream +endobj +1614 0 obj +<>/CIDToGIDMap/Identity/FontDescriptor 1613 0 R/Subtype/CIDFontType2/Type/Font/W[3[260]10[290]15[294 310 294 288]19 28 559 29[304]35[921 753 672 668 767 653 621 769 819 401 397 734 654 952 788 787 638 787 707 586 653 747 698 1067]60[693 666 414]64[414]68[599 649 527 649 571 407 560 667 352 345 636 352 986 667 613 645 648 523 488 405 667 606 856 646 579 529]2172[719]3200[762]]>> +endobj +1613 0 obj +<> +endobj +1869 0 obj +<>stream +HUswWZɲ$[Vlvz[öd%ab`\`  3q)Ő0MBI'0}NۄN;t2iIIh:dP&ɐRޕGL~ݽsw9@ +8;‡͑rws/o /ԫ0`||iOw,^X{SYrTKML-Hz(!e@摍^ݑݑ{{,Ehѡ)łvqMW+1erQ+PUCgT7~A9"D!B"D!B/M"D!B+JZCwJ0zR4p:vpSˡ5a$647)r}!0$(ˏ-o@mZ&_@@9 +8VOק7V{.XJ%fO#ͰM` iwp1#FڱJ,3T g|54]c { pZsO}BйO0GP*H`'u04A0< OLÑ*F1|ivp+.,."X[=(9ģ! +ÜF8rht,ڲMft.ZFك.(^`B`yH L8V^ԩ1c9kTqh*ƺ'zs;Q9u1ݓ65dÄTly-b"P>|&j2 &c2a[oN4z]UvU5>:v*J$*xOs(K95Ǻ[2g. B7!(S<4ɐy e?1ѵٻ􍩩ZZMKQOF,˲1w¯tE(NW{ǹ(MȜZq:PвUqw Z7SMN_cGQniiukX mTŲ28:]Q4=4|He%R ++ +y +VROCLIlHt3bSe}еpCg2{OOǬ48>2^ha՜>FNQ +,h S$\쿃 dmkGB 5_#pQc-W(ms'/͖`OsCzot{|kvt[k}qEOR@]XgCWȆ9H'j\2hbmv#_^ǰ[`5ynR +u}ذa_-m95x +3-R_f]ұgqn9v1·mz׽?OҨ Q'<ҎW>v$ }B(N&XIrTy] SP PLᵾo5N\islk2{RՖD;(я=/#>%iyHoel= h7{Ϥ=:Yy1+UN'#mٛ)GT5Dm o 2f[oنVc])QΣY+¦;̟~anDLpt 3^Yp3folyBtoF0h. {d?-2P6:^>(R!ޯ}gkG>ؐHo=kSYMWEgX'E\68r8ƖO~pEgy6/iR aڂ8]ɲd[JZҮWwi-GI3=&ICPԹ! L;P +mhf(mL&&3e m^T2ߕd6 z/s_z1<Jwp|}@_(vü5NxMRD)7&ܴΕ3ē4$Fwh0f%%\$+ϧ(eDmG5 .!Opk\jɘza7rzvDNЎۜ_mTsD 9_JSD-~s)MRe\DVQy  9;PAAeM4(H ʉ^K/- dxt8߼)NĒ:-xJ R+8|ߚ?14=8h`hdxH]+nb+vPho:>Ty㹯ȃ-v-Itv}[޶giۈ鷀[)!f|'.Lnئb5v'; +ˆU j6Lxђj*em4FF&w%CM{v\I,C6\OEp):1yBƅ%5"/rN ~g lzDt4mU? `U.Π%==rVKkYu#@o!DT js%9]#ez匬ʨK""iSv 03VsEU*k8 +ɯ2- DnD?WZa*eURU[r]#NArU|'׈C.@bknnn]VAKTo[AgM,V6)k=,?4Vm'p(+j `Pbe^g㯠v ob;itTɽu^/8* *F]F2y0.R$'FうWas=3v"L*IDxXϒ'a>#|K7呾FYX›"ݒ쥬-~bbj4i8 =A=Ca-JkX$`-5,|[ʨ3++ J uy9CkMur?ٔCKhHUtV b~q2hX2w4UiG绛XO?n }w3c:PkOV{j>5y6ʾaYC䊐Wn6h3u60XtzҪ4z̢ZR;Rɶܞxev pؙɤX(9TR%#.LL4D\CX|XdZeI"j,*G^Ny`꣰Y@};Y}طQ8>w}."i}F}r'/$O|$ˆ&QEDs] N $~ C""%]̳7*x WSuDRDh'DDo妳K ; 3#Qٚ[A>}#) *'LSW:]|# l.3J{|u1e})nA٢/qS+~ғsz +hDPU2 ƚxX^&l2/u$ƕFób a ,R9bبTнs~pOf2QV{%)t?{lSU{k۽mm[KKW`va S# fbP2DA >>>B"F+MUC(&Ri?z={~q9 5?H|$16{ҼhX̛WuXf7X+Q.ɛq vX-urzcƦԒh8xW F4s{}eѶtY|Y-v\W( +\2(:O\_j@-;u7>M_^u<l-Sn6)[6phUk6l%R>G0{+?ΊJ?ո2Q$饙,?i<$b1^_;GSjmÛvř]&i1{No낤9q9K]!]uDIeWp}iv D~HB۰<5*a*GM#u_v&L&?Z$}z|$yOk:^눔&tSI^68z֦La{Oaж TWC&C8柚*Vy}n"%k1%ܛj^z#NRWKWiƑjXA4,x[R PU5,rQ3OԹޒ7nH(WpV3%\ׅwܿVeC\ݭV|XpS/~CDGWHuDJp5\s~Qk`}LJJ~J/ӕ^P;炳~ǞعO$ɰ'd5/!7k4 ŝюl$#JY ,?}wG՞e]]]cLJהּy,Wkw=fp$Ր5m㾐=$pfW р*c5/WW?VQ8k7ۘil}"<, + .V|vg/!(Z-fA5)h~5$g6!Eu@0<D D;QAa~ͅSZ9N;HR},*,sS6cD NN&WA@V)Źo.:>uL"?n̫Cط[8("u_ `0 `0 `0 `0 ƿ~`0 `0-p0O p$@ +s oZ)NO8=$Q-΃ׁH xc=su L|Z a0։)n*ך,>`8:z}Mb,>cn_ӏ^ָ]\c-ŴIL@?E޿_{G#0kb[1L`(-rƴyX?(-OOp>Ms_)$C$YLzJyuS Ix%_pyy 2o +endstream +endobj +1785 0 obj +<> +endobj +1477 0 obj +<>/AP<>/BS<>/F 4/Rect[303.105951 757.790154 487.425775 744.190545]/Subtype/Link/Type/Annot>> +endobj +1478 0 obj +<>/AP<>/BS<>/F 4/Rect[340.991938 722.590936 489.634027 708.991326]/Subtype/Link/Type/Annot>> +endobj +1479 0 obj +<>/AP<>/BS<>/F 4/Rect[145.905512 708.991326 181.583246 695.391717]/Subtype/Link/Type/Annot>> +endobj +1480 0 obj +<>/AP<>/BS<>/F 4/Rect[340.991938 673.792108 489.634027 660.192498]/Subtype/Link/Type/Annot>> +endobj +1481 0 obj +<>/AP<>/BS<>/F 4/Rect[145.905512 660.192498 181.583246 646.592889]/Subtype/Link/Type/Annot>> +endobj +1482 0 obj +<>/AP<>/BS<>/F 4/Rect[362.189691 624.993279 510.831781 611.39367]/Subtype/Link/Type/Annot>> +endobj +1483 0 obj +<>/AP<>/BS<>/F 4/Rect[145.905512 611.39367 181.583246 597.794061]/Subtype/Link/Type/Annot>> +endobj +1484 0 obj +<>/AP<>/BS<>/F 4/Rect[405.570307 576.194451 525.297113 562.594842]/Subtype/Link/Type/Annot>> +endobj +1485 0 obj +<>/AP<>/BS<>/F 4/Rect[145.905512 562.594842 200.189691 548.995233]/Subtype/Link/Type/Annot>> +endobj +1486 0 obj +<>/AP<>/BS<>/F 4/Rect[398.273676 540.995233 430.929438 527.395623]/Subtype/Link/Type/Annot>> +endobj +1487 0 obj +<>/AP<>/BS<>/F 4/Rect[145.905512 527.395623 241.854975 513.796014]/Subtype/Link/Type/Annot>> +endobj +1488 0 obj +<>/BS<>/Dest(name-authors-addresses)/F 4/Rect[65.905512 495.696014 207.103266 476.976014]/Subtype/Link/Type/Annot>> +endobj +1489 0 obj +<>/AP<>/BS<>/F 4/Rect[98.97143 385.378358 212.000238 371.778748]/Subtype/Link/Type/Annot>> +endobj +1490 0 obj +<>/AP<>/BS<>/F 4/Rect[98.97143 293.780701 215.068354 280.181092]/Subtype/Link/Type/Annot>> +endobj +1883 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1882 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1881 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1880 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1879 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1878 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1877 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1876 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1875 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1874 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1873 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1872 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1871 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1870 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1864 0 obj +<>stream +x\IonЅ:زvF&6R!1EK").CDC~zz3T+i̛RL8^ }pVzs^u9;Z1ǹnaZ췿omc[o?m`|?]X~D)zC|/$/Ԕ\5sS4o#?^]}1z߼^^<85rEK1( 0=NVN;& DgHڬIG̑{u`;1tđF1 m'f{!آ&2+wmO',chQZ+!+.U>Y^#xPXS.J?.K|+Iu3^)JgM앎 Z3õy1^&J9wGS҂[Gŷ:-Ί;9$ :! tV< !ڑS34i>W"^6VIpz KyXm1ic 0 9v8;dXzp fIlUPЄ`&+aa3*.Z2X=~Qo l G/ӄ8t݀ȥMv ݜWszq]nj!v,յŀREV@;J I4IX$ɂ0[ nt$D'Ϧ׋ۭ5 +OٴVDCt{ lPH,l+ql.$ts 2`܌a_ky ZpJ6&1};(@]4&XNwZd];ӒH I#(g9PKk"0H@3,蒩R1ڐKtT +\E6@*FU4pj7cN`^35'tŒmM +x*?ؑ vߧ!ፖnT=KRs\ +D{1kZ# G l$,Z4aYTR% ZFs` m]}͔QGYavc4@5ѸI~, HgV@}L&AU"l[]W8Q &qډ(Zo]Z6O֧# Q|4 <Ћi4b y*=R^uԊ]a gثc|U8R+ +_UއcVTyZ"*ؔ(!A% +Iµd!JRd#|9Ik(n:ρDXgu8íV] Ã~s4TecbɺMK{_ c6 +v khx )4Fy?-B(_;&I-ЀjUdss&E5 GE,nraE2 ]xF[92p|%^y׏dCF8A_bh hʹM9\@QkuunKO5ri +G,dY'Rsg͐9z]S(rIGo3Z >K0Z3X/GTT:jV+:>Ģ +@e'D8s(t#OWj;u2Zh4,}Jke^Q65Qq]x?疹.rNpNyhCGR1g+\4YmЖHI]>{dW$ 3BƱN6Kd{%SgJ`,[>x~Y}"›DaN^IuZ4y{z3( 49[ܸɃWS&ûM'<[6G&ol))k[6$0i +`H{%oIx29S2V oɍ_YtrJ41/tkֽxaU[&9HfN8>G[ݷ3r}W!:txDM|6NO/ӽrSv_8$3xr8A~J&SstCU+HM33^-c]g\]ƴfi; 6["y +\p}PAP3d BɘUvR3,BNt`5Υ&c; +C-sɗši0@嵕>eŤ`iDX%(8#F MVm^8W=:~JIJ*g4'#R|XZ-O싽+LS,7&c_MucڛQ>2U4qC&xS2TS#XC`ɘsNV֡BG[.N޽,Zuc}`(@$ Kg㊒č9UݸbW"C,9[\Q;4 ,/P%P acO4g{ .ot+( d&@E C2Dpi)F,zA;U7v}u)Ae2w (K;65ñ xFcgZژe-u]8nCNۆ%>/Font<>>> +endobj +1455 0 obj +<>/AP<>/BS<>/F 4/Rect[427.784662 757.790154 504.515375 744.190545]/Subtype/Link/Type/Annot>> +endobj +1456 0 obj +<>/AP<>/BS<>/F 4/Rect[145.905512 744.190545 253.494623 730.590936]/Subtype/Link/Type/Annot>> +endobj +1457 0 obj +<>/BS<>/Dest(section-5.2)/F 4/Rect[65.905512 716.090936 95.494623 700.490936]/Subtype/Link/Type/Annot>> +endobj +1458 0 obj +<>/BS<>/Dest(name-informative-references)/F 4/Rect[95.494623 716.090936 239.403803 700.490936]/Subtype/Link/Type/Annot>> +endobj +1459 0 obj +<>/AP<>/BS<>/F 4/Rect[339.623774 690.490936 372.279535 676.891326]/Subtype/Link/Type/Annot>> +endobj +1460 0 obj +<>/AP<>/BS<>/F 4/Rect[145.905512 676.891326 341.323725 663.291717]/Subtype/Link/Type/Annot>> +endobj +1461 0 obj +<>/AP<>/BS<>/F 4/Rect[293.837152 628.092498 478.156977 614.492889]/Subtype/Link/Type/Annot>> +endobj +1462 0 obj +<>/AP<>/BS<>/F 4/Rect[276.146234 592.893279 460.466059 579.29367]/Subtype/Link/Type/Annot>> +endobj +1463 0 obj +<>/AP<>/BS<>/F 4/Rect[151.495356 544.094451 335.81518 530.494842]/Subtype/Link/Type/Annot>> +endobj +1464 0 obj +<>/AP<>/BS<>/F 4/Rect[358.52099 508.895233 507.16308 495.295623]/Subtype/Link/Type/Annot>> +endobj +1465 0 obj +<>/AP<>/BS<>/F 4/Rect[145.905512 495.295623 181.583246 481.696014]/Subtype/Link/Type/Annot>> +endobj +1466 0 obj +<>/AP<>/BS<>/F 4/Rect[260.566156 460.096404 444.885981 446.496795]/Subtype/Link/Type/Annot>> +endobj +1467 0 obj +<>/AP<>/BS<>/F 4/Rect[230.08935 424.897186 414.409174 411.297576]/Subtype/Link/Type/Annot>> +endobj +1468 0 obj +<>/AP<>/BS<>/F 4/Rect[427.163568 389.697967 503.894281 376.098358]/Subtype/Link/Type/Annot>> +endobj +1469 0 obj +<>/AP<>/BS<>/F 4/Rect[145.905512 376.098358 253.494623 362.498748]/Subtype/Link/Type/Annot>> +endobj +1470 0 obj +<>/AP<>/BS<>/F 4/Rect[443.220453 327.299529 519.951166 313.69992]/Subtype/Link/Type/Annot>> +endobj +1471 0 obj +<>/AP<>/BS<>/F 4/Rect[145.905512 313.69992 253.494623 300.100311]/Subtype/Link/Type/Annot>> +endobj +1472 0 obj +<>/AP<>/BS<>/F 4/Rect[316.153315 278.500701 500.473139 264.901092]/Subtype/Link/Type/Annot>> +endobj +1473 0 obj +<>/AP<>/BS<>/F 4/Rect[265.59643 243.301483 449.916254 229.701873]/Subtype/Link/Type/Annot>> +endobj +1474 0 obj +<>/AP<>/BS<>/F 4/Rect[202.010492 194.502654 386.330316 180.903045]/Subtype/Link/Type/Annot>> +endobj +1903 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1902 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1901 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1900 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1899 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1898 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1897 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1896 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1895 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1894 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1893 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1892 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1891 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1890 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1889 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1888 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1887 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1886 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1885 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1884 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1863 0 obj +<>stream +x\[s*^ʦ +"JR)G +`!Iخ<;=3ٳe%鯻Υ/35x=*c +Ώ;"g;x[#!Y NX+usÎow] 9;QJkT1+h[ }n;kwzr8_lo ??ׇna-~/~nK(C?|“.ΔB7kyVJwȍzu( +'o`#0#WKp^h#FJ/VZa,6rZqQwjM [-ZFn`6J3xHQ7Bq^D3gP\sW"1>zjzU=rGD)`G~h]LlFi6~|PW+ <1گ^W'z%F9V ^aKTB_^;)NcqԄ! ?2cP1(Z[،QQTHkt٤dT){|ܛ& i+^` _f"Y{R\D<@^Po 1h^= %84h}kP~a6 Ù017lQ@aytVsv)4'l1h90T +?cߏ-F_\cv.@ e RD{=>sY/tP^[ d҃ 田n~#+ +/Nih wQZL9D2%7&g +PO¥b_)3XKaM,Љդ[.g" C aPL LDtgι֮w1z oҰK+Þ 5^2@ছ&/WQH8$,~ +xN4Eccgcl8c"OB +J%R"It +WI׃] .Ѩ¦mcB-SB\-(,5 6N nT(\/`",69y\=~ᔐ@^$/ɫt ##Rh8ci,J/y&5,ImR#1.($0!3<̃Er3+r0^2B!&o + WF &sheDۑ R ;xF< a17zI,o%lDJPxI\.HG)ȍ Bspl$4R<ᅌ<*bNe?鍾/Dsq@x8"W+p a֩rGhYV ;x;Ew(fخWsD)X1PySH1? ۯuTu9)o S1x!UÝJW'g,(p=6G(MA"܌slm}NKnQlAOoߠr ٖ_C7@{k@f>oz#62R |#FWR_(V7*%*=+tTҁ; vf9L9O ("L!U*2<,w'jF#wE;E +8ag"EG5#vGjs/M埑8Uvqj ++j%6B L[;@kU8Fכ$&jKU\XeWm{V7ςL_tr-*>m0Vf_֥ZԾ}\ ja=B1$A s)6+#f;dECot]=OWh0,R(=T6󰞢17p)ƊQIΝ٘OwX |3t +_ȼw.i2VfL 42Z^LJXw\\GjTdY[YshԷWɜ:gƇ +?Ly :Zr;FztE=&w6[(``H'@py aM+)ADc6°6F-:}㷸AհpdV=:3ahp*Vبd)|\o 2rFy@ur{:D< yV0'yAf%AIKXɉ.ɰ/^Di9V"nAEY$8-8>$ TbHv7H&i$;8Fcܖn |j16z-gbI'1"f`h" ?mbʭ&>>..S_on=?JC>.9ݝ=#}z?Ո2d?;toe(p1G>wͨO&ϻlj}G1w>xK1?Nh4=&,FRN!lإ{t@̺f: .F@\7K\ye+]" >d;wfα+(Ƚd81s]{ xǹpW\NsYplw)I-eps-./YûWv \A +J", H&ó޹e&hj~5_/!fc`Ń6!z6vZ7CLJ^nCm_e~n7sIe2ܬ`7`OJ!ZҩWZ~<,̕:- < Ʃm\7Wia?8?6K').kO :lh^2nV)WY +endstream +endobj +1780 0 obj +<>/Font<>>> +endobj +1433 0 obj +<>/AP<>/BS<>/F 4/Rect[323.563959 757.790154 507.883783 744.190545]/Subtype/Link/Type/Annot>> +endobj +1434 0 obj +<>/AP<>/BS<>/F 4/Rect[339.202631 722.590936 487.844721 708.991326]/Subtype/Link/Type/Annot>> +endobj +1435 0 obj +<>/AP<>/BS<>/F 4/Rect[145.905512 708.991326 181.583246 695.391717]/Subtype/Link/Type/Annot>> +endobj +1436 0 obj +<>/AP<>/BS<>/F 4/Rect[309.944574 673.792108 494.264399 660.192498]/Subtype/Link/Type/Annot>> +endobj +1437 0 obj +<>/AP<>/BS<>/F 4/Rect[453.532221 638.592889 486.187983 624.993279]/Subtype/Link/Type/Annot>> +endobj +1438 0 obj +<>/AP<>/BS<>/F 4/Rect[145.905512 624.993279 297.569574 611.39367]/Subtype/Link/Type/Annot>> +endobj +1439 0 obj +<>/AP<>/BS<>/F 4/Rect[219.379145 589.794061 403.698969 576.194451]/Subtype/Link/Type/Annot>> +endobj +1440 0 obj +<>/AP<>/BS<>/F 4/Rect[371.979975 554.594842 520.622065 540.995233]/Subtype/Link/Type/Annot>> +endobj +1441 0 obj +<>/AP<>/BS<>/F 4/Rect[145.905512 540.995233 181.583246 527.395623]/Subtype/Link/Type/Annot>> +endobj +1442 0 obj +<>/AP<>/BS<>/F 4/Rect[468.636957 505.796014 501.292719 492.196404]/Subtype/Link/Type/Annot>> +endobj +1443 0 obj +<>/AP<>/BS<>/F 4/Rect[145.905512 492.196404 297.569574 478.596795]/Subtype/Link/Type/Annot>> +endobj +1444 0 obj +<>/AP<>/BS<>/F 4/Rect[214.509272 456.997186 398.829096 443.397576]/Subtype/Link/Type/Annot>> +endobj +1445 0 obj +<>/AP<>/BS<>/F 4/Rect[443.720697 421.797967 520.45141 408.198358]/Subtype/Link/Type/Annot>> +endobj +1446 0 obj +<>/AP<>/BS<>/F 4/Rect[145.905512 408.198358 253.494623 394.598748]/Subtype/Link/Type/Annot>> +endobj +1447 0 obj +<>/AP<>/BS<>/F 4/Rect[212.540522 372.999139 396.860346 359.399529]/Subtype/Link/Type/Annot>> +endobj +1448 0 obj +<>/AP<>/BS<>/F 4/Rect[313.533441 324.200311 497.853266 310.600701]/Subtype/Link/Type/Annot>> +endobj +1449 0 obj +<>/AP<>/BS<>/F 4/Rect[178.953852 275.401483 363.273676 261.801873]/Subtype/Link/Type/Annot>> +endobj +1450 0 obj +<>/AP<>/BS<>/F 4/Rect[296.315668 240.202264 480.635492 226.602654]/Subtype/Link/Type/Annot>> +endobj +1451 0 obj +<>/AP<>/BS<>/F 4/Rect[378.4685 205.003045 527.11059 191.403436]/Subtype/Link/Type/Annot>> +endobj +1452 0 obj +<>/AP<>/BS<>/F 4/Rect[145.905512 191.403436 181.583246 177.803826]/Subtype/Link/Type/Annot>> +endobj +1923 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1922 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1921 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1920 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1919 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1918 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1917 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1916 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1915 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1914 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1913 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1912 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1911 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1910 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1909 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1908 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1907 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1906 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1905 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1904 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1862 0 obj +<>stream +x[Is*/A"[ +R=}9ؕr@aE@C|Se' 8A AOu7:8s59̭/W!>Y7J1lY+ż_~8?!ǯ?> Y/o\\soL]1T~&RS"SyWm`2N\V~UE=US+U.9_Z%0GsW/>|˫}.sA2/26;>8G;t/)g\3!}Dn՞olfg3f2/u37&ǂ}}=ʞq99Үoj#;:?Ve7ʅzQʘx_. DwNb0'#2ݍ(QcsgfwS^sh?W\E;grR Cg[OPv |+7A1M Q}L3Hz!LBAiQ +;|m +%^[,L ;w@8}'"JZȰ&u'} 0˾!? +HiIǁTݒ~IrW;HP=DFT"Rmښm:[sg)~V 8(=OxA>Zu#Vxm&^ ʼni}Eζo6U _;-Q.;!Q7E?6t]:`Ot+=$΋XPWtD9 L Y͸N,+a6h<vҀykoh6Z:%@\0e#%V=Vl2F/W0]oѩQR޿O:a1Rܸ[ī)3}Ef[Z8,?߹U? +endstream +endobj +1778 0 obj +<>/Font<>>> +endobj +1415 0 obj +<>/BS<>/Dest(section-4.2)/F 4/Rect[65.905512 688.891717 95.494623 673.291717]/Subtype/Link/Type/Annot>> +endobj +1416 0 obj +<>/BS<>/Dest(name-uri-values)/F 4/Rect[95.494623 688.891717 160.650873 673.291717]/Subtype/Link/Type/Annot>> +endobj +1417 0 obj +<>/AP<>/BS<>/F 4/Rect[118.998774 653.692108 161.834467 640.092498]/Subtype/Link/Type/Annot>> +endobj +1418 0 obj +<>/BS<>/Dest(RFC3986)/F 4/Rect[180.091547 653.692108 221.049311 640.092498]/Subtype/Link/Type/Annot>> +endobj +1419 0 obj +<>/BS<>/Dest(section-5)/F 4/Rect[65.905512 493.195623 89.131635 474.475623]/Subtype/Link/Type/Annot>> +endobj +1420 0 obj +<>/BS<>/Dest(name-references)/F 4/Rect[89.131635 493.195623 169.812299 474.475623]/Subtype/Link/Type/Annot>> +endobj +1421 0 obj +<>/BS<>/Dest(section-5.1)/F 4/Rect[65.905512 462.775623 95.494623 447.175623]/Subtype/Link/Type/Annot>> +endobj +1422 0 obj +<>/BS<>/Dest(name-normative-references)/F 4/Rect[95.494623 462.775623 231.160395 447.175623]/Subtype/Link/Type/Annot>> +endobj +1423 0 obj +<>/AP<>/BS<>/F 4/Rect[291.740961 437.175623 446.004389 423.576014]/Subtype/Link/Type/Annot>> +endobj +1424 0 obj +<>/AP<>/BS<>/F 4/Rect[270.213617 415.576014 507.8706 401.976404]/Subtype/Link/Type/Annot>> +endobj +1425 0 obj +<>/AP<>/BS<>/F 4/Rect[322.304926 331.577967 506.62475 317.978358]/Subtype/Link/Type/Annot>> +endobj +1426 0 obj +<>/AP<>/BS<>/F 4/Rect[391.918695 296.378748 518.573481 282.779139]/Subtype/Link/Type/Annot>> +endobj +1427 0 obj +<>/AP<>/BS<>/F 4/Rect[145.905512 282.779139 203.570551 269.179529]/Subtype/Link/Type/Annot>> +endobj +1428 0 obj +<>/AP<>/BS<>/F 4/Rect[151.495356 233.980311 335.81518 220.380701]/Subtype/Link/Type/Annot>> +endobj +1429 0 obj +<>/AP<>/BS<>/F 4/Rect[372.719721 198.781092 521.361811 185.181483]/Subtype/Link/Type/Annot>> +endobj +1430 0 obj +<>/AP<>/BS<>/F 4/Rect[145.905512 185.181483 181.583246 171.581873]/Subtype/Link/Type/Annot>> +endobj +1939 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1938 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1937 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1936 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1935 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1934 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1933 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1932 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1931 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1930 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1929 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1928 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1927 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1926 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1925 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1924 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1861 0 obj +<>stream +x[Ks*ܠmNJ刮h󞹤`! I*JsOOObw! &_@ +x4'FI>\ YşpHrPZ9b??dd_4|W5Bi.<DOJʧ侽~r=r'Ut9F>]?k]lnq32<#Rv*F ,p.$)v(3rW[H(Ĵ|`r27V<rfrSP2j,c;`~ 23}}`#;Ak@VZ]|m/~>"Ci揱]0VXR}$HnL. # sV^Z?Yjq.Nhu/XF`wׄ9m=bXdf0MDO-?rY#"}YˬIc|lLUi7^x%Ejc{\Y掺գ ά{׃eegE?= O-Ȥq>AsW}}/gR%;[֟eκ(qnsFOS 2iiUA_ԭnΖy٬>30gsv+5YK9WB6{֟ZI|x6gN3p=гM! 7^,/#r +"F׏÷W2 3x+> ]? D6~Yfx,oM6W2u\PrvM@iήwa25Xbb7)Aߤz}}?_ZnR?hNfc sy$?28}u#CgVȬ[={.Kop+UBW܃30mm=RD=XHPş6W")C6C_ք*5;@s[w~ P} mAl +8nN)ܙq G~k*cYddHX%~d"edooZZq[eRfDLN}dL5tY5 UJbfԶ8D4/O.akG|͘  ŞԭgezEd]p}=Y[w6E7ߣ Lf>M%,ޥ/KPi{~-)N +s + CP-f֗PTv6 Xps;{pᴩO+66ˮe}z)\bkqEq ䷾&zzvn2hySh,*%wZ[&5*LRݙ;ë廪S<oaMGwYvU=OE!!e1z|Qu|R% wq\'YF-I+=ƱfeSaCwy +!/~X¡qy^}Z׳g=aЦÿ"JWj^f_f_8si %?`( >%F' T%Md__fG[I*I*0MRT{ٯÔ5L)si!"Jg8>dzZ(r"r7 Xbd(9 Z%lIkVR~YNaJd +endstream +endobj +1776 0 obj +<>/Font<>>> +endobj +1623 0 obj +<> +endobj +1940 0 obj +<>stream +HMo0CbɪԤMݻcY$1b4Ҫyg^ZR0L3x^F`Ż`xbhQD9?hQx,TmFP$ϵ",_:,UXX"꽶HA=܆^ne}D=fU<98Y ;~K^_^zm* )qr& z?zk.$w rG#G=rq`>Jqt1r"D7~t c*ľ Wg czo]SR*+QNQ"WE/7 7skדgk*W(fdLc釔'!YLI* dJR"se$H"y|ɜ9uLur``xrzDY +?Z;Oq9`^[ +endstream +endobj +1622 0 obj +<>/CIDToGIDMap/Identity/FontDescriptor 1621 0 R/Subtype/CIDFontType2/Type/Font/W[3[260]5[408]11 12 346 15[250 310]19 28 559 29[286]36[705 654 627 725 623 590 714]44[367 357 700 623 938 763 742 620]53[664 544 613 730 675 1045]68[579 562 487 579 493 318 556 599 304]78[569 304 896 599 574 577]85[468 464 368 599 538 819 546 528 511]2181[594]]>> +endobj +1621 0 obj +<> +endobj +1941 0 obj +<>stream +HVip]Y+E,ɲ$XYul#`_ò_1.# @~$L'4dH:1tO;L#dI!Δm C ݕ 3{|y=V#hgb4pGvݑ&G#TNܷ+3݇~4Axy P?A &Ϙ^XFZ1FH^c333{ӣÙ/B[{]7(w"!6Ԫ # [ŧYd$wR+62Q計wїXGe)#jcį/'$$'J, + QgIoT5NfuY_n-?/*QTBRV|0L3W@P@P@P@c$l$pY\pFfdE.EMh͠,FxDT֠vԇh + +ϲ m:o/RA؏9;X E>*CHkCq\pw˩mtqoNl\׺ͻO8F|-OqI8dw!jsoBh݃^B  |D8  +וWL6(rcۑ8"Qbrvf!ʈ#db"Ip2$)55u5(g`GO=3퉝>g 8Աp_GSB;M7ȈhHgRHR` ),l2- *s:?qlp&TzxUYRpW`!q<'DRJ(HJQ/$Tn뭔2;>✽7b}nokqVYٸ;ۼ#Ϩ| fE508Y~j%{.[&tz:ݴ9:tyu&ݰ3?M6F=0Ex"sC_Y:x{- +?@j3 RyaI2ȃ ¥#%G@]y%Sl}.L :( +LH3~z]I(.Wb"*sASbbP ms2+jsPkM 0e=y/`ei8gI%Y-S@NHF;|8xκ~x3\ة]|{=<+dTnBYW48D_p۳_6݌oi%C +VBݱ7yə:+9I$>ĪzzPu<«*w)4v)=iَMİUR#a`PbCy#x,CC$av.}H24^f%w482j3ZזO`[F4hpiΑ{5d^i8%fZihܬ\>K?,yWf)qb@ax=gg_5^iϛ0ĵrO)7ښ<gC+eWDW@hXk 8F,Y/"\e44*U|=b+~ۺ]_](WY#jc۸˸gbǎ_/g}~=v⤎8mIi7BQZn똄Є|Et_2Q +hc_(_  +CTBӐP[&ξi2;w<vK7ȧиNç{7_tBJ) t^pDVp@O A3kj`[5h4N,YÙo<1RՆ2&b`wʹ;\a++ H ,y~[I)1$Ow߼ Dan.\ܩ/ŽP*IT_ +8څF ?OɈ<>'C?Si +\aE*NT ZTxhʌrzqW'*f3Nj׿Y,^_*œ:.M.I3Fg@~u;j__5䚸QG +KףsӉ`?}2Ҭ'_j镑#UMmًeY+]\JH7c + H1O2|N{K ^4ɻQPWGY**&tm໳҂fʑvc J1S;3|r4,Љr,#RSӜ+*o} i|WCVL-9V)@aodlApL?D$⎴x!UO}DM]=n_k]1#e~?~\@$L.:C_S]jYQw"tfDZTٻ@z8tz"&Y19,$7e <6%^;rT-&n#f +ĝL&/y^>Y|iqD;?IL jW8#O?<5tOVX~s6/ޑpfI L&wx +%E| +~S8 &'|j3X>VbȀ\~3Xч'9ǹmv>h'5ay cN0i=P$%uU~QTfW%N V ,h.˯Т2a…j$QNO!W /X|$fkJɝUy;x9xiəX +)(n'K{SW A({Mx})blg Fn)HLmS-`119+-ךlʩƹZs1#zp )mWMnB7hYZYk +oP[=JNo}iV ! +lP6R( !}!b]_ZH ~˨!d˫a_>)wxKI>8# A츕s,Û]\2BDzzt* P,z.}N1`A\X|%=/q#ͥ Qb-sR*>ws9o[FP?rJ?G.Bq=fik?[u({΄VÔh˙jol@D02iG')v#0p1ozvvF-G 1`InA}Ӿyfޭplp2vn–PdW׸ +\;UTvXck5_l5ZR'QoLM</CGh$7iNv,>?;:}ۍ\ǝ*IBү6]2I菷'^"Ltg\SQ2tUkݞSg}ӽ*v>wc/,%SCؑn\jla6~6P(֯WHaxF?RGMRҷύ[`8Ÿ}r7{_$ቯY ]{W_݄=p{lsUȿmjOf?Vqf334uȾmSnIJz5+Wߑy> ^;9u swXE&lP G٬9񧡰DXTˏ&{T`|LL1P͡[؀=jύMp6 TF@M~P>kJP8f$%kx; +c ͖rL*llFlKum467ߐ{ț! 3+$|1uOS4j%ƀ<˪Y^vz?ZLK+$,&%'zXf RG] ~zz]1PBSceߐ!ex=9 )jAZE8e,|R]"Fd>OɠdA),g!Q-rS*ꤗDAHa=4@9:Ig@(]"Nh;a`_,r#tZ,H'^\im=Ө9%BS}%: +DvB_xiYQʺӺ4Ƭ<vZP3Gg1a'vC(Q#z@.͍ qVzRedr#7.iQqxbb1R0)_CC .GT_EE0~ +endstream +endobj +1401 0 obj +<>/BS<>/Dest(relatedTo)/F 4/Rect[253.339106 741.290154 312.353998 727.690545]/Subtype/Link/Type/Annot>> +endobj +1402 0 obj +<>/BS<>/Dest(relatedTo)/F 4/Rect[253.339106 716.940545 312.353998 703.340936]/Subtype/Link/Type/Annot>> +endobj +1403 0 obj +<>/BS<>/Dest(relatedTo)/F 4/Rect[253.339106 692.590936 312.353998 678.991326]/Subtype/Link/Type/Annot>> +endobj +1404 0 obj +<>/BS<>/Dest(relatedTo)/F 4/Rect[253.339106 668.241326 312.353998 654.641717]/Subtype/Link/Type/Annot>> +endobj +1405 0 obj +<>/BS<>/Dest(table-22)/F 4/Rect[165.905512 648.891717 204.891596 635.292108]/Subtype/Link/Type/Annot>> +endobj +1406 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-for-r)/F 4/Rect[210.350336 648.891717 373.763178 635.292108]/Subtype/Link/Type/Annot>> +endobj +1407 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-for-r)/F 4/Rect[165.905512 635.292108 252.875483 621.692498]/Subtype/Link/Type/Annot>> +endobj +1408 0 obj +<>/BS<>/Dest(section-4)/F 4/Rect[65.905512 603.592498 89.131635 584.872498]/Subtype/Link/Type/Annot>> +endobj +1409 0 obj +<>/BS<>/Dest(name-security-considerations)/F 4/Rect[89.131635 603.592498 263.434125 584.872498]/Subtype/Link/Type/Annot>> +endobj +1410 0 obj +<>/BS<>/Dest(section-4.1)/F 4/Rect[65.905512 393.576795 95.494623 377.976795]/Subtype/Link/Type/Annot>> +endobj +1411 0 obj +<>/BS<>/Dest(name-json-parsing)/F 4/Rect[95.494623 393.576795 175.231195 377.976795]/Subtype/Link/Type/Annot>> +endobj +1412 0 obj +<>/BS<>/Dest(RFC8259)/F 4/Rect[215.316645 371.976795 256.274408 358.377186]/Subtype/Link/Type/Annot>> +endobj +1953 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1952 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1951 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1950 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1949 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1948 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1947 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1946 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1945 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1944 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1943 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1942 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1860 0 obj +<>stream +x]ێ%CĎ$!p,#~yRt_I7A`'OOsbSSˮSuNlV//>O采SMz{!|mon?~a?d/?g3DJz+ Ӛw#EBqa9|f%F?8-'ZuTx<K3?z_!ׯ6G7B V Ғ7_=_o:m}n*}}tw:랥wW{mVD/];+,7.™>ͬQf?'lj\5.kiIJ^ M:A?MŌ%ܙ + S"RK.hz"Kz4:y=,^GB&.1hgxke.8Cɀ4\q]L[U:^ Ccz谌egfԱe-? vXOp{R[[XF;X?RgdA)j*W5Fu +;1)&HU1X{FNşndAuCi@f L>x]aza^"cYvȌ^iuTTxn*Y߁gif:Ȝ2^ȗ0.id֗Uz +euJ#szV3^yU3ݑP`ܮӌ3| +YFY'I\֭]42O?J:3MN_wӝ'IA&ڧBK5suwpAq#G4xOvv>I>.V%FBXzjPDtPiSoݛuԠLF;'e*]f18e._P:R`_^?yJw vWOz|4'IOoU$5Χ=퍿LT.ܛ(S]ɝy];W9k?_Mb<~ Rш \)izn~\y0>VJavv%mS*JSRr>X c{,;tËد^vFPҏIONy'"뗝}X뗝}"뗝}X뗝aa~~ٙu,azy(c!뗝}X뗝}/ 뼗د_v^a د_vf +Q8egfԱee?MGRe<>c|lEw;Љ_p\c|Չ_< +kwžx`w"qtnPU]ȷORuT\r*RsvZ+v +z4LJ3Xvfdnj3^yjqڠ0uuI#S+JB'sYvȜ?4#6S O򧑖ć3ӪSU| IWvI#Uu.֮S'ԳŸ&rwZ5yM-O]?M; ֹ]gƫ'_%JOT!Гֹ[NidΟ@ +ۨ+ӴYޝy:wAy 4+Xf]a9cj| tDv ,WuHu$- +֬K3dqޏV^0f KIxܬʍK + 8O>2cIWI%򪠧 -Y%hIk\֬]42cKe/M[ݔb'VsvZlWMcNs|(0uniF漙j DՅ,uI#Uu.֮S'гŸ>qw͗Z5yM-ϼ]?; ֹ]gƫ'_%FOT!Гֹ[NidΟ@y:)WеfVAvS3oWO')fU''FY'I\֭]42Og?vUԲ( +`u9fB=oEa: u]Ȭ?D=i˺F w)NM NzaNjNE~='G-ߛb[n/SPަcJ̉a~jg?tߞއ.z睜Nː#%7HwxQߤ/^ݧC뵕$t*=n>}սy%B.6x<*N}wb}Zoǻ:;۵ޟϺ.mU +endstream +endobj +1774 0 obj +<>/Font<>>> +endobj +1377 0 obj +<>/BS<>/Dest(prop-phonetic)/F 4/Rect[249.748774 741.290154 308.763666 727.690545]/Subtype/Link/Type/Annot>> +endobj +1378 0 obj +<>/BS<>/Dest(prop-phonetic)/F 4/Rect[249.748774 716.940545 308.763666 703.340936]/Subtype/Link/Type/Annot>> +endobj +1379 0 obj +<>/BS<>/Dest(prop-phonetic)/F 4/Rect[249.748774 692.590936 308.763666 678.991326]/Subtype/Link/Type/Annot>> +endobj +1380 0 obj +<>/BS<>/Dest(table-21)/F 4/Rect[165.905512 673.241326 204.891596 659.641717]/Subtype/Link/Type/Annot>> +endobj +1381 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-for-p)/F 4/Rect[210.350336 673.241326 334.478266 659.641717]/Subtype/Link/Type/Annot>> +endobj +1382 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-for-p)/F 4/Rect[165.905512 659.641717 358.883295 646.042108]/Subtype/Link/Type/Annot>> +endobj +1383 0 obj +<>/BS<>/Dest(relatedTo)/F 4/Rect[253.339106 548.743279 312.353998 535.14367]/Subtype/Link/Type/Annot>> +endobj +1384 0 obj +<>/BS<>/Dest(relatedTo)/F 4/Rect[253.339106 524.39367 312.353998 510.794061]/Subtype/Link/Type/Annot>> +endobj +1385 0 obj +<>/BS<>/Dest(relatedTo)/F 4/Rect[253.339106 500.044061 312.353998 486.444451]/Subtype/Link/Type/Annot>> +endobj +1386 0 obj +<>/BS<>/Dest(relatedTo)/F 4/Rect[253.339106 475.694451 312.353998 462.094842]/Subtype/Link/Type/Annot>> +endobj +1387 0 obj +<>/BS<>/Dest(relatedTo)/F 4/Rect[253.339106 451.344842 312.353998 437.745233]/Subtype/Link/Type/Annot>> +endobj +1388 0 obj +<>/BS<>/Dest(relatedTo)/F 4/Rect[253.339106 426.995233 312.353998 413.395623]/Subtype/Link/Type/Annot>> +endobj +1389 0 obj +<>/BS<>/Dest(relatedTo)/F 4/Rect[253.339106 402.645623 312.353998 389.046014]/Subtype/Link/Type/Annot>> +endobj +1390 0 obj +<>/BS<>/Dest(relatedTo)/F 4/Rect[253.339106 378.296014 312.353998 364.696404]/Subtype/Link/Type/Annot>> +endobj +1391 0 obj +<>/BS<>/Dest(relatedTo)/F 4/Rect[253.339106 353.946404 312.353998 340.346795]/Subtype/Link/Type/Annot>> +endobj +1392 0 obj +<>/BS<>/Dest(relatedTo)/F 4/Rect[253.339106 329.596795 312.353998 315.997186]/Subtype/Link/Type/Annot>> +endobj +1393 0 obj +<>/BS<>/Dest(relatedTo)/F 4/Rect[253.339106 305.247186 312.353998 291.647576]/Subtype/Link/Type/Annot>> +endobj +1394 0 obj +<>/BS<>/Dest(relatedTo)/F 4/Rect[253.339106 280.897576 312.353998 267.297967]/Subtype/Link/Type/Annot>> +endobj +1395 0 obj +<>/BS<>/Dest(relatedTo)/F 4/Rect[253.339106 256.547967 312.353998 242.948358]/Subtype/Link/Type/Annot>> +endobj +1396 0 obj +<>/BS<>/Dest(relatedTo)/F 4/Rect[253.339106 232.198358 312.353998 218.598748]/Subtype/Link/Type/Annot>> +endobj +1397 0 obj +<>/BS<>/Dest(relatedTo)/F 4/Rect[253.339106 207.848748 312.353998 194.249139]/Subtype/Link/Type/Annot>> +endobj +1398 0 obj +<>/BS<>/Dest(relatedTo)/F 4/Rect[253.339106 183.499139 312.353998 169.899529]/Subtype/Link/Type/Annot>> +endobj +1975 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1974 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1973 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1972 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1971 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1970 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1969 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1968 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1967 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1966 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1965 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1964 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1963 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1962 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1961 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1960 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1959 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1958 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1957 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1956 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1955 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1954 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1859 0 obj +<>stream +x\Ks*6TخC*])EI96}H"_V]`iku 0ܞO+-_|X7?<3RCF)_/X?xFh~q)qNss-݌ke+#_x#AG/vqo^Bϗ =„İ_.[C)KmϨ%\8l~_LQwO?u7u;テ_rqzsnJ*f$@ѝtW +oX4#ayaA_qDZ'd m qRF8aτ-ehIOǖEh<.[3ns?T-:CemQXK9#!]!_! +..!4%:3 +L_WIv?*ś0|y9}[~ uWԜ3x{x)h)?,3T@nIu/Ϭ,Ȟ2ekb8+E"nt$u;ǮdT&]Ե/ߵbmOlǼ<2g:#LwfL#Yg!3svKD|&9y[sJMJ7:Ó/vX'b7y4+D8+<՝w/bHlݛaYEB@[ 8߬U gR & ('ݯ,| +cKƈZ[FMK0mjiw^eU㖦Pe J.zhyv^m"\Z +8 +P{˫s,#j˩m_mlqr/r/Khn ?mvNePѰ#u?[i4 m~ Nr[^v26\-D VK=i5~awpVv'JrK_6㓪_? 8 կvSD :FelM[n\8Fx{!QD~feF.,ǯ}OUOcvkE4ZQrٗ,wU&S\ZWqo.3L#"D|y.4rA +}jNbQ{ӮkDi:`_f*.Ӏ\g'3ҭtg>/4rQU|F"> +ڃv][gWOә2Sv>^>1ni;3yY39[L%}">[JfRJ=MV\ttyߌ~5s,`>jbޔ&yU>rUj 7SKb9e btdqoVVjda0ܚ^Uaq.= 5~IiwO;z!cŠUîjʼnQƲiRisvQ9[}DŽO;p0o٣v٭}G[v\8oGxQ`?L#fqWZ W.qGO;.Wh\զ?v%3 e212 ȥ xW؎yKwylexYg!3svKD|V*bpڃv][gWO+ә2Sv>^>1ny;3yY39[L%}">?J]O-3ҧ?LeLeV">^>#>#Lw3L#Yg!3sv |VSQsŝv=[T'WNyntUbe- sVKc$Wiʌ}Vi*xIz52 [dZLís}m$aZr+p{5k7WcM DsgmY]>nE P)|B3z^]"Ǐ\Z^7T;I^Rtd/ioG%m?l)vF\G;L]&:L# Lb>>vB;b69G4$ 9DT _Ni%1,֥o·gû KgZ[3(Q~2| @ mk!i_ˉ5pZ`ab[ +endstream +endobj +1772 0 obj +<>/Font<>>> +endobj +1358 0 obj +<>/BS<>/Dest(personalInfo)/F 4/Rect[249.748774 707.690545 308.763666 694.090936]/Subtype/Link/Type/Annot>> +endobj +1359 0 obj +<>/BS<>/Dest(personalInfo)/F 4/Rect[249.748774 683.340936 308.763666 669.741326]/Subtype/Link/Type/Annot>> +endobj +1360 0 obj +<>/BS<>/Dest(personalInfo)/F 4/Rect[249.748774 658.991326 308.763666 645.391717]/Subtype/Link/Type/Annot>> +endobj +1361 0 obj +<>/BS<>/Dest(table-18)/F 4/Rect[165.905512 639.641717 204.891596 626.042108]/Subtype/Link/Type/Annot>> +endobj +1362 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-for-kind-cont)/F 4/Rect[210.350336 639.641717 357.586176 626.042108]/Subtype/Link/Type/Annot>> +endobj +1363 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-for-kind-cont)/F 4/Rect[165.905512 626.042108 273.612543 612.442498]/Subtype/Link/Type/Annot>> +endobj +1364 0 obj +<>/BS<>/Dest(titles)/F 4/Rect[249.748774 515.14367 308.763666 501.544061]/Subtype/Link/Type/Annot>> +endobj +1365 0 obj +<>/BS<>/Dest(titles)/F 4/Rect[249.748774 490.794061 308.763666 477.194451]/Subtype/Link/Type/Annot>> +endobj +1366 0 obj +<>/BS<>/Dest(table-19)/F 4/Rect[165.905512 471.444451 204.891596 457.844842]/Subtype/Link/Type/Annot>> +endobj +1367 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-for-kind-cont-2)/F 4/Rect[210.350336 471.444451 357.586176 457.844842]/Subtype/Link/Type/Annot>> +endobj +1368 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-for-kind-cont-2)/F 4/Rect[165.905512 457.844842 234.846918 444.245233]/Subtype/Link/Type/Annot>> +endobj +1369 0 obj +<>/BS<>/Dest(personalInfo)/F 4/Rect[249.748774 346.946404 308.763666 333.346795]/Subtype/Link/Type/Annot>> +endobj +1370 0 obj +<>/BS<>/Dest(personalInfo)/F 4/Rect[249.748774 322.596795 308.763666 308.997186]/Subtype/Link/Type/Annot>> +endobj +1371 0 obj +<>/BS<>/Dest(personalInfo)/F 4/Rect[249.748774 298.247186 308.763666 284.647576]/Subtype/Link/Type/Annot>> +endobj +1372 0 obj +<>/BS<>/Dest(table-20)/F 4/Rect[165.905512 278.897576 204.891596 265.297967]/Subtype/Link/Type/Annot>> +endobj +1373 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-for-l)/F 4/Rect[210.350336 278.897576 358.39477 265.297967]/Subtype/Link/Type/Annot>> +endobj +1374 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-for-l)/F 4/Rect[165.905512 265.297967 273.612543 251.698358]/Subtype/Link/Type/Annot>> +endobj +1992 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1991 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1990 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1989 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1988 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1987 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1986 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1985 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1984 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1983 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1982 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1981 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1980 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1979 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1978 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1977 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1976 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1858 0 obj +<>stream +x]Ks*ސSprDW4iEԃJLRЗU䧧wpY@(@c\5G/>8|zbΌ/~w+xjλwi̓6_Y{%/?C0?a Sܭ \ (oG(=y}x~51xAnzpǰ~\x9\ńco^y0T #/߮_'߬b/V?>T^tN:ѝuO//VO^n]1L*k+ +b9~mP3,L$5|8, %l!XKcF",|O5s-asR0ɝҡ^PdN")vi~m*Y = m4@#߭in;M3i +6 +- , ɇ +!xe6'Z y#&Ϊu4 LEq̨{4`hχ<ıN?qQ0!qQ<#v{4xfq%~QS'iWI(7!݆^=GמMF!L7 {Uf]/ej5/dH/̊"E|_i,\B_&,vG?;4NƧ3>SsL#rIFOKΌ}Yi.$">Kpj$ {|})&wv +.W3Cͪ~#W1ӎF UdFvTraGU YgC,2\}YN/Ln]RNّv\Wh\jxJe}2=*S\ZW"|";-ľ04rqyU'9[L}b>+irPYWZ9i~umQh\> Og}2vF>#^>1D>ӝ,E}VI"D|y.4rI +}zXfnJ]+'O-3'}&3>SsL#rIFO[Ό}Yi>k$">lŮSv]זUS LezUOWO'ѭtgھ04rY5|i4\'s\a OPMN(͙~̳|5˝2OTcGrY؂-{fiU\Z|U47 r۪ܟxߪP*؅kgs[d-Qܒցq sKB̓KR;+`2Z1.-O; &njӎ{ )Wi=GSi=da>:ӎ[}njO;nl$;Z?q̨~#Wq&}Vͫ~#W1ӎƩafCSؽ}2!*2}>gQig9}iؚ֬ĥG?,|B>әF{LoiD.umī8Dv[˩}Yi*>I4yeF.9O=&XK]+O-3ҧ.)OLrABO[δ}ai>k$">a=6RI{ӮkDB:h3Wp2%}F}b>n];3eY|y.4rI +}:,)vG?8NN3>SsL#rIFOlǼڗeF.볆O!3svKD|Ns87GJ]+O-3ҧ:)OLrABO[δ}ai>k$">gÍVNڣv]['WOҙF{ ]ψWO'ѭtgƾ,4rQU|i4\'B39'PZ9i~umYq\>mHg}2vF>#^>1D.ӝ,e}c>=WL#/v#?8Jdg*S?2E}" +}>J0o.'YDL]i>1T9)Ů]Stg*CyniD.3It+3ݙ/2\g$BgxQ=g77:~좋SWߟ ^` .>_vne`jh-cuS9u N:YPh/ ȿ ZV#TPx_L!689|qohgH]xI(ćR5~J&0)*wE/qS_N Z1xBQ>~Vl?ތlaP2,XnsnC)t橃Gy[xP#!S7O?zf QNKwI3s{nWdJorˁnO!Zee:+&(da]r4>~ߟ^ssʈ$ 6C;wۻmwgҌ:jƿC[t94߶?.g֙k&Vb}V8r +endstream +endobj +1770 0 obj +<>/Font<>>> +endobj +1335 0 obj +<>/BS<>/Dest(links)/F 4/Rect[249.748774 741.290154 308.763666 727.690545]/Subtype/Link/Type/Annot>> +endobj +1336 0 obj +<>/BS<>/Dest(table-15)/F 4/Rect[165.905512 721.940545 204.891596 708.340936]/Subtype/Link/Type/Annot>> +endobj +1337 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-for-kind-c)/F 4/Rect[210.350336 721.940545 357.586176 708.340936]/Subtype/Link/Type/Annot>> +endobj +1338 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-for-kind-c)/F 4/Rect[165.905512 708.340936 234.977289 694.741326]/Subtype/Link/Type/Annot>> +endobj +1339 0 obj +<>/BS<>/Dest(media)/F 4/Rect[249.748774 597.442498 308.763666 583.842889]/Subtype/Link/Type/Annot>> +endobj +1340 0 obj +<>/BS<>/Dest(media)/F 4/Rect[249.748774 573.092889 308.763666 559.493279]/Subtype/Link/Type/Annot>> +endobj +1341 0 obj +<>/BS<>/Dest(media)/F 4/Rect[249.748774 548.743279 308.763666 535.14367]/Subtype/Link/Type/Annot>> +endobj +1342 0 obj +<>/BS<>/Dest(table-16)/F 4/Rect[165.905512 529.39367 204.891596 515.794061]/Subtype/Link/Type/Annot>> +endobj +1343 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-for-kind-co)/F 4/Rect[210.350336 529.39367 357.586176 515.794061]/Subtype/Link/Type/Annot>> +endobj +1344 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-for-kind-co)/F 4/Rect[165.905512 515.794061 242.957025 502.194451]/Subtype/Link/Type/Annot>> +endobj +1345 0 obj +<>/BS<>/Dest(namecomponent)/F 4/Rect[249.748774 404.895623 316.853266 391.296014]/Subtype/Link/Type/Annot>> +endobj +1346 0 obj +<>/BS<>/Dest(namecomponent)/F 4/Rect[249.748774 380.546014 316.853266 366.946404]/Subtype/Link/Type/Annot>> +endobj +1347 0 obj +<>/BS<>/Dest(namecomponent)/F 4/Rect[249.748774 356.196404 316.853266 342.596795]/Subtype/Link/Type/Annot>> +endobj +1348 0 obj +<>/BS<>/Dest(namecomponent)/F 4/Rect[249.748774 331.846795 316.853266 318.247186]/Subtype/Link/Type/Annot>> +endobj +1349 0 obj +<>/BS<>/Dest(namecomponent)/F 4/Rect[249.748774 307.497186 316.853266 293.897576]/Subtype/Link/Type/Annot>> +endobj +1350 0 obj +<>/BS<>/Dest(namecomponent)/F 4/Rect[249.748774 283.147576 316.853266 269.547967]/Subtype/Link/Type/Annot>> +endobj +1351 0 obj +<>/BS<>/Dest(namecomponent)/F 4/Rect[249.748774 258.797967 316.853266 245.198358]/Subtype/Link/Type/Annot>> +endobj +1352 0 obj +<>/BS<>/Dest(namecomponent)/F 4/Rect[249.748774 234.448358 316.853266 220.848748]/Subtype/Link/Type/Annot>> +endobj +1353 0 obj +<>/BS<>/Dest(table-17)/F 4/Rect[165.905512 215.098748 204.891596 201.499139]/Subtype/Link/Type/Annot>> +endobj +1354 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-for-kind-con)/F 4/Rect[210.350336 215.098748 357.586176 201.499139]/Subtype/Link/Type/Annot>> +endobj +1355 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-for-kind-con)/F 4/Rect[165.905512 201.499139 294.40307 187.899529]/Subtype/Link/Type/Annot>> +endobj +2013 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2012 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2011 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2010 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2009 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2008 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2007 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2006 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2005 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2004 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2003 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2002 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2001 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2000 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1999 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1998 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1997 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1996 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1995 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1994 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1993 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1857 0 obj +<>stream +x\M툹'۰Fx#t6LQGf;>8f/#X;%MeJUtiIzS%Śk??>3㓻i][y0yfVV^OGj!dF9VK (G(=y~x{c~&,Lv=?=&oax;xׂ{&UƯ|\=8?b +F|Xxcw=i;н˻|<[=~%x[fl[G^W5x&×`h0Y2ؚ뒔I p;NFR5&H-MB)++7Pv6-*@Z708b;UƧ0m 2k8jkƊ݉ ,^w$)ʚN0%! Gp%MH |i,:p)黋2iu?h8}ER=y<u." a|g +t6V3PFq%y^S'ig(6!݆^̹=F!-2 FWHDuZE ՅUvUCBZ¨(!_91K]a*e 0;bUI{\]Uutg2CyniD./Iti3ՙ/2\eCgHG}&3vF>#^>1D>S(e}IgTԄ0,p͘?x,vﻗIX~lвyMVLw=KC M} Rey]u3Z厫v֓p]Z +Í . I¡ $nzZfςoyμ>LwvRDVbZf2KaŋkX\'ݝޢN1ὃz(L\[R9Rk6);Ɋ;>ɮUj7o~iۜD>=kxaz~EjyO;no1ST?}:e w΢(ȅ p,uciK9ixU]+ӑF{L(҈\ڈWqOv[ʩ}YiCgsH#rIFO[Ό}Yi>k$">a9.UuUmYq\>0Hd߿~h)B.UIt2ՙ/2\g CgOG}&3vF>#^>1D&S(E}VIfU:3eQxL]i>i)͙~dp}Zt&*'?!z +۵𲟻:ΰ!Uc7iinr[2Ϳ9_嘱Nm>\ CV}߽^-gWj؄#NJ9r~j1\2u-/VGYݦR=|,)r^f7˙PxafЯAAm3qM 6^=|x9:*prwVy#KcO;FPnjYӎ7on(~~?TTdEUu}%+B.\" q$th:L#.pӍJ\);ZF Whq\'#E>~_m"EȅEx'UN L#-U|i󼵋4\'BʳSVN:O4NpI4Lf("%}F}b>nu:3eQxL]i> }7bI{\]Ֆӆtg2CyniD.3It2ՙ/2\g x<3svKD|~BX2XHjF]NZ}7,:;nEmjT=j|Й^-peBֽbƥW8ux/:>/Font<>>> +endobj +1314 0 obj +<>/BS<>/Dest(calendars)/F 4/Rect[249.748774 741.290154 308.763666 727.690545]/Subtype/Link/Type/Annot>> +endobj +1315 0 obj +<>/BS<>/Dest(calendars)/F 4/Rect[249.748774 716.940545 308.763666 703.340936]/Subtype/Link/Type/Annot>> +endobj +1316 0 obj +<>/BS<>/Dest(table-12)/F 4/Rect[165.905512 697.590936 204.891596 683.991326]/Subtype/Link/Type/Annot>> +endobj +1317 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-for-kin)/F 4/Rect[210.350336 697.590936 357.586176 683.991326]/Subtype/Link/Type/Annot>> +endobj +1318 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-for-kin)/F 4/Rect[165.905512 683.991326 256.306147 670.391717]/Subtype/Link/Type/Annot>> +endobj +1319 0 obj +<>/BS<>/Dest(kind)/F 4/Rect[249.748774 573.092889 308.763666 559.493279]/Subtype/Link/Type/Annot>> +endobj +1320 0 obj +<>/BS<>/Dest(kind)/F 4/Rect[249.748774 548.743279 308.763666 535.14367]/Subtype/Link/Type/Annot>> +endobj +1321 0 obj +<>/BS<>/Dest(kind)/F 4/Rect[249.748774 524.39367 308.763666 510.794061]/Subtype/Link/Type/Annot>> +endobj +1322 0 obj +<>/BS<>/Dest(kind)/F 4/Rect[249.748774 500.044061 308.763666 486.444451]/Subtype/Link/Type/Annot>> +endobj +1323 0 obj +<>/BS<>/Dest(kind)/F 4/Rect[249.748774 475.694451 308.763666 462.094842]/Subtype/Link/Type/Annot>> +endobj +1324 0 obj +<>/BS<>/Dest(kind)/F 4/Rect[249.748774 451.344842 308.763666 437.745233]/Subtype/Link/Type/Annot>> +endobj +1325 0 obj +<>/BS<>/Dest(table-13)/F 4/Rect[165.905512 431.995233 204.891596 418.395623]/Subtype/Link/Type/Annot>> +endobj +1326 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-for-kind)/F 4/Rect[210.350336 431.995233 357.586176 418.395623]/Subtype/Link/Type/Annot>> +endobj +1327 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-for-kind)/F 4/Rect[165.905512 418.395623 236.357172 404.796014]/Subtype/Link/Type/Annot>> +endobj +1328 0 obj +<>/BS<>/Dest(directories)/F 4/Rect[249.748774 307.497186 308.763666 293.897576]/Subtype/Link/Type/Annot>> +endobj +1329 0 obj +<>/BS<>/Dest(directories)/F 4/Rect[249.748774 283.147576 308.763666 269.547967]/Subtype/Link/Type/Annot>> +endobj +1330 0 obj +<>/BS<>/Dest(table-14)/F 4/Rect[165.905512 263.797967 204.891596 250.198358]/Subtype/Link/Type/Annot>> +endobj +1331 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-for-kind-)/F 4/Rect[210.350336 263.797967 357.586176 250.198358]/Subtype/Link/Type/Annot>> +endobj +1332 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-for-kind-)/F 4/Rect[165.905512 250.198358 257.973871 236.598748]/Subtype/Link/Type/Annot>> +endobj +2032 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2031 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2030 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2029 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2028 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2027 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2026 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2025 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2024 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2023 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2022 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2021 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2020 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2019 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2018 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2017 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2016 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2015 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2014 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1856 0 obj +<>stream +x]o@MҦh!m㠦cSRÑd[Ncu.I{*PzgvIÕ%Ӑ{YqM)Μ֨ޭ~\1on?W̚QپήL+׫:<~a诜 + \7nvu nr _`̭71Dɷ-Zl?=P2Yư_\w9z]Ff՞_[=z~헧_dZ|zY'WU;ϯ<[mfsW%r޽pᝓIRxπTx8-ȇ)av/j3J;9tٝu'#pr*z0SH50j$3; +MȀyُ0A1c\i H8cÕ҆oOԳ0ϥp +K~9/gN m3)>GHơ|4<|/:"q3xv1nYSczؑGyazqڄ~Î>cÎ˾ _~㲏~#YW;2(9W;. +^Va ܒa~qy`~q܄{S;.8;n^߭+|<у  uKE`}ȋ>'p{͌&kZa˚"F1kKFqa7$"[}6Ed=U :Or^mP|ԇv#y*tEE2BzuҮ4rWX +iϼ‹bWx]W}vJc|0CunWiD./I|i2ݙ/2\e$CgZn*M#Ln~PZ1ڲ?qu<]if*%Fb=o];3eUѓdL׭]i?BNVL.oLٸ79u@C23̠q~=^\\u{d.iIVg0W@zBf=}yH>i@6y1}"JSPRh@97!۠d%2=PTG{%F7r^-"zTQ/\I65!!ϗC&~j XDŽ4F?Wj8K>7YF$yl/]n Z y/$ƅiR.L|Kp H1\糥C&~j{.G|wx&q4UhR=^kph1|ඐN|Rjw܄eIZ]if*%Fb=om;3eUғdL׭]i?{2'+uyumٟ:Z4Ƈ 3]lJ#rɟƟXO>ӝ*eI2Dzu֮4rɟHi0]kTӮkU:Y)f:OJrŸDO[t|ai?k$"=:ukWiOg7yAvLxo&M^Vxf0~jt|Y[ZoEΙq9W_Lv |2R]`|ln.-y6I]vO1Ccfj >J rpavN:upVtwK+P_$ ܈iɂvѩGNVL?@w7 ߓV@Ϝ5.S@C2F^M"qomqu_ %G[yÌߜx-/𨻺yt]RLVǻߩv6vݽcI|d%V '0ѧn +endstream +endobj +1766 0 obj +<>/Font<>>> +endobj +1290 0 obj +<>/BS<>/Dest(addresscomponent)/F 4/Rect[254.889643 741.290154 321.994135 727.690545]/Subtype/Link/Type/Annot>> +endobj +1291 0 obj +<>/BS<>/Dest(addresscomponent)/F 4/Rect[254.889643 716.940545 321.994135 703.340936]/Subtype/Link/Type/Annot>> +endobj +1292 0 obj +<>/BS<>/Dest(addresscomponent)/F 4/Rect[254.889643 692.590936 321.994135 678.991326]/Subtype/Link/Type/Annot>> +endobj +1293 0 obj +<>/BS<>/Dest(addresscomponent)/F 4/Rect[254.889643 668.241326 321.994135 654.641717]/Subtype/Link/Type/Annot>> +endobj +1294 0 obj +<>/BS<>/Dest(addresscomponent)/F 4/Rect[254.889643 643.891717 321.994135 630.292108]/Subtype/Link/Type/Annot>> +endobj +1295 0 obj +<>/BS<>/Dest(addresscomponent)/F 4/Rect[254.889643 619.542108 321.994135 605.942498]/Subtype/Link/Type/Annot>> +endobj +1296 0 obj +<>/BS<>/Dest(addresscomponent)/F 4/Rect[254.889643 595.192498 321.994135 581.592889]/Subtype/Link/Type/Annot>> +endobj +1297 0 obj +<>/BS<>/Dest(addresscomponent)/F 4/Rect[254.889643 570.842889 321.994135 557.243279]/Subtype/Link/Type/Annot>> +endobj +1298 0 obj +<>/BS<>/Dest(addresscomponent)/F 4/Rect[254.889643 546.493279 321.994135 532.89367]/Subtype/Link/Type/Annot>> +endobj +1299 0 obj +<>/BS<>/Dest(addresscomponent)/F 4/Rect[254.889643 522.14367 321.994135 508.544061]/Subtype/Link/Type/Annot>> +endobj +1300 0 obj +<>/BS<>/Dest(addresscomponent)/F 4/Rect[254.889643 497.794061 321.994135 484.194451]/Subtype/Link/Type/Annot>> +endobj +1301 0 obj +<>/BS<>/Dest(addresscomponent)/F 4/Rect[254.889643 473.444451 321.994135 459.844842]/Subtype/Link/Type/Annot>> +endobj +1302 0 obj +<>/BS<>/Dest(addresscomponent)/F 4/Rect[254.889643 449.094842 321.994135 435.495233]/Subtype/Link/Type/Annot>> +endobj +1303 0 obj +<>/BS<>/Dest(table-10)/F 4/Rect[165.905512 429.745233 204.891596 416.145623]/Subtype/Link/Type/Annot>> +endobj +1304 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-for-k)/F 4/Rect[210.350336 429.745233 357.586176 416.145623]/Subtype/Link/Type/Annot>> +endobj +1305 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-for-k)/F 4/Rect[165.905512 416.145623 304.209467 402.546014]/Subtype/Link/Type/Annot>> +endobj +1306 0 obj +<>/BS<>/Dest(anniversaries)/F 4/Rect[249.748774 305.247186 308.763666 291.647576]/Subtype/Link/Type/Annot>> +endobj +1307 0 obj +<>/BS<>/Dest(anniversaries)/F 4/Rect[249.748774 280.897576 308.763666 267.297967]/Subtype/Link/Type/Annot>> +endobj +1308 0 obj +<>/BS<>/Dest(anniversaries)/F 4/Rect[249.748774 256.547967 308.763666 242.948358]/Subtype/Link/Type/Annot>> +endobj +1309 0 obj +<>/BS<>/Dest(table-11)/F 4/Rect[165.905512 237.198358 204.891596 223.598748]/Subtype/Link/Type/Annot>> +endobj +1310 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-for-ki)/F 4/Rect[210.350336 237.198358 357.586176 223.598748]/Subtype/Link/Type/Annot>> +endobj +1311 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-for-ki)/F 4/Rect[165.905512 223.598748 271.473871 209.999139]/Subtype/Link/Type/Annot>> +endobj +2054 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2053 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2052 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2051 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2050 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2049 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2048 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2047 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2046 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2045 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2044 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2043 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2042 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2041 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2040 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2039 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2038 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2037 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2036 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2035 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2034 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2033 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1855 0 obj +<>stream +x]Kn@)s0ˈ$ھzNvew?nn{vW`ns6"(|&!E=|oKm/O39%iqᝓ/0kg$̂ܪl- IDozڽ//Fj{ܗcPOFaeC3} %DpSRagc +O# +" ޔ\z(ז94î1\)mlx\Z{?:J#AXΤPB!pT:. ,x4!L{;eYg! \L`)qP=PrP=IxyχyLAWx&lѥ LCt)$z+.Z $lxb? mc'h@ʓ #d)hzz8Qm"CLN+d}($?]~7W;~蠄5dYJ3y2锵Z&N0wӞy)dY{ӮCI%qՊ.lp.N)2((:`_eTjI"${-(q[X&]ӊy>h +9]RlīQ,f5Q+tj.<2VEI[ğQ,v^B(WIŜibZ +!"P(Δv"pBB ySYiְD(-M.">Xmbe0 +O6G?:T,WXmFP( b#^b1eS uYIVD(-M."bY.^5b4WOs+17_t/Uw͸$_ R%spq&z<8<۳sݽ,xc“baeJ>xBLXi! (G/߆b* ntQ +I'SqXi|}[Z]kT].{%`X^^[(^XqvuǤ0u^aêΎ.Yy~@(Rb~zo%y8tWPÚñd ~>z;Zyf{aߣbyay79E3a +.dpp <|7α"V H1$xi]W0-~s,g28T~yWĕ^Z\ƒ:o2Zvԩv8~yG?;%oɑ}H*?Ⱦ8BJޏ+ཛྷoe,ٗI2|4GgIXjvRK1gG~qI~%᳆fC2&SLt-+w2IѸ:}*4ڇBeRe)}F}b>Bw#3[LȔ> b=^SM+fG7zVgWNg<|U黇6Ya)ajtxL +MY0L$c"aͲRkL"D|y..<2O> ,찒Z1gG~u-8JL}(TfH!DxLLtk ݙ2L볆$Bg2o2#|z͠=mvf9d{ic <w6P]HŻ83N9۳Y/=4{K\|$.庄]{c{OCc^7xv펱6M56Q7ډÖRNT'w\DLg6T&A%@Du +ގ_KRM1HhWzm(n M]n =~m U٫phKSv(!<ސii4|.@ӛF-bs;+nߪvMЅZ8m8oby7B?2|~?`IeY,#cIw뢓:Fj[}ǂO;sNɇ >vd_BĚuܚ4|l?#QXP)Rڣv\qGb.3Paz liD6╻?v1o.O#~6 q<3sv)}">zɄ֢wd׊9;Ӯki}qUt?) V"dBB X%|'Yi}D\]ydB +}5]Q]+fO%S|>*3Lbe)}F}b>݊Bw#3[LȔ>4>MwNzV^u,8Nh +IxmeD&T*tf1g]aVQmv\ʼ0wOu8SOp+ uZؤv\ }ܬ+Og(O-~N{XGc fw_~yX>d>h"2$ctj㟥5|} ,)6k}g1̸rs] ow.O*k{88 '{C:,=OK;e=Q +endstream +endobj +1764 0 obj +<>/Font<>>> +endobj +1268 0 obj +<>/BS<>/Dest(phones)/F 4/Rect[255.43017 741.290154 314.445063 727.690545]/Subtype/Link/Type/Annot>> +endobj +1269 0 obj +<>/BS<>/Dest(phones)/F 4/Rect[255.43017 716.940545 314.445063 703.340936]/Subtype/Link/Type/Annot>> +endobj +1270 0 obj +<>/BS<>/Dest(phones)/F 4/Rect[255.43017 692.590936 314.445063 678.991326]/Subtype/Link/Type/Annot>> +endobj +1271 0 obj +<>/BS<>/Dest(phones)/F 4/Rect[255.43017 668.241326 314.445063 654.641717]/Subtype/Link/Type/Annot>> +endobj +1272 0 obj +<>/BS<>/Dest(table-8)/F 4/Rect[165.905512 648.891717 199.301752 635.292108]/Subtype/Link/Type/Annot>> +endobj +1273 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-for-f)/F 4/Rect[204.760492 648.891717 369.102777 635.292108]/Subtype/Link/Type/Annot>> +endobj +1274 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-for-f)/F 4/Rect[165.905512 635.292108 242.876459 621.692498]/Subtype/Link/Type/Annot>> +endobj +1275 0 obj +<>/BS<>/Dest(speakToAs)/F 4/Rect[249.748774 524.39367 308.763666 510.794061]/Subtype/Link/Type/Annot>> +endobj +1276 0 obj +<>/BS<>/Dest(speakToAs)/F 4/Rect[249.748774 500.044061 308.763666 486.444451]/Subtype/Link/Type/Annot>> +endobj +1277 0 obj +<>/BS<>/Dest(speakToAs)/F 4/Rect[249.748774 475.694451 308.763666 462.094842]/Subtype/Link/Type/Annot>> +endobj +1278 0 obj +<>/BS<>/Dest(speakToAs)/F 4/Rect[249.748774 451.344842 308.763666 437.745233]/Subtype/Link/Type/Annot>> +endobj +1279 0 obj +<>/BS<>/Dest(speakToAs)/F 4/Rect[249.748774 426.995233 308.763666 413.395623]/Subtype/Link/Type/Annot>> +endobj +1280 0 obj +<>/BS<>/Dest(speakToAs)/F 4/Rect[249.748774 402.645623 308.763666 389.046014]/Subtype/Link/Type/Annot>> +endobj +1281 0 obj +<>/BS<>/Dest(table-9)/F 4/Rect[165.905512 383.296014 199.301752 369.696404]/Subtype/Link/Type/Annot>> +endobj +1282 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-for-g)/F 4/Rect[204.760492 383.296014 328.888422 369.696404]/Subtype/Link/Type/Annot>> +endobj +1283 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-for-g)/F 4/Rect[165.905512 369.696404 360.916498 356.096795]/Subtype/Link/Type/Annot>> +endobj +1284 0 obj +<>/BS<>/Dest(addresscomponent)/F 4/Rect[254.889643 258.797967 321.994135 245.198358]/Subtype/Link/Type/Annot>> +endobj +1285 0 obj +<>/BS<>/Dest(addresscomponent)/F 4/Rect[254.889643 234.448358 321.994135 220.848748]/Subtype/Link/Type/Annot>> +endobj +1286 0 obj +<>/BS<>/Dest(addresscomponent)/F 4/Rect[254.889643 210.098748 321.994135 196.499139]/Subtype/Link/Type/Annot>> +endobj +1287 0 obj +<>/BS<>/Dest(addresscomponent)/F 4/Rect[254.889643 185.749139 321.994135 172.149529]/Subtype/Link/Type/Annot>> +endobj +2074 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2073 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2072 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2071 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2070 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2069 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2068 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2067 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2066 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2065 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2064 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2063 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2062 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2061 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2060 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2059 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2058 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2057 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2056 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2055 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1854 0 obj +<>stream +x\[s%NN3ÇNbejxqʖ|ٲ-ۉN =bɳ}[8\u?܃c~X}\-ݣ~\+Jp^6Z!z+ެkϫ_J#Ze Fޔ\o{;0Fzۛpr8:ߍݱ{5E<$?[_7-z*Moִ7qˤY~߯)'^QWWv^t/3x|]]uGN WW^ .)5u)pp9~hJW +;_`)%8nP\ȚfJ"BUDq&5&4e+yOBOܝ5%(S W FYyy*ǧ2cN4.,1)=..ogҕK#޷3[x yw>.񡫻P'pY"(7>wo1ȹ?h8=HO=-Z9CaCPp1P)bW|)ϣKpėOJlxu_/\0y]@qfpK'>+gA-@#|};L.LhO(rPҕc @jsRT Kq(tHK5\xφwFmM;8cf^ n +3N?]}ǜWO;(kfge~ai.r +q& qZ>,~OiXw@QF311 >M8th"=L[v->ʴhT%Ή 2%=!*'xܕ4784X.UmZ~]mO,Ǹ3w]1m퐙}s|QNbjۅ gëxϒ*1bJ%F*a{5'=U{'>eGkmix4!dDq[:XP ~hk-υaY-imc?f}.),â6~~ú婢o Z & \X { (th"=L[.|@QN/]MmMdSr4WT$#EM&31 D,٫X@Gx"y[#(Ӗ *<#i󸵋4mOg?mQղIyӮjD)t: d2.``ψ"S(Ӗ39[HӖKDxVrtj٤iOF"Hhkocӌ5Lk[/Mɑv\flWXd2X$d3Ƽ]x^c#T#&L L[.3Ci"z/3c[X +'RIyӮE [&=01Yf*5#_erUF"HhkocXj"f]U3`|I K jQl2/2mT#Y赋7kiZ&7RP],b6%GzUpa\-c-`|Iv""{Pg*5-_er5F"Hhko~MsmW7.nh)o77TGnInzXη̍Xf]wlە~;`a8I[NRBL.ﯻm7"NMSSk;Kmd +ϗCzqĚo71ն^{3vWD'=%:P} ?_e\Yb~7ehJyPLiK}wt?3澦]k\Ф xL8U%WIz?rڽKn5O_k\jg}JNFu_uwx? +endstream +endobj +1762 0 obj +<>/Font<>>> +endobj +1247 0 obj +<>/BS<>/Dest(address)/F 4/Rect[249.748774 694.090936 316.853266 680.491326]/Subtype/Link/Type/Annot>> +endobj +1248 0 obj +<>/BS<>/Dest(address)/F 4/Rect[249.748774 669.741326 316.853266 656.141717]/Subtype/Link/Type/Annot>> +endobj +1249 0 obj +<>/BS<>/Dest(prop-contexts)/F 4/Rect[249.748774 645.391717 308.763666 631.792108]/Subtype/Link/Type/Annot>> +endobj +1250 0 obj +<>/BS<>/Dest(prop-contexts)/F 4/Rect[249.748774 621.042108 308.763666 607.442498]/Subtype/Link/Type/Annot>> +endobj +1251 0 obj +<>/BS<>/Dest(table-6)/F 4/Rect[165.905512 601.692498 199.301752 588.092889]/Subtype/Link/Type/Annot>> +endobj +1252 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-for-c)/F 4/Rect[204.760492 601.692498 370.473871 588.092889]/Subtype/Link/Type/Annot>> +endobj +1253 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-for-c)/F 4/Rect[165.905512 588.092889 251.144037 574.493279]/Subtype/Link/Type/Annot>> +endobj +1254 0 obj +<>/BS<>/Dest(prop-contexts)/F 4/Rect[249.748774 449.995233 308.763666 436.395623]/Subtype/Link/Type/Annot>> +endobj +1255 0 obj +<>/BS<>/Dest(prop-contexts)/F 4/Rect[249.748774 425.645623 308.763666 412.046014]/Subtype/Link/Type/Annot>> +endobj +1256 0 obj +<>/BS<>/Dest(table-7)/F 4/Rect[165.905512 406.296014 199.301752 392.696404]/Subtype/Link/Type/Annot>> +endobj +1257 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-for-co)/F 4/Rect[204.760492 406.296014 370.473871 392.696404]/Subtype/Link/Type/Annot>> +endobj +1258 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-for-co)/F 4/Rect[165.905512 392.696404 355.41308 379.096795]/Subtype/Link/Type/Annot>> +endobj +1259 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-for-co)/F 4/Rect[165.905512 379.096795 362.37475 365.497186]/Subtype/Link/Type/Annot>> +endobj +1260 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-for-co)/F 4/Rect[165.905512 365.497186 350.798822 351.897576]/Subtype/Link/Type/Annot>> +endobj +1261 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-for-co)/F 4/Rect[165.905512 351.897576 340.926508 338.297967]/Subtype/Link/Type/Annot>> +endobj +1262 0 obj +<>/BS<>/Dest(phones)/F 4/Rect[255.43017 240.999139 314.445063 227.399529]/Subtype/Link/Type/Annot>> +endobj +1263 0 obj +<>/BS<>/Dest(phones)/F 4/Rect[255.43017 216.649529 314.445063 203.04992]/Subtype/Link/Type/Annot>> +endobj +1264 0 obj +<>/BS<>/Dest(phones)/F 4/Rect[255.43017 192.29992 314.445063 178.700311]/Subtype/Link/Type/Annot>> +endobj +1265 0 obj +<>/BS<>/Dest(phones)/F 4/Rect[255.43017 167.950311 314.445063 154.350701]/Subtype/Link/Type/Annot>> +endobj +2093 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2092 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2091 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2090 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2089 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2088 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2087 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2086 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2085 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2084 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2083 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2082 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2081 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2080 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2079 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2078 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2077 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2076 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2075 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1853 0 obj +<>stream +xZIs*/AR]v$H! + +}\e'M`g 1KO[-@r +d%#:eݻcbg|εPjɭQDJx5ar7|)qNs✇4@R@m4W1bѰ ?|/Ǒjϟ Lyzv\5IZ…ƯϦ_L\C['uvY|6lLG| ́`bcM_"[S2Ņ%B;S2.(m:sUy 8_|dƴ%9mc +!j+ndA6+L#qF9 h3u , |NPs=iO>wVz \{ F (As|;%.1S'0_+~ZI^qMPН@$y ]iQ9Wi( haW\x= xQSxV=PpѭljQ ~ƙ1: 2IΩ؞f\pNaߍ*Q}tWEpZ!jm|^s^~&3B4$+x?1BRzr|ƜQY>/S'H -f( V-j桬VIB ?FY`sVҒ.bFϦgN&-ZR:[MVsYK%Z!طyo D5: 1(,`U4NBJՊM Rn2+ЊǦm3Ŀ6\T ڢXVL U$y5TQǼB; gpW ޲;qra mOGbnIUS/LwȔӈҷuJPYeLᖂ[}׋(/˫7繯P2eٗb@YFeY0aP o. D( m4n{/bJB>gݟC64DPMiQPqw <,1`WAx1Է"dO-ej1,rNZbՈFKG<" V`/9R IP9\!T1Ṛ7xy%>׸,d{iO'+=ɴZs0]FQ\NQIq*[*fvri(,7ƹ{_a[Ł V_5׽PM7ݨVi/fԮ9Iz6zuP +gEbB o`=]=oT\@c7ĠT_Ջg4d ?P[!zqY)=Nw#:@Jpfm7 0fMO(6ToY`gIw󳦲M[5aR9r_5XۥcveAW4FK,PD +|K{[1ԿHoQl\[F} +qH6Mn"WAepeh=F>/Font<>>> +endobj +1236 0 obj +<>/BS<>/Dest(tab-iana-version-registry)/F 4/Rect[102.172846 695.391717 136.409174 681.792108]/Subtype/Link/Type/Annot>> +endobj +1237 0 obj +<>/BS<>/Dest(tab-iana-version-registry)/F 4/Rect[253.663324 632.993279 287.899652 619.39367]/Subtype/Link/Type/Annot>> +endobj +1238 0 obj +<>/BS<>/Dest(iana-enum-registry-value-template)/F 4/Rect[161.464594 525.395623 220.479486 511.796014]/Subtype/Link/Type/Annot>> +endobj +1239 0 obj +<>/BS<>/Dest(section-3.7.2)/F 4/Rect[65.905512 486.696404 99.092035 473.696404]/Subtype/Link/Type/Annot>> +endobj +1240 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-regist)/F 4/Rect[99.092035 486.696404 341.255609 473.696404]/Subtype/Link/Type/Annot>> +endobj +1241 0 obj +<>/BS<>/Dest(tab-iana-version-registry)/F 4/Rect[102.172846 372.698358 136.409174 359.098748]/Subtype/Link/Type/Annot>> +endobj +1242 0 obj +<>/BS<>/Dest(tab-iana-version-registry)/F 4/Rect[141.797602 310.29992 176.03393 296.700311]/Subtype/Link/Type/Annot>> +endobj +1243 0 obj +<>/BS<>/Dest(section-3.7.3)/F 4/Rect[65.905512 214.801873 99.092035 201.801873]/Subtype/Link/Type/Annot>> +endobj +1244 0 obj +<>/BS<>/Dest(name-initial-contents-of-the-jscont)/F 4/Rect[99.092035 214.801873 373.411859 201.801873]/Subtype/Link/Type/Annot>> +endobj +2102 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2101 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2100 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2099 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2098 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2097 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2096 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2095 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2094 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1852 0 obj +<>stream +x\Is*.CJ8qT 1IђJI#!IESe'~hvS#rmfk +JFuF?~^"F{(eWFPjY[I_+_Z=#tӿWq.qNsچ>VZJ6כou( + P>5C׸*cua[1wV[C)KZRJPϫg5$pǍi^6Q}sټeCh^@٦9iN׿k(m\vo^ʯ}~?<zl..vy^3}Aӫ _tx)ǎ>nC񱄏㿾{ DUi#N=ΤHkh:k>}'oegiU/9d~ϑ,ʳVoAwY.|EӅǜLcy/黎e-{ NfRCZ P4ۍB+ʀQɏ .aN +0"eTƔrDw$TrNuw#Gr.R@1-6X vpha98H)v; %A>h?eu06b M$UF_%M}l͡4|lwj##7muXz/!&UxT:cfe-g!B/fgeRATght=Ӳ0r1r>nF(nxceip8:ijziKfQ:N*r[6-fq^dYIራ:y\k!k:-giY*:NRrں^ڒ<پeg 9-d-hq^lYY6y˜k!k:-giYmזU5Hڒ<پeg9Q6pmYY(Y&c3-M#9[HCt[4r8UUA wu5%3xeg 9-d-hq^lYY"yk!k:-giY*ZGLdqoYY蝱r[6x=z=f gq#.LfYF.s&(xcigQ4rUq4DqM;,M#8mt.zqT9.xEz]yaI9wbq?5d}X-]kA+mEƊJӚ~ {>=}~cNCnn+؁8A8l$m n_4独}1Ox P|Qɩ+,g!>i^7Xz*n.T +>ڄX_Kjgb Uvmq5?|j1p?Sv_"`ԃ~.E0J ƹ/;_}ų|CL#o~G&>߱m"[iF.Uc| m ,d7yop,{^bo?0L8-*xdQ o?o>~kowJc +`Qiwy4]RrCX;E)UV)]`8pn`Xͦv[ޥĆoͧGaB;3k2) +X}Xr6{TȾfY{4.j2Z U(ca}vFްY6ߴ*U$\6ϊu5%#< +?p+cs_3ilY$kA{QK9p"@p+f36mOXr#>#Z>GR]7[5 +|PUt"䃺i<&4v#P$sӊZcET||gY#KAskOVTz] IZkٵ{,rd~x}x38 +d ?$+"Zv9X:BA9NB^?x`¹fZN_rc=jܱq~׭,H(R(U)% \'CP"8ۊ'= +Hױ7b&l˒&ZPIwNc^lBf_oyc@GGyM߆|'7dcCw.<#rT-onAݧXEěpzu:M@6Govi@2uC + +B]V.3.BpgrNBwxW)gG7bǂ?2y{r\M8=P,:{D.YБ{wTDǞ쟽gx7`I1: pgrY(638qўHO>HNIo(ՌLlys~~F#;Sj;զο%_yVP'Ko_Ne1zzĹ631B/w,k5OT(>Y>O[``@\f7i^E GV;a$!PrGttcOJIfr%Wq%S!qϱ{(#F +i w%o@ͧXInɹq}09Ө~> >χ09Fs՟ρA#g1]vhy!u$|"avi;wa,H Ț`;JPXxVAw4HX:HM3L>_LJ -+ h6 +tiHZK)>Hg40$ЏuŒ:U7..'RQ&35\$̏o75'(­jj?5gtX@ +endstream +endobj +1758 0 obj +<>/Font<>>> +endobj +1216 0 obj +<>/BS<>/Dest(schedulingAddresses)/F 4/Rect[182.395746 741.290154 241.410639 727.690545]/Subtype/Link/Type/Annot>> +endobj +1217 0 obj +<>/BS<>/Dest(speakToAs)/F 4/Rect[182.395746 716.940545 241.410639 703.340936]/Subtype/Link/Type/Annot>> +endobj +1218 0 obj +<>/BS<>/Dest(type-signatures)/F 4/Rect[182.395746 692.590936 241.410639 678.991326]/Subtype/Link/Type/Annot>> +endobj +1219 0 obj +<>/BS<>/Dest(anniversaries)/F 4/Rect[182.395746 668.241326 241.410639 654.641717]/Subtype/Link/Type/Annot>> +endobj +1220 0 obj +<>/BS<>/Dest(titles)/F 4/Rect[182.395746 643.891717 241.410639 630.292108]/Subtype/Link/Type/Annot>> +endobj +1221 0 obj +<>/BS<>/Dest(int-unsignedint)/F 4/Rect[182.395746 619.542108 241.410639 605.942498]/Subtype/Link/Type/Annot>> +endobj +1222 0 obj +<>/BS<>/Dest(utcdatetime)/F 4/Rect[182.395746 595.192498 241.410639 581.592889]/Subtype/Link/Type/Annot>> +endobj +1223 0 obj +<>/BS<>/Dest(table-4)/F 4/Rect[65.905512 575.842889 99.301752 562.243279]/Subtype/Link/Type/Annot>> +endobj +1224 0 obj +<>/BS<>/Dest(name-jscontact-types-with-common)/F 4/Rect[104.760492 575.842889 284.063227 562.243279]/Subtype/Link/Type/Annot>> +endobj +1225 0 obj +<>/BS<>/Dest(resource)/F 4/Rect[145.670649 471.344842 204.685541 457.745233]/Subtype/Link/Type/Annot>> +endobj +1226 0 obj +<>/BS<>/Dest(table-5)/F 4/Rect[65.905512 451.995233 99.301752 438.395623]/Subtype/Link/Type/Annot>> +endobj +1227 0 obj +<>/BS<>/Dest(name-jscontact-types-with-reserv)/F 4/Rect[104.760492 451.995233 253.144037 438.395623]/Subtype/Link/Type/Annot>> +endobj +1228 0 obj +<>/BS<>/Dest(name-jscontact-types-with-reserv)/F 4/Rect[65.905512 438.395623 94.122797 424.796014]/Subtype/Link/Type/Annot>> +endobj +1229 0 obj +<>/BS<>/Dest(section-3.7)/F 4/Rect[65.905512 410.296014 95.494623 394.696014]/Subtype/Link/Type/Annot>> +endobj +1230 0 obj +<>/BS<>/Dest(name-creation-of-the-jscontact-e)/F 4/Rect[95.494623 410.296014 383.01269 394.696014]/Subtype/Link/Type/Annot>> +endobj +1231 0 obj +<>/BS<>/Dest(iana-registry-policy)/F 4/Rect[65.905512 273.498748 116.830805 259.899139]/Subtype/Link/Type/Annot>> +endobj +1232 0 obj +<>/BS<>/Dest(section-3.7.1)/F 4/Rect[65.905512 248.399139 99.092035 235.399139]/Subtype/Link/Type/Annot>> +endobj +1233 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-regis)/F 4/Rect[99.092035 248.399139 357.955561 235.399139]/Subtype/Link/Type/Annot>> +endobj +2120 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2119 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2118 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2117 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2116 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2115 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2114 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2113 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2112 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2111 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2110 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2109 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2108 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2107 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2106 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2105 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2104 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2103 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1851 0 obj +<>stream +x]ɒf[}ph *U&E48lKt5@VVmgÒ/_|U5==;ӧ`!zgvxwv<~JysF ?>]V3Fcwտnz姫/.ŸW~O[TJX]No)  ew;=YawV<FLlN8?{_8]ތ҆1v'AZN;G"^Q&:/7Zh:f(+IopQ٤"%XoFS&J_6U污mHR)#36 +7^V.@B~1 +<(vi5"yQ:Q*ؠۥ02 +0mبeylP +#ƨ7.\Ɩsw]) AK+1 AUA+qtj! +<(vi|` *ؠۥH[ƭAUA+8Z?eMM=ݻEvtS7 /+ s[{l[b%hF+F1e&A9ofQֈT +W?#`w]"n,ܱ֔p3j8V?8YM, +h-~o4m"ǫ@YdaYix20T(gQhXa)f9ҋ=lLXv͢,Z*|̾Z=Տ/@'m +0>E"ryqi24EMZudzLXj~zv]J_Mq3KBfE8~͘B]c+mLȤeY ecZF< dy6H7pLֳp{;|7< rx4|;z8}>}}3Haߤk'jWxӿ>{e)׏RXOW7sǯ*NTq,$%̯\R~;jx?W K᧗aUP :(4jt3N)%jX[P3 +@d|tt`|fDO|Tic6*,zT>ƻR؃n{e66Y 2>VzxV4Mħ3"m(jEr|!}~ֳU Ŧd (*H l +zUacUIy]UƔ蓔棶gԥ[d]UҨU#/<}?*(ƪLsJLWTtebtʤWwsOZm>2ZZi/wX)ߗ):5h;4QC-Ox ӟWxRzOo.k s)OKdOWͩN7p:9|1>HgW qjGaDT0WA ֆM&= z\<^nؔt㹇\!8N7\9+ +HP7)կS'=|HFKԖ>b5^hbMG4N. ڪ@褆66Ut(vׇ馺g<5tK+OuS|ΈogMV'Z1Fm莃ot:\G뻷8G8۝ύk).n?Mߥd@4rUS>&+xHF:8>/Font<>>> +endobj +1190 0 obj +<>/BS<>/Dest(calendars)/F 4/Rect[182.395746 741.290154 241.410639 727.690545]/Subtype/Link/Type/Annot>> +endobj +1191 0 obj +<>/BS<>/Dest(card)/F 4/Rect[182.395746 716.940545 225.23144 703.340936]/Subtype/Link/Type/Annot>> +endobj +1192 0 obj +<>/BS<>/Dest(cryptoKeys)/F 4/Rect[182.395746 692.590936 241.410639 678.991326]/Subtype/Link/Type/Annot>> +endobj +1193 0 obj +<>/BS<>/Dest(directories)/F 4/Rect[182.395746 668.241326 241.410639 654.641717]/Subtype/Link/Type/Annot>> +endobj +1194 0 obj +<>/BS<>/Dest(emails)/F 4/Rect[182.395746 643.891717 241.410639 630.292108]/Subtype/Link/Type/Annot>> +endobj +1195 0 obj +<>/BS<>/Dest(id)/F 4/Rect[182.395746 619.542108 241.410639 605.942498]/Subtype/Link/Type/Annot>> +endobj +1196 0 obj +<>/BS<>/Dest(int-unsignedint)/F 4/Rect[182.395746 595.192498 241.410639 581.592889]/Subtype/Link/Type/Annot>> +endobj +1197 0 obj +<>/BS<>/Dest(preferredLanguages)/F 4/Rect[182.395746 570.842889 241.410639 557.243279]/Subtype/Link/Type/Annot>> +endobj +1198 0 obj +<>/BS<>/Dest(links)/F 4/Rect[182.395746 546.493279 241.410639 532.89367]/Subtype/Link/Type/Annot>> +endobj +1199 0 obj +<>/BS<>/Dest(media)/F 4/Rect[182.395746 522.14367 241.410639 508.544061]/Subtype/Link/Type/Annot>> +endobj +1200 0 obj +<>/BS<>/Dest(name)/F 4/Rect[182.395746 497.794061 249.500238 484.194451]/Subtype/Link/Type/Annot>> +endobj +1201 0 obj +<>/BS<>/Dest(namecomponent)/F 4/Rect[182.395746 473.444451 249.500238 459.844842]/Subtype/Link/Type/Annot>> +endobj +1202 0 obj +<>/BS<>/Dest(nicknames)/F 4/Rect[182.395746 449.094842 241.410639 435.495233]/Subtype/Link/Type/Annot>> +endobj +1203 0 obj +<>/BS<>/Dest(notes)/F 4/Rect[182.395746 424.745233 241.410639 411.145623]/Subtype/Link/Type/Annot>> +endobj +1204 0 obj +<>/BS<>/Dest(type-signatures)/F 4/Rect[182.395746 400.395623 241.410639 386.796014]/Subtype/Link/Type/Annot>> +endobj +1205 0 obj +<>/BS<>/Dest(onlineServices)/F 4/Rect[182.395746 376.046014 241.410639 362.446404]/Subtype/Link/Type/Annot>> +endobj +1206 0 obj +<>/BS<>/Dest(organizations)/F 4/Rect[182.395746 351.696404 241.410639 338.096795]/Subtype/Link/Type/Annot>> +endobj +1207 0 obj +<>/BS<>/Dest(organizations)/F 4/Rect[182.395746 327.346795 241.410639 313.747186]/Subtype/Link/Type/Annot>> +endobj +1208 0 obj +<>/BS<>/Dest(anniversaries)/F 4/Rect[182.395746 302.997186 241.410639 289.397576]/Subtype/Link/Type/Annot>> +endobj +1209 0 obj +<>/BS<>/Dest(patchobject)/F 4/Rect[182.395746 278.647576 241.410639 265.047967]/Subtype/Link/Type/Annot>> +endobj +1210 0 obj +<>/BS<>/Dest(personalInfo)/F 4/Rect[182.395746 254.297967 241.410639 240.698358]/Subtype/Link/Type/Annot>> +endobj +1211 0 obj +<>/BS<>/Dest(phones)/F 4/Rect[182.395746 229.948358 241.410639 216.348748]/Subtype/Link/Type/Annot>> +endobj +1212 0 obj +<>/BS<>/Dest(speakToAs)/F 4/Rect[182.395746 205.598748 241.410639 191.999139]/Subtype/Link/Type/Annot>> +endobj +1213 0 obj +<>/BS<>/Dest(relatedTo)/F 4/Rect[182.395746 181.249139 241.410639 167.649529]/Subtype/Link/Type/Annot>> +endobj +2144 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2143 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2142 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2141 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2140 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2139 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2138 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2137 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2136 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2135 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2134 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2133 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2132 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2131 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2130 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2129 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2128 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2127 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2126 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2125 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2124 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2123 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2122 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2121 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1850 0 obj +<>stream +x\In }['1R dB II edN9UU/UaON=$|ofd~hNFIs>]sRr!9C +cB+8dž/?¾~qŏS bvs>FώXܕ$~{! G*M#h +5 yAۼaߢf^cҊc"4 8Xczyϗ뷗oD.n>xY<-_n4K Ŧ8/ŮXWź}V*$=;u +B5toB tĤ9` \nq *AP}{;X9e1Um 7~Z,hH#ܴ1U(\VٺF[+G}  A)3 >WYADQ0>eW/ۦ]%^fXY;=]+` rc%Ky-;j庀?14KG6 Ӏyb5+|t{6 Xx{CR`jJ  4zumKRkgv'N=+`̫{mmg3c+1 sCU RDꨆ=\M޾,nh%2A)ex԰ګO@ԧF8O`i@̝3uiW~L5elX )p0"5-{Ai'&GFbmH>uE CPK9@:akss''Ȱyr(į]Y;Kk0%,q,S>h:c_:L)(>X0V.?4SBτȵkVM,2&d H$2bө ׵GlfN&aQbU}(EP+[%?f^|wSLIlĒt`7%m2lڤ]IaO3D! +**.M6;5QލS.vo~u싢<#DSx+y| +Sx OBhۿa*HS~ԉ+B,a!ۢ+5*ج +:,cۂ&9_{D3Y||q~!T l0EdU>|$jd@CR.X>O scl2,\ya-ZۃΊ׫ ƕ|l``(X'ڀKVW7{oDePsbm#OEۭfŢ0znN2tacJ%T"ʈN)_6͔QWVY*o=窂ZW8ߔ(]߿՗PYO>}*3 vG +ƱN؆^onD3eVɹKI-J +!*?w^7^D 7YMqmR<>SUF +DvN~o#5EI͜GfSL:t`a- N0cХ3]<@LT{+Vɴ2 ZjLJ4LQ#vt#e\b@ +lD]3pԒW26 +Hiڍ!3waOzwar] GRJߍv &!4C@(ȨR.ȱJl.v`l[}2ɽD>Ţ"+8'Yn5wh{Õ;/naMpUYQ5:>x{Z#pgæ90 +e]Gr)m4a^2pN]!="!cJlMF"=`H= 1dO{#Ew"#r$O{p`°Q(#1i qjz= +!^!] /Rt{E# ڞMk[h$MSv89|")c@>zզ/@ܻRGYu-9&o nK!iˏ4My4'ݸFn:IӔ|63gD.RҎ<繰OACfs;5'!7gywz:uv5^hfuvے;~kgb`ƾMSq,_b)+eӬ65p02%io(Yք7!‘_h?L4^505w7vIY>kK꼞f)-xgy>kXMOgCɢ&  |wXlGa)liN4> YC%v_6l32g 2=wzךNz43|6B8ea%MS\#\xwc7i=>ٱGILI`QgjZ'x9L> +1Z NUCg'϶km?fe<+{vBt4ϧ?ѝ&>ӑ;cqYtWZLZ{re՚ #Dp9piUq{MfQH>2|4$wgzJQ=4PAc@A {MX{z?ktM;:^[nŮ4BčĆ2i\|}ꪟJAB{Q#Ôg_߯X,$ICy).n?ej.!`9{>{N>nVoGVj#ŠԬ>m= +endstream +endobj +1754 0 obj +<>/Font<>>> +endobj +1174 0 obj +<>/BS<>/Dest(section-3.6)/F 4/Rect[65.905512 753.389764 95.494623 737.789764]/Subtype/Link/Type/Annot>> +endobj +1175 0 obj +<>/BS<>/Dest(name-creation-of-the-jscontact-t)/F 4/Rect[95.494623 753.389764 339.67016 737.789764]/Subtype/Link/Type/Annot>> +endobj +1176 0 obj +<>/BS<>/Dest(iana-registry-policy)/F 4/Rect[300.765375 643.791717 351.690668 630.192108]/Subtype/Link/Type/Annot>> +endobj +1177 0 obj +<>/BS<>/Dest(section-3.6.1)/F 4/Rect[65.905512 618.692108 99.092035 605.692108]/Subtype/Link/Type/Annot>> +endobj +1178 0 obj +<>/BS<>/Dest(name-jscontact-types-registry-te)/F 4/Rect[99.092035 618.692108 274.274897 605.692108]/Subtype/Link/Type/Annot>> +endobj +1179 0 obj +<>/BS<>/Dest(tab-iana-version-registry)/F 4/Rect[80.905512 520.29367 115.14184 506.694061]/Subtype/Link/Type/Annot>> +endobj +1180 0 obj +<>/BS<>/Dest(tab-iana-version-registry)/F 4/Rect[80.905512 457.895233 115.14184 444.295623]/Subtype/Link/Type/Annot>> +endobj +1181 0 obj +<>/BS<>/Dest(section-3.6.2)/F 4/Rect[65.905512 362.397186 99.092035 349.397186]/Subtype/Link/Type/Annot>> +endobj +1182 0 obj +<>/BS<>/Dest(name-initial-contents-of-the-jscon)/F 4/Rect[99.092035 362.397186 337.296869 349.397186]/Subtype/Link/Type/Annot>> +endobj +1183 0 obj +<>/BS<>/Dest(address)/F 4/Rect[182.395746 263.498748 249.500238 249.899139]/Subtype/Link/Type/Annot>> +endobj +1184 0 obj +<>/BS<>/Dest(addresscomponent)/F 4/Rect[182.395746 239.149139 249.500238 225.549529]/Subtype/Link/Type/Annot>> +endobj +1185 0 obj +<>/BS<>/Dest(anniversaries)/F 4/Rect[182.395746 214.799529 241.410639 201.19992]/Subtype/Link/Type/Annot>> +endobj +1186 0 obj +<>/BS<>/Dest(notes)/F 4/Rect[182.395746 190.44992 241.410639 176.850311]/Subtype/Link/Type/Annot>> +endobj +1187 0 obj +<>/BS<>/Dest(type-signatures)/F 4/Rect[182.395746 166.100311 241.410639 152.500701]/Subtype/Link/Type/Annot>> +endobj +2158 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2157 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2156 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2155 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2154 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2153 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2152 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2151 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2150 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2149 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2148 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2147 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2146 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2145 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1849 0 obj +<>stream +x]KGr.``+Q A C.Ajw`^ZvȬȪGKLWV_Fė1< sϟ/z[¿^7kvF2f9{WzK =.Cp.D7.t>`sһr﷿1 'YE͟~7vkqln;Gq?Oeo7!>*Ƶcn`ϗ߿~㲏6${Olwoy{ٽ^װCK{ ?>>%GXrBkq /z{ҙ,}¿vC`7`8x{oҘh+aW~>oԻ `Uagw]w=Cthza{ sX9u>x(qUw\^[ϙIHcRc/{.ЌCE*<0g(/bgk/d[Wpyf3E jp5w^[VLWg?W% +#E&G9@@@p3\iwAn^MiuԱ +Xj%Ns3'cN4w;s$?fOss'syDZ]ؠH'IHft*d9G"Fi-™I-"|CmԔAG2ŀmƒPBk %zm8VP+IԐlmX'$(ئ@OojkڐoBPl!̖2*4rM59D%:_#[Cc\vuh~pbClFO<<(zR-w@8%,OaH114L9'``0e~1R1|VOoŒr{:>twqGC|,4Hւ|57ybʋvj`佒G >nv=-cL:}X@gxNX35&43$37,-9sVzX"O6O. +;_!zoU* j_7c|Vx2w,bW_-x&&]9J\o@VP3v=0W|)YJ}L9Ü3R9Hc[UKnxA|jnX<a O33uPr8ƫդ0o^ $x-ث͒Psؕ؇G#WKI'r/Jq5Bl(\JyF6[ðc} 1W}%"*`n3 su| n^S ė~ednn(}|g0JGy03E\1W333)z]Bv˥$Dfn݉ ъ}M|Fw[^^EDgYH *^7Tq!K㘞rf NVg0>Ek}n eF3%'`oosʶ}P# us`T_/ՇYIz#QPv+ӊ-NHvA=f̈vvVF ;u=-dݨC6p.x:ae^ˇ2 \HՎ]OqcXKS;Mu;Z +qGjIJz|l5*|Cnjmv:̲|ۻ}T؏o- 22-&+&GA ӫ&Z/:[zʌFS +42jrV~<K}h\FFZY~2XlF +42Jr֓K}MfgK9(+@k]zX!ԂmD'^|R~{UAsF-8s[1FUE ڛG()\^f,ie6U,ib7cI/bI#W7ؒiZ,iȚ(œs9n1+ g,cL•+kkIֶ Zm9g,!^ef,ңPfYŔF2e,Yl2;XȵYle0K}MfgK6==`MfSu,i,ӤD(tqێ)\ePp蓬吶8\? +endstream +endobj +1752 0 obj +<>/Font<>>> +endobj +1142 0 obj +<>/BS<>/Dest(organizations)/F 4/Rect[380.536423 741.290154 439.551316 727.690545]/Subtype/Link/Type/Annot>> +endobj +1143 0 obj +<>/BS<>/Dest(organizations)/F 4/Rect[315.473923 727.690545 374.488816 714.090936]/Subtype/Link/Type/Annot>> +endobj +1144 0 obj +<>/BS<>/Dest(speakToAs)/F 4/Rect[340.690476 703.340936 399.705369 689.741326]/Subtype/Link/Type/Annot>> +endobj +1145 0 obj +<>/BS<>/Dest(address)/F 4/Rect[356.278611 678.991326 423.383103 665.391717]/Subtype/Link/Type/Annot>> +endobj +1146 0 obj +<>/BS<>/Dest(titles)/F 4/Rect[340.690476 654.641717 399.705369 641.042108]/Subtype/Link/Type/Annot>> +endobj +1147 0 obj +<>/BS<>/Dest(uid)/F 4/Rect[340.690476 630.292108 399.705369 616.692498]/Subtype/Link/Type/Annot>> +endobj +1148 0 obj +<>/BS<>/Dest(organizations)/F 4/Rect[380.536423 605.942498 439.551316 592.342889]/Subtype/Link/Type/Annot>> +endobj +1149 0 obj +<>/BS<>/Dest(updated)/F 4/Rect[340.690476 581.592889 405.295213 567.993279]/Subtype/Link/Type/Annot>> +endobj +1150 0 obj +<>/BS<>/Dest(notes)/F 4/Rect[351.618943 557.243279 410.633836 543.64367]/Subtype/Link/Type/Annot>> +endobj +1151 0 obj +<>/BS<>/Dest(calendars)/F 4/Rect[468.396287 557.243279 503.042771 543.64367]/Subtype/Link/Type/Annot>> +endobj +1152 0 obj +<>/BS<>/Dest(calendars)/F 4/Rect[312.014695 543.64367 333.783738 530.044061]/Subtype/Link/Type/Annot>> +endobj +1153 0 obj +<>/BS<>/Dest(cryptoKeys)/F 4/Rect[398.12407 543.64367 457.138963 530.044061]/Subtype/Link/Type/Annot>> +endobj +1154 0 obj +<>/BS<>/Dest(directories)/F 4/Rect[315.473923 530.044061 374.488816 516.444451]/Subtype/Link/Type/Annot>> +endobj +1155 0 obj +<>/BS<>/Dest(links)/F 4/Rect[410.833787 530.044061 469.848679 516.444451]/Subtype/Link/Type/Annot>> +endobj +1156 0 obj +<>/BS<>/Dest(media)/F 4/Rect[315.473923 516.444451 374.488816 502.844842]/Subtype/Link/Type/Annot>> +endobj +1157 0 obj +<>/BS<>/Dest(onlineServices)/F 4/Rect[455.830125 516.444451 514.845017 502.844842]/Subtype/Link/Type/Annot>> +endobj +1158 0 obj +<>/BS<>/Dest(schedulingAddresses)/F 4/Rect[408.95366 502.844842 467.968552 489.245233]/Subtype/Link/Type/Annot>> +endobj +1159 0 obj +<>/BS<>/Dest(resource)/F 4/Rect[312.014695 489.245233 371.029588 475.645623]/Subtype/Link/Type/Annot>> +endobj +1160 0 obj +<>/BS<>/Dest(onlineServices)/F 4/Rect[384.797654 464.895623 443.812547 451.296014]/Subtype/Link/Type/Annot>> +endobj +1161 0 obj +<>/BS<>/Dest(anniversaries)/F 4/Rect[371.448533 440.546014 430.463425 426.946404]/Subtype/Link/Type/Annot>> +endobj +1162 0 obj +<>/BS<>/Dest(addresscomponent)/F 4/Rect[411.313523 416.196404 478.418015 402.596795]/Subtype/Link/Type/Annot>> +endobj +1163 0 obj +<>/BS<>/Dest(namecomponent)/F 4/Rect[401.16655 402.596795 468.271043 388.997186]/Subtype/Link/Type/Annot>> +endobj +1164 0 obj +<>/BS<>/Dest(personalInfo)/F 4/Rect[379.207078 388.997186 438.22197 375.397576]/Subtype/Link/Type/Annot>> +endobj +1165 0 obj +<>/BS<>/Dest(prop-version)/F 4/Rect[340.690476 364.647576 399.705369 351.047967]/Subtype/Link/Type/Annot>> +endobj +1166 0 obj +<>/BS<>/Dest(anniversaries)/F 4/Rect[371.666795 340.297967 430.681687 326.698358]/Subtype/Link/Type/Annot>> +endobj +1167 0 obj +<>/BS<>/Dest(table-2)/F 4/Rect[65.905512 320.948358 99.301752 307.348748]/Subtype/Link/Type/Annot>> +endobj +1168 0 obj +<>/BS<>/Dest(name-jscontact-properties-with-c)/F 4/Rect[104.760492 320.948358 305.399408 307.348748]/Subtype/Link/Type/Annot>> +endobj +1169 0 obj +<>/BS<>/Dest(prop-extra)/F 4/Rect[420.243167 216.450311 487.347659 202.850701]/Subtype/Link/Type/Annot>> +endobj +1170 0 obj +<>/BS<>/Dest(table-3)/F 4/Rect[65.905512 183.501092 99.301752 169.901483]/Subtype/Link/Type/Annot>> +endobj +1171 0 obj +<>/BS<>/Dest(name-jscontact-properties-with-r)/F 4/Rect[104.760492 183.501092 305.296869 169.901483]/Subtype/Link/Type/Annot>> +endobj +2188 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2187 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2186 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2185 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2184 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2183 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2182 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2181 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2180 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2179 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2178 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2177 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2176 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2175 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2174 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2173 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2172 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2171 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2170 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2169 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2168 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2167 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2166 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2165 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2164 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2163 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2162 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2161 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2160 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2159 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1848 0 obj +<>stream +x]K@!0b[v +l&/F(Z1d=-'VA +`'? ?=ŞaU7ɩ6WݽE!Do~ގ_ǃ?^O~ Ozu+O?˿K14)VF9o @y;B򆌧_Dxg<& ԝhD?y! m>aja}k9iu6e+(Wv@PPj)g^8.AFЃ>T\^8.LKDLna'8(/P ʅ?@~,) O e#bOp!?{څ (.]@:_Ņğx~,( cI]P6hF8j'^VMl!?P%_5d膨BOla?(e D.]@@/a- ǂOl!? (zBH{ .\@ُEĞvN-Ola?e .]@AyrYX@- ǂOl!?eU5D7#&8n/}H i;Tݐb/$_NnĂS|:)*oF~΃kb%>!UY8T5Ck 5k.5G3>6LO9N.sB#78P["f LF(;}YV St|Iڇ獬(Ҽ>)r:G(_<ҏY(,6݅73) 5yd<ՑqFo+O(f[Bi<%CypErƲT$VQ>y2rK2O٥7sʔ)S5ydLՑqFo+S(f[BiL%Cp +ƲV&NQ>y2rK2KP:cnwi` k=23YʤpF#78P[#2!L2(;ʄYW&RDd/7,#SCryǴP&S&>¤٥73ʄ)u5ydLՑqFo+S(f[BiL%CpҕƲT&VQ>y2rK2OB>0Kѥ7sʔ)̮p#Së3z[2&G0rꌈML-eB,ʄ(e6e2qxYs=o[ʔXʤkE. dg{+7 a2-GƴP&2:&*}Y>ey^eOՋ=,繞~L eBxg9cZFn)Sc)Qi8٥539t&k7;QFnq1FMeB e"lQ3"v61-#7 Z-79ecU/峜z1-#7 ZϩhHֳO(:LydLՑqFo+S(f[BiL%CpRƲT&VQ>y2rK2K\ +s. dg{ ! +θ.&=qJ魂ehj[T%P%¶:#bg2rC0DjdFeiU.岜z,#7 %SCo$[٣gJLZ 9LU 3#:2mUʘUlQ3"v61-#T dcVҗXk%VQ>y2rK2Ob.fHֳO)S>L8瑩2afVGLLm9 +uF&e2! euLTr|2r[8KLpypF#78>7 a2-GƴP&2:&+}Y>eL|\[?e2!<29-44F}zFЙeL%|\[?e2!<2Ac*ڤ7r2ֳK:K6VhaCٞےtB(Y_%lXmQ"TD|+71,7U|bz ƲO2gd` d[N)PT5ydAՑoFoPf[Bi%F%Cp PMMoXmr(s֏g%HHB~o2F;qQW_O g_᳝޽==]Wׯwwvrwdw}o/eFlmԈO1| +׻v%J֤_1?O(M}^|]>|pNUμ`SKxgqޟ^}L^᧬nY$ ߌ1`CA.@ o0Io[M+aA%1@ < HOݿ[! M8r֣zv|CZJ˱r0I+VN-.L#L)HM M^ Ԋ)#:DkIHoCc>.qO|:i^[1k ʪ~! :vJB7KJL(6Hp/Pz{`I359ajufW{P2Ψ񶣖B"Lm0^῁Xv2B!"l䚎, X9 Yqx;{ԇ30ѓgUvjq`.?ƪoz὆bIH6c;X`R4B~W+/HS1kr%n^`lʻA򱏵rx>+oh.:<9y\Hr?X!>HrAJw=l1D/Z +\jl6֝qp5:}G+tI+4RY>{GR[Ύ35]^-4]֟ΌjK{_YjNJXbNJl捨t NJ$٤nI &!/7$LQ)%G +_7>,=;|`Tui GaVM8>v;EtXm QE@I'j:=;^]D _"6v;E(XY +MDgLL;(* Hpc RikZ4LTsfWQ`ɏZN<%s'j:nM|c4f.^OO ;q9%ZOZ3D薩M⍓6&ʉw(vE"iit'@?~a4Y{?Pq:@z~ ]pɳ@_@o͐^$jRyaw0)Mϻp^[Ypx;,7;K-%LKs,?W~r$Bxah*DgϲǍ8L' +endstream +endobj +1750 0 obj +<>/Font<>>> +endobj +1101 0 obj +<>/BS<>/Dest(onlineServices)/F 4/Rect[340.690476 741.290154 399.705369 727.690545]/Subtype/Link/Type/Annot>> +endobj +1102 0 obj +<>/BS<>/Dest(titles)/F 4/Rect[339.370652 716.940545 398.385545 703.340936]/Subtype/Link/Type/Annot>> +endobj +1103 0 obj +<>/BS<>/Dest(organizations)/F 4/Rect[340.690476 692.590936 399.705369 678.991326]/Subtype/Link/Type/Annot>> +endobj +1104 0 obj +<>/BS<>/Dest(personalInfo)/F 4/Rect[340.690476 668.241326 399.705369 654.641717]/Subtype/Link/Type/Annot>> +endobj +1105 0 obj +<>/BS<>/Dest(phones)/F 4/Rect[340.690476 643.891717 399.705369 630.292108]/Subtype/Link/Type/Annot>> +endobj +1106 0 obj +<>/BS<>/Dest(addresscomponent)/F 4/Rect[411.313523 619.542108 478.418015 605.942498]/Subtype/Link/Type/Annot>> +endobj +1107 0 obj +<>/BS<>/Dest(namecomponent)/F 4/Rect[401.16655 605.942498 468.271043 592.342889]/Subtype/Link/Type/Annot>> +endobj +1108 0 obj +<>/BS<>/Dest(address)/F 4/Rect[356.278611 581.592889 423.383103 567.993279]/Subtype/Link/Type/Annot>> +endobj +1109 0 obj +<>/BS<>/Dest(name)/F 4/Rect[466.058396 581.592889 500.70488 567.993279]/Subtype/Link/Type/Annot>> +endobj +1110 0 obj +<>/BS<>/Dest(name)/F 4/Rect[312.014695 567.993279 341.873338 554.39367]/Subtype/Link/Type/Annot>> +endobj +1111 0 obj +<>/BS<>/Dest(address)/F 4/Rect[356.278611 543.64367 386.137254 530.044061]/Subtype/Link/Type/Annot>> +endobj +1112 0 obj +<>/BS<>/Dest(name)/F 4/Rect[428.812547 543.64367 495.917039 530.044061]/Subtype/Link/Type/Annot>> +endobj +1113 0 obj +<>/BS<>/Dest(anniversaries)/F 4/Rect[377.567918 519.294061 436.58281 505.694451]/Subtype/Link/Type/Annot>> +endobj +1114 0 obj +<>/BS<>/Dest(address)/F 4/Rect[356.278611 494.944451 423.383103 481.344842]/Subtype/Link/Type/Annot>> +endobj +1115 0 obj +<>/BS<>/Dest(calendars)/F 4/Rect[481.145554 494.944451 515.792039 481.344842]/Subtype/Link/Type/Annot>> +endobj +1116 0 obj +<>/BS<>/Dest(calendars)/F 4/Rect[312.014695 481.344842 333.783738 467.745233]/Subtype/Link/Type/Annot>> +endobj +1117 0 obj +<>/BS<>/Dest(cryptoKeys)/F 4/Rect[398.12407 481.344842 457.138963 467.745233]/Subtype/Link/Type/Annot>> +endobj +1118 0 obj +<>/BS<>/Dest(directories)/F 4/Rect[315.473923 467.745233 374.488816 454.145623]/Subtype/Link/Type/Annot>> +endobj +1119 0 obj +<>/BS<>/Dest(emails)/F 4/Rect[454.918259 467.745233 513.933152 454.145623]/Subtype/Link/Type/Annot>> +endobj +1120 0 obj +<>/BS<>/Dest(preferredLanguages)/F 4/Rect[384.257127 454.145623 443.272019 440.546014]/Subtype/Link/Type/Annot>> +endobj +1121 0 obj +<>/BS<>/Dest(links)/F 4/Rect[479.61699 454.145623 514.263474 440.546014]/Subtype/Link/Type/Annot>> +endobj +1122 0 obj +<>/BS<>/Dest(links)/F 4/Rect[312.014695 440.546014 333.783738 426.946404]/Subtype/Link/Type/Annot>> +endobj +1123 0 obj +<>/BS<>/Dest(media)/F 4/Rect[378.097459 440.546014 437.112351 426.946404]/Subtype/Link/Type/Annot>> +endobj +1124 0 obj +<>/BS<>/Dest(nicknames)/F 4/Rect[315.473923 426.946404 374.488816 413.346795]/Subtype/Link/Type/Annot>> +endobj +1125 0 obj +<>/BS<>/Dest(onlineServices)/F 4/Rect[455.830125 426.946404 514.845017 413.346795]/Subtype/Link/Type/Annot>> +endobj +1126 0 obj +<>/BS<>/Dest(phones)/F 4/Rect[348.030808 413.346795 407.045701 399.747186]/Subtype/Link/Type/Annot>> +endobj +1127 0 obj +<>/BS<>/Dest(speakToAs)/F 4/Rect[467.708543 413.346795 502.355027 399.747186]/Subtype/Link/Type/Annot>> +endobj +1128 0 obj +<>/BS<>/Dest(speakToAs)/F 4/Rect[312.014695 399.747186 333.783738 386.147576]/Subtype/Link/Type/Annot>> +endobj +1129 0 obj +<>/BS<>/Dest(schedulingAddresses)/F 4/Rect[439.281052 399.747186 498.295945 386.147576]/Subtype/Link/Type/Annot>> +endobj +1130 0 obj +<>/BS<>/Dest(resource)/F 4/Rect[394.605515 386.147576 416.374558 372.547967]/Subtype/Link/Type/Annot>> +endobj +1131 0 obj +<>/BS<>/Dest(prop-pref)/F 4/Rect[439.79155 386.147576 461.560593 372.547967]/Subtype/Link/Type/Annot>> +endobj +1132 0 obj +<>/BS<>/Dest(preferredLanguages)/F 4/Rect[340.690476 361.797967 399.705369 348.198358]/Subtype/Link/Type/Annot>> +endobj +1133 0 obj +<>/BS<>/Dest(prodId)/F 4/Rect[340.690476 337.448358 399.705369 323.848748]/Subtype/Link/Type/Annot>> +endobj +1134 0 obj +<>/BS<>/Dest(speakToAs)/F 4/Rect[369.438767 313.098748 428.45366 299.499139]/Subtype/Link/Type/Annot>> +endobj +1135 0 obj +<>/BS<>/Dest(relatedTo)/F 4/Rect[340.690476 288.749139 399.705369 275.149529]/Subtype/Link/Type/Annot>> +endobj +1136 0 obj +<>/BS<>/Dest(relatedTo)/F 4/Rect[357.648972 264.399529 416.663865 250.79992]/Subtype/Link/Type/Annot>> +endobj +1137 0 obj +<>/BS<>/Dest(schedulingAddresses)/F 4/Rect[340.690476 240.04992 399.705369 226.450311]/Subtype/Link/Type/Annot>> +endobj +1138 0 obj +<>/BS<>/Dest(onlineServices)/F 4/Rect[384.797654 215.700311 443.812547 202.100701]/Subtype/Link/Type/Annot>> +endobj +1139 0 obj +<>/BS<>/Dest(name)/F 4/Rect[346.131638 191.350701 413.23613 177.751092]/Subtype/Link/Type/Annot>> +endobj +2227 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2226 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2225 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2224 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2223 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2222 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2221 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2220 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2219 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2218 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2217 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2216 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2215 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2214 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2213 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2212 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2211 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2210 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2209 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2208 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2207 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2206 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2205 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2204 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2203 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2202 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2201 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2200 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2199 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2198 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2197 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2196 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2195 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2194 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2193 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2192 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2191 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2190 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2189 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1847 0 obj +<>stream +x]KqER}E +pChI,!YáեBteU z#jT~C^WW0r!zg͏7·ow{g1"nF_|A7i!R*5X]|0-eO?]phh_N݉V=B}+B7B >ՃQ +sCV ^Y!N @A F'sSvz+l6*A /}p\& 1:oih֕"iPr_"^̗_1 +#/P\_1 +kQx~,c]V*:b1DE[@؏\ e]v +f%O/T +c]K?T©x~,( cI]\ښxB~,) +PcQ]Qy[@؏vB~,) kPvVZtx~,( cI]7 ~0ْ[1:K}ط)cՉJKxO=ǯ"rxh/ ;<,^yMRc^SCGVsp{ʄ[g2eL2a(;[ʄX2 1Q,Ym,z(<֏iLL5g]x{}za΄͙q{ʄ[g2eL2a(;[ʄX2 1Q,Ym,9z(<֏iLLVzK3GE4 k=2#YdpF{8~zS&CrꌈML e,/+cXҗYĩ^!g9cZFn(c)Sznvi`Azا=gTTБ@tz\hϡՏ1Bo*d(a[BʄY^V&RD\/7,#Iz(<֏iLLZmviz9:5gr8=Së3z[2&G0rꌈML-eB,ʄ(ee6e有UCryǴRS&SKoOֳO/)S>L.8=Se&_x8)cr -Ghݸ L-eB,ʄ(ee6e2qxYs=o[ʔXd_sճG/R>J^"C%>j3nSx %B Kk< J .UIyؕqéP92Ջa 7g,x1w8۳~=(I=^Uq@pz`Ai[eyTm0mɘlQ3|{2rKK%$}Xܺa u^%/Uy,緞~,-x,% +R9{>vg`Az煹:5 鹭"gPӁ7 a2-GΈĴP$":ڀkdFe漈UCryǴP&S& Mۓ ʄ)65yT0ɫI1meʘelQ3d2rKK2:&*}YپeL%|\[?e2e<2J6hޞlg^R|$Oq{ʄ[g2eL2a(;[ʄX2 1Q,Sm,meT/峜z1-#)㱔) +14ݥY٧)S&Ls3}fߜՓqFoc,cr -Gmk2rdee"uLW}#2r[8Ջ,繞~Lȭe2 R?o7%I;Da2?|/|QnN^wwOvrw{򏯟exe>~jj)a=|aZdMz!^hF,ӛZQxyVgT9Sq7Jɀ Ě 4p~7FGO῟V=mz+E?ac)7/"@cpq+$97XaBЧ䥀|E@aL fbr||s1reJ zI?^H?=F-_OL2ڧ Ч[pO +[Y/)`O"h ɚbڨ/.\%fa(1NRB p ʹ>YI)y `"l,@.-s<Vb,ѝ7ç4J 8CYk9 +8-C s+zheb%H}H_§um%2|DW-DF4soG7VNhH]jzE,kwBOeoGYݩɞ? Z?Ht2bn4pKq!pgc?gPbऽ &fA,~z⾸ ,Рftc=)Ipx;Qo/I+:r>:*ƴ+c$AוUlBJefPVG7l,U&h}k;8\dx4#Z5ҡy'+- Uf-& NkN!j:ND=¼BGW|vV`e:i󶞕_yLvbxa 46JkPނ51wO*Uj:f{]I_WJ.x+#AfxU^g``\&5rflv{=)¿Oob#>OF%=54FFA)uř8dӚ+XYqdNF1~p5ِ@D̆J5Wr"Dh9ϮωLfzA{}{'bPϙMVdZ rn,SK{W2aNlN7`%cAmg1 +5V/O8][Q:~3^i8;g g7~ptLMNV4~ اi?G0`]"|ޜ Cù^769#Mȧelg]ڤWf떌GPtL} +:z5Usf^W䓍LKP֖=xqv ]gem4S + 08/X7xF4a6}0ثGJé48:;/awZ1~Qӏ??b4Y{8 8vTɬݽ_v?O0e3=|y6Eqt)`uInEx?.ѧpzmeÍ8~>^u~zƏ)2o5|~KSh/ +ًY'Vx[L +endstream +endobj +1748 0 obj +<>/Font<>>> +endobj +1056 0 obj +<>/BS<>/Dest(calendars)/F 4/Rect[361.218797 741.290154 420.233689 727.690545]/Subtype/Link/Type/Annot>> +endobj +1057 0 obj +<>/BS<>/Dest(cryptoKeys)/F 4/Rect[484.574021 741.290154 519.220505 727.690545]/Subtype/Link/Type/Annot>> +endobj +1058 0 obj +<>/BS<>/Dest(cryptoKeys)/F 4/Rect[312.014695 727.690545 333.783738 714.090936]/Subtype/Link/Type/Annot>> +endobj +1059 0 obj +<>/BS<>/Dest(directories)/F 4/Rect[393.495164 727.690545 452.510056 714.090936]/Subtype/Link/Type/Annot>> +endobj +1060 0 obj +<>/BS<>/Dest(emails)/F 4/Rect[383.885789 714.090936 442.900681 700.491326]/Subtype/Link/Type/Annot>> +endobj +1061 0 obj +<>/BS<>/Dest(links)/F 4/Rect[479.245652 714.090936 513.892136 700.491326]/Subtype/Link/Type/Annot>> +endobj +1062 0 obj +<>/BS<>/Dest(links)/F 4/Rect[312.014695 700.491326 333.783738 686.891717]/Subtype/Link/Type/Annot>> +endobj +1063 0 obj +<>/BS<>/Dest(media)/F 4/Rect[378.097459 700.491326 437.112351 686.891717]/Subtype/Link/Type/Annot>> +endobj +1064 0 obj +<>/BS<>/Dest(onlineServices)/F 4/Rect[315.473923 686.891717 374.488816 673.292108]/Subtype/Link/Type/Annot>> +endobj +1065 0 obj +<>/BS<>/Dest(personalInfo)/F 4/Rect[450.239548 686.891717 509.254441 673.292108]/Subtype/Link/Type/Annot>> +endobj +1066 0 obj +<>/BS<>/Dest(phones)/F 4/Rect[348.030808 673.292108 407.045701 659.692498]/Subtype/Link/Type/Annot>> +endobj +1067 0 obj +<>/BS<>/Dest(schedulingAddresses)/F 4/Rect[315.473923 659.692498 374.488816 646.092889]/Subtype/Link/Type/Annot>> +endobj +1068 0 obj +<>/BS<>/Dest(resource)/F 4/Rect[465.637986 659.692498 487.407029 646.092889]/Subtype/Link/Type/Annot>> +endobj +1069 0 obj +<>/BS<>/Dest(prop-label)/F 4/Rect[312.014695 646.092889 333.783738 632.493279]/Subtype/Link/Type/Annot>> +endobj +1070 0 obj +<>/BS<>/Dest(language)/F 4/Rect[340.690476 621.743279 399.705369 608.14367]/Subtype/Link/Type/Annot>> +endobj +1071 0 obj +<>/BS<>/Dest(preferredLanguages)/F 4/Rect[480.50615 621.743279 515.152634 608.14367]/Subtype/Link/Type/Annot>> +endobj +1072 0 obj +<>/BS<>/Dest(preferredLanguages)/F 4/Rect[312.014695 608.14367 333.783738 594.544061]/Subtype/Link/Type/Annot>> +endobj +1073 0 obj +<>/BS<>/Dest(personalInfo)/F 4/Rect[379.207078 583.794061 438.22197 570.194451]/Subtype/Link/Type/Annot>> +endobj +1074 0 obj +<>/BS<>/Dest(links)/F 4/Rect[340.690476 559.444451 399.705369 545.844842]/Subtype/Link/Type/Annot>> +endobj +1075 0 obj +<>/BS<>/Dest(directories)/F 4/Rect[363.167771 535.094842 422.182664 521.495233]/Subtype/Link/Type/Annot>> +endobj +1076 0 obj +<>/BS<>/Dest(personalInfo)/F 4/Rect[315.473923 521.495233 374.488816 507.895623]/Subtype/Link/Type/Annot>> +endobj +1077 0 obj +<>/BS<>/Dest(localizations)/F 4/Rect[340.690476 497.145623 399.705369 483.546014]/Subtype/Link/Type/Annot>> +endobj +1078 0 obj +<>/BS<>/Dest(media)/F 4/Rect[340.690476 472.796014 399.705369 459.196404]/Subtype/Link/Type/Annot>> +endobj +1079 0 obj +<>/BS<>/Dest(calendars)/F 4/Rect[361.218797 448.446404 420.233689 434.846795]/Subtype/Link/Type/Annot>> +endobj +1080 0 obj +<>/BS<>/Dest(cryptoKeys)/F 4/Rect[484.574021 448.446404 519.220505 434.846795]/Subtype/Link/Type/Annot>> +endobj +1081 0 obj +<>/BS<>/Dest(cryptoKeys)/F 4/Rect[312.014695 434.846795 333.783738 421.247186]/Subtype/Link/Type/Annot>> +endobj +1082 0 obj +<>/BS<>/Dest(directories)/F 4/Rect[393.495164 434.846795 452.510056 421.247186]/Subtype/Link/Type/Annot>> +endobj +1083 0 obj +<>/BS<>/Dest(links)/F 4/Rect[315.473923 421.247186 374.488816 407.647576]/Subtype/Link/Type/Annot>> +endobj +1084 0 obj +<>/BS<>/Dest(media)/F 4/Rect[418.802537 421.247186 477.817429 407.647576]/Subtype/Link/Type/Annot>> +endobj +1085 0 obj +<>/BS<>/Dest(resource)/F 4/Rect[329.8228 407.647576 388.837693 394.047967]/Subtype/Link/Type/Annot>> +endobj +1086 0 obj +<>/BS<>/Dest(members)/F 4/Rect[340.690476 383.297967 399.705369 369.698358]/Subtype/Link/Type/Annot>> +endobj +1087 0 obj +<>/BS<>/Dest(anniversaries)/F 4/Rect[371.666795 358.948358 430.681687 345.348748]/Subtype/Link/Type/Annot>> +endobj +1088 0 obj +<>/BS<>/Dest(name)/F 4/Rect[340.690476 334.598748 407.794968 320.999139]/Subtype/Link/Type/Annot>> +endobj +1089 0 obj +<>/BS<>/Dest(notes)/F 4/Rect[351.618943 310.249139 410.633836 296.649529]/Subtype/Link/Type/Annot>> +endobj +1090 0 obj +<>/BS<>/Dest(nicknames)/F 4/Rect[473.727586 310.249139 508.37407 296.649529]/Subtype/Link/Type/Annot>> +endobj +1091 0 obj +<>/BS<>/Dest(nicknames)/F 4/Rect[312.014695 296.649529 333.783738 283.04992]/Subtype/Link/Type/Annot>> +endobj +1092 0 obj +<>/BS<>/Dest(organizations)/F 4/Rect[410.863816 296.649529 469.878709 283.04992]/Subtype/Link/Type/Annot>> +endobj +1093 0 obj +<>/BS<>/Dest(organizations)/F 4/Rect[315.473923 283.04992 374.488816 269.450311]/Subtype/Link/Type/Annot>> +endobj +1094 0 obj +<>/BS<>/Dest(titles)/F 4/Rect[410.403123 283.04992 469.418015 269.450311]/Subtype/Link/Type/Annot>> +endobj +1095 0 obj +<>/BS<>/Dest(nicknames)/F 4/Rect[340.690476 258.700311 399.705369 245.100701]/Subtype/Link/Type/Annot>> +endobj +1096 0 obj +<>/BS<>/Dest(notes)/F 4/Rect[340.341111 234.350701 399.356004 220.751092]/Subtype/Link/Type/Annot>> +endobj +1097 0 obj +<>/BS<>/Dest(notes)/F 4/Rect[340.690476 210.001092 399.705369 196.401483]/Subtype/Link/Type/Annot>> +endobj +1098 0 obj +<>/BS<>/Dest(phones)/F 4/Rect[348.030808 185.651483 407.045701 172.051873]/Subtype/Link/Type/Annot>> +endobj +2270 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2269 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2268 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2267 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2266 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2265 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2264 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2263 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2262 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2261 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2260 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2259 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2258 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2257 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2256 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2255 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2254 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2253 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2252 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2251 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2250 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2249 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2248 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2247 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2246 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2245 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2244 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2243 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2242 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2241 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2240 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2239 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2238 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2237 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2236 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2235 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2234 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2233 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2232 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2231 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2230 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2229 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2228 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1846 0 obj +<>stream +x]]ooCQ4]LH?_"Ul5dK4QPEu䮖3$ ׍b~ֆo|}Y{krg?FOg-0fXz)j?nu7Ͼ;p.D6ywv_`ۻ;}RroXo71'wa=㔸n9CO.d\Yf7Nj+8|ךK4Kق)qPN ZLk ;=s \L;冝¹~`yd ;g}bU_W +cFЧ}Tȏ9Cv:pl8+;O\@ȏ9Dv~* S0JyPR, cFѧs +>4(3a%>Q@i- ǜO;uIi3O[@؏DvB~) SN f/a- njO;m!?} Ⱥ9>FxB~) PcV6NnޟY[g]HJMط1 +W]1Ӫ1xz_y-kTo6`:xz_u,x$'\]y|4E02"[FsȶmjC^I藄m> +eFULȕ,%%St=dڇ+YHLՙxc9/+hʢ\!wDk-;i82V,ՐqD+OĤ(fBQbg張cG(£) jZHֲOF^9aeBwe29 3Kl5d1)ʄPfY4\S&ĒL +}YeyZyO՛xs9okH40;ᴝl.de3;I{•F8mS[#2!L2%lQ(3JbG(fy\:NK2}%=gBwL2%qdLmG2EL2a(iL%Ap' }Yeg"Uo!g>張cG)Sģ)csL_JF}zdτ홬+q#cḛ#z]"&E0|ʌuL5eB, ʄ8Q,Su,=z8<֎iLLRPwVԒF}zL$e\sF#bvzU&A(%vV1#W = IzΤ =yhd[6Վ1B*$(S62GV0#W +eFUL5eB, ʄ8Q,Uu,=zQ>y.張cG(#)P +BջԒF}ʠ6Y?8eaK>8U%cY/cMmcЫ0 G(iJqUJj8Q+^,Q;|9k2\Q$W;F߱v'ӸSN͛g_>wm޼;nvtݽwݫoGBOn&6zlDqAp +~nRK)Ya( p='` v/yM2X0m.3G}Oa6`׽ovp|4Kz6X@[EWS"vA(,\}W!4z.oCjV4' G !ATjv!;>@yZLdLOhb!L,17jpzLifb|R>AN2鷠Tw/"_`-⬬`FVqo4εB7j_wtWGOBxjCl@PAh&;yo3a[Y51X렻S-28\ұuhmPrvs,p= M~ )g<=_˴Ʃ^)̇ȍBHEgӠ `9AH_腔61r=~N!>rM? a?hI! y3%/ixax{,T/J6TxwoܮC%9 ?dv@TSLb-j@aD_@/+L%ܩt4*G dّmgc341e0vUK%hI̘ڂ> Ha4tzra,/IOʓIWïdƫ2L9K`ߎF ҚU^;ȟvx{O1 +>sbRљI]v_ULafVsp%5,Rjzaai_~44(~95i&bCo,6x3e,DG՜ҙe( enAy3l j9ÊCz7C|P\O&Mſ +Vӿ:ɝv2](7ssδGܔCyϜf9gas0Sv.GBX+>zK^^|dnf/g+`ӱQ+o#]X) ;(T-n!gǵEUt$}gxa-x24z 2}V !maq>J}g(}ֶ˥}dzc9~0Pz6g^yѝ bzhTa\H-\A Xo +ˢPڌfAavŃBjxN:/exrGi2{e%^߲)Q8&tTbn3+: ws X0Zz?#= W V#h{`' J' `m4? +t>󐴆%FGbC~ 8A,/ʿꋰ',׷{]όb=w;z 3' :ڿ5yx W +endstream +endobj +1746 0 obj +<>/Font<>>> +endobj +1022 0 obj +<>/BS<>/Dest(address)/F 4/Rect[356.278611 741.290154 423.383103 727.690545]/Subtype/Link/Type/Annot>> +endobj +1023 0 obj +<>/BS<>/Dest(address)/F 4/Rect[356.278611 716.940545 423.383103 703.340936]/Subtype/Link/Type/Annot>> +endobj +1024 0 obj +<>/BS<>/Dest(created)/F 4/Rect[340.690476 692.590936 399.705369 678.991326]/Subtype/Link/Type/Annot>> +endobj +1025 0 obj +<>/BS<>/Dest(notes)/F 4/Rect[436.590134 692.590936 495.605027 678.991326]/Subtype/Link/Type/Annot>> +endobj +1026 0 obj +<>/BS<>/Dest(anniversaries)/F 4/Rect[377.567918 668.241326 436.58281 654.641717]/Subtype/Link/Type/Annot>> +endobj +1027 0 obj +<>/BS<>/Dest(anniversaries)/F 4/Rect[371.666795 630.292108 430.681687 616.692498]/Subtype/Link/Type/Annot>> +endobj +1028 0 obj +<>/BS<>/Dest(address)/F 4/Rect[356.278611 605.942498 423.383103 592.342889]/Subtype/Link/Type/Annot>> +endobj +1029 0 obj +<>/BS<>/Dest(name)/F 4/Rect[466.058396 605.942498 500.70488 592.342889]/Subtype/Link/Type/Annot>> +endobj +1030 0 obj +<>/BS<>/Dest(name)/F 4/Rect[312.014695 592.342889 341.873338 578.743279]/Subtype/Link/Type/Annot>> +endobj +1031 0 obj +<>/BS<>/Dest(directories)/F 4/Rect[340.690476 567.993279 399.705369 554.39367]/Subtype/Link/Type/Annot>> +endobj +1032 0 obj +<>/BS<>/Dest(emails)/F 4/Rect[340.690476 543.64367 399.705369 530.044061]/Subtype/Link/Type/Annot>> +endobj +1033 0 obj +<>/BS<>/Dest(phones)/F 4/Rect[348.030808 519.294061 407.045701 505.694451]/Subtype/Link/Type/Annot>> +endobj +1034 0 obj +<>/BS<>/Dest(address)/F 4/Rect[356.278611 494.944451 423.383103 481.344842]/Subtype/Link/Type/Annot>> +endobj +1035 0 obj +<>/BS<>/Dest(name)/F 4/Rect[466.058396 494.944451 500.70488 481.344842]/Subtype/Link/Type/Annot>> +endobj +1036 0 obj +<>/BS<>/Dest(name)/F 4/Rect[312.014695 481.344842 341.873338 467.745233]/Subtype/Link/Type/Annot>> +endobj +1037 0 obj +<>/BS<>/Dest(speakToAs)/F 4/Rect[369.438767 456.995233 428.45366 443.395623]/Subtype/Link/Type/Annot>> +endobj +1038 0 obj +<>/BS<>/Dest(address)/F 4/Rect[356.278611 432.645623 423.383103 419.046014]/Subtype/Link/Type/Annot>> +endobj +1039 0 obj +<>/BS<>/Dest(name)/F 4/Rect[466.058396 432.645623 500.70488 419.046014]/Subtype/Link/Type/Annot>> +endobj +1040 0 obj +<>/BS<>/Dest(name)/F 4/Rect[312.014695 419.046014 341.873338 405.446404]/Subtype/Link/Type/Annot>> +endobj +1041 0 obj +<>/BS<>/Dest(keywords)/F 4/Rect[340.690476 394.696404 399.705369 381.096795]/Subtype/Link/Type/Annot>> +endobj +1042 0 obj +<>/BS<>/Dest(addresscomponent)/F 4/Rect[411.313523 370.346795 478.418015 356.747186]/Subtype/Link/Type/Annot>> +endobj +1043 0 obj +<>/BS<>/Dest(anniversaries)/F 4/Rect[377.567918 356.747186 436.58281 343.147576]/Subtype/Link/Type/Annot>> +endobj +1044 0 obj +<>/BS<>/Dest(calendars)/F 4/Rect[315.473923 343.147576 374.488816 329.547967]/Subtype/Link/Type/Annot>> +endobj +1045 0 obj +<>/BS<>/Dest(kind)/F 4/Rect[411.722947 343.147576 470.737839 329.547967]/Subtype/Link/Type/Annot>> +endobj +1046 0 obj +<>/BS<>/Dest(cryptoKeys)/F 4/Rect[367.796677 329.547967 426.81157 315.948358]/Subtype/Link/Type/Annot>> +endobj +1047 0 obj +<>/BS<>/Dest(directories)/F 4/Rect[315.473923 315.948358 374.488816 302.348748]/Subtype/Link/Type/Annot>> +endobj +1048 0 obj +<>/BS<>/Dest(links)/F 4/Rect[410.833787 315.948358 469.848679 302.348748]/Subtype/Link/Type/Annot>> +endobj +1049 0 obj +<>/BS<>/Dest(media)/F 4/Rect[315.473923 302.348748 374.488816 288.749139]/Subtype/Link/Type/Annot>> +endobj +1050 0 obj +<>/BS<>/Dest(namecomponent)/F 4/Rect[472.199021 302.348748 506.845505 288.749139]/Subtype/Link/Type/Annot>> +endobj +1051 0 obj +<>/BS<>/Dest(namecomponent)/F 4/Rect[312.014695 288.749139 341.873338 275.149529]/Subtype/Link/Type/Annot>> +endobj +1052 0 obj +<>/BS<>/Dest(personalInfo)/F 4/Rect[417.62407 288.749139 476.638963 275.149529]/Subtype/Link/Type/Annot>> +endobj +1053 0 obj +<>/BS<>/Dest(titles)/F 4/Rect[315.473923 275.149529 374.488816 261.54992]/Subtype/Link/Type/Annot>> +endobj +2302 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2301 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2300 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2299 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2298 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2297 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2296 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2295 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2294 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2293 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2292 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2291 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2290 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2289 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2288 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2287 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2286 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2285 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2284 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2283 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2282 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2281 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2280 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2279 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2278 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2277 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2276 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2275 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2274 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2273 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2272 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2271 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1845 0 obj +<>stream +x]Kn`oC Ķ88aQ|?.Fଽ+Yc:/vS~`ĮbN G ;Nz~{}~dwZ"LYjWNbJe|%wJm:DŽ2k{p(Acfざj-!8ieI5)'p爠q\2͸&΃(ߒÅS6S ͈7U$ :=W@FGp=ʾ0yT;n 7q gtEj[t"Z%ykT7wG. GKU7;r~4PuFIZC,,.Op4e+mm]u{7D343}fS>cTn]6T˵ž}^ʂ1yq.O[^zJL+VSr}lk9OfEئgٙ4\Wem}j2byc>/1K#U)Ԗ0GݻŽV]A֖쇐Qqi"l}Ցd+ǶcЋ0+T'bBQdg4rAu0êpF:'ӟdFnڏ\Fޡ\sr,EBxUWtXa*vP[ue4d=0B߬ IK}.Fӕťr4"֨♤%3Y瘄-wXpFd21ym9i2!:eҜ8 Kmݕڒ2o)f9㕩2afee1k MG!(3iLe2:ƟZMy,EeCty[iL#^29Et\ں+%!eYLN8WʄEdym9i2xUd!9nXڪ+ڒ2߬R&JrFWqm- aV(S6<,i2a)Hd_?2\VɀYEcO85O:`(Evf1M#@,RTÑZLL>eyZi?ryrq>g˱L#ҊD?1owE'"*OWVL`CVoߟ zx3\n8p1hvچ?LH6j0|\ ? qj(W)\s 󛚃f gyJv>^7@Ά ߼ϰ?&@qnQ + Md5`~ ?<> ßcaŽ֟np|Ĵ&JkE6\^A

|E=Ѣ0Z1^T1*u|N|NRlGQA:R:+'6GPR3t7U]d6 /\zp +%D'J`F fݷ'.]ry nХ*¨[H#Z bJ6G"_#X@ nls&TJ]41[}ܿ烨 aSH/5룙]{',H}{WλSscsA6A4ma uFmoO°pQ~ԧf;SRBZ1T5B(8q .\j1k ɰ:_B*ySHAЮOrnrdnC-ai#\x6̚ӧ4م&qwFA +c`N!r3<Vg}xin5nS`߾׬f}Qi3;Ѕ6eve?UBrr_6Tnk%4*dgbNOi(Daj MGָ6/yJX٤*}6R6}#'æu |9iV=UJw>/Font<>>> +endobj +961 0 obj +<>/BS<>/Dest(address)/F 4/Rect[356.278611 741.290154 423.383103 727.690545]/Subtype/Link/Type/Annot>> +endobj +962 0 obj +<>/BS<>/Dest(addresscomponent)/F 4/Rect[411.313523 727.690545 478.418015 714.090936]/Subtype/Link/Type/Annot>> +endobj +963 0 obj +<>/BS<>/Dest(anniversaries)/F 4/Rect[377.567918 714.090936 436.58281 700.491326]/Subtype/Link/Type/Annot>> +endobj +964 0 obj +<>/BS<>/Dest(notes)/F 4/Rect[484.745408 714.090936 519.391892 700.491326]/Subtype/Link/Type/Annot>> +endobj +965 0 obj +<>/BS<>/Dest(notes)/F 4/Rect[312.014695 700.491326 333.783738 686.891717]/Subtype/Link/Type/Annot>> +endobj +966 0 obj +<>/BS<>/Dest(cardtype)/F 4/Rect[371.017869 700.491326 430.032761 686.891717]/Subtype/Link/Type/Annot>> +endobj +967 0 obj +<>/BS<>/Dest(calendars)/F 4/Rect[315.473923 686.891717 374.488816 673.292108]/Subtype/Link/Type/Annot>> +endobj +968 0 obj +<>/BS<>/Dest(cryptoKeys)/F 4/Rect[438.829148 686.891717 497.844041 673.292108]/Subtype/Link/Type/Annot>> +endobj +969 0 obj +<>/BS<>/Dest(directories)/F 4/Rect[363.167771 673.292108 422.182664 659.692498]/Subtype/Link/Type/Annot>> +endobj +970 0 obj +<>/BS<>/Dest(emails)/F 4/Rect[315.473923 659.692498 374.488816 646.092889]/Subtype/Link/Type/Annot>> +endobj +971 0 obj +<>/BS<>/Dest(preferredLanguages)/F 4/Rect[455.289597 659.692498 514.30449 646.092889]/Subtype/Link/Type/Annot>> +endobj +972 0 obj +<>/BS<>/Dest(links)/F 4/Rect[336.342088 646.092889 395.35698 632.493279]/Subtype/Link/Type/Annot>> +endobj +973 0 obj +<>/BS<>/Dest(media)/F 4/Rect[439.670701 646.092889 498.685593 632.493279]/Subtype/Link/Type/Annot>> +endobj +974 0 obj +<>/BS<>/Dest(name)/F 4/Rect[346.131638 632.493279 413.23613 618.89367]/Subtype/Link/Type/Annot>> +endobj +975 0 obj +<>/BS<>/Dest(namecomponent)/F 4/Rect[315.473923 618.89367 382.578416 605.294061]/Subtype/Link/Type/Annot>> +endobj +976 0 obj +<>/BS<>/Dest(nicknames)/F 4/Rect[445.672166 618.89367 504.687058 605.294061]/Subtype/Link/Type/Annot>> +endobj +977 0 obj +<>/BS<>/Dest(notes)/F 4/Rect[340.341111 605.294061 399.356004 591.694451]/Subtype/Link/Type/Annot>> +endobj +978 0 obj +<>/BS<>/Dest(onlineServices)/F 4/Rect[480.697312 605.294061 515.343797 591.694451]/Subtype/Link/Type/Annot>> +endobj +979 0 obj +<>/BS<>/Dest(onlineServices)/F 4/Rect[312.014695 591.694451 333.783738 578.094842]/Subtype/Link/Type/Annot>> +endobj +980 0 obj +<>/BS<>/Dest(organizations)/F 4/Rect[410.863816 591.694451 469.878709 578.094842]/Subtype/Link/Type/Annot>> +endobj +981 0 obj +<>/BS<>/Dest(organizations)/F 4/Rect[315.473923 578.094842 374.488816 564.495233]/Subtype/Link/Type/Annot>> +endobj +982 0 obj +<>/BS<>/Dest(anniversaries)/F 4/Rect[442.699265 578.094842 501.714158 564.495233]/Subtype/Link/Type/Annot>> +endobj +983 0 obj +<>/BS<>/Dest(personalInfo)/F 4/Rect[379.207078 564.495233 438.22197 550.895623]/Subtype/Link/Type/Annot>> +endobj +984 0 obj +<>/BS<>/Dest(phones)/F 4/Rect[482.796433 564.495233 517.442918 550.895623]/Subtype/Link/Type/Annot>> +endobj +985 0 obj +<>/BS<>/Dest(phones)/F 4/Rect[312.014695 550.895623 333.783738 537.296014]/Subtype/Link/Type/Annot>> +endobj +986 0 obj +<>/BS<>/Dest(speakToAs)/F 4/Rect[394.44658 550.895623 453.461472 537.296014]/Subtype/Link/Type/Annot>> +endobj +987 0 obj +<>/BS<>/Dest(relatedTo)/F 4/Rect[315.473923 537.296014 374.488816 523.696404]/Subtype/Link/Type/Annot>> +endobj +988 0 obj +<>/BS<>/Dest(schedulingAddresses)/F 4/Rect[479.98613 537.296014 514.632615 523.696404]/Subtype/Link/Type/Annot>> +endobj +989 0 obj +<>/BS<>/Dest(schedulingAddresses)/F 4/Rect[312.014695 523.696404 333.783738 510.096795]/Subtype/Link/Type/Annot>> +endobj +990 0 obj +<>/BS<>/Dest(speakToAs)/F 4/Rect[399.76616 523.696404 458.781052 510.096795]/Subtype/Link/Type/Annot>> +endobj +991 0 obj +<>/BS<>/Dest(anniversaries)/F 4/Rect[315.473923 510.096795 374.488816 496.497186]/Subtype/Link/Type/Annot>> +endobj +992 0 obj +<>/BS<>/Dest(titles)/F 4/Rect[410.403123 510.096795 469.418015 496.497186]/Subtype/Link/Type/Annot>> +endobj +993 0 obj +<>/BS<>/Dest(emails)/F 4/Rect[383.885789 485.747186 442.900681 472.147576]/Subtype/Link/Type/Annot>> +endobj +994 0 obj +<>/BS<>/Dest(address)/F 4/Rect[340.690476 461.397576 407.794968 447.797967]/Subtype/Link/Type/Annot>> +endobj +995 0 obj +<>/BS<>/Dest(anniversaries)/F 4/Rect[340.690476 437.047967 399.705369 423.448358]/Subtype/Link/Type/Annot>> +endobj +996 0 obj +<>/BS<>/Dest(notes)/F 4/Rect[340.341111 412.698358 399.356004 399.098748]/Subtype/Link/Type/Annot>> +endobj +997 0 obj +<>/BS<>/Dest(calendars)/F 4/Rect[340.690476 388.348748 399.705369 374.749139]/Subtype/Link/Type/Annot>> +endobj +998 0 obj +<>/BS<>/Dest(anniversaries)/F 4/Rect[371.666795 363.999139 430.681687 350.399529]/Subtype/Link/Type/Annot>> +endobj +999 0 obj +<>/BS<>/Dest(address)/F 4/Rect[356.278611 339.649529 423.383103 326.04992]/Subtype/Link/Type/Annot>> +endobj +1000 0 obj +<>/BS<>/Dest(namecomponent)/F 4/Rect[346.131638 315.29992 413.23613 301.700311]/Subtype/Link/Type/Annot>> +endobj +1001 0 obj +<>/BS<>/Dest(address)/F 4/Rect[356.278611 290.950311 423.383103 277.350701]/Subtype/Link/Type/Annot>> +endobj +1002 0 obj +<>/BS<>/Dest(calendars)/F 4/Rect[481.145554 290.950311 515.792039 277.350701]/Subtype/Link/Type/Annot>> +endobj +1003 0 obj +<>/BS<>/Dest(calendars)/F 4/Rect[312.014695 277.350701 333.783738 263.751092]/Subtype/Link/Type/Annot>> +endobj +1004 0 obj +<>/BS<>/Dest(cryptoKeys)/F 4/Rect[398.12407 277.350701 457.138963 263.751092]/Subtype/Link/Type/Annot>> +endobj +1005 0 obj +<>/BS<>/Dest(directories)/F 4/Rect[315.473923 263.751092 374.488816 250.151483]/Subtype/Link/Type/Annot>> +endobj +1006 0 obj +<>/BS<>/Dest(emails)/F 4/Rect[454.918259 263.751092 513.933152 250.151483]/Subtype/Link/Type/Annot>> +endobj +1007 0 obj +<>/BS<>/Dest(preferredLanguages)/F 4/Rect[384.257127 250.151483 443.272019 236.551873]/Subtype/Link/Type/Annot>> +endobj +1008 0 obj +<>/BS<>/Dest(links)/F 4/Rect[479.61699 250.151483 514.263474 236.551873]/Subtype/Link/Type/Annot>> +endobj +1009 0 obj +<>/BS<>/Dest(links)/F 4/Rect[312.014695 236.551873 333.783738 222.952264]/Subtype/Link/Type/Annot>> +endobj +1010 0 obj +<>/BS<>/Dest(media)/F 4/Rect[378.097459 236.551873 437.112351 222.952264]/Subtype/Link/Type/Annot>> +endobj +1011 0 obj +<>/BS<>/Dest(nicknames)/F 4/Rect[315.473923 222.952264 374.488816 209.352654]/Subtype/Link/Type/Annot>> +endobj +1012 0 obj +<>/BS<>/Dest(onlineServices)/F 4/Rect[455.830125 222.952264 514.845017 209.352654]/Subtype/Link/Type/Annot>> +endobj +1013 0 obj +<>/BS<>/Dest(organizations)/F 4/Rect[380.536423 209.352654 439.551316 195.753045]/Subtype/Link/Type/Annot>> +endobj +1014 0 obj +<>/BS<>/Dest(phones)/F 4/Rect[484.125779 209.352654 518.772263 195.753045]/Subtype/Link/Type/Annot>> +endobj +1015 0 obj +<>/BS<>/Dest(phones)/F 4/Rect[312.014695 195.753045 333.783738 182.153436]/Subtype/Link/Type/Annot>> +endobj +1016 0 obj +<>/BS<>/Dest(speakToAs)/F 4/Rect[394.44658 195.753045 453.461472 182.153436]/Subtype/Link/Type/Annot>> +endobj +1017 0 obj +<>/BS<>/Dest(schedulingAddresses)/F 4/Rect[408.95366 182.153436 467.968552 168.553826]/Subtype/Link/Type/Annot>> +endobj +1018 0 obj +<>/BS<>/Dest(resource)/F 4/Rect[353.770066 168.553826 375.539109 154.954217]/Subtype/Link/Type/Annot>> +endobj +1019 0 obj +<>/BS<>/Dest(prop-contexts)/F 4/Rect[398.956101 168.553826 420.725144 154.954217]/Subtype/Link/Type/Annot>> +endobj +2361 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2360 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2359 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2358 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2357 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2356 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2355 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2354 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2353 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2352 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2351 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2350 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2349 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2348 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2347 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2346 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2345 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2344 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2343 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2342 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2341 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2340 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2339 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2338 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2337 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2336 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2335 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2334 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2333 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2332 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2331 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2330 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2329 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2328 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2327 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2326 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2325 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2324 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2323 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2322 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2321 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2320 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2319 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2318 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2317 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2316 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2315 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2314 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2313 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2312 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2311 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2310 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2309 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2308 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2307 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2306 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2305 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2304 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2303 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1844 0 obj +<>stream +xZo#E/shvUЀ! f؉ 6\f`t?& NOrw}`p|NNqꜷFz7uH/3:+k +$Yg g5Uy=\ "<|?# A53+8`j;@;IpQWuy;@Ɖm/pv6^ueW4u\+;KUk\Bz]qn䛂KsHɂL"5Naoχ'ɹrbJ~% a\_%WdȒJ8MA=Cf m ^ JjF1ΈiF.PCICf;p:kO!.`-;5?Cʕs%܀hі=XH#E3D8 w + Ev-B=;<H3BN}ye^U\%Fz@0O*|OiTX +e:l_}abI1$Im|`dыGG8P:MV_;O^"bJt QesK`,]&#\y]t_PƮ3|.hT/ i -%)T4UH0J +|B)֣<&–{:whO#h؎Rpq+ 6}>Ŕi ;Xjc8XqA =7ABt80zU"{]"f4W c@*Gjteަ("5&,k/j +? q!j(V/T?%j +PnhEcnG3@;*Q +"vsN07Pp~])DHH+h~+{ F`)g:g5qzIL}7%9XEqRlյ˿"Pk#tN( CbHI=v:Kn,>A2 t.9@nAI* c\G X=%eMYxu9\ڶ,bK,Ƹ<BM 1 +E-۫T~|*} ;Me)zT]EsUV\&,[jm_jn5b* ^A̺6 z}y^H1ȀJOZJ)*e*XtldA?*k Ik4*դoO)lGZB9R-s jupYy Ux<] gZA +2m\^-:t]M$ c4He{ɹgC{z:PHlcja9w1,{]a[}|0J.Fi_Ҳ9x7V^Ł&#f]o%wk_joYg-Ը֪?Ӡ"ၯ)U1׈bEv3&BνWO2Ksi0:fQ4+v@^Yc )I2 vKC='=LXkVj)`ZuWd=hK8>c`j[>д؅FZVf:9$ +endstream +endobj +1742 0 obj +<>/Font<>>> +endobj +953 0 obj +<>/BS<>/Dest(type-signatures)/F 4/Rect[300.85766 757.790154 359.872553 744.190545]/Subtype/Link/Type/Annot>> +endobj +954 0 obj +<>/BS<>/Dest(iana-type-registry-contents)/F 4/Rect[396.175287 708.991326 455.19018 695.391717]/Subtype/Link/Type/Annot>> +endobj +955 0 obj +<>/BS<>/Dest(tab-iana-version-registry)/F 4/Rect[102.172846 611.39367 136.409174 597.794061]/Subtype/Link/Type/Annot>> +endobj +956 0 obj +<>/BS<>/Dest(tab-iana-version-registry)/F 4/Rect[482.254389 562.594842 516.490717 548.995233]/Subtype/Link/Type/Annot>> +endobj +957 0 obj +<>/BS<>/Dest(section-3.5.2)/F 4/Rect[65.905512 439.897576 99.092035 426.897576]/Subtype/Link/Type/Annot>> +endobj +958 0 obj +<>/BS<>/Dest(name-initial-contents-of-the-jsco)/F 4/Rect[99.092035 439.897576 361.223627 426.897576]/Subtype/Link/Type/Annot>> +endobj +2367 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2366 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2365 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2364 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2363 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2362 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1843 0 obj +<>stream +x[Ks7F+^\89RVx? %Q"H[\Jv{؟`0áHƌ$f_?L+Z⟟Mf6+ +%8քh %X!5]O=/L|m)2%9 ij''Jˇ辻^ ̰)B~, Gup㷩8V+~(ip ,nE7dݴhA4 !׋K=E_es(8OL|hfh. Z >k'RN#E^%Z5$\ +XX4f(]!yc +-%jT{53g iq\w)6 7@HWo[q VUd3`|` S& sOC[L5#sg ]x3~ȘS5| ƖSAػ pѧ3J9 +(feZܫh幯~s\rE^ ~NS?e"!HNs_'v2H6f+) af8VIk -P*}D̕I7-|V^e05qwZk<&`0aDbk9*j )`ydSnsWsl,BN H4 +6tVU*nBY)zc5؟{YX[U讀u~לaXi*r0U#*b̗kMEPx?9NVq*lDeB6fB+9IYRvԒuY/|KDIenUpXpv+kW&4؆Y.WP~ZngxK +*0BJCdH ,ÀV^m=NeRH߰%4^L`k<\4[.êu[ <ԱdTmvj(-nMRYԦ\g0d{_/]:QkCPrdb0adQlcuK6\`On)ՂӮPC.a,6r:"]WNcu +k"J.UnaĈ-RAݹN[0 +BHEsGNÖr$$3 +IH`j%ɋi_XXUk&,#'B `”Tl;= 3),á9q ~[:lpeR'ebxܴ`:TY俆r9SЬM<I6(DtvBG#x*B)te}?N(󜡬=μ$s?![:ZRpq^Mmi;У4e iy(>[~c3DGߏ&ɫ;seo|&B Cs<<%Оy;mH3Qq\& [4\no/>3QܸL9CfҖP&jD!<~4P9eLzm8zg>P9g1^I3o~ip&j9eOg[xli]`|[woB$&+I;:S݁IzZV_e=G?4}T# z牜A23[WW/>=zts(ٜ$Ls,*"DI Qjr8:@ṰU פbI%&&ztd!qö CG +L-G%PiLUqbHފ5W'pʟ{>Hs: z>|Vj"+Onݙzo-skb;vԇčbƬi^UQ̽KqFKIll9{OW^e8/o +5hu֪raeUE/I*nDmWE{n9B'-'Bڽw-'΃<*%ݑڳʡalW7/6rz4sE.tA{! oT{ZPT Zɪέ(1J&~<zZR9Dx:MZ1lPN1,=mes >&Ӻ<:beT*^~҂GP +n?t=/]笒G\>X}픬j>/Font<>>> +endobj +937 0 obj +<>/BS<>/Dest(section-3.4)/F 4/Rect[65.905512 753.389764 95.494623 737.789764]/Subtype/Link/Type/Annot>> +endobj +938 0 obj +<>/BS<>/Dest(name-creation-of-the-jscontact-v)/F 4/Rect[95.494623 753.389764 350.661615 737.789764]/Subtype/Link/Type/Annot>> +endobj +939 0 obj +<>/BS<>/Dest(iana-registry-policy)/F 4/Rect[229.494867 643.791717 280.42016 630.192108]/Subtype/Link/Type/Annot>> +endobj +940 0 obj +<>/BS<>/Dest(section-3.4.1)/F 4/Rect[65.905512 618.692108 99.092035 605.692108]/Subtype/Link/Type/Annot>> +endobj +941 0 obj +<>/BS<>/Dest(name-jscontact-version-registry-)/F 4/Rect[99.092035 618.692108 283.432367 605.692108]/Subtype/Link/Type/Annot>> +endobj +942 0 obj +<>/BS<>/Dest(section-3.4.2)/F 4/Rect[65.905512 503.194061 99.092035 490.194061]/Subtype/Link/Type/Annot>> +endobj +943 0 obj +<>/BS<>/Dest(name-initial-contents-of-the-jsc)/F 4/Rect[99.092035 503.194061 346.45434 490.194061]/Subtype/Link/Type/Annot>> +endobj +944 0 obj +<>/BS<>/Dest(table-1)/F 4/Rect[156.401223 412.145233 189.797463 398.545623]/Subtype/Link/Type/Annot>> +endobj +945 0 obj +<>/BS<>/Dest(name-jscontact-version-registry)/F 4/Rect[195.256203 412.145233 319.092629 398.545623]/Subtype/Link/Type/Annot>> +endobj +946 0 obj +<>/BS<>/Dest(section-3.5)/F 4/Rect[65.905512 384.045623 95.494623 368.445623]/Subtype/Link/Type/Annot>> +endobj +947 0 obj +<>/BS<>/Dest(name-creation-of-the-jscontact-p)/F 4/Rect[95.494623 384.045623 368.384027 368.445623]/Subtype/Link/Type/Annot>> +endobj +948 0 obj +<>/BS<>/Dest(iana-registry-policy)/F 4/Rect[322.092768 288.047186 373.018061 274.447576]/Subtype/Link/Type/Annot>> +endobj +949 0 obj +<>/BS<>/Dest(section-3.5.1)/F 4/Rect[65.905512 262.947576 99.092035 249.947576]/Subtype/Link/Type/Annot>> +endobj +950 0 obj +<>/BS<>/Dest(name-jscontact-properties-regist)/F 4/Rect[99.092035 262.947576 298.201654 249.947576]/Subtype/Link/Type/Annot>> +endobj +2381 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2380 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2379 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2378 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2377 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2376 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2375 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2374 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2373 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2372 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2371 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2370 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2369 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2368 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1842 0 obj +<>stream +xYKF& Ha"1&=85f&&XbH]`znHz}UU{|c~,*~09޴x!i5RuB +YY>a:2~W'uټByZy;\N Hy;λoAX\W %iavn}U̅j9N|^c6I Y+bՎsx +Zc `P—I9̩Vk^wx*f`υY,U) vX,!qel-3k E 6eF'MLRm .ITD +5*Ls˼YkÂ鞷SC^@k{/* ER-jRkhy ;O1;}m/e*es6o2y8zrWh?uj&{c9jOC aQƠ>ɇtӗv ur6EGm+cJ[.N=Q/k2[ *^) 2|=SW zʸUrzg pJ8aUpoS=7ABvp[X-ugÖmSYX82oHe `叽R,H%~ +Ҷ[./UZdL֫Ov5x8ϩ!P?V]cF12 +#- $`iXIhzϤ]wh|tcwt#D*:ٹµBb*tLa!t4`hb_9YM#O;L:tzF̜8Gƕ!|& :?20K ڂvvru6uȣTP4+εe3,[)3D~SCF#Az;'hOQFVO:7k rA Ogw_ay [ +@.LQ $Mڰ%bd79`h +…wsT3x:01APm9[fEhҰ 21d\fBn MH?a0ۄT(䨟9 A0ݼ :~]ӈ9KvyT*UIx$@J3OBݻ}3G 5gIţqawv +hP1mʴ(1M3k73 +5m :cg]s]l~ϻ,/,@*@VZ'e$)":;-)qY |?0oZ"P'[p#?M1{M}'q +hhT"N7jI|<VKnm@']8TOk +endstream +endobj +1738 0 obj +<>/Font<>>> +endobj +927 0 obj +<>/BS<>/Dest(section-3.3.1)/F 4/Rect[65.905512 756.389764 99.092035 743.389764]/Subtype/Link/Type/Annot>> +endobj +928 0 obj +<>/BS<>/Dest(name-preliminary-community-revie)/F 4/Rect[99.092035 756.389764 261.554926 743.389764]/Subtype/Link/Type/Annot>> +endobj +929 0 obj +<>/BS<>/Dest(section-3.3.2)/F 4/Rect[65.905512 621.692498 99.092035 608.692498]/Subtype/Link/Type/Annot>> +endobj +930 0 obj +<>/BS<>/Dest(name-submit-request-to-iana)/F 4/Rect[99.092035 621.692498 221.028559 608.692498]/Subtype/Link/Type/Annot>> +endobj +931 0 obj +<>/BS<>/Dest(section-3.3.3)/F 4/Rect[65.905512 578.592889 99.092035 565.592889]/Subtype/Link/Type/Annot>> +endobj +932 0 obj +<>/BS<>/Dest(name-designated-expert-review)/F 4/Rect[99.092035 578.592889 231.626703 565.592889]/Subtype/Link/Type/Annot>> +endobj +933 0 obj +<>/BS<>/Dest(section-3.3.4)/F 4/Rect[65.905512 369.497186 99.092035 356.497186]/Subtype/Link/Type/Annot>> +endobj +934 0 obj +<>/BS<>/Dest(name-change-procedures)/F 4/Rect[99.092035 369.497186 196.702631 356.497186]/Subtype/Link/Type/Annot>> +endobj +2389 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2388 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2387 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2386 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2385 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2384 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2383 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2382 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1841 0 obj +<>stream +xZKoDЅ ^$&AX=RdƢ(iDC6b/S]=INLK"ꫪc-Z> ~Z4OZ &D=4ZB+n?н~a$1pk[B)cV~p/XxH}>;>߼a-J:9},Gg|NKfuWI7lM~{5oti Tbqˤ^}~;;;58\5{^|S)FEqVLXk +~w`|!W)<)dvw^.VA*}"LI2lHUx?^heLQH|t5h):w*\]:1 g +ݼZeqK$mKn(۩E)DluQA1PaAbra!nsq0.] bpŬSe +@.`w~J sEgUI;(pE9P%|R 2ܣ9pF >b*帋h-m0LS=/7)Bg J3]R*iX zefvCmaåڼh>.^+ unq&M8TIu^y,f %BcZx*1|ǁiz+)C}qtm6]UjiBM7ZYn/2F6[md=!y'FyMf>-[<"Ƙa4PVn_w(.֘n#ݲI0Kb}Z`ЛDU1RØ`%b._GM2FBCn KG')Nq[f?-5nIu8 ^DF>gy)ƨu%'lĦd;h%#͝A gݛV!#t_SC|X!w^*KMn+8=\|jpP?k{ko ?OҙԭNJ5}&2ZYmoh)UDt{-u68n6M3)ȼ'b^nk2+ [%#AǞ.nP]V{.,ac4E ֽ¢Oag4%1'q{c,ɺ?B[! Q12[,N>\5wIZhKT><(~ IJ)rW$A!̡Gw*#X{g1=-xI՞dC?aE51,̃ l=+8BT1Jb>.֔Z3!K:NĨEuO@nX4k?QTR3n'3H5#h +##gZjx j/OTR2f,s¶@BZtʔRk5zŷ:7;_Q`kmҟ=Ek#`C䛑#̪2&M;4*)Т767r(-XeWڃ7zڴ_W&*Ud :%]I7}g sպ~K)Cduc?bO {Rhem]w0QZGJncaF4 +endstream +endobj +1736 0 obj +<>/Font<>>> +endobj +913 0 obj +<>/BS<>/Dest(section-3.2)/F 4/Rect[65.905512 743.290154 95.494623 727.690154]/Subtype/Link/Type/Annot>> +endobj +914 0 obj +<>/BS<>/Dest(name-creation-of-the-jscontact-r)/F 4/Rect[95.494623 743.290154 343.042231 727.690154]/Subtype/Link/Type/Annot>> +endobj +915 0 obj +<>/BS<>/Dest(section-3.3)/F 4/Rect[65.905512 679.990936 95.494623 664.390936]/Subtype/Link/Type/Annot>> +endobj +916 0 obj +<>/BS<>/Dest(name-registry-policy-and-change-)/F 4/Rect[95.494623 679.990936 331.919672 664.390936]/Subtype/Link/Type/Annot>> +endobj +917 0 obj +<>/BS<>/Dest(versioning)/F 4/Rect[239.555414 658.390936 357.662836 644.791326]/Subtype/Link/Type/Annot>> +endobj +918 0 obj +<>/BS<>/Dest(versioning)/F 4/Rect[363.72143 658.390936 414.646723 644.791326]/Subtype/Link/Type/Annot>> +endobj +919 0 obj +<>/BS<>/Dest(RFC8126)/F 4/Rect[157.034174 617.592108 197.991938 603.992498]/Subtype/Link/Type/Annot>> +endobj +920 0 obj +<>/AP<>/BS<>/F 4/Rect[206.690912 617.592108 257.616205 603.992498]/Subtype/Link/Type/Annot>> +endobj +921 0 obj +<>/BS<>/Dest(RFC8126)/F 4/Rect[183.121576 603.992498 224.07934 590.392889]/Subtype/Link/Type/Annot>> +endobj +922 0 obj +<>/AP<>/BS<>/F 4/Rect[232.778315 603.992498 283.703608 590.392889]/Subtype/Link/Type/Annot>> +endobj +923 0 obj +<>/BS<>/Dest(iana-version-registry)/F 4/Rect[174.822504 566.793279 305.89599 553.19367]/Subtype/Link/Type/Annot>> +endobj +924 0 obj +<>/BS<>/Dest(iana-version-registry)/F 4/Rect[311.954584 566.793279 362.879877 553.19367]/Subtype/Link/Type/Annot>> +endobj +2401 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2400 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2399 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2398 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2397 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2396 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2395 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2394 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2393 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2392 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2391 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2390 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1840 0 obj +<>stream +xZYn D"1lbZn}^ZZ ɀ@%=U[zn)%9!slPS{svZD~hkWEүAxtIl_ 7T %z!1yjzLbBydJS)dF\"id @pgQ<T9xA6#l#g4uЇ&^*2C6\H&/;"]8KPZFV-6T Mа6p9 !~ѣ1C``)o hB*`*K,amIM-ZAB*h0݀l6 [ R(cj\ ¬1]fX%~\`Ir_4uUyЇV;YLQ7-k6%bn1q",8*C*P?k:`o ٻwЃtҧL ybBy|],2g\p`, L|3[P+&v6ЬqΌ0Bd!e +2z Ij@F$Hn\0ٖ0H6ŀ,fJ, Q5S*E<\4HJ[Q+w2NDY-JoUBߘjI(3T2e՝В:4͑8U|xN(\z%UVC2!Oe]2 ??ëO2A=yv+lkJ**sjVvc 2j<q=`~?+7i md9ҹBCszZP}8i  +2ˡ5.r+e8( ~pP`M̟! &5\<=mɇr)|n<ʘq 6WZed_u?eX|tX{_:,N|ߏRv5=*ףl<#Y#[{4n F@;锄9hsmhui w@ {"/0;|rr&X`oۻ*k٘GGw]Y(GPp'C ۜPVa>d<Ѵ`Yr aqX{F$| +UX{xRHm7o-tVj)`_z"W"L%-8ЖQN>vڲ=”pi-y}eaf@>!t\^ +endstream +endobj +1734 0 obj +<>/Font<>>> +endobj +900 0 obj +<>/BS<>/Dest(section-3)/F 4/Rect[65.905512 749.789764 89.131635 731.069764]/Subtype/Link/Type/Annot>> +endobj +901 0 obj +<>/BS<>/Dest(name-iana-considerations)/F 4/Rect[89.131635 749.789764 241.619672 731.069764]/Subtype/Link/Type/Annot>> +endobj +902 0 obj +<>/BS<>/Dest(section-3.1)/F 4/Rect[65.905512 719.369764 95.494623 703.769764]/Subtype/Link/Type/Annot>> +endobj +903 0 obj +<>/BS<>/Dest(name-media-type-registration)/F 4/Rect[95.494623 719.369764 243.243891 703.769764]/Subtype/Link/Type/Annot>> +endobj +904 0 obj +<>/BS<>/Dest(iana-property-registry-version)/F 4/Rect[422.173822 560.172108 457.950434 546.572498]/Subtype/Link/Type/Annot>> +endobj +905 0 obj +<>/BS<>/Dest(iana-property-registry-version)/F 4/Rect[464.009027 560.172108 498.245356 546.572498]/Subtype/Link/Type/Annot>> +endobj +906 0 obj +<>/AP<>/BS<>/F 4/Rect[137.988275 509.373279 186.413813 495.77367]/Subtype/Link/Type/Annot>> +endobj +907 0 obj +<>/BS<>/Dest(RFC8259)/F 4/Rect[204.670893 509.373279 245.628656 495.77367]/Subtype/Link/Type/Annot>> +endobj +908 0 obj +<>/BS<>/Dest(security-considerations)/F 4/Rect[209.159418 487.77367 251.995111 474.174061]/Subtype/Link/Type/Annot>> +endobj +909 0 obj +<>/BS<>/Dest(RFC6901)/F 4/Rect[96.753656 319.777576 137.71142 306.177967]/Subtype/Link/Type/Annot>> +endobj +910 0 obj +<>/AP<>/BS<>/F 4/Rect[146.410395 319.777576 189.246088 306.177967]/Subtype/Link/Type/Annot>> +endobj +2412 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2411 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2410 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2409 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2408 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2407 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2406 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2405 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2404 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2403 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2402 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1839 0 obj +<>stream +xZ[o 41A`Xh /u)T%NiAv'}>g w\RZsoswgva 8u[_ _q<ƛ/&3JR˘u6sVSW:|Ӑgaw_a΅{✋)6|\^DV:{^|`F]n Ńעjk^ϫp2eٰYŸve)rNfg/{?̸S{6ł:RaťGY>xeL0 +Dzd:M%QWy #+FvT +nM +Yȹ>3hBXijNxS47qۏ)~'AN^LZB"*;>iZ$ 7Z't1bC ,[^z|Tbн2\.dޱ7㘧WWP=» VhHlgfV-c˨:@M ]<ظx1^>/Font<>>> +endobj +1627 0 obj +<> +endobj +2413 0 obj +<>stream +Htˎ0y +w,(vHf]&C#AߙAUY j;ooٓLkF9dkU1Ub6z?[ctloU= }ν69՗a_?`sٳ΃|Zv]{q}A0ŰX^QV"dT݈0?^\UaN26? ڮ){`hӔ~ǣٸ=SiZ%6״ӑZO>eiL&N&9+6,^ $v$THrH +r+# 'knB9E!ZrP +Z-v-G b\\@'D=M! +l ꔰ%PȞd: zD |(z/h<7C)) QF1#)J$=5H%yFEb#AJ)$h8(-@)?x>/CIDToGIDMap/Identity/FontDescriptor 1625 0 R/Subtype/CIDFontType2/Type/Font/W[1 63 600 91[600]95 98 600 102 103 600 107[600]116 121 600 124[600]129[600]137 138 600 140[600]150[600]152 153 600 253[600]285[600]396[600]422[600]436 437 600 441[600]443[600]445[600]447[600]450[600]455[600]780[600]787[600]793 794 600 796 798 600]>> +endobj +1625 0 obj +<> +endobj +2414 0 obj +<>stream +HW{PS?ޛ@bA$< (bъ$䥀+ZuZ-θ>T][vgtZ:c3;] ngG;wNw;sFED"[S9f_.5+kZsp,BM5-Ί*l!9WwqrP>F(tR:W +} ȮRA(;~uPvKe\M>.xeM{X"ܐ)l'C\n$Bk)}k(!G{S{~&R'=` +3P7˱{|6=C2'a +g/ ?~Kl|##G܌/ :ow#S"G^EGuGG1F_8~}' +\m^ ѽg&KC<E"<&y2$_Aɕqܔ܌ATObNس˱?J` B;;>)g&(Yf#e,*QZ֣ h#JQQI2QfFePNEͥgKƸ#蝋wƽ)G CK6c(Ded?a7ܾ ?v@o);G +Oe#ډ=1ףj"Z:er9LW"DFa(\%&&U"!iڑi݁ypw?E&bXti4!ba|~\,6mi7nfr\vT\LA;f-j`dtl3mitZm0? |v3Z.Wa~f,ʲ/ƱTm *\ @ilNn1q!ƛ͊H#ӔF)*Ujhɴfmn֪Tɩm.3m6(^z`Ngrge9ܷR<aiQۦM蘘4J/|CP3[Ǒp7oIIK_%^ 5hf[k=eټ4Kl GEoTX_z^ zc\%?;Ę\s T{jp /m@?`'K4 "[qo5\ZDX<Sj*&RwCՑάQsVehwfƏ0HFX0Bfocv˗#2Dld7 5|y0\fiǓ@up{*$'B'gDQ3wFD>Q {8Ss3T[+ɍ!"^t$̼?5Kbt8@, ibt脌mo,Rׅbw>Ux g)3@ܭި6;2v0h6X,e=V* s\^8:zoSx3))8xF`kOI .]/_\r*M]c0:a[ffWMïeyy+t]7x6us8iH|9>Ƿر9'I(#$ N !BHJa[RuSC!LT:N-$+# .? M_kӤi[{O.p ;>>#.Nc6FgF2)ȦwECz +R|'75)NR]x}ueB)xu&rه,ru?$` /!<badޛJ3`E.})mď62u$d(QnO|8pJ) 7* ȝD`/ךS(lfa-H8 98>,//__,/YE a{ a?{=+.X=|I5߁{@9WΈ6п_Z՗']:vC~>xt Jba!XϬ'@7n@EBo(vmF?,x ^(tǫt/Okٚ<׻ğD04ۻÆ% 0L>S~{j^ՠ*_4~*sQZbK?=r9u(l*ZF鬮v-9awqFkѪI=4PaXŵq՗A-sк$OVVN:ܓlF2MoTG42"B.&H%nCҊ +TBt="'$uha1EL닭㽄ߪ+T +EĄ3ErL;x!O^ȫ.Q=5AHdt3>_c[g#fdq;^i`ui ]~_Qk-&gVGq\sN!|Mի=1m`֟V;}uf-F¸q  ߽ \.!kTv[,F v!$3bafvOA'[J(G𻊐ZC(x:n};?,¤_"4M r|éY| Uß1!_Uwi0,Ê6B,s¹9mD묭u0TVޭ+D=>CȈhUzBRhC  +8Qm4co (nA9#3\O!o|"Wϼ7/D_DϾ]|XLr{We|fPR4+>nuT?d0dH.WSju=:rjD.%r"; UVc4g.~Z.?ƫ=/JFC}eѺm̺kgvwgh[gYVrs\3Iܹww9&ׯZ+%ƙ3tEP(B~Vh?KX |NjMHI^¡™pf #stIi* +\ҿQ,oi?5MHB;X,eĽ=gG~~<`ȋw9w\G!HsEХK-dnh(~=I:Q{Λ?/?EG>e}<BCsX4o{b Eq1=ШSҏF;h!-ѧ/g͙Cy{O'8Ҕ>DrbH: MM0E"D}ǧ6a6Qbx@Tb6N̦lHI)$:; put^ۙ +%ݘӊJ#bWEE%%EE,,.^QT89ZM'rL&eD/$h\X t-y|i4txj琨$T;F;ߜ,: > +Iѫ92ijs-1E'V2,=.w:{k6~\].S*hƜZm/}u1VtfrTRץT%&Y"*t:ә$L)ULn@}>VgsԈ(L"m'DU5Ŕ6YkegAٌ44bJxB2]m(:#CT΁;يfBlID?rgsS[GWcKثh~6Jm$< :?x>y;E+x4RMy:#/[-;*^dETY/zw{_j6 n ƕ/KA'8*)oc W/sF9-;j٨#-;JƝ;Z:qͰAMq7/@Q"pmi5q2:^̍[Vz=M/{!L7\lEwgeLF`SB H qG#Z:H]Ͽw_CGпi`1,~&/7wziIV,U"r\BZDm,I:B"mr0#v4K +1h*yBlDR2fh1JOr_is4c>Qhh +e&κbD,w9L8oTsD֍o)%X0Cϼebn4?9rmh+~?E^BggVK\L|="J$ nk\Ie_/ۏ*yW{}?m^wHJH0՗M{5lKiή-e`8z=Fٳ~r`4IܟohNhއ)GL4GlPL]W&O*F]wO'P,g'B2}p| a j1rx ZaۏqL>BB}00M q+p=1ȭp'&C$Ey^ FNC.t ;ˎrW΋FVIli N/r{ј>K\L2i} Wˤda@F f!25^q_~pzgc%ܴ[M% |[Z9|ƆJ3W_ZrYXHsANSUi TJRO*T 9 ǿvnK>{uIUuL c.7a a P91y?kvgvAAG_|cO {<Q(gHxeH+.R>>;˓SP{wwǢD~x(KzuZ{=҅3ng= z"O|tp\o,@(f7YԽ(jmWmFDb.œ)wUOJ\Y0ILSh@6G\9V`ct k2eҠs{#FFqQn_bcٵ7YMnDm̏FIt E֝9ߝ(Sg 31{(G|]%: +(C#V*xf<,~l6e{<3ccnL$x-( KZ*9QQ + 0Tj~EJIPTH4"<7gl P*w{v9nV68jfz ;XVWTt[o@mC +rRDJoVaZx"ZyB.z +]aN7z|'8|Ҩ9N 4@,3f =8sd9(D{Uׅg%>oѧ`JP-Z;h.$j2O^%mLH*/˅5a'/\t9˙BR +ڬF /0M(qٚGAk\OJIKsu9xɝھql6Wes<]z[2O>ϳQj7;oi +3sj3qYASd-Vu^S2{ ڗL%KʸO#y4̉iY_/?VRs\'˴CB%+mdr (eL:лl6>A1LO:L3T's }6[d`1)dφ/c&.cbb]H)LpX &=e + lEL&]QX '(fi@.]һ7/ے̲i/~O.iro/q{)DN#vEs͉wس36qD><'\ÒV}\k(g'Ƽng'[T1؇9LRj\ZCo"<^OR$ ++Q"sUvAQ:.qSA5G&. +[Tr1gsuNg;oDn3ԥL%h70Я뻡@V<~FXsň{F;nٵx>[Fus؊meP(gqͶ|R꼅Cд[u^Wu!{ע|HxbJ^ 3\ʜ"-΁$a1 :+t?x.~:[=j@ l +8+݀1eRV8t)UTFZ%2) :؍?fS{=x6c5ppPIʠ3M)Ѯ/A<)>=U{8p<]'"a|%oj;)}kxױqy\s볥DohsDh#ڂX̼2 aR~1RC-NS(]h%Av!,ZK%: Y]Ex6CAEȍz +ZV÷V6LDQ/%+ |@F NQfaXTC8A_H bk?"h=hoBQq7H> 传HP5j_5PwgI>h3ڠFV7$ιE-kO\'8KY3y=tLnfA$v#/{C9R.+[njɒ2v\Ǜ` &ȞS| 05 + +endstream +endobj +891 0 obj +<>/BS<>/Dest(enumerated-values)/F 4/Rect[381.000238 692.590936 439.094477 678.991326]/Subtype/Link/Type/Annot>> +endobj +892 0 obj +<>/BS<>/Dest(enumerated-values)/F 4/Rect[445.15307 692.590936 504.167963 678.991326]/Subtype/Link/Type/Annot>> +endobj +893 0 obj +<>/BS<>/Dest(enumerated-values)/F 4/Rect[80.905512 564.39367 138.99975 550.794061]/Subtype/Link/Type/Annot>> +endobj +894 0 obj +<>/BS<>/Dest(enumerated-values)/F 4/Rect[145.058344 564.39367 204.073236 550.794061]/Subtype/Link/Type/Annot>> +endobj +895 0 obj +<>/BS<>/Dest(prop-label)/F 4/Rect[278.891108 422.596795 337.906 408.997186]/Subtype/Link/Type/Annot>> +endobj +896 0 obj +<>/BS<>/Dest(figure-44)/F 4/Rect[65.905512 187.242186 109.581293 173.642576]/Subtype/Link/Type/Annot>> +endobj +897 0 obj +<>/BS<>/Dest(name-example-for-the-personalinf)/F 4/Rect[115.040033 187.242186 293.718012 173.642576]/Subtype/Link/Type/Annot>> +endobj +2421 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2420 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2419 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2418 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2417 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2416 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2415 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1838 0 obj +<>stream +xY[oFhHTZ\$%_4!$B!U.ECzۻ7$b6kx3ykT.:NqmOdFIjfjJgvtywnXo} BPͽqqA +ב^,_,QZ@kӶ2}0ZVU+u3[(_~W,uV1sg +vKiHmt!3!d-,rt!xZ#=J1E6F~Ekڄs5zQ!: +%gjNQƍ5=}rOM*%&QDY2Gndzi'7I]h|K2 |Mۜ<&;5oyr\IE`sR;UЫDSw 5g·xB(C]{cScULPǍѪxqOHrj1 r,ƃS/:èh41oY`"\4PTpBFPAa=Q> +Z gsЭ飙(TKһ^&zr3(D\'x(Fn=Y5wiu|t9qY\ջ&KLHӵ|xIB]dVZeT }d-хf^^:2 -+QBQ-%TT=QJ6bTZ#0{kyJD 42+ȦAƲc7-mY8(CT]x {В7 %2h-̫! +éUWVd 1lA{^#0+vQ_2l**8ja`-=`8.h1|k5o~w6":XioL2)/+'OsƨLlTA=7(qҌR}s4GmWI0l UaR!(X!F]?c?[3[i"~~钫U%^P΅6QɅnB] @=QMnKfM5Y\Lk[ 5A~H\k[5.5F@=(+5iS8*:ڤJ{cF餝2ٶւHU\em} ѷx&5Enb`s|P'$Ø%#Ǚ?ΓQ<'Crat +/[Jf8ꃅǁu; X~4SiL'vpnq_Γ }doivlKBO$9Фg^'mXv]|?9ho/abxnٸ#:ћOr%OWQTް )cF: N/p]M $lYc oe40L>/Font<>>> +endobj +881 0 obj +<>/BS<>/Dest(figure-42)/F 4/Rect[65.905512 660.755545 109.581293 647.155936]/Subtype/Link/Type/Annot>> +endobj +882 0 obj +<>/BS<>/Dest(name-example-for-the-keywords-pr)/F 4/Rect[115.040033 660.755545 279.098139 647.155936]/Subtype/Link/Type/Annot>> +endobj +883 0 obj +<>/BS<>/Dest(section-2.8.3)/F 4/Rect[65.905512 635.655936 99.092035 622.655936]/Subtype/Link/Type/Annot>> +endobj +884 0 obj +<>/BS<>/Dest(name-notes)/F 4/Rect[99.092035 635.655936 126.529291 622.655936]/Subtype/Link/Type/Annot>> +endobj +885 0 obj +<>/BS<>/Dest(figure-43)/F 4/Rect[65.905512 221.425233 109.581293 207.825623]/Subtype/Link/Type/Annot>> +endobj +886 0 obj +<>/BS<>/Dest(name-example-for-the-notes-prope)/F 4/Rect[115.040033 221.425233 259.541742 207.825623]/Subtype/Link/Type/Annot>> +endobj +887 0 obj +<>/BS<>/Dest(section-2.8.4)/F 4/Rect[65.905512 196.325623 99.092035 183.325623]/Subtype/Link/Type/Annot>> +endobj +888 0 obj +<>/BS<>/Dest(name-personalinfo)/F 4/Rect[99.092035 196.325623 164.545649 183.325623]/Subtype/Link/Type/Annot>> +endobj +2429 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2428 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2427 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2426 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2425 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2424 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2423 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2422 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1837 0 obj +<>stream +xZIsm㊶-kְJDwLKN:PJr?ȿo`P913=&"8/E}pV'yOnj:Νww&՚m?/xJܧRi|r;x|Y"TJ4Je>GQXZ8U1lw?ϴu(4mN~'.h8G).(є @,N) +XLa +F$IJNvI5*֍e_EfJ&% Usݨk M*[p#;NHWL?Gu|F4lp' RC"9e2?rljTY|2P)Յ7& ~t-|?3b#5QtMUG_W59K*ZI*o +ѢEu>$g2rH_~*z_.6l: {,8ׯ*LWhH ::X.t:BCqr1F974Q19v?wr4j&I0|EF({L z;q삽b?k $Ebx *XRvb(ݜ"DZt`ͦxBs]"7 qk9YR蘑CFE3"ɯS*5fzu)ٓd睞SA5x?OTVѯ_w{NT|xS.+,׀SmѰ/if_.EZ seTkvfqP$H-}DzOlvndS@{-?_Ē=y`L>QOp~iฆ%Z~b?!Q(Lý,S;}6!oly|H4;Eƴ_e2n6anc~/\Ǎٚݛ/sX'4n*uCq 3P6~]QkWk9Nj~ݜxu%>cŹSyX)9"<8`q'%mix*wX}.|"-MrEɚNnAta +endstream +endobj +1728 0 obj +<>/Font<>>> +endobj +872 0 obj +<>/BS<>/Dest(RFC7529)/F 4/Rect[120.220453 616.993279 161.178217 603.39367]/Subtype/Link/Type/Annot>> +endobj +873 0 obj +<>/BS<>/Dest(example-anniversaries)/F 4/Rect[65.905512 487.395623 110.571527 473.796014]/Subtype/Link/Type/Annot>> +endobj +874 0 obj +<>/BS<>/Dest(prop-type)/F 4/Rect[444.38891 473.796014 503.403803 460.196404]/Subtype/Link/Type/Annot>> +endobj +875 0 obj +<>/BS<>/Dest(figure-41)/F 4/Rect[65.905512 206.521404 109.581293 192.921795]/Subtype/Link/Type/Annot>> +endobj +876 0 obj +<>/BS<>/Dest(name-example-for-the-anniversari)/F 4/Rect[115.040033 206.521404 298.078119 192.921795]/Subtype/Link/Type/Annot>> +endobj +877 0 obj +<>/BS<>/Dest(section-2.8.2)/F 4/Rect[65.905512 181.421795 99.092035 168.421795]/Subtype/Link/Type/Annot>> +endobj +878 0 obj +<>/BS<>/Dest(name-keywords)/F 4/Rect[99.092035 181.421795 148.036859 168.421795]/Subtype/Link/Type/Annot>> +endobj +2436 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2435 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2434 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2433 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2432 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2431 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2430 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1836 0 obj +<>stream +xY[o 0A[԰l!R.%Ғ*H )<5ЇG7;{HFP;gprS5*Cjuq!Ɍ2f͜T)~vx5~ȳppkNY?yG8j\84witq?\_BuY.o|m[}ۆH#׮a,uV1sW&Q W&9res߳a(ťBp/ӳg4!1+~,rD^S 䣧_^U+I[m2hM=OdD rE]!K|4p̚+J /0X4+gJ8<\BS16b4$Y ׭p o}Ձ!5@{SqxjSNjsW2.SE݄,DC_-V ֕"pܐ?Fvpco6#yW㩌hr\rii,Ľ#_-l9nU +#|v VDG}bW?5t8nc _ts6L΢mő]$h0#U׻OϹ] y.M==?By1O~Ob<i.GE8ݟPbP+'P4 cl AC *i+q:ytZr s`Cao7I 16u\x">*F' +* +x#r,av8QNȝ) +;p + hn41;g Ƅ_GM_\wչ*~!sXc\Ί2"~(~܁Lw?Ap[2E,n 0$ Z_kt->)7ԗ 5՚r`34]9u+TDF-q%D̢}u5Ty*Q!5)#;r`DžLL"r IfsVJ[Aqp)%1,aWY=}$>4(^Lr8+C*vY\ HjGq\Yz-B(ͱ +%ci|Q;B(#6qD_;uRSoW6{)-8ʔvu)Yn^9ز^[[DV0,܍'ee[C5~KI"FR;8n)ZaKChpμ(|yW:_TFN۱TXP%mBv Di༨%δ*Xͮ(YoMcF; +eAd˥FW!Ø])kCrt`[HG3yЬU6Jdm-AK5mȒ(h^_i ۉOdC= XۉMċkx{M?mlK[x~a/ ѐ?jm\i1i;R@XiO7Kt|Z_w|mn RPg$캩`ªՒX^|L>fϱ/pa"u}?I}pqX%bC[jFA[VuZ>ϖ}HN74T8oJCsD_^q:- +endstream +endobj +1726 0 obj +<>/Font<>>> +endobj +862 0 obj +<>/BS<>/Dest(figure-40)/F 4/Rect[65.905512 591.929764 109.581293 578.330154]/Subtype/Link/Type/Annot>> +endobj +863 0 obj +<>/BS<>/Dest(name-example-of-localizing-a-nes)/F 4/Rect[115.040033 591.929764 303.678217 578.330154]/Subtype/Link/Type/Annot>> +endobj +864 0 obj +<>/BS<>/Dest(section-2.8)/F 4/Rect[65.905512 563.830154 95.494623 548.230154]/Subtype/Link/Type/Annot>> +endobj +865 0 obj +<>/BS<>/Dest(name-additional-properties)/F 4/Rect[95.494623 563.830154 227.008295 548.230154]/Subtype/Link/Type/Annot>> +endobj +866 0 obj +<>/BS<>/Dest(section-2.8.1)/F 4/Rect[65.905512 517.130545 99.092035 504.130545]/Subtype/Link/Type/Annot>> +endobj +867 0 obj +<>/BS<>/Dest(name-anniversaries)/F 4/Rect[99.092035 517.130545 169.144525 504.130545]/Subtype/Link/Type/Annot>> +endobj +868 0 obj +<>/BS<>/Dest(enumerated-values)/F 4/Rect[336.085932 396.732108 394.18017 383.132498]/Subtype/Link/Type/Annot>> +endobj +869 0 obj +<>/BS<>/Dest(enumerated-values)/F 4/Rect[400.238764 396.732108 459.253656 383.132498]/Subtype/Link/Type/Annot>> +endobj +2444 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2443 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2442 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2441 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2440 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2439 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2438 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2437 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1835 0 obj +<>stream +xY[oEc@*Ҳ(YHI75'nZW ^_PBHfv]{}i(7ΜM"c_dh}f0;#-El(5D֨XJꤊ56XC_o` cNJ9mÚ>f6.O+=NY>.<50mM.<6gke8Nyܳ}~]n 1y73&c%n-{v)d\Mru༏sotypm,%]r?bd!Hbco:LG*čA%>3 d=vtnH rH/H͚IsaJ*Li*W +Zm(z]uqĆZTXC"ynћBan7tmq7+&F-2fT -%/ì~G62z,N3 yk#' EJs)E- Tq[%n +' UCE"7?Fwe`|G w|OcEgKnwB>d0D2P1;Q?ӽ,z^_<9 )X3jBvy,!ǁrI0$I~a>On`z;p Cj.jjmmL%grM=3ɦ%̞0XRSM 6WFtݱ|,PD2r!oTIY4 ݰ̗q;3RP2ɉS&\ξ2qZn:]A<פkMhcq-mNRx +" +YXmؘUA%ڕV!mgԷQ)1VRH^1ây21G` \xۨm@JS Wu{RwBG3j/ijtʲ%wiߺ8u8+S|QHPƤFxyѻY126i.E@BY4>&H"qJj +ʣHsFMQA#P^w% ~FDXA2s#k\k%yP}%L X"b50L`}0FA@\gK0ѧSKcaEO GW<T[:',y8Dc$X" +Wv3 ft G29' L';]iUa)iօX:NZKl9|cbL̕ëRCvCj~ [-r0.ݭFhV$zΜ5jb~)/ +endstream +endobj +1724 0 obj +<>/Font<>>> +endobj +856 0 obj +<>/BS<>/Dest(example-localizations-replace)/F 4/Rect[65.905512 662.292108 110.571527 648.692498]/Subtype/Link/Type/Annot>> +endobj +857 0 obj +<>/BS<>/Dest(figure-39)/F 4/Rect[65.905512 360.137889 109.581293 346.538279]/Subtype/Link/Type/Annot>> +endobj +858 0 obj +<>/BS<>/Dest(name-example-of-localizing-a-top)/F 4/Rect[115.040033 360.137889 317.025873 346.538279]/Subtype/Link/Type/Annot>> +endobj +859 0 obj +<>/BS<>/Dest(example-localizations-patch)/F 4/Rect[65.905512 336.538279 110.571527 322.93867]/Subtype/Link/Type/Annot>> +endobj +2448 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2447 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2446 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2445 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1834 0 obj +<>stream +xZYsTn3˸xm[j8 8x$1 ,pW~B~L[]gU2w9wN>}$o{<=$=MR(Z=0A|(=cP +%؍dTRU]*`I.2VڌTAc G? X%͹Z1D5H'ɨL/!y6ёRi޻SP:wȇue)iDMvY@qf]<:!ؑ/qiRg9d[!u}ձM"IDލ\,~$ a! ꕿ1"7 ^*(y~ %Qx2 ,&anD4hCs:Rٍ܋S/X7"'^Q>G!6"}ks1z:v07a#R>qLܸRz;ōV56Gt9^ OV0t3o:2Av| +}q[G:%%\JRp$UXs)f,#Rʄ0yQE2/Ű.Z8#IgI=C`1+8ISbjQYV}!VrPޗJ/Z8 +VT(q5Ͼ~Jg**sﯓ;{sfB G(|5xb#`-]' o)QO/=ӄGd&R9mG4dƨ&/,z,phfXԿaE*~ZvlWz*, F/;9eĞ2tFo]d&Ne,DB.c_Ϛ?*FVxFVAȟК2'%)Hp9 o".}Mx*Li$dW z G?c3G> GbyBnAUFnܒ;8C6>B!i~o\%9a.Ad u ]5_YQ5e. +{l'Zi ~ _g +ju P_x k\`f 1(/ʥ*?!+3VPjxX!n*>9v>Qm[h{ &sF)R2Yis'W P"{S8>BB>\ϞB3qc ^0|x(pYUy>`ռLQlQLfiK]B jdv'-(be,q jHtrMF rŔXd%r"^,:Z{AvT'وzm2=AS/^|/`;(0ES7UUi-lNL0neDuWEVo 8MvSܗϴ N0VJ{t,KVD6 *X\٨Ohӵz{/k1k 7 +ʢ\|[㮶T:#5_kҏpe3Wiy7nesރDbA1 5`[e]^ >;O@1d[ pq[gddaSjd=!z?j60\a`)ϥG2^v55rT1WCt3T.[g/>{/7MnDC#>HS)T؉=ޓ8BѧZۄO@]^[{7`c*T[^^Y*Hk#0e't:뤔+ 7Wg?Adž͝kǃha\㬽s!&wRؕiqa*SM_Va閃j|^'iMiI[z&sSDl,Y0C}*}78C~&o* JăzK֝vT9ׅ1T3f޲utXחep/֑UD@¨2=C'hP?]Y%r|JΑOnMj+Ӌ3Mc(iF`5RS,|[U".F6D,#m'u? TYRX2Z4^*d&ωg[Y EpVjĄe/-Cr?~MuG&]KB"N,>/Font<>>> +endobj +1635 0 obj +<> +endobj +2449 0 obj +<>stream +Hj0}B{ᴖbj[pbr$^Kv0^19ߟùߙ0>/CIDToGIDMap/Identity/FontDescriptor 1633 0 R/Subtype/CIDFontType2/Type/Font/W[189[344]]>> +endobj +1633 0 obj +<> +endobj +2450 0 obj +<>stream +HUMkQ=ofnRPq:m $MV*X(EeL4CKQDѝP@]7R -I-AA7w{}7s t&T\,{-oXra"ˍ\rI}TG{bPuB6.c }Yϱ]Ԥ%xESN;̧}>q)Wk0c2_v䈹ܸ||rl +xbbggӣRxqx';[oJ,!tjylzWnhRF$2H&fWWg(#ݸcgc qADQ9Tp yP`"2l-^Mvȡh"ljfXOk,:F`19p"FqbɨgY>VVѶ,ӯ3~y#*3BŗL,3qlcbHSҒ&1E5G۟E6@sI"-P>i1SuW@hf3dnxUfZOV.  +endstream +endobj +841 0 obj +<>/BS<>/Dest(resource)/F 4/Rect[254.530512 771.389764 298.046625 757.790154]/Subtype/Link/Type/Annot>> +endobj +842 0 obj +<>/BS<>/Dest(resource)/F 4/Rect[304.105219 771.389764 363.120111 757.790154]/Subtype/Link/Type/Annot>> +endobj +843 0 obj +<>/BS<>/Dest(enumerated-values)/F 4/Rect[256.904047 718.090936 314.998285 704.491326]/Subtype/Link/Type/Annot>> +endobj +844 0 obj +<>/BS<>/Dest(enumerated-values)/F 4/Rect[321.056879 718.090936 380.071772 704.491326]/Subtype/Link/Type/Annot>> +endobj +845 0 obj +<>/BS<>/Dest(figure-38)/F 4/Rect[65.905512 436.658279 109.581293 423.05867]/Subtype/Link/Type/Annot>> +endobj +846 0 obj +<>/BS<>/Dest(name-example-for-the-media-prope)/F 4/Rect[115.040033 436.658279 263.072748 423.05867]/Subtype/Link/Type/Annot>> +endobj +847 0 obj +<>/BS<>/Dest(section-2.7)/F 4/Rect[65.905512 408.55867 95.494623 392.95867]/Subtype/Link/Type/Annot>> +endobj +848 0 obj +<>/BS<>/Dest(name-multilingual-properties)/F 4/Rect[95.494623 408.55867 237.880365 392.95867]/Subtype/Link/Type/Annot>> +endobj +849 0 obj +<>/BS<>/Dest(section-2.7.1)/F 4/Rect[65.905512 361.859061 99.092035 348.859061]/Subtype/Link/Type/Annot>> +endobj +850 0 obj +<>/BS<>/Dest(name-localizations)/F 4/Rect[99.092035 361.859061 163.565668 348.859061]/Subtype/Link/Type/Annot>> +endobj +851 0 obj +<>/BS<>/Dest(language)/F 4/Rect[123.270258 320.259451 193.864008 306.659842]/Subtype/Link/Type/Annot>> +endobj +852 0 obj +<>/BS<>/Dest(language)/F 4/Rect[199.922602 320.259451 258.937494 306.659842]/Subtype/Link/Type/Annot>> +endobj +853 0 obj +<>/BS<>/Dest(RFC5646)/F 4/Rect[324.01684 293.060233 364.974604 279.460623]/Subtype/Link/Type/Annot>> +endobj +2463 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2462 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2461 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2460 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2459 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2458 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2457 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2456 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2455 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2454 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2453 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2452 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2451 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1833 0 obj +<>stream +xZYonP6#!d:#8 7CqJ2 [B?H + 'Q@@~L[ٝkwgI+hwzZ%"kzRghMVyxgRy&OQ=z/Eʓҋ]oBԈ`=9 pPuue=>V,Ioʲ+- FDVu,J}LnJI^F7ֿww Oqlx _l[<`vqf[1# FXow{ǤE>k)uwjUKdHT,{ߣ|} 'mbf&)aIbS!Xd)1#璷 9@FsC==@}NxwKO1{HZ"OH۸2IZHlc"#*7H-&7Kf{:C%{dG{BFGfD- OIGwil4(ľ*\M.2xdħ%^Fc՟&hPr(6y vDe>%u{5qD?]ϥ{E>5Up99]nzY@Zk5m ]^q@:j8% %VHSv8.sU੆|0ik;[!ǀ-]dJTppNohyK5YX_;dXR\as*_){Dr!6:]#a- \|gs!'Ϥ!MW>,F3Ui_fXi8ǩR弒LsdN׹ibXu2)_+o7ATj,I庿oIVɱ\ɯW8ݖEx\doC*Y>G%{+#;QvGHL܅HpWq=̯񼊗#UJU {Ec@>g&w)!6W,$J6uW3܍'.jhͯv6v[3K+3;rV˔%pQ?YGzTb:ti}6)=/\ЊHVlqQ iSbI0[7.1qҍCU"|]g-sqŃ-8|pbqŋ=䝕BVcQf[tnS+hVSŌBhn!^Q{j;n&rd\֤X;ǩJ^˻G%v?La%qz1'>~{Td qR;Oel&;2.uz78Ľj޴jHBIeiCrzVfωifPTƲ丞`@ $c6e!Xg\Dk 0Y x~ϭŐ\*C ׊ÒΎmj͝:uófpAY$>ofф]KphIZ.-qk +endstream +endobj +1720 0 obj +<>/Font<>>> +endobj +827 0 obj +<>/BS<>/Dest(figure-36)/F 4/Rect[65.905512 559.716326 109.581293 546.116717]/Subtype/Link/Type/Annot>> +endobj +828 0 obj +<>/BS<>/Dest(name-example-for-the-directories)/F 4/Rect[115.040033 559.716326 284.378168 546.116717]/Subtype/Link/Type/Annot>> +endobj +829 0 obj +<>/BS<>/Dest(section-2.6.3)/F 4/Rect[65.905512 534.616717 99.092035 521.616717]/Subtype/Link/Type/Annot>> +endobj +830 0 obj +<>/BS<>/Dest(name-links)/F 4/Rect[99.092035 534.616717 124.039057 521.616717]/Subtype/Link/Type/Annot>> +endobj +831 0 obj +<>/BS<>/Dest(resource)/F 4/Rect[246.561762 469.417498 290.077875 455.817889]/Subtype/Link/Type/Annot>> +endobj +832 0 obj +<>/BS<>/Dest(resource)/F 4/Rect[296.136469 469.417498 355.151361 455.817889]/Subtype/Link/Type/Annot>> +endobj +833 0 obj +<>/BS<>/Dest(enumerated-values)/F 4/Rect[244.434565 416.11867 302.528803 402.519061]/Subtype/Link/Type/Annot>> +endobj +834 0 obj +<>/BS<>/Dest(enumerated-values)/F 4/Rect[308.587397 416.11867 367.602289 402.519061]/Subtype/Link/Type/Annot>> +endobj +835 0 obj +<>/BS<>/Dest(figure-37)/F 4/Rect[65.905512 254.964842 109.581293 241.365233]/Subtype/Link/Type/Annot>> +endobj +836 0 obj +<>/BS<>/Dest(name-example-for-the-links-prope)/F 4/Rect[115.040033 254.964842 256.962152 241.365233]/Subtype/Link/Type/Annot>> +endobj +837 0 obj +<>/BS<>/Dest(section-2.6.4)/F 4/Rect[65.905512 229.865233 99.092035 216.865233]/Subtype/Link/Type/Annot>> +endobj +838 0 obj +<>/BS<>/Dest(name-media)/F 4/Rect[99.092035 229.865233 130.658686 216.865233]/Subtype/Link/Type/Annot>> +endobj +2475 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2474 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2473 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2472 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2471 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2470 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2469 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2468 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2467 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2466 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2465 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2464 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1832 0 obj +<>stream +xZ[sS5TZ\duK}cSKŽ/|V¦VAC^G;GXHa7AR_εOdz@79oM]};;;7o͚$qh:8$|onˀk/eѦHT7jiYmmޏYo)R-t[Vm. yʘ{ M"]P^ix^{ǁCcTU;ŠbK/ߋ'Ѷ%~=+NcK}(R=XK:@C9F"<Α-; ))&.]bhQ{|C! h_B&tq&2]G o5%EzIikmUxi|!.@'ELsD S@96!xw|`I4V:xlGa3,fOyh9D`J|W0~(N2"ef2<¼-{.3rC~sLwOoE34hΰLp'|"ytΡ"s}sWpyNNp, fH&vl>!S BeR4F^aO_,ܧkmvou*0-ct2$lu/>mpQ|7:@D*]\#:/`xhBw(tRqQUgovn4^ *DmkeR!$uy:g(%*+ +1=??UHtRFYisҙU:<<*m| Uwt ń=ȔBZ0psT%SZ0S1J~oez!q8elA4$br<( ?%9!N`I;B=FrӠ>(|6~4#4#풂oAmf2+bq8ls=̠)H/;6ȨĹ7#5b1LbWSɜҘ+.|zYbĪ7lN<|5q }4ԧC9l>krԇ,_zg?*9 +rK(7BZh2j/$/#1I3-L3Ubun\%ꗴX&ƚj1^yU?A{(9 Z)wsDȥ$c2aΟB4Y$/;:JBCzU*3%&.T^z8n'>6r +&sQ +"9>(5 -QU~bΜGza4A06os>cй0 Nt/Eab']9hM7Oַkdofdx؉eJ7.P *JXo򬶁]TkuR&Suǽmol +endstream +endobj +1718 0 obj +<>/Font<>>> +endobj +815 0 obj +<>/BS<>/Dest(figure-34)/F 4/Rect[65.905512 663.715154 109.581293 650.115545]/Subtype/Link/Type/Annot>> +endobj +816 0 obj +<>/BS<>/Dest(name-example-of-cryptokeys-with-)/F 4/Rect[115.040033 663.715154 311.998529 650.115545]/Subtype/Link/Type/Annot>> +endobj +817 0 obj +<>/BS<>/Dest(figure-35)/F 4/Rect[65.905512 412.441326 109.581293 398.841717]/Subtype/Link/Type/Annot>> +endobj +818 0 obj +<>/BS<>/Dest(name-example-of-cryptokeys-with-e)/F 4/Rect[115.040033 412.441326 320.238275 398.841717]/Subtype/Link/Type/Annot>> +endobj +819 0 obj +<>/BS<>/Dest(section-2.6.2)/F 4/Rect[65.905512 387.341717 99.092035 374.341717]/Subtype/Link/Type/Annot>> +endobj +820 0 obj +<>/BS<>/Dest(name-directories)/F 4/Rect[99.092035 387.341717 154.825678 374.341717]/Subtype/Link/Type/Annot>> +endobj +821 0 obj +<>/BS<>/Dest(resource)/F 4/Rect[269.928217 322.142498 313.44433 308.542889]/Subtype/Link/Type/Annot>> +endobj +822 0 obj +<>/BS<>/Dest(resource)/F 4/Rect[319.502924 322.142498 378.517816 308.542889]/Subtype/Link/Type/Annot>> +endobj +823 0 obj +<>/BS<>/Dest(enumerated-values)/F 4/Rect[256.904047 268.84367 314.998285 255.244061]/Subtype/Link/Type/Annot>> +endobj +824 0 obj +<>/BS<>/Dest(enumerated-values)/F 4/Rect[321.056879 268.84367 380.071772 255.244061]/Subtype/Link/Type/Annot>> +endobj +2485 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2484 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2483 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2482 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2481 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2480 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2479 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2478 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2477 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2476 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1831 0 obj +<>stream +xYYo.c \HJ\cLM b71N'0qѵuE,,}v>? w,?vLp3P]*Tv9|wjF^l\]Wd℆#W<0Ktl^0O[Gjc6ӷPUڢDeQ-bnju6%w7}X~&r*F` N-< yzoqlyͶpUw-|lQ2R{Qp=6┸MfJx  rp Dž+|{Khֻah>`7f<k,~t\zwܔ`r+ZW9*sNڶ_q޺nRv2S+fVWBC7ǰkw-sd=vÊJs5e78+ /'sc?}1KQ/q@+5GYl3b/i?UsMZEkX@Ͷ ;Ņ0_LFN;lߙIPxwQU胩%'"K˂bp ScYc-YI9)_(( BVXbœΰ5Sɷ!zfܤ:#kzޣ>Sb<~^pxxhxya +`+~6O\"lh)ZOu8pVusbd,K\&٘ֆsԼ)Ӻ Fo׳c޺Mvgf#Vk9 pB"`T>hy;w-A~3{{~j; +endstream +endobj +1716 0 obj +<>/Font<>>> +endobj +1631 0 obj +<> +endobj +2486 0 obj +<>stream +HO0| +){18&*%Umf{ѱ)1?|RUmh7aO>Oggޠ.JP7l 6fXcU4l;7O(Y}m 6p(}P4*dOZc!zU5X}5Iqjϛl0TGv&Ǟ}Ô\^7p٬`ә쵌n;v^+ S[W ㌻g`uu68R;vΫ. ԥP){oy& 8" ))HNd'QĤs$) )ҡARA5/?A +y +endstream +endobj +1630 0 obj +<>/CIDToGIDMap/Identity/FontDescriptor 1629 0 R/Subtype/CIDFontType0/Type/Font/W[243[602]1414[1000]1599[1000]9562[1000]9577[1000]9746[1000]9814[1000]9827[1000]10960[1000]11667[1000]11688[1000]15578[1000]16087[1000]20480[1000]21295[1000]27693[1000]41356[1000]41772[1000]]>> +endobj +1629 0 obj +<> +endobj +2487 0 obj +<>stream +H|Tet{OwdRCCR(eH&I& .- +^--NK+{{y?g}لHit;;;\͂Z?ʂZe,ie2,E=E+ŷ8"ާF >eM`΃cݎX[`ttݎ[p;~ժg;VeQE6∲ٜ3,ґUC6-߼ SIdL<",MXSg3nǞm"m:A[٣M#rg]h{6PIpF#Q4,f-]޿f݆Mt#8<4l؉i3/[iǮ*ZD?;5ӘRjўFck59 EI)i FrzQٚ`x5[ix-LLK32I EYVO#w᝕axex׷qs{ed07V'lѼ 2+fF17iV+#;OOI1U{ARjj15jOK:ň{9ۀ9ׂ49rӞ\|ȏ(B("(b(( +|J4ʠ,ʡ<>FTD%|ʨTE5TG D-FE=|hh9 Z" FE;GtD't肮/_zk7 ; !p aG"h8o2֍00c0000q' IHLE +RtLtd`fbs0=cbc ,rJjZzlFM،-؊m؎?.6e/a? 0(8N$N4,<.".2*:nWpw_{xGx'xgxxLk[x,-'ɏhЇyXXEXX%XVҏ6biaYcyS+"+Vf*:k&k6.Sg6d#~٘MؔҖ `+2نmَفى+KvW {njp0C`(e?F2t2Xٟ88C88#GrG>888qgdNT0iL4Nggp&gqs9s>p!q1p)2. +*:n­;3Nn^~AaQqIiYy^E^e^U^u7;o6ɿxxO/||÷|ǿ^%Y!Oy[9Sɐr)() + +Jl***XTQ*UUT]5TST[uTW꫁>j&jfjjRZmV^QY_Tw}ꩯKߨ`ȡP)\~TTKrhihiF;(8M$MV╠D%)YS4U)JU5MӕY9y^@ HDKiVhVihi6h~&mm6mOڡvjvkj눎꘎NN..늮ꚮ~ouKuGOzzzzz+;XhbxZ! U϶m۶m۶m۶m۶m۵GD(FE8GDD$DFDE4DG D,FEGD!FE1G D)FE9GTD%TFTE5TG D-FE=G4D#4F4E34G D+FE;GtD'tFtE7tGD/FE?  0 (8L$LL4L ,<,",,2, +*:l&ll6l.>!1 )9\%\\5\ -=<#<<3< +;|'||7|/?aP#Hf!aQ1q Iə)i陁Yٙ9yYYYEYY%YYeYYYYUYY5YYuYـ ولMٌق-ينmَفىم]ٍك=ًه}ُ999C99#99c9999S99399s9 K˹+k빁[۹;{yyyGyy'yygyyyyWyy7yywyO/o_?OATQPpPHRhQXSxEPDERdEQTEStPLRlQ\S|%PB%Rb%QR%SrPJRjQZSzePFeRfeQVeSvPNRnQ^S~PARaQQSqPIRiQYSyUPEUReUQUUSuPMRmQ]S}5PC5Rc5QS5SsPKRkQ[S{uPGuRguQWuSwPORoQ_S @ ` P pHhXxMDMdMTMtLl\|-B-b-R-rJjZzmFmfmVmvNn^~AaQqIiYy]E]e]U]uMm]}=C=c=S=sKk[{}G}g}W}wOo_su0ôl!ҡaёQ1ӱq ЉIɜ)ҩiљYٜ9ӹy\Ѕ\E\\%\ҥ\e\\\ѕ\U\\5\ӵ\u\\ ЍM-ҭmѝ]=ӽ}<ЃC>c>S>sKk[{~G~g~W~wOo_SU0WT(AdZaV^QYQU]1S[qW_ PXITɔ\)RZiV^QYYUٔ]9S[yW_TPTXETTT\%TRTZeTVT^TQTYUTUT]5TST[uTWT_ PXMT\-RZmV^QY]U]=S[}W_4P4XC4T4\#4R4Zc4V4^4Q4YS4U4]34S4[s4W4_ PXKT˴\+RZkV^QY[U۴];S[{W_tPtXGtTt\'tRtZgtVt^tQtYWtUt]7tSt[wtWt_PXOT\/RZoV^QY_U]?S[WA!0-vu8wGt$GvGu4Gw t,vuwt!vu1w t)vu9wWt%WvWu5Ww t-vu=w7t#7v7u37w t+vu;wwt'wvwu7wwt/vu? 0(8O$OO4O ,</"//2/ +*:o&oo6o.>!1 )9_%__5_ -=?#??3? +;'7/@@@@@@[n۶m۶m۶m۶m۶BhAX@F Q 1 q I ɑ) +i Y ّ9 yQQQEQ Q%Q +QeQQQ QUQ Q5Q QuQ M - +m ] = }111C1 1#1 +1c111 1S1 131 1s1 K ˱+ +k [ ۱; {qqqGq q'q +qgqqq qWq q7q qwqO / +o _ ? A!a`xF`DFbdFaTFct`Lbla\c|&`B&bb&aR&cr`JbjaZczf`FfbffaVfcv`Nbna^c~`AbaaQcq`IbiaYcyV`EVbeVaUVcu`Mbma]c}6`C6bc6aS6cs`Kbka[c{v`GvbgvaWvcw`Oboa_c@`PpHhXxNDNdNTNtLl\|.B.b.R.rJjZznFnfnVnvNn^~AaQqIiYy^E^e^U^uMm]}>C>c>S>sKk[{~G~g~W~wOo_SU0WT(VU8Ad^QYQU]1S[qW_ PXITɔ\)RZiV^QYYUٔ]9S[yW_TPTXETTT\%TRTZeTVT^TQTYUTUT]5TST[uTWT_ PXMT\-RZmV^QY]U]=S[}W_4P4XC4T4\#4R4Zc4V4^4Q4YS4U4]34S4[s4W4_ PXKT˴\+RZkV^QY[U۴];S[{W_tPtXGtTt\'tRtZgtVt^tQtYWtUt]7tSt[wtWt_PXOT\/RZoV^QY_U]?S[WA!ʡa0-wGt$GvGu4Gw t,vuwt!vu1w t)vu9wWt%WvWu5Ww t-vu=w7t#7v7u37w t+vu;wwt'wvwu7wwt/vu? 0(8O$OO4O ,</"//2/ +*:o&oo6o.>!1 )9_%__5_ -=?#??3? +;'7/@@@@@@:|m۶m۶m۶m۶m6BhAXCxD@DD@FQ 1 q I ɑ) +i Y ّ9 yQQQEQ Q%Q +QeQQQ QUQ Q5Q QuQ M - +m ] = }111C1 1#1 +1c111 1S1 131 1s1 K ˱+ +k [ ۱; {qqqGq q'q +qgqqq qWq q7q qwqO / +o _ ? A!a`dFaTFct`Lbla\c|&`B&bb&aR&cr`JbjaZczf`FfbffaVfcv`Nbna^c~`AbaaQcq`IbiaYcyV`EVbeVaUVcu`Mbma]c}6`C6bc6aS6cs`Kbka[c{v`GvbgvaWvcw`Oboa_c@`PpHhXxNDNdNTNtLl\|.B.b.R.rJjZznFnfnVnvNn^~AaQqIiYy^E^e^U^uMm]}>C>c>S>sKk[{~G~g~W~wOo_SU0WT(VU8WET$AdYQU]1S[qW_ PXITɔ\)RZiV^QYYUٔ]9S[yW_TPTXETTT\%TRTZeTVT^TQTYUTUT]5TST[uTWT_ PXMT\-RZmV^QY]U]=S[}W_4P4XC4T4\#4R4Zc4V4^4Q4YS4U4]34S4[s4W4_ PXKT˴\+RZkV^QY[U۴];S[{W_tPtXGtTt\'tRtZgtVt^tQtYWtUt]7tSt[wtWt_PXOT\/RZoV^QY_U]?S[WA!ʡa0-GvGu4Gw t,vuwt!vu1w t)vu9wWt%WvWu5Ww t-vu=w7t#7v7u37w t+vu;wwt'wvwu7wwt/vu? 0(8O$OO4O ,</"//2/ +*:o&oo6o.>!1 )9_%__5_ -=?#??3? +;'7/@@@@@ mm۶m۶m۶m۶mJB"B# "#"""# +"B0X8xHDH$HdHHTH4HtH ȈLȌ,ȊlȎȉ\ȍ<ȋ|ȏ(B("(b((R(2(r( +J*jZ:zhFh&hfhhVh6hvhN.n^>~A!aQ1q I)iY9yXEX%XeXXUX5XuX ؈M،-؊m؎؉]؍=؋}؏8C8#8c88S838s8 K+k[;{xGx'xgxxWx7xwxO/o_?   ð Ȍ¨F3c2c32323 23S2S3 233233 23s2s32  KK ˲˳++ +kk [[ ۲۳;; {{srsrsGrGs rs'r's +rsgrgsrsrs rsWrWs rs7r7s rswrwsrOO // +oo __ ?? ()B(B)()"(")( $+芡؊JJJJJJJJʠʤʢʦʡʥʣʧ********򪠊ʪꪡڪjjjjjjjjꠎꢮꡞꣾ񚠉ɚ隡ٚZZZZZZZZڠڤڢڦڡڥڣڧ::::::::󺠋˺뺡ۺzzzzzzzz `P0pH(hi8c8c9898989S8S989383989s8s989 KK˸˹++kk븮빾[[۸۹;;{{xyxyGxGyxy'x'yxygxgyxyxyxyWxWyxy7x7yxywxwyxyOO//oo__??B'ݶݶm۶m۶m۶m۶! +a Q 1 !FEGD!FE1G D)FE9GTD%TFTE5TG D-FE=G4D#4F4E34G D+FE;GtD'tFtE7tGD/FE?  0 (8L$LL4L ,<,",,2, +*:l&ll6l.>!1 )9\%\\5\ -=<#<<3< +;|'||7|/?aPcp`HbhaXcxF`DFbdFaTFct`L"Hfq Iə)i陁Yٙ9yYYYEYY%YYeYYYYUYY5YYuYـ ولMٌق-ينmَفىم]ٍك=ًه}ُ999C99#99c9999S99399s9 K˹+k빁[۹;{yyyGyy'yygyyyyWyy7yywyO/o_?OAT\!RZaV^QYQU]1SQPlQ\S|%PB%Rb%QR%SrPJRjQZSzePFeRfeQVeSvPNRnQ^S~PARaQQSqPIRiQYSyUPEUReUQUUSuPMRmQ]S}5PC5Rc5QS5SsPKRkQ[S{uPGuRguQWuSwPORoQ_S @ ` P pHhXxMDMdMTMtLl\|-B-b-R-rJjZzmFmfmVmvNn^~AaQqIiYy]E]e]U]uMm]}=C=c=S=sKk[{}G}g}W}wOo_su0wt(vu8wGt$GvGu4Gw t,ôlq ЉIɜ)ҩiљYٜ9ӹy\Ѕ\E\\%\ҥ\e\\\ѕ\U\\5\ӵ\u\\ ЍM-ҭmѝ]=ӽ}<ЃGD!F (8J$J4ʠ,ʡ<*"*2*:j&j6.>!1)9Z%Z5ڠ-ڡ=:#:3+;z'z7/?` a0`(a8F #1 +1c111 1S1 131 1s1 K ˱+ +k [ ۱; {qqqGq q'q +qgqqq qWq q7q qwqO / +o _ ? !aQ1q LL¤LLLLôL¬ü,, de1g d)fe9gVd%VfVe5Vg d-fe=g6d#6f6e36g d+fe;gvd'vfve7vgd/fe? 0q$Gq4p,q<'p"'q2p*q:gp&gq6p.q>p!q1p)q9Wp%Wq5p-q=7p#7q3p+q;wp'wq7p/q? 0(8O$O4,!1)9_%_5-=?#?3+;'7/)+B*B+*+"*"+*+b*b+*+ JPXITɔ\)RZiV^QYYUٔ]9S[yW_TPTX******򪠊ʪꪡڪjjjjjjjjꠎꢮꡞꣾ (8M$MM4M ,<-"--2- +*:m&mm6m.>!1 )9]%]]5] -==#==3= +;}'}}7}/?sppHrhqXsxGpDGrdGqTGstpLrlq\s|'0Lv:;:;S:S;:;3:3;:;s:s;: ;E\\%\ҥ\e\\\ѕ\U\\5\ӵ\u\\ ЍM-ҭmѝ]=ӽ}<Ѓ>>>>>>>˾⫾᛾۾㻾~~~~~~~~, x@ 0`mm۶mv۶m۶mFP0pH(hX8xHDH$@R$Cr@JBjAZCzd@FdBfdAVdCv@NBnA^C~@ABaAQCq@IBiAYCyT@ETBeTAUTCu@MBmA]C}4@C4Bc4AS4Cs@KBkA[C{t@GtBgtAWtCw@OBoA_C @ `"C00#00c0000S00300s00 K˰+k[۰;{ppGpp'ppgppppWpp7ppwppO/o_?!aQ1q )LdLLTL4LtL L,l\<|,B,",b,,R,2,r, +J*jZ:zlFl&lfllVl6lvlN.n^>~A@qrsGrGs rs'r's +rsgrgsrsrs rsWrWs rs7r7s rswrwsrOO // +oo __ ?? )B(B)()"(")()b(b)()()$+@ILɕB)JFiNAIEYMٕC9KGyOU@UHUDEULUB%UJUFeUNUAUIUEUUMUC5UKUGuUO@ HDMLB-JFmNAIE]MC=KG}O5@5H P pHhXxMDMdMTMtLl\|-B-b-R-rJjZzmFmfmVmvNn^~AaQqIiYy]E]e]U]uMm]}=C=c=S=sKk[{}G}g}W}wOo_s0wt(vu8wGt$GvGu4Gw t,vuC>#>c>>S>3>s> K+k[;{~G~'~g~~W~7~w~O/o_?O<@̮el۶mm۶m۶m݅D(FE8GDD$DF *!:b &b!6 .!> !!1 )!9B0) +i Y ّ9 yQQQEQ Q%Q +QeQQQ QUQ Q5Q QuQ M - +m ] = }11A!aQ1q I)iY9yXEX%XeXXUX5XuX ؈M،-؊m؎؉]؍=؋}؏8C8#8c88S838s8 K+k[;{xGx'xgxxWx7xwxO/o_? ð ȌFe4Fg d,fe!1)9[%[5۰-۱=;#;3+;{'{7/?p 19C99#99c9999S99399s9 K˹+k빁[۹;{yyyGyy'yygyyyyWyy7yywyO/o_?O\!RZaV^QYQ芡؊JJJJ( +T +T*VU:WeT&eVeU6eWT.VU>WT!VU1W T)VU9WUT%UVUU5UW T-VU=W5T#5V5U35W T+VU;WuT'uVuU7uWT/VU? ihiFhFihi&h&ihifhfihihihiVhVihi6h6ihivhvihi鰎討NN..鲮誮nn鱞詞^^>>鳾諾~~9;C:C;:;#:#;1ӱq ЉIɜ0-ہNNNN........ʮ⪮ᚮڮ㺮nnnnnnnn 0(8O$OO4O ,</"//2/ +*:o&oo6o.>!1 )9_%__5_ -=?#??3? +;'7/`C' fײDzm۶mm۶m۶m! +a hX8xHDH$HdHHTH @AZCzd@FdBfdAVdCv@NBnA^C~@ABaAQCq@IBiAYCyT@ETBeTAUTCu@MBmA]C}4@C4Bc4AS4Cs@KBkA[C{t@GtBgtAWtCw@OBoA_C @ BcbcFbFc bc&b&c +bcfbfcbcbc bcVbVc bc6b6c bcvbvcbNN .. +nn ^^ >> ~~18C0$C140,1<#0"#120Q1q Iə) 4LtL L,l\<|,B,",b,,R,2,r, +J*jZ:zlFl&lfllVl6lvlN.n^>~A `PpHhXxNDNdNTNtLl\|.B.b.R.rJjZznFnfnVnvNn^~AaQqIiYy^E^e^U^uMm]}>C>c>S>sKk[{~G~g~W~wOo_S0WT(VU8WET$EV()b(b)()()()R(R) JFiNAIEYMٕC9KGyOU@UHUDEULUB%UJUFeUNUAUIUEUUMUC5UKUGuUO@ HDMLB-JFmNAIE]MC=KG}O5@5HA!aQ1q I)iY9yZEZ%ZeZZUZ5ZuZ ڨMڬ-ڪmڮک]ڭ=ګ}گ:C:#:c::S:3:s: K+k[;{zGz'zgzzWz7zwzO/o_?ȎGu4Gw t,vu>닾꛾~~ꟃ9C8C989#8#98Q1˱q ȉIɝ)ʩi Ӳ L,l\<|.B.".b..R.2.r. +J*jZ:znFn&nfnnVn6nvnN.n^>~A`PpHhXxODOdOTOtLl\|/B/b/R/rJjZzoFofoVovNn^~AaQqIiYy_E_e_U_uMm]}?C?c?S?sKk[{GgWwOo_ ?A0ml۶m˶m۶m۶uP0pH(@TDCt@LBlA\C|$@B$Bb$AR$Cr@JBjAZCzd@FdBf`" "#r"r#" + +JJ ʢʣ** +jj ZZ ڢڣ:: zzcb0C00#00c0000S00300s00 K˰+k[۰;{ppGpp'ppgppppWpp7ppwppO/o_?!ahX8xLDL$LdLLTL4LtL LL@faVfcv`Nbna^c~`AbaaQcq`IbiaYcyV`EVbeVaUVcu`Mbma]c}6`C6bc6aS6cs`Kbka[c{v`GvbgvaWvcw`Oboa_c@bsrsGrGs rs'r's +rsgrgsrsrs rsWrWs rs7r7s rswrwsrOO // +oo __ ?? )B(B)()"(")(@QMC1KGqO@ HDILɕB)JFiNAIQ,ʪlʮʩ\ʭ<ʫ|ʯ*B*"*b**R*2*r* +J*jZ:zjFj&jfjjVj6jvjN.n^>~A +` P pHhXxMDMdMTMtLl\|-B-b-R-rJjZzmFmfmVmvNn^~AaQqIiYy]E]e]U]uMm]}=C=c=S=sKk[{}G}g}W}wOo_s0wt(vu8wGt$Gv89c8c9898989S8S9893839aZYٝ9˹y]]ȅ]E]]%]ʥ]e]]]ɕ]U]]5]˵]u] ȍM-ʭmɝ]=˽}==A!aQ1q I)iY9y^E^%^e^^U^5^u^ M-m]=}>C>#>c>>S>3>s> K+k[;{~G~'~g~~W~7~w~O/o_?AkٶXm۶]˶m۶m۶u!aQ舁؈HHHHHHHHȀȄȂȆDD.FE>GD!FE1G D)FE9GTD%TFTE5TG D-FE=G4D#4F4E34G D+FE;GtD'tFtE7tGD/FE? a0`(a8F`$Fa4`,a<&`"&a2`*a:f`&fa6`.a>`!a1`)a9V`%Va5`-a=6`#6a3`+a;v`'va7`/a? 0(8N$N4,<.".2*:n&n6.>!1)9^%^5-=>#>3+;~'~7/13C2C3 23#2#3 +1q Iɘ)i阞Y٘ )ü,,,¢,,,,ò,ʬªڬúlll¦llllöl®þ 0(8N$NN4N ,<."..2. +*:n&nn6n.>!1 )9^%^^5^ -=>#>>3> +;~'~~7~/?SpPHRhQXSxEPDERdEQ*+b*b+*+*+*+R*R+*+2*2+* $+P9S[yW_TPTXETTT\%TRTZeTVT^TQTYUTUT]5TST[uTWT_ PXMT\-RZmV^QY]U]=S[}W_4P񚠉ɚ隡ٚZZZZZZZZڠڤڢڦڡڥڣڧ::::::::󺠋˺뺡ۺzzzzzzzz`P0pH(pTGstpLrlq\s|'pB'rb'qR'srpJrjqZszgpFgrfgqVgsvôl:s:s;: KK˺˻++kk뺞뻁[[ۺۻ;;{{{z> ~~18C0$C140,1<#0"#120Q1q Iə)i陁Yٙ9 <|,B,",b,,R,2,r, +J*jZ:zlFl&lfllVl6lvlN.n^>~A `PpHhXxNDNdNTNtLl\|.B.b.R.rJjZznFnfnVnvNn^~AaQqIiYy^E^e^U^uMm]}>C>c>S>sKk[{~G~g~W~wOo_S0WT(VU8WET$EV()b(b)()()()R(R)()2(2)()r(r) JGyOU@UHUDEULUB%UJUFeUNUAUIUEUUMUC5UKUGuUO@ HDMLB-JFmNAIE]MC=KG}O5@5HA!aQ1q I)iY9yZEZ%ZeZZUZ5ZuZ ڨMڬ-ڪmڮک]ڭ=ګ}گ:C:#:c::S:3:s: K+k[;{zGz'zgzzWz7zwzO/o_?ȎGu4Gw t,vu`!a1`)a9V`%Va5`-a=6`#6a3`+a;v`'va7`/a? 0(8N$N4,<.".2*:n&n6.>!1)9^%^5-=>#>3+;~'~7/13C2C3 23#2#3 +23c2c32323 23S2S3 233233 23s2s32AR4XX,¢,,,,ò,ʬªڬúlll¦llllöl®þ¡ (8N$NN4N ,<."..2. +*:n&nn6n.>!1 )9^%^^5^ -=>#>>3> +;~'~~7~/?SpPHRhQXSxEPDERdEQTEStPLRlQ\S|%PB%Rb%QR%SrPJRjQZSzePFeRfeQVeSvPNRnQ^S~DIV + ++PETTT\%TRTZeTVT^TQTYUTUT]5TST[uTWT_ PXMT\-RZmV^QY]U]=S[}W_4P4XC4T4\#񚠉ɚ隡ٚZZZZZZZZڠڤڢڦڡڥڣڧ::::::::󺠋˺뺡ۺzzzzzzzz`P0pH(hX8xNDN$NdNNTN4NtN L,l\<|ipAraKK˺˻++kk뺞뻁[[ۺۻ;;{{{z{z{<ң~A!a@iFkjk&j&kjkfjfkjkjkjkVjVkjk6j6kjkvjvkj눎꘎NN..늮ꚮnn뉞Ꙟ^^>>닾꛾~~ꟃ9C8C989#8#989c8c989898Iɝ)ʩiəYٝ9˹y]]ȅ Ӳ]E]]%]ʥ]e]]]ɕ]U]]5]˵]u] ȍM-ʭmɝ]=˽}==ȃ=C==# hXxODOdOTOtLl\|/B/b/R/rJjZzoFofoVovNn^~AaQqIiYy_E_e_U_uMm]}?C?c?S?sKk[{GgWwOo_' f۶mתGmm۶m۶m!8B $B!4 ,!<" ""!2 *!:b &b!6 .!> !!1 )!9R %R!5 -!=2 #2!3 +!;r 'r!7 /!? + +0 EQ Q%Q +QeQQQ QUQ Q5Q QuQ M - +m ] = }11 P pHhXxLDLdLTLtLl\|,B,b,R,rJjZzlFlflVlvNn^~AaQqIiYy\E\e\U\uMm]}gd!f(8AR4K$K4˰,˱<+"+2*:k&k6.>!1)9[%[5۰-۱=;#;3+;{'{7/?p q0!aQ1q I)iY9y\E\%\e\\U\5\u\ M-m]=}GD!FE1G D) 4ʠ,ʡ<*"*2*:j&j6.>!1)9Z%Z5ڠ-ڡ=:#:3+;z'z7/?` !1C1 1#1 +1c111 1S1 131 1s1 K ˱+ +k [ ۱; {qqqGq q'q +qgqqq qWq q7q qwqO / +o _ ? !aQ،øLLL¤LLLLôL¬ü,,,¢,,,@hfe9gVd%VfVe5Vg d-fe=g6d#6f6e36g d+fe;gvd'vfve7vgd/fe? q0p(q8Gp$Gq4p,q<'p"'q2p*q:gp&gq6p.q>p!q1p)q9Wp%Wq5p-q=7p#7q3p+q;wp'wq7p/q? 0(8O$O4,!1)9_%_5-=?#?3+;'7/)+B*B+*+"*"+U]1S[qW_ PXITɔ\)RZiV^QYYUٔ]9S[yW_TPTXETTT\%TR(**򪠊ʪꪡڪjjjjjjjjꠎꢮꡞꣾ  0 (8M$MM4M ,<-"--2- +*:m&mm6m.>!1 )9]%]]5] -==#==3= +;}'}}7}/?sppHrhqXsxGpDGrdGq:;c:c;:;:;:;S:S;:;3:3;:;s:s;: K Ӳ]e\\\ѕ\U\\5\ӵ\u\\ ЍM-ҭmѝ]=ӽ}<Ѓɞ⩞ᙞٞ㹞^^^^^^^^>>>>>>>>˾⫾᛾۾㻾~~~~~~~~`Zmٶmcٶm۶m۶C0GD(FE8GDD$DF *!:b &b!6 .!> !!1 )!9R %R!5 -!=2 #2!3 +!;r 'r!7 /!? + +0(8J$J4ʠ,!!QQ QUQ Q5Q QuQ M - +m ] = }11A!aQ1q I)iY9yXEX%XeXXUX5XuX ؈M،-؊m؎؉]؍=؋}؏8C8#8c88S838s8 K+k[;{xGx'xgxxWx7xwxO/o_? ð ȌFe4Fg d,fegd!fe1g d)fe9$E<+"+2*:k&k6.>!1)9[%[5۰-۱=;#;3+;{'{7/?p 19C99#99c9999S99399s9 K˹+k빁[۹;{yyyGyy'yygyyyyWyy7yywyO/o_?O\!RZaV^QYQ芡؊JJJJJJJJʠʤʢʦʡʥʣʧ********@AdWUT%UVUU5UW T-VU=W5T#5V5U35W T+VU;WuT'uVuU7uWT/VU? ihiFhFihi&h&ihifhfihihihiVhVihi6h6ihivhvihi鰎討NN..鲮誮nn鱞詞^^>>鳾諾~~9;C:C;:;#:#;1ӱq ЉIɜ)ҩiљYٜ9ӹy\Ѕ\E\\%\ҥ\e\hʮ⪮ᚮڮ㺮nnnnnnnn 0(8O$OO4O ,</"//2/ +*:o&oo6o.>!1 )9_%__5_ -=?#??3? +;'7/`Zmv{d۶l۶m۶m[w!#B"B# "#"""# +1q Iɐ)iYِ9yPPEPP%PPePPPʨꨁڨhhhhhhhh耎肮聞胾  0 (8L$LL4L ,<,",,2, +*:l&ll6l.>!1 )9\%\\5\ -=<#<<3< +;|'||7|/?cp`HbhaXcxF`DFbdFa23c2c32323 23S2S3 233233 23s2s32  KK ˲˳+ YUXX5XXuXX ؘؐMؔ؜-ؚؒmؖ؞ؙؑ]ؕ؝=ؓ؛}ؗ؟8¡ñɜ©ٜù\\\¥\\\\õ\­ý<<<£<<<<ó<˼«ۼû|||§||||÷|¯ÿ` + +P +0 +p +H( +PTEStPLRlQ\S|%PB%Rb%QR%SrPJRjQZSzePFeRfeQVeSvPNRnQ^S~PARaQQSqPIRiQYSyUPEUR J*jjꪞ꫁ZZڪګ::zzkj4XC4T4\#4R4Zc4V4^4Q4YS4U4]34S4[s4W4_ PXKT˴\+RZkV^QY[U۴];S[{W_tPtXGtTt\'tRtZgtVt^tQtYWtUt]7tSt[wtWt_PXOT\/RZoV^QY_U]?S[W!ʡaɑhX8xNDN$NdNNTN4NtN L,l\<|.B.".b..R.2.r. +J4LveWqUWsupMrmq]s}7pC7rc7qS7sspKrkq[s{wpGwrgwqWwswpOroq_s@r{z{GzG{z{'z'{z{gzg{z{z{z{WzW{z{7z7{z{wzw{zOO//oo__???A0m۶=m-۶m۶mݟ ! +a hX8xHDH$HdHHTH4HtH ȈLȌ,ȊlȎȉ\ȍ<ȋ|ȏ(B("(b((R(2(r( +J*j@Fu@MBmA]C}4@C4Bc4AS4Cs@KBkA[C{t@GtBgtAWtCw@OBoA_C @ BcbcFbFc bc&b&c +bcfbfcbcbc bcVbVc bc6b6c bcvbvcbNN .. +nn ^^ >> ~~18C0$C140,1<#0"#120Q1q Iə)i陁Yٙ9yYYYEYY%YYeYYYYUYIѬZ:zlFl&lfllVl6lvlN.n^>~A `PpHhXxNDNdNTNtLl\|.B.b.R.rJjZznFnfnVnvNn^~AaQqIiYy^E^e^U^uMm]}>C>c>S>sKk[{~G~g~W~wOo_S0WT(VU8WET$EV()b(b)()()()R(R)()2(2)()r(r)() + +JJʨʩ**)P%YUC5UKUGuUO@ HDMLB-JFmNAIE]MC=KG}O5@5HA!aQ1q I)iY9yZEZ%ZeZZUZ5ZuZ ڨMڬ-ڪmڮک]ڭ=ګ}گ:C:#:c::S:3:s: K+k[;{zGz'zgzzWz7zwzO/o_?ȎGu4Gw t,vuwt!vu1w t)vu9wWt%WvWu5ekk븮빾[[۸۹;;{{x9ȃ=C==#=ʣ=c===ɓ=S==3=˳=s= ȋK˽+ʫkɛ[۽;˻{}}ȇ}G}}'}ʧ}g}}}ɗ}W}}7}˷}w}ȏO/ʯoɟ_?˿Akٶmٶe۶m۶mۺ 7!8B $B!4 ,!<" ""!2 Q 1 q I ɑ) +i Y ّ9 yQQQEQ Q%Q +QeQQQ QUQ Q5Q :zhFh&hfhhVh6hvhN.n^>~A` P pHhXxLDLdLTLtLl\|,B,b,R,rJjZzlFlflVlvNn^~AaQqIiYy\E\e\U\uMm]}0!110)19S0%S150-1=30#3130+1;s0's170/1? 0(8K$K4˰,˱<+"+2*:k&k1 )YuYـ ولMٌق-ينmَفىم]ٍك=ًه}ُ99A!aQ1q I)iY9y\E\%\e\\U\5\u\ M-m]=}WT!VU1W T)VU9WUT%UVUU5UW T- +$ꨮꩾZZڨک::zzh)H5DC5L5B#5J5Fc5N5A5I5ES5M5C35K5Gs5O@ HDKL˵B+JFkNAIE[M۵C;KG{Ou@uHuDGuLuB'uJuFguNuAuIuEWuMuC7uKuGwuO@HDOLB/JFoNAIE_MC?KG!ҡaёQ਎ᘎ؎㸎NNNNNNNN........ʮ⪮ᚮ@ôlvu=w7t#7v7u37w t+vu;wwt'wvwu7wwt/vu? yxyGxGyxy'x'yxygxgyxyxyxyWxWyxy7x7yxywxwyxyOO//oo__???A0m۶mGm.۶m۶m?!#B"B# "#"""# +1q Iɐ)iYِ9yPPEPP%PPePPPPUPP5PPuPhhhhhhhh耎肮聞胾  0 (8L$LL4L ,<,",,2, +*:l&ll6l.>!1 )9\%\\5\ -=<#<<3< +;|'||7|/?cp`HbhaXcxF`DFbdFa23c2c32323 23S2S3 233233 23s2s32  KK ˲˳++ +kk Y ؘؐMؔ؜-ؚؒmؖ؞ؙؑ]ؕ؝=ؓ؛}ؗ؟8¡ñɜ©ٜù\\\¥\\\\õ\­ý<<<£<<<<ó<˼«ۼû|||§||||÷|¯ÿ` + +P +0 +p +H( +PTEStPLRlQ\S|%PB%Rb%QR%SrPJRjQZSzePFeRfeQVeSvPNRnQ^S~PARaQQSqPIRiQYSyUPEUReUQUUSuPMRmQ]S J꫁ZZڪګ::zzkj4XC4T4\#4R4Zc4V4^4Q4YS4U4]34S4[s4W4_ PXKT˴\+RZkV^QY[U۴];S[{W_tPtXGtTt\'tRtZgtVt^tQtYWtUt]7tSt[wtWt_PXOT\/RZoV^QY_U]?S[W!ʡaɑhX8xNDN$NdNNTN4NtN L,l\<|.B.".b..R.2.r. +J*jZ:z4Lv}7pC7rc7qS7sspKrkq[s{wpGwrgwqWwswpOroq_s@r{z{GzG{z{'z'{z{gzg{z{z{z{WzW{z{7z7{z{wzw{zOO//oo__??0`v-۶mٶ[m۶m۶߁C0GD(FE8GDD$DF *!:b &b!6 .!> !!1 )!9R %R!5 -!=2 #2!3 +!;r 'r!7 /!? + +0(8J$J4ʠ,ʡ<*"*2*:j&j6.>!!!M - +m ] = }11A!aQ1q I)iY9yXEX%XeXXUX5XuX ؈M،-؊m؎؉]؍=؋}؏8C8#8c88S838s8 K+k[;{xGx'xgxxWx7xwxO/o_? ð ȌFe4Fg d,fegd!fe1g d)fe9gVd%VfVe5Vg d-fe=g6d#$E1)9[%[5۰-۱=;#;3+;{'{7/?p 19C99#99c9999S99399s9 K˹+k빁[۹;{yyyGyy'yygyyyyWyy7yywyO/o_?O\!RZaV^QYQ芡؊JJJJJJJJʠʤʢʦʡʥʣʧ********򪠊ʪꪡڪjj@Ad5V5U35W T+VU;WuT'uVuU7uWT/VU? ihiFhFihi&h&ihifhfihihihiVhVihi6h6ihivhvihi鰎討NN..鲮誮nn鱞詞^^>>鳾諾~~9;C:C;:;#:#;1ӱq ЉIɜ)ҩiљYٜ9ӹy\Ѕ\E\\%\ҥ\e\\\ѕ\U\\5\ӵ\u\\ Ѝhnnnnnn 0(8O$OO4O ,</"//2/ +*:o&oo6o.>!1 )9_%__5_ -=?#??3? +;'70`v-۶m6ȶl۶m۶m[w !aQ舁؈HHHHHHHHȀȄȂȆȁȅȃȇ((((((((򨀊ʨꨁڨhhhh@`4G D+FE;GtD'tFtE7tGD/FE? a0`(a8F`$Fa4`,a<&`"&a2`*a:f`&fa6`.a>`!a1`)a9V`%Va5`-a=6`#6a3`+a;v`'va7`/a? 0(8N$N4,<.".2*:n&n6.>!1)9^%^5-=>#>3+;~'~7/13C2C3 23#2#3 +1q Iɘ)i阞Y٘9yXXEXX%XXeXXXXUXX5XXuXX ؘؐMؔHlllöl®þ 0(8N$NN4N ,<."..2. +*:n&nn6n.>!1 )9^%^^5^ -=>#>>3> +;~'~~7~/?SpPHRhQXSxEPDERdEQ*+b*b+*+*+*+R*R+*+2*2+*+r*r+* + +JJʪʫ**jjꪞ꫁Q\-RZmV^QY]U]=S[}W_4P񚠉ɚ隡ٚZZZZZZZZڠڤڢڦڡڥڣڧ::::::::󺠋˺뺡ۺzzzzzzzz`P0pH(pTGstpLrlq\s|'pB'rb'qR'srpJrjqZszgpFgrfgqVgsvpNrnq^s~pAraqQsqpIriqYsyWpEWreWqUWsupMrmq]s}7pC7rc7qS7saZ[[ۺۻ;;{{{z> ~~0(18C0$C140,1<#0"#120*1:c0&c160.1>0!110)19S0%S150-1=30#3130+1;s0's170/1? 0(8K$K4˰,˱<+"+2*:k&k6.>!1)9[%Illöl®þ¡ñɜ©ٜù\\\¥\\\\õ\­ý<<<£<<<<ó<˼«ۼû|||§||||÷|¯ÿ +` + +P +0 +p +H(hX8xJDJ$JdJJTJ4JtJ ʨLʬ,ʪlʮʩ\ʭ<ʫ|ʯ*B*"*b**R*2*r* +J*jZ:zjFj&jfjj JZڨک::zzhihiFhFihi&h&ihifhfihihihiVhVihi6h6ihivhvihi鰎討NN..鲮誮nn鱞詞^^>>鳾諾~~9:;C:C;:;#:#;:;c:c;:;:;:;S:S;:;3:3;:;s:s;: KK˺˻++kk뺞뻁[:`Vn6nvnN.n^>~A!aQ1q I)iY9y^E^%^e^^U^5^u^ M-m]=}>C>#>c>>S>3>s> K+k[;{~G~'~g~~W~7~w~O/oO<@@˶m۶mCm۶m۶mm?A ! +a Q 1 q I ɑ) +i Y ّ9 yQQQEQ Q%Q +QeQQQ QUQ Q5Q QuQ M - +m@F;GtD'tFtE7tGD/FE?  0 (8L$LL4L ,<,",,2, +*:l&ll6l.>!1 )9\%\\5\ -=<#<<3< +;|'||7|/?aPcp`HbhaXcxF`DFbdFaTFct`Lbla\c|&`B&bb&aR&cr`JbjaZczf`FfbffaVfcv`Nbna^c~`AbaaQcq`IbiaYcyV`EVbeVaUVcu`Mbma]c}6`C6bc6aS6cs`Kbka[َفىم]ٍك=ًه}ُ999C99#99c9999S99399s9 K˹+k빁[۹;{yyyGyy'yygyyyyWyy7yywyO/o_?OAT\!RZaV^QYQU]1S[qW_ PXITɔ\)RZiV^QYYUٔ]9S[yW_TPTXETTT\%TRTZeTVT^TQTYUTUT]5TST[uTWT_ PXMT\-RZmVAdS{uPGuRguQWuSwPORoQ_S @ ` P pHhXxMDMdMTMtLl\|-B-b-R-rJjZzmFmfmVmvNn^~AaQqIiYy]E]e]U]uMm]}=C=c=S=sKk[{}G}g}W}wOo_su0wt(vu8wGt$GvGu4Gw t,vuwt!vu1w t)vu9wWt%WvWu5Ww t-vu=w7t#7v7u37w t+vu0-ѝ]=ӽ}<Ѓ !!1 )!9R %R!5 -!=2 #2!3 +!;r 'r!7 /!? + +0(8J$J4ʠ,ʡ<*"*2*:j&j6.>!1)9Z%Z5ڠ-ڡ=:#肮聞胾񘀉ɘ阁٘XXXXXXXX؀؄؂؆؁؅؃؇88888888󸀋˸븁۸xxxxxxxx `  P 0 p H(hX8xLDL$LdLLTL4LtL L,l\<|,B,",b,,R,2,r, +J*jZ:zlFl&lfllVl6lvlAR4;3+;{'{7/?p q0p(q8Gp$Gq4p,q<'p"'q2p*q:gp&gq6p.q>p!q1p)q9Wp%Wq5p-q=7p#7q3p+q;wp'wq7p/q? 0(8O$O4,!1)9_%_5-=?#?3+;'7/)*+B*B+*+"*"+*+b*b+*+*+*+R*R+*+2*2+*+r*r+* + +JJʪʫ**jjꪞ꫁ZZڪګ:* N.n^>~A!aQ1q I)iY9yZEZ%ZeZZUZ5ZuZ ڨMڬ-ڪmڮک]ڭ=ګ}گ:C:#:c::S:3:s: K+k[;{zGz'zgzzWz7zwzO/o_?Ȏ⨎ᘎ؎㸎NNNNNNNN........ʮ⪮ᚮڮ㺮nnnnnnnne;{{{z{z{GzG{z{'z'{z{gzg{z{z{z{WzW{z{7z7{z{wzw{zOO//oo__???Am۶m6Wܶm۶m۶m&??A ! +a Q 1 q I ɑ) +i Y ّ9 yQQQEQ Q%Q +QeQQQ QUQ Q5Q QuQ M - +m ]@F7tGD/FE?  0 (8L$LL4L ,<,",,2, +*:l&ll6l.>!1 )9\%\\5\ -=<#<<3< +;|'||7|/?aPcp`HbhaXcxF`DFbdFaTFct`Lbla\c|&`B&bb&aR&cr`JbjaZczf`FfbffaVfcv`Nbna^c~`AbaaQcq`IbiaYcyV`EVbeVaUVcu`Mbma]c}6`C6bc6aS6cs`Kbka[c{v`GvbgvaWٍك=ًه}ُ999C99#99c9999S99399s9 K˹+k빁[۹;{yyyGyy'yygyyyyWyy7yywyO/o_?OAT\!RZaV^QYQU]1S[qW_ PXITɔ\)RZiV^QYYUٔ]9S[yW_TPTXETTT\%TRTZeTVT^TQTYUTUT]5TST[uTWT_ PXMT\-RZmV^QY]UAduSwPORoQ_S @ ` P pHhXxMDMdMTMtLl\|-B-b-R-rJjZzmFmfmVmvNn^~AaQqIiYy]E]e]U]uMm]}=C=c=S=sKk[{}G}g}W}wOo_su0wt(vu8wGt$GvGu4Gw t,vuwt!vu1w t)vu9wWt%WvWu5Ww t-vu=w7t#7v7u37w t+vu;wwt'wvwu0-=ӽ}<Ѓ~A!aQ1q I)iY9yXEX%XeXXUX5XuX ؈M،-؊m؎؉]؍=؋}؏8C8#8c88S838s8 K+k[;{xGx'xgxxWx7xwxO/o_?   ð Ȍ¨،øLLL¤LLLLôL¬ü,,,¢,,,,ò,ʬªڬúlll¦llllöl® $E{srsrsGrGs rs'r's +rsgrgsrsrs rsWrWs rs7r7s rswrwsrOO // +oo __ ?? ()B(B)()"(")()b(b)()()()R(R)()2(2)()r(r)() + +JJʨʩ**jjꨮꩾZZڨک::z(ꣾ񚠉ɚ隡ٚZZZZZZZZڠڤڢڦڡڥڣڧ::::::::󺠋˺뺡ۺzzzzzzzz `P0pH(hX8xNDN$NdNNTN4NtN L,l\<|.B.".b..R.2.r. +J*jZ:znFn&nfnnVn6nvnN.naZ{xyxyGxGyxy'x'yxygxgyxyxyxyWxWyxy7x7yxywxwyxyOO//oo__???A,۶m۶mٶm۶m۶} + CE0GD(FE8GDD$DFDE4DG D,FEGD!FE1G D)FE9GTD%TFTE5TG D-FE=G4D#4F4E34G D+FE;GtD'tFtE7tGD/FE!00C00#00c0000S00300s00 K˰+k[۰;{ppGpp'ppgppppWpp7ppwppO/o_?A!aQ1q Iə)i陁Yٙ9yYYYEYY%YYeYYYYUYY5YYuYـ ولMٌق-ينmَفىم]ٍك=ًه} Hf? 0(8N$NN4N ,<."..2. +*:n&nn6n.>!1 )9^%^^5^ -=>#>>3> +;~'~~7~/?QPSpPHRhQXSxEPDERdEQTEStPLRlQ\S|%PB%Rb%QR%SrPJRjQZSzePFeRfeQVeSvPNRnQ^S~PARaQQSqPIRiQYSyUPEUReUQUUSuPMRmQ]S}5PC5Rc5QS5SsPKRkQ[S{uPGuRguQWuSwPORoQ_QO5@5H5DC5L5B#5J5Fc5N5A5I5ES5M5C35K5Gs5O@ HDKL˵B+JFkNAIE[M۵C;KG{Ou@uHuDGuLuB'uJuFguNuAuIuEWuMuC7uKuGwuO@HDOLB/JFoNAIE_MC?KGA!ҡaёQ1ӱq ЉIɜ)ҩiљYٜ9ӹy\Ѕ\E\\%\ҥ\e\\\ѕ\U\\5\ӵ\u\\ ЍM-ҭmѝ]=ӽ}ôls@`PpHhXxODOdOTOtLl\|/B/b/R/rJjZzoFofoVovNn^~AaQqIiYy_E_e_U_uMm]}?C?c?S?sKk[{GgWO<0m۶m۶msm۶m۶mI{GgWwOo (!8B $B!4 ,!<" ""!2 *!:b &b!6 .!> !!1 )!9R %R!5 -!=2 #2!3 +!;r 'r!7 /!? + +0(8J$J4ʠ,ʡ<*"*2*:j&j6.>!1)9Z%Z5ڠ-ڡ=:#:3+;z'z7/?` 񘀉ɘ阁٘XXXXXXXX؀؄؂؆؁؅؃؇88888888󸀋˸븁۸xxxxxxxx `  P 0 p H(hX8xLDL$LdLLTL4LtL L,l\<|,B,",b,,R,2,r, +J*jZ:zlFl&lfllVl6lvlN.n^>~AR4q0p(q8Gp$Gq4p,q<'p"'q2p*q:gp&gq6p.q>p!q1p)q9Wp%Wq5p-q=7p#7q3p+q;wp'wq7p/q? 0(8O$O4,!1)9_%_5-=?#?3+;'7/)*+B*B+*+"*"+*+b*b+*+*+*+R*R+*+2*2+*+r*r+* + +JJʪʫ**jjꪞ꫁ZZڪګ::zzk* A!aQ1q I)iY9yZEZ%ZeZZUZ5ZuZ ڨMڬ-ڪmڮک]ڭ=ګ}گ:C:#:c::S:3:s: K+k[;{zGz'zgzzWz7zwzO/o_?Ȏ⨎ᘎ؎㸎NNNNNNNN........ʮ⪮ᚮڮ㺮nnnnnnnne{{z{GzG{z{'z'{z{gzg{z{z{z{WzW{z{7z7{z{wzw{zOO//oo__???A,۶m۶m6m۶m۶m} | + CE0GD(FE8GDD$DFDE4DG D,FEGD!FE1G D)FE9GTD%TFTE5TG D-FE=G4D#4F4E34G D+FE;GtD'tFtE7tGD/FE?  E!0#00c0000S00300s00 K˰+k[۰;{ppGpp'ppgppppWpp7ppwppO/o_?A!aQ1q Iə)i陁Yٙ9yYYYEYY%YYeYYYYUYY5YYuYـ ولMٌق-ينmَفىم]ٍك=ًه}ُ999C H0(8N$NN4N ,<."..2. +*:n&nn6n.>!1 )9^%^^5^ -=>#>>3> +;~'~~7~/?QPSpPHRhQXSxEPDERdEQTEStPLRlQ\S|%PB%Rb%QR%SrPJRjQZSzePFeRfeQVeSvPNRnQ^S~PARaQQSqPIRiQYSyUPEUReUQUUSuPMRmQ]S}5PC5Rc5QS5SsPKRkQ[S{uPGuRguQWuSwPORoQ_S @ ` PQ5L5B#5J5Fc5N5A5I5ES5M5C35K5Gs5O@ HDKL˵B+JFkNAIE[M۵C;KG{Ou@uHuDGuLuB'uJuFguNuAuIuEWuMuC7uKuGwuO@HDOLB/JFoNAIE_MC?KGA!ҡaёQ1ӱq ЉIɜ)ҩiљYٜ9ӹy\Ѕ\E\\%\ҥ\e\\\ѕ\U\\5\ӵ\u\\ ЍM-ҭmѝ]=ӽ}<Ѓ~A!aB0Fa4`,a<&`"&a2`*a:f`&fa6`.a>`!a1`)a9V`%Va5`-a=6`#6a3`+a;v`'va7`/a? 0(8N$N4,<.".2*:n&n6.>!1)9^%^5-=>#>3+;~'~7/123C2C3 23#2#3 +23c2c32323 23S2S3 233233 23s2s32  KK ˲˳++ +kk [[ ۲۳;; {{srsrsG2@Q1q I)iY9y\E\%\e\\U\5\u\ M-m]=}>닾꛾~~ꟃ89C8C989#8#989c8c9898989S8S989383989s8s989 KK˸˹++kk븮빾[[۸۹;;{{xyxyGxiɞ⩞ᙞٞ㹞^^^^^^^^>>>>>>>>˾⫾᛾۾㻾~~~~~~~~۶m۶m۶m۶m۶| | | + CE0GD(FE8GDD$DFDE4DG D,FEGD!FE1G D)FE9GTD%TFTE5TG D-FE=G4D#4F4E34G D+FE;GtD'tFtE7tGD/FE?  0 (E!000S00300s00 K˰+k[۰;{ppGpp'ppgppppWpp7ppwppO/o_?A!aQ1q Iə)i陁Yٙ9yYYYEYY%YYeYYYYUYY5YYuYـ ولMٌق-ينmَفىم]ٍك=ًه}ُ999C99#99c H8N$NN4N ,<."..2. +*:n&nn6n.>!1 )9^%^^5^ -=>#>>3> +;~'~~7~/?QPSpPHRhQXSxEPDERdEQTEStPLRlQ\S|%PB%Rb%QR%SrPJRjQZSzePFeRfeQVeSvPNRnQ^S~PARaQQSqPIRiQYSyUPEUReUQUUSuPMRmQ]S}5PC5Rc5QS5SsPKRkQ[S{uPGuRguQWuSwPORoQ_S @ ` P pHhXQ5N5A5I5ES5M5C35K5Gs5O@ HDKL˵B+JFkNAIE[M۵C;KG{Ou@uHuDGuLuB'uJuFguNuAuIuEWuMuC7uKuGwuO@HDOLB/JFoNAIE_MC?KGA!ҡaёQ1ӱq ЉIɜ)ҩiљYٜ9ӹy\Ѕ\E\\%\ҥ\e\\\ѕ\U\\5\ӵ\u\\ ЍM-ҭmѝ]=ӽ}<Ѓ> ~~0(18C0$C140,1<#0"#120*1:c0&c160.1>0!110)19S0%S150-1=30#3130+1;s0's170/1? 0(8K$K4˰,˱<+"+2*:k&k6.>!1)9[%[5۰-۱=;#;3+;{'{7/?p q0p(q8Gp$Gq4p,q<'p"Iќɜ©ٜù\\\¥\\\\õ\­ý<<<£<<<<ó<˼«ۼû|||§||||÷|¯ÿ +` + +P +0 +p +H(hX8xJDJ$JdJJTJ4JtJ ʨLʬ,ʪlʮʩ\ʭ<ʫ|ʯ*B*"*b**R*2*r* +J*jZ:zjFj&jfjjVj6jvjN.n^>~A!aQ1q J&ihifhfihihihiVhVihi6h6ihivhvihi鰎討NN..鲮誮nn鱞詞^^>>鳾諾~~9:;C:C;:;#:#;:;c:c;:;:;:;S:S;:;3:3;:;s:s;: KK˺˻++kk뺞뻁[[ۺۻ;;{{{z{z{GzG{z{':`I)iY9y^E^%^e^^U^5^u^ M-m]=}>C>#>c>>S>3>s> K+k[;{~G~'~g~~W~7~w~Ol۶m۶m۶Cm۶m%5-=#3+;'7A!aQ1q Iɐ)iYِ9yPPEPP%PPePPPPUPP5PPuPP M-m]=}00C00#00c0000S0`LtLl\|,B,b,R,rJjZzlFlflVlvNn^~AaQqIiYy\E\e\U\uMm]}gd!fe1g d)fe9gVd%VfVe5Vg d-fe=g6d#6f6e36g d+fe;gvd'vfve7vgd/fe? 0(8N$NNe )8388s88 K˸+k븞[۸;{xxGxx'xxgxxxxWxx7xxwxxO/o_?DALB!JFaNAIEQMC1KGqO@ HDILɕB)JFiNAIEYMٕC9KGyOU@UHUDEULUB%UJUFeUNUAUIUEUUMUC5UKUGuUO@ HDMLB-JFmNAIE]MC=KG}O5@5H5DC5L5B#5J5Fc5N5A5I5ESDI4M ,<-"--2- +*:m&mm6m.>!1 )9]%]]5] -==#==3= +;}'}}7}/?qPsppHrhqXsxGpDGrdGqTGstpLrlq\s|'pB'rb'qR'srpJrjqZszgpFgrfgqVgsvpNrnq^s~pAraqQsqpIriqYsyWpEWreWqUWsupMrmq]s}7pC7rc7qS7sspKrkq[s{wpGwrgwqWwswpOroq_s@`PpHhXxODOdOT Ӳ==3=˳=s= ȋK˽+ʫkɛ[۽;˻{}}ȇ}G}}'}ʧ}g}}}ɗ}W}}7}˷}w}ȏO/ʯoɟl n۶m۶m۶m۶mf `P0pH(hX8xHDH$HdHHTH4HtH ȈLȌ,ȊlȎȉ\ȍ<ȋ|ȏ(B("(b((R(2(r( +J*jZ:zhFh&hfhhVh6hvhN.n^>~A!aQ1q I)iB0fa6`.a>`!a1`)a9V`%Va5`-a=6`#6a3`+a;v`'va7`/a? 0(8N$N4,<.".2*:n&n6.>!1)9^%^5-=>#>3+;~'~7/123C2C3 23#2#3 +23c2c32323 23S2S3 233233 23s2s32  KK ˲˳++ +kk [[ ۲۳;; {{srsrsGrGs rs'r's +rsg2@Y9y\E\%\e\\U\5\u\ M-m]=}>닾꛾~~ꟃ89C8C989#8#989c8c9898989S8S989383989s8s989 KK˸˹++kk븮빾[[۸۹;;{{xyxyGxGyxy'x'yxygxiٞٞ㹞^^^^^^^^>>>>>>>>˾⫾᛾۾㻾~~~~~~~~l۶m۶m۶?d۶m۶9%5-=#3+;'7A!aQ1q Iɐ)iYِ9yPPEPP%PPePPPPUPP5PPuPP M-m]=}00C00#00c0000S00300s0`|,B,b,R,rJjZzlFlflVlvNn^~AaQqIiYy\E\e\U\uMm]}gd!fe1g d)fe9gVd%VfVe5Vg d-fe=g6d#6f6e36g d+fe;gvd'vfve7vgd/fe? 0(8N$NN4N ,e )8 K˸+k븞[۸;{xxGxx'xxgxxxxWxx7xxwxxO/o_?DALB!JFaNAIEQMC1KGqO@ HDILɕB)JFiNAIEYMٕC9KGyOU@UHUDEULUB%UJUFeUNUAUIUEUUMUC5UKUGuUO@ HDMLB-JFmNAIE]MC=KG}O5@5H5DC5L5B#5J5Fc5N5A5I5ES5M5C35K5GsDI<-"--2- +*:m&mm6m.>!1 )9]%]]5] -==#==3= +;}'}}7}/?qPsppHrhqXsxGpDGrdGqTGstpLrlq\s|'pB'rb'qR'srpJrjqZszgpFgrfgqVgsvpNrnq^s~pAraqQsqpIriqYsyWpEWreWqUWsupMrmq]s}7pC7rc7qS7sspKrkq[s{wpGwrgwqWwswpOroq_s@`PpHhXxODOdOTOtLl\ Ӳ= ȋK˽+ʫkɛ[۽;˻{}}ȇ}G}}'}ʧ}g}}}ɗ}W}}7}˷}w}ȏO/ʯo?A,۶m۶m۶m?d۶m۶>~~~~!"#B"B# "#"""# +"#b"b#"#"# "#R"R# "#2"2# "#r"r#" + +JJ ʢʣ** +jj ZZ ڢڣ:: zzcbcbcFbFc bc&b&c +bcfbfcbc"EX%XeXXUX5XuX ؈M،-؊m؎؉]؍=؋}؏8C8#8c88S838s8 K+k[;{xGx'xgxxWx7xwxO/o_?   ð Ȍ¨،øLLL¤LLLLôL¬ü,,,¢,,,,ò,ʬªڬúlll¦llllöl®þ¡ñɜ©ٜù\ $Ess rsWrWs rs7r7s rswrwsrOO // +oo __ ?? ()B(B)()"(")()b(b)()()()R(R)()2(2)()r(r)() + +JJʨʩ**jjꨮꩾZZڨک::zzhihiFhFihi&h&ihifhfihih(ZZZZZZZڠڤڢڦڡڥڣڧ::::::::󺠋˺뺡ۺzzzzzzzz `P0pH(hX8xNDN$NdNNTN4NtN L,l\<|.B.".b..R.2.r. +J*jZ:znFn&nfnnVn6nvnN.n^>~A!aQ1q I)iY9y^aZyxyWxWyxy7x7yxywxwyxyOO//oo__?3Pra7m1;ic:m\__߂߃??9:0s~p"H.⢺h.bX.x.KD.KⒺd.KRT.KҺt.2L.P +CKD'݈3/@_Fϗך-D1?"X ?P6.B0G" ""!2 *!:b &b!6 .!> !!1 )!9R %R!5 -!=2 #2!3 +!;~CD.FE>GD!(((QeQQQ OTFTE5TG D-FE=G4D#4F4E34G D+FE;G8:#:3+;z'z7/?` a0`(a8F`$Fa4`,a<&`"&a2`*a:f`&fa6`.a>`!a1pXXXXXX؀؄؂؆؁؅؃؇88888p7iYy\E\e\U\uMm]}'l_}~/FR ~1#2#3 +23c2c32323 23S2S3 233233 27`Nbna^c~`Aba",b,,R,2,r, +J2*:k&k6.>!1)9[%[5۰-۱=فىم]ٍك=ًه}ُ999C99#99c9999S99399s9 .2. +*:n&nn6n.>!1牐'y*?<3!1)9Z%Z5ڠ-ڡ=:#:3+;z'z7/?` a0`(a8F`$Fa4`,a<&`"&a2`*a:f`&fa6`.a>`!a1`)a9V`%Va5`-a=6`#6a3`+a;v`'va7`/a? 0(8N$x|1> iYy\E\e\U|p q7q qwqO 53~ 7/o1 )c32323 23S2S3 233233 23s2s32bAbaaQcq`IbiaYcyV`EVbeVaUVcu۬Z:zlFl&lfllVl6lvlN.n^>~A!aQ1q I)iY9y\E\%\e\\U\5\u\ M-m]=}C>c>S>sT,AdE8xJDJ$JdJJTJ4JtJ ʨLʬ,ʪlʮʩ\ʭ<ʫ|ʯzKUHUDEULUB%UJUFeUNUAUIUEUUMUCojꨮꩾZZڨک::zzhihiFhFihi&h&ihifhfihihihiVhVihi6h6ihivhvihi鰎討N^^8c:aZ#vuw.......ʮ⪮'t-vu=w7t#7v7u37w t+vu;wwt'wvwu7wwt/vu? 0(8O$OO4O ,</"//2/ +*:o&oo6o.>!1 ;~}?'ԟsS>3>s> K+/oo7{/տw??__M#ŊB"GQ;ōEQ(Q8J%EɣQ(U:JE Q(S9eA@0e۵lײm˶ml۶mۻC2$G +D*FE:GdD&dFdE6dGD.FE>G(((((((򨀊ʨ P5PPuPP M-m]=}cbcbcFbFc bc&b&c +bcfbfcbcbc bcVbVk [ ۱; {qqqGq q'q +qgqqq qWq q7q qwqO / +o _ ? !a 0#2#3 +23c2c32323 &cr`JbjaZczf`FfbffaVfcv`Nbna^c~,B,",b,,R,2,r, +J*ʿXY5YYuYـ ولMٌق-ينmَفىم]ٍك=ًه}ُ7p q0p(q8Gp$Gq4p,q<'p"'q2p*q:gp&gq6p.q>p!q1p)q9Wp%Wq5븞[۸;{xxGxx'xxgxxxxWxx7xxwxxO/o_?[!RZaV^%Y"(")()b(b)()()(P2%W +T*VU:WeT&eVeU6eWT.VU>W*******򪠊ʪKT]5TST[uTWT_ PXMT\-RZmV^QY]U]=S[}W_kjkjkFjFkjk&j&kjkfjfkjkjkjkVjVѿOkNAIE[M۵C;KG{Ou@uHuDGuLuB'uJuFguNuAuIuEWuMuC7uKuGwuO@HDOLB/JFoNAIE_MC?K!ʡa Ӳ8#:#;:;c:c;:;:;'srpJrjqZszgpFgrfgqVgsvpNrnq^s~.B.".b..R.2.r. +J*\]5]˵]u] ȍM-ʭmɝ]=˽}xyxyGxGyxy'x'yxygxgyxyxyxyWxWyћ[ۼ;ӻ{|Ї|G||'|ҧ|g|||ї|W||7|ӷ|w||ЏO/үoџ_?ӿ; B0A \>@@ D "(A Z= b8A ^?H$ $A`6Zmvmٶڲm۶%Cr@JBj4HtH ȈLȌ,ȊlȎȉ\ȍ<ȋ|ȏQQEQ Q%Q +QeQQQ QUQ Q5Q QuQ M - +m ] = }  0 (8L$LL4L ,<,",,2, +?XXX؀؄6c bcvbvcbNN .. +nn ^^ >> ~~3C2C3 23#2#$E3`Fe4Fg d,fe!1)9_%_5-=?#?3+;'B(B)()"(") JEQTEStPLRlQ\S|%PB%Rb%QR%SrPJRj4JtJ ʨLʬ,ʪlʮʩ\ʭ<ʫ|ʯSUHUDEULUB%UJUFeUNUAUIUEUUMUC5UKUGuUO@ HDMLB-JFmNAIE]MC=KG}O  0 (8M$MM4M ,<-"--2- +?ZZZڠڤ6kjkvjvkj눎꘎NN..늮ꚮnn뉞Ꙟ^^>>닾꛾~~;C:C;:;#:#e;pGu4Gw t,vu`!a1`)a9V`%Va5`-a=6`#6a3`+a;v`'va7`/a? 0(8N$N4,<.".2*:n&n6.>!1)9^%^5-=>#>3+;~'~7C0$C140,1<#0"#120*1:AR4`Lbla\c|&`B&bb&Iə)i陁Yٙ9y 0(8K$K4˰,˱<+"+2*:k&k6.>!1)9[%[5۰-۱=;#;3+;{'{7/? 0(?8q'r's +rsgrgsrsrs rsWrWs rs7r7s rswrwsrOO // +oo __ ?? +B*B+*+"*"+* $+P T,VU>鳾諾~~C8C989#8#989aZpLrlq\s|'pB'rb'Iɝ)ʩiəYٝ9˹y KK˸˹++kk븮빾[[۸۹;;{{ 0(?!1)9^%^5-=>#>3+;~'~7C0$C140,1<#0"#120*1:c0&c16AR4a\c|&`B&bb&aR&cr`Jbj4LtL L,l\<|YYEYY%YYeYYYYUYY5YYuYـ ولMٌق-ينmَفىم]ٍك=ًه}ُ 0(8N$NN4N ,<."..2. +?\Ws rs7r7s rswrwsrOO // +oo __ ?? +B*B+*+"*"+*+b*b $+PU>鳾諾~~C8C989#8#989c8c9aZq\s|'pB'rb'qR'srpJrj4NtN L,l\<|]ȅ]E]]%]ʥ]e]]]ɕ]U]]5]˵]u] ȍM-ʭmɝ]=˽} 0(8O$OO4O ,</"//2/ +?^W{z{7z7{z{wzw{zOO//oo__??!A t& A r%D 1A vA'  A q`]˶mXmsiٶm6w$HdHHTi Y ّ9 y + +0(8J$J4ʠ,ʡ<*"*2*oTG D-FE=G4D#4F4E34G D+FE;GtD'tFtE7tGD/FE?񘀉ɘ阁٘XXXXXkac6b6c bcvbvcbNN .. +nn ^^ >> ~~3C2C3 23#2#3 +23c2c32$E3`&d"&L¤LLL?i阞Y٘9y  KK ˲˳++ +fu`Mbma]c}6`C6bc6aS6cs`Kbka[c{v`GvbgvaWvcw`Oboa_?A!aQ1q I)iY9y\E\%\e\+kq=7p#7q3p+q;wp'wq7p/q? 0(8O$O4,!1)9_%_5-=?#?3+;'B(B)()"(")()b(b)() J%PB%Rb$JdJJTSFiNAIEYMٕC9KGyO + +JJʨʩ**oUW T-VU=W5T#5V5U35W T+VU;WuT'uVuU7uWT/VU?񚠉ɚ隡ٚZZZZZRZkVik6j6kjkvjvkj눎꘎NN..늮ꚮnn뉞Ꙟ^^>>닾꛾~~;C:C;:;#:#;:;c:c;:e;p't"'NNNN?iљYٜ9ӹy KK˺˻++vupMrmq]s}7pC7rc7qS7sspKrkq[s{wpGwrgwqWwswpOroq_?A!aQ1q I)iY9y^E^%^e^+ʫky7x7yxywxwyxyOO//oo__??w" +BaA |!D +"QA z# +bqA ~A H$ +@m<ܲe۶m..6k˶m۶wI ɑ) + -!=2 #2!3 +!;r 'r!7 /!? + +0DE1G D)FE9GTD%TFTE5TG D-FE=G4D#4F4E34G D+FE;GtD'tFtE7tGD/FE?_0#00c0000S00300s00 K˰+`Vc bc6b،-؊m؎؉]؍=؋}؏8C8#8c88S838s8 K+k[;{xGx'xgxxWx7xwxO/o_ P 0 p H(hX8xLDLL̀Iɘ)0 233233 23s2s32  OaQcq`IbiaYcyV`EVbeVaUVcu`Mbma]c}6`C6bc6aS6cs`Kbka[c{v`GvbgvaWvcw`Oboa_cA!ʿ99#99c9999S99399s9 K˹+Wq5p-q=7p#7_­ý<<<£<<<<ó<˼«ۼû|||§||||÷|¯ + + + +Ȋ芡؊JJĂ( +DILɕB)J()2(2)()r(r)() + +TU1W T)VU9WUT%UVUU5UW T-VU=W5T#5V5U35W T+VU;WuT'uVuU7uWT/VU?_[4\#4R4Zc4V4^4Q4YS4U4]34S4[s4W4_ PXKT˴\+RhVkjk6jڬ-ڪmڮک]ڭ=ګ}گ:C:#:c::S:3:s: K+k[;{zGz'zgzzWz7zwzO/o_P0pH(hX8xNDNlIɜ)ҩ8:;3:3;:;s:s;: OqQsqpIriqYsyWpEWreWqUWsupMrmq]s}7pC7rc7qS7sspKrkq[s{wpGwrgwqWwswpOroq_sA!==#=ʣ=c===ɓ=S==3=˳=s= ȋK˽+Wyxy7x7_>>>>>>>>˾⫾᛾۾㻾~~~~~~~~A d* A b)D тA f+ A a(H `A?A@0[om۶k˶m۶m !9R %R!5 -!=2 #2!3 +!;r 'r!7 /oGD!FE1G D)FE9GTD%TFTE5TG D-FE=G4D#4F4E34G D+FE;GtD'tFtE7tGD/F?00C00#00c0000S00300s00 a bcVbVc bc6b6c bcvbvcbNN .. +nn ^^ >> ~~3C2C3 23#2#3 +23cX8xLDL$LJ̀3S2S3 233233 23s2s32f~`AbaaQcq`IbiaYcyV`EVbeVaUVcu`Mbma]c}6`C6bc6aS6cs`Kbka[c{v`GvbgvaWvcw`Oboa_ُ999C99#99c9999S99399s9 p)q9Wp%Wq5p-q=7p#7q3p+q;wp'wq7p/q? 0(8O$O4,!1)9_%_5-=?#?3+;'B(B)()"(")()b(П؊JJJ( +L)R(R)()2(2)()r(r)(oWT!VU1W T)VU9WUT%UVUU5UW T-VU=W5T#5V5U35W T+VU;WuT'uVuU7uWT/V?W_4P4XC4T4\#4R4Zc4V4^4Q4YS4U4]34S4[s4W4_ PXijkVjVkjk6j6kjkvjvkj눎꘎NN..늮ꚮnn뉞Ꙟ^^>>닾꛾~~;C:C;:;#:#;:;cX8xNDN$Nj;S:S;:;3:3;:;s:s;:v~pAraqQsqpIriqYsyWpEWreWqUWsupMrmq]s}7pC7rc7qS7sspKrkq[s{wpGwrgwqWwswpOroq_==ȃ=C==#=ʣ=c===ɓ=S==3=˳=s= ȋxyWxWyxy7x7yxywxwyxyOO//oo__??w" +BaA |!D +"QA z# +bqA ~ H$ +IWපj9{ɶmۮζm۶kmaVC=OD!@08xEPP%PPePPPPUPP5PPuPP M-m]=}0P!D#1E⑀D P pHhXxLDLdLTLtLl\|,B,b,R,rJjZzlFlflVlvNn^~AaQqIiY's|/qppWpuM7{ng{xGx'x_wx??xWx-=~ȤLLi1233233 23s2s32  $=",b,,R,2,r, +J*jZ:zlFl&lfllVl6lvlN.n^>~A a(F22L`"p(q8Gp$Gq4p,q<'p"'q2p*q:gp&gq6p.q>p!q1p)q9Wp%Wq5p-q=7p#7q3p+q;wp'wq7p/q? 0(8O$O4,~9< K+k_:o&o~=yw3=>#>>;s+o>H||$ ɃA U:H|  A S9d B ," *D1Al Ae,ղYva9-ЇJdJJJF+)2(2)()r(r)() + + *K******򪠊ʪꪡڪjjjjjjjjꠎꢮꡞꣾ*LP4XъQ%jjkFjFkjk&j&kjkfjfkjkjkjkVjVkjk6j6kjkvjvkj눎꘎NN>ѧL }󺠋˺?AEtm{ߛmv[ͬVm{l۶9x8NSt8Άs|.Krkzn[v{~xGqxgyx^Wuxކw}>OsH(hX8xHDH$HdHHTH4HtH ȈLȌ,ȊlȎȉ \ȍ<ȋ|ȏ(B("(b((R(2(r( +J*jZ:zhFh&hfhhV +_E;GtD'tFtE7tG|}0=~! ?c(a8F`$Fa4`,a<&`"&a2`*a:f`&fa6`.a>`!a1`)a9V`%VX;bc6b6c bc؉]؍=؋} qqpGpp'ppgppppWpp7ppwppO/o_Q1q Iə)i陁Yٙ9љyYYYEYY%YYeYYYYUYY5YYuYـ ولMٌق-ي_5k~öl®o{{sr9?g0(8N$NN4N ,<."..2. +*_kZznFnfnVnv;{q? oOO // +oo __ ??"(")()b(b)()()()R(R)()2(2)()r( J2r)() + +JJʨʩ**jjꨮꩾZZ+V}oV^QY]U]=SORoQ_S @ A?j'񚠉ɚ隡ٚZZZZZZ_Vk~ZuZ ڨMڬ-ڪmڮCjvih/!aQqIiYy]E]e]U]uMm]}=C=c=S=sKk[{}G}g}"YdbQ-EbYlcq-ŷYbKbI-%RYjKci- 2YfbY-eӂh23\X^gBV؊XQ+fv̎ ;i총vh]vͮ iݱv{h=̞ {i쵽h}#ydQ=Gcylq=ybOI='SyjOi= 3yfY=gӃrs\x^B^؋xQ/ŽR^xY/彂WJ^٫xUսZ^x]7F؛xSoͽV?A0~؆ml۶m۶m۶mvgY}k` 5&ԚYska-6Y{`u.պYwa=>Y`m !6Ԇpa#m16x`mM)6զta3mͶ96|[` m-%Ԗr[a+m5z`mm-նva;m=~;`#vԎq;a'픝3vy`]+vծua7ݶ;v}{`='Ԟs{a/핽7{`}/վwa??Ȉ舁؈HHH ɐ)iYA!;r 'r!7?ȃȇ( +JJ ʢʣ** +jj ZZ ڢڣ:: zzcbcbcFbFc bc&b&c +bcfbfcbcbc bcVbVc bc6b6c bcvbvcbNN .. +nn ^^ >> ~~㏇C{`C}>GhcaQ1q ؘؐMؔ؜-ؚؒmؖ؞ؙؑ]ؕ؝=ؓ؛}ؗ؟88C88#88c8888S88388s88 K˸+k븞[۸;{xxGxx'xxgxxxxWxx7xxwxxO/o_?B!JFaNAIEQMC1KGqO@ HDI)R(R)()2(2)(LeSvPNRnGyOU@S!VU1W T)VU9WUT%UVUU5UW T-VU=W5T#5V5U35W T+VU;WuT'uVuU7uWT/VU?  0 (8M$MM4M ,<-"--2- +*:m&mm6m.>!1 )9]%]]5] -==#==3= +;}'}}7}/֟ D2apA B1DQhA F3qxA A0H$I':(fZ2~\lƲmK˶m۶;$E2$G +D*FE:ǟȀȄȂȆȁ y + +0(8J$J4ʠ,ʡ<*"*2*oTG D-FE=G4D#4F4E34G D+FE;GtD'tFtE7tGD/FE?񘀉ɘ阁٘XXXXXkac6b6c bcvbvcbNN .. +nn ^^ >> ~~3C2C3 23#2#3 +23c2c32323 `R&cr`JbjaZcz L,lÌy  KK ˲˳++ +fu`Mbma]c}6`C6bc6aS6cs`Kbka[c{v`GvbgvaWvcw`Oboa_?A!aQ1q I)iY9y\E\%\e\+kq=7p#7q3p+q;wp'wq7p/q? 0(8O$O4,!1)9_%_5-=?#?3+;'B(B)()"(")()b(b)()()%U2%W +T*VU:ןʠʤʢʦʡ( +KGyO + +JJʨʩ**oUW T-VU=W5T#5V5U35W T+VU;WuT'uVuU7uWT/VU?񚠉ɚ隡ٚZZZZZRZkVik6j6kjkvjvkj눎꘎NN..늮ꚮnn뉞Ꙟ^^>>닾꛾~~;C:C;:;#:#;:;c:c;:;:;pR'srpJrjqZsz L,liy KK˺˻++vupMrmq]s}7pC7rc7qS7sspKrkq[s{wpGwrgwqWwswpOroq_?A!aQ1q I)iY9y^E^%^e^+ʫky7x7yxywxwyxyOO//oo__??w" +BaA |!D +"QA z# +bqA ~ H$ +I  +ٶekֲmlҲm۶m.)!9R %R!5 -!=2dD&dFdE6dGD.FE>`ȏQQEQ Q%Q +QeQQQ QUQ j&j6.>!1)9Z%Z5ڠ-ڡ=:#:3+;z'z7/o񘀉ɘ阁٘XXXXXkac6b6c bcvbvcbNN .. +nn ^^ >> ~~3C2C3 23#2#3 +23c2c32323 23S2S3 23`FfbffaVfcv`Nbna^#Hf,?YXEXX%XXeXXXXUXXkk [[ ۲۳;; {{?A!aQ1q I)iY9y\E\%\e\+kq=7p#7q3p+q;wp'wq7p/q? 0(8O$O4,!1)9_%_5-=?#?3+;'B(B)()"(")()b(b)()()()R(R)()2eT&eVeU6eWT.VU>AdʯSUHUDEULUB%UJUFeUNUAUIUEUUMjjꨮꩾZZڨک::zzo񚠉ɚ隡ٚZZZZZRZkVik6j6kjkvjvkj눎꘎NN..늮ꚮnn뉞Ꙟ^^>>닾꛾~~;C:C;:;#:#;:;c:c;:;:;:;S:S;:;pFgrfgqVgsvpNrnq^3Lv.?]Ѕ\E\\%\ҥ\e\\\ѕ\U\\kk뺞뻁[[ۺۻ;;{{?A!aQ1q I)iY9y^E^%^e^+ʫky7x7yxywxwyxyOO//oo__??w" +BaA |!D +"QA z# +bqA ~ H$ +I':(Z6mge۶lvkٶm۶# "#R"R# "#2"2# "#r"r#" + #@!FE1G D)FE9GTD%TFT_ꨁڨhhhhhhhh耎肮聞胾臿cbcbcFbFc bc&b&c +bcfbfcbcbc bcVbj5XuX ؈M،-؊m؎؉]؍=؋}؏8C8#8c88S838s8 K+k[;{xGx'xgxxWx7xwxO/o_ P 0 p Q1q 210)19S0%S150-1=30#3130+1;s0's170/1? AR4baaQcq`IbiaYcyV`EVbeVaUjZ:zlFl&lfllVl6lvlN.n^>~?p q0p(q8Gp$Gq4p,q<'p"'q2p*q:gp&gq6p.q>p!q1p)q9Wp%W_\õ\­ý<<<£<<<<ó<˼«ۼû|||§||||÷|¯ + + + +?QYQU]1S[qW_ P+*+R*R+*+2*2+*+r*r+* + +$+P!VU1W T)VU9WUT%UVU_ꪡڪjjjjjjjjꠎꢮꡞꣾ꧿kjkjkFjFkjk&j&kjkfjfkjkjkjkVjj5ZuZ ڨMڬ-ڪmڮک]ڭ=ګ}گ:C:#:c::S:3:s: K+k[;{zGz'zgzzWz7zwzO/o_P0pɑQ1˱q :89S8S989383989s8s989 aZraqQsqpIriqYsyWpEWreWqUjZ:znFn&nfnnVn6nvnN.n^>~xyxyGxGyxy'x'yxygxgyxyxyxyWxW_^^>>>>>>>>˾⫾᛾۾㻾~~~~~~~~A d* A b)D тA f+ A a( x۶m{{m۶mnc۶m;L$E2$G +D*FE:GdD&dFdE6dGD.FE>GD!FE1`@(R(2(r( +J*jZ:zhFh&hfhhVh6hvhN.n^>~A!aQ1q I)iY9yXEX%XeX c%Va5`-a=6`#6a3`+a;v`'va7`/a? 0(8N$N4,<.".2*:n&n6wppO/o_?,PXX g-EH٢XTf-ŴXX\g-%DؒXRKf-TXZKg-eLٲXVf-\X^gBV؊XQ+f fMVJZ)+meV*Z%lUUVjZ-muճZ#klM5ZZ+kmm:Z'l]uzZ/m}6 lCl 6F(mcl6&$lSlM w{A0x<OgE2xowC1|_oG30C2C3 23#2#3 +23c2c32323 23S2S3 233233 23s2s32  4$Eg d)fe9gVd%VfVe5Vg d-fe=g6d#6f6e36g d+fe;gvd'vfve7vgd/fe? 0(8N$NN4N ,<."..2. +ſk븞[۸;{xxGxx'xxgxxxxWxx7xx_;{|G|'|g||W|7|w|O/o_? + + + +Ȋ芡؊JJJJJJJJʠʤʢʦʡʥʣʧ****L(UB%UJUFeUNUAUIUEUUMUC5UKUGuUO@ HDMLB-JFmNAIE]MC=KG}O5@5H5DC5L5B#5J5Fc5N5A5I5ES5M5C35K5Gs5O@ HDKL˵Bo*:m&mm6m.>!1 )9]%]]5] -cylq=ybOI='SyjOi= 3yfY=gsyny=^ ya/Ewyt{ /饼^{蕼W^ͫ{ 鵼^{o荼7̛{ o魼{蝼wͻ{齼|>̇|>|O>ͧ |ٶmޮͶmcm۶m6ilͱ6[hl-̖ +[ilhlmͶil;hv̎ ;i총vh]vͮ iݱv{h=̞ {i쵽h};i!aQ1q Iɐ)iYِ9yPPEPP%PPe`QPPPUPP5PPuPP M-m]=}00C00#00c0D111 1S1 131 1s1 K ˱+ +k [ ۱; {qqqGq q'q +qgqqq qWq q7q qwqO / +o _ ? !aQ1q Iɘ)i阞Y٘9yXXEXX%XXehIYXXXUXX5XXuXX ؘؐMؔ؜-ؚؒmؖ؞ؙؑ]ؕ؝=ؓ؛}ؗ؟88C88#88c8 d9999S99399s9 K˹+k빁[۹;{yyyGyy'yygyyyyWyy7yywyO/o_?O!RZaV^QYQU]1S[qW_ PXITɔ\)RZiV^QYYUٔ]9S[yW_TPTXETTT\%TRTZed(UVT^TQTYUTUT]5TST[uTWT_ PXMT\-RZmV^QY]U]=S[}W_4P4XC4T4\#4R4Zc4V +T5N5A5I5ES5M5C35K5Gs5O@ HDKL˵B+JFkNAIE[M۵C;KG{Ou@uHuDGuLuB'uJuFguNuAuIuEWuMuC7uKuGwuO@HDOLB/JFoNAIE_MC?KGCxH=p#xD=GhcxL=xxBO='dSxJO=t3xF=glsxN=| xA/䅽b^KxI/好r^{蕼W^ͫ{ 鵼^{o荼7̛{ o魼{蝼wͻ{齼|>̇|>|O>ͧ@`m۶˶ml۶m۶m̰6fkl-[jlV[klm6jlvklv;j츝vN;k]v.jݰvnk={j칽^{k}>j~k! +a Q 1 q I ɑ) +i Y ّ9 yQQQEQ Q%Q +Q(r(@ +J*jZ:zhFh&hfhhVh6hvhN.n^>~A!aQ1D1000S00300s00 K˰+k[۰;{ppGpp'ppgppppWpp7ppwppO/o_?!aQ1q Iə)i陁Yٙ9yYYYEYY%YY,r,O#H +J*jZ:zlFl&lfllVl6lvlN.n^>~A!aQ1 d9888S88388s88 K˸+k븞[۸;{xxGxx'xxgxxxxWxx7xxwxxO/o_?B!JFaNAIEQMC1KGqO@ HDILɕB)JFiNAIEYMٕC9KGyOU@UHUDEULUB%UJUF*r*/DI +J*jZ:zjFj&jfjjVj6jvjN.n^>~A!aQ1 +T5V4^4Q4YS4U4]34S4[s4W4_ PXKT˴\+RZkV^QY[U۴];S[{W_tPtXGtTt\'tRtZgtVt^tQtYWtUt]7tSt[wtWt_PXOT\/RZoV^QY_U]?S[Ẇ|@`|O>'|@`6?۶m^m۶϶m۶m[36fYͶ96|[` m-%Ԗr[a+m5z`mm-նva;m=~;`#vԎq;a'픝3vy`]+vծua7ݶ;v}{`='Ԟs{a/핽7{`}/վwa??!B"B# "#"""# +"#b"q Iɐ)iYِ9yPPEPP%PPePPP@ʨꨁڨhhhhhhhh耎肮聞胾񘀉ɘ ,c6`.a>`!a1`)a9V`%Va5`-a=6`#6a3`+a;v`'va7`/a? 0(8N$N4,<.".2*:n&n6.>!1)9^%^5-=>#>3+;~'~7/1C2C3 23#2#3 +23c2q Iɘ)i阞Y٘9yXXEXX%XXeXXXD#Hʬªڬúlll¦llllöl®þ¡ñɜ© ,s6p.q>p!q1p)q9Wp%Wq5p-q=7p#7q3p+q;wp'wq7p/q? 0(8O$O4,!1)9_%_5-=?#?3+;'7/)B*B+*+"*"+*+b*@[qW_ PXITɔ\)RZiV^QYYUٔ]9S[yW_TPTXETTT\%TRTZeTVT^TQ$DIʪꪡڪjjjjjjjjꠎꢮꡞꣾ񚠉ɚ + ,khihihiVhVihi6h6ihivhvihi鰎討NN..鲮誮nn鱞詞^^>>鳾諾~~y<{y}!>ԇp#}1>x}O)>էt`ٶٶOm۶nm۶m۶lͲ`mslͳ"[lKl-V*[mkl6&l[lmv.m{lv!;lGvN);mg쬝v.%lW]vn-mwݳ#{lO=^+{mo쭽>'l_}~/mCD(FE8GDD$DFDE4DG D,FE!1)9Z%Z5ڠ-ڡ=:#:3+;z'z7/?` a0`(a8F`$Fa4`,a<&`"&a2`*a:f AYl\|,B,b,R,rJjZzlFlflVlvNn^~AaQqIiYy\E\e\U\uMm]}!1)9[%[5۰-۱=;#;3+;{'{7/?p q0p(q8Gp$Gq4p,q<'p"'q2p*q:g0AY l\|.B.b.R.rJjZznFnfnVnvNn^~AaQqIiYy^E^e^U^uMm]}>C>c>S>sKk[{~G~g~W~wOo_ST(VU8WET$EVEU4EW T,VUć0#|>8|O>ŧ43g_ !K|fhhVh ڠ-wh耎? zG z7/~E?O1`0񘀉ɘ阁٘XXX,2Db9V ++UX5XuX ؈M،-؊m؎؉]؍=؋}؏8C8#8c88S838s8 K+k[;{xGx'xgxxWx7xwx،øLLL¤LLLLôL¬ü,,,¢,,,,ò,ď1+ +?au~X5Y9`e=g6d#6f6 b؜-ؚؒ_a[~؎فى=`ve7vg?boa_~?7r`8C99#99c9999S99399s9 \er`W2k븞[۸;{xxGxx'xxgxxxxWxx7xxwxxO/oC1KGqO@ HDILɕB)JFiNAIEYMٕC9KGyOU@UHUDEULUB%UJUFeUNUAUIcUVUU5}Tjjs}:zjFj&j* /ZZ7jVߩګ::{.n~/ꣾU~W?o WijkFjFkjk&j&kjkfjfkjkjk"TZ(TVihi6h6ihivhvihi鰎討NN|aDFaLƅaB&aJaFfaNaAXaIKò!* aUXքa]X'(\[V-rr̭-l˶l[Zm Î3 +Þ7 Áp0 +Ñp4 Ép2 +Ùp6 ?p!\ p%kzn[v{~xGqxgyx^Wuxކw}>O3" DD$DFDE4|舁؈ +_#AB$Bb$AR$Cr@JBjAZCzd@F| #+!;r 'r!7 /~@>GD!Fŏ(((((򨀊ʨ P5PPuPQ M-3~Akm ] = FE?  0 (8L$LL4L ٘XXXXXXXX؀ c6c bcvbvcbNN  K+Wq q7q qwqO / +o _0"#120*KFg d,fe~A!aQ1q I)i3=˳=s= ȋK˽+ʫk&oo x +ZlZ !{nٶVC[lnv [ְ-l;ΰ+{ް/p(Gp,'p*gp.p)\Wp-\7_n;nax'ixex^7mxއc>#"""# +"#b"b#"#"# @R$Cr@JBjAZCzd@FdBfdAVdCv|ȉ\ȍ<ȋ|ȏ(B(" +EQ Q%Q +5ʠ,ʡ<*"*2*:j&j6.>A4ķhM-mtAWtCw@OBoA_C @A!aQ1q I)iY9yX3a1`)a9VXX l&lƿ؂؆؁؅؃؇88888888󸀋˸븁pwppO/oQ1q I23S2S3 233233 2K`Nbna^c~`AbaW,b,,R,ͯYeYYYYUYY5YYuY !e#~l¦l@lllöl? {{sG`PpHhXxNDNdNTNtLl\|.BğK˹W*o\O p#7q3n6n.>!1 )9^%^^5^ ۼû|||§||||÷|ϊȊ芡؊JJJ/Tɔ\)RZiV^QYYUٔ]_*r*r+* + +RQSqPIRi}2*r* +J*jZ:zo@ ;5V5U3Ad5W T+VU;WuT'uA]U]=S[}W_4P?jkjkFjFkjk&j&kjkfjfkjk'EZ%ZeZEjVih~:C/mGIhivhvihi鰎討NN..鲮誮n-==#==3= +;}'}vGt$GvGu4Gw t,vu\åW?j_nNAxIxEx^MxޅC>ψȈ舁؈HHHH)iYِ_"r"r#+ȏ(B("(b((RQeQQQ QUQ Q5Q QuQ -1)9Z%Z5B0ڠ-ڡ=:;tD'tFtE7tGD/FE? |0C00#00c0000S00300s00 K˰+k#'uX_ [ ۱; {qq+(8~88 .e\Wq q?-=<#<<3< +;|'|fFd$FfFe4Fg d,fe!1)9_%_5-=?#?"(")()b(b)()()()P +T*VU:WeT&eVeU6eחʡʥʣJ + +JQiQYSyUPEUReUQUUSuPMRmQ]S}5PC}Fj&jfjjVj 6jvjNIE]MC=KG}O5@5H  0 (8M$MM4M ,<-"--2- +*I?kmFmfmVmvNn^~Aa#:c:NNП::󺠋tYWU]uпO7uKuGwuO@HDOLB/JFoNAIɑQ1˱q ȉIS8S989383989tt.vW篝\Ѕ\E\\%\ҥK˺˻++kk뺞뻁c7qS7sspKrkôlq[s{wwN.n^>~A?xxyGxGyxy'x'yxygxgyxyxyxyWxWyGO޿x7z7{z{wzwO<aP̶m-e-ZƪвljY-Z^ma˶kwaO@8p$ [8~T8 gp.p).+OF7n[v{~xGqxgyx^Wuxކw}>O3" ""!2 *!:b &b!6 .!> !!1 )!9R %R!5 -!=2 #2!3 +!;r D.FE>Ǘ(PPEPP%PP_ ʢʣ** +jjAc4AS4Cs@KBkhvh ] = }11=`(a8F`$Fa4`,a<&`"&a2`*a:f`&fa6`.a>`!a1`)a9V`%Va5`-~:36b6c bcvbv^~Aa#8c8p)Ɵ88󸀋pW7U\u7q qwqO / +o Q1q Iə)i陁Yٙ_0's170/1?d~ł,,¢,,,eXXXXUXX5XXuXX ؐ  [[ e[c{hvwN.n^>~A9C99#99c9999S99399s9 K˹+kG[۸;prWQq$O49^%˼¿[;{|G|'|g||W|7|w|OH(hX8xJDJ$JdJJTJ4JtJ ʨLʬ,ʪlʮB9KGyO ++T!VU1W T)**򪠊ʪꪡڪjjoXMT\-RZmڪ+$SGuRguQWuSwPORoQ_S @ `}!aQ1q I)iY9yZEZ%ZeZZUZ5ZN?'ڤڢڦڡڥE{W_tPtXꈎ꘎7C'uJ../]tUt]7Mm]}=C=c=S=sKk[{}G}gGpDGrdGqTGstpLrlq\s|'pB'rb'qR'srpJrjqZszgpFgrfgqVgsv\<|/]_ KKvu9wWt%WvWu5Ww t-vu=w7t#nnnnno0-;;{{{z{PpHhXxODOdOTOtLl\|/B/b/R/rJjZu?y7go&oo6o.Vl2ljr-/,ҲU˶maGv?߰; {a_P8X8NT8΄\8.RZnV^QxYx^Uxބ]x>SH(hX8xHDH$I ɑ) +i_+GdD&dFdȆȁȅȃȇ((((((oPe-eQQQ QUQ Q5Q Qu#>!1)'4hhhh耎肮聞胾cbc~P pQ1q I)iY9yXEX%X? ˱+ +b5`-a=l&ll6l./vc?~AaQqIiYy\E\e\U\uMm]}gd!fe1g d)~,o,r, +J*jZ:Yـ ولMٌ?9f d+fe Hf;gvd'vfve7vgd/f/؟88CrsHhXxNDNdNTNtLl\|.B.b.Re\\Uk7p#7q3p+q;wp'wo{qOO // +oo __ ??+"*"+*+b*b+*+*+PR%SrPJRjQZӗJAIEY)r(r)() + +JJV}~PYSyUPEUReUQUUSuPMRmQ]zjFj&jfIZZڨ Jک::zz~ѯ4T4\#FjFkjk&j&kjkfjfkjkjk-rJҟZ5ZuZAIE[M۵C;KڣO_tPtXGtTt\'tRtZgtVt^tQtYWtUt]7tSt[wtWt_PXOT\/RZoV^QёQ1ӱq ЉI:;S:S;:WN L,ꯝٝ9˹y]]ȅ]E]]%]߸[˺˻++kkGs}7pC7rc7qS7On-ʭm Ӳɝ]=˽}u? =ңS/ _"2 *!:b &b!6 .!> !!1 )!9R %R!5 -!=2 #2!3 ++dGD.FE>GD!FE1G D)((򨀊ʨꨁڨ ;|Fh&hfhhVh6hvhN.n^>~#a0`(a8F`$Fa4`,a<&`"&a2`*a:f`&fa6`.a>`!~XXXX_+VbVc 7u/b6?lVlvNn^~AaQqIiYy\E\e\U\uMm]}~A@PpHhXxNDNdNTNtLlg_K~ů98 w?Gğ oO. +*ſZ\ M-m]=}~A`PpHhXxODOdOTOtLlg_K=< Ћwދ?G䟽oO/ +*Z^ M-m]=}>C>#>c>>S>3>s> K+k[;{~G~'~g~~W~7~w~O""GD-"zDl n۶m۶m[n۶m۶mv0pH(hX8xHDH$HdHHTH4HtH ȈLȌ,ȊlȎȉ\ȍ<ȋ|ȏ(B("(b((R(2(r( +J*jZ:zhFh&hfhhVh6hvhN.n^7/?` a0`(a8F`$Fa4`,a<&`"&a2`*a:f`&fa6`.a>`!a1`)a9V`%Va5`-a=6`#6a3`+a;v`'va7`/a? 0(8N$N4,<.".2*:n&n6.>!1)9^%^5-=>#>3+;~'~7/123C2C3 23#2#3 +23c2c32323 23S2S3 233233 23s2s32  KK ˲˳++ +kk [[ ۲۳;; {AR4>~A!aQ1q I)iY9y\E\%\e\\U\5\u\ M-m]=}>닾꛾~~ꟃ89C8C989#8#989c8c9898989S8S989383989s8s989 KK˸˹++kk븮빾[[۸۹;;{{e;ɞ⩞ᙞٞ㹞^^^^^^^^>>>>>>>>˾⫾᛾۾㻾~~~~~~~~O<@@˶m۶m۶ٶm۶m۶k 0pH(hX8xHDH$HdHHTH4HtH ȈLȌ,ȊlȎȉ\ȍ<ȋ|ȏ(B("(b((R(2(r( +J*jZ:zhFh&hfhhVh6hvhN.n^>~?` a0`(a8F`$Fa4`,a<&`"&a2`*a:f`&fa6`.a>`!a1`)a9V`%Va5`-a=6`#6a3`+a;v`'va7`/a? 0(8N$N4,<.".2*:n&n6.>!1)9^%^5-=>#>3+;~'~7/123C2C3 23#2#3 +23c2c32323 23S2S3 233233 23s2s32  KK ˲˳++ +kk [[ ۲۳;; {{AR4A!aQ1q I)iY9y\E\%\e\\U\5\u\ M-m]=}>닾꛾~~ꟃ89C8C989#8#989c8c9898989S8S989383989s8s989 KK˸˹++kk븮빾[[۸۹;;{{e;ɞ⩞ᙞٞ㹞^^^^^^^^>>>>>>>>˾⫾᛾۾㻾~~~~~~~~ x``v۶m۶mv۶m۶m۶FE8GDD$DFDE4DG D,FEGD!FE1G D)FE9GTD%TFTE5TG D-FE=G4D#4F4E34G D+FE;GtD'tFtE7tGD/FE? `0C00#00c0000S00300s00 K˰+k[۰;{ppGpp'ppgppppWpp7ppwppO/o_?A!aQ1q Iə)i陁Yٙ9yYYYEYY%YYeYYYYUYY5YYuYـ ولMٌق-ينmَفىم]ٍك=ًه}ُ99 )0(8N$NN4N ,<."..2. +*:n&nn6n.>!1 )9^%^^5^ -=>#>>3> +;~'~~7~/?QPSpPHRhQXSxEPDERdEQTEStPLRlQ\S|%PB%Rb%QR%SrPJRjQZSzePFeRfeQVeSvPNRnQ^S~PARaQQSqPIRiQYSyUPEUReUQUUSuPMRmQ]S}5PC5Rc5QS5SsPKRkQ[S{uPGuRguQWuSwPORoQ_S @ DIV@5DC5L5B#5J5Fc5N5A5I5ES5M5C35K5Gs5O@ HDKL˵B+JFkNAIE[M۵C;KG{Ou@uHuDGuLuB'uJuFguNuAuIuEWuMuC7uKuGwuO@HDOLB/JFoNAIE_MC?KGA!ҡaёQ1ӱq ЉIɜ)ҩiљYٜ9ӹy\Ѕ\E\\%\ҥ\e\\\ѕ\U\\5\ӵ\u\\ ЍM-ҭmѝ]=ӽ}<Ѓ Ӳ`PpHhXxODOdOTOtLl\|/B/b/R/rJjZzoFofoVovNn^~AaQqIiYy_E_e_U_uMm]}?C?c?S?sKk[{GgWwOo_     'ݶm۶m۶bm۶m۶$B# "#"""# +"#b"b#"#"# "#R"R# "#2"2# "#r"r#" + +JJ ʢʣ** +jj ZZ ڢڣ:: zzcbcbB0Q1q I)iY9yXEX%XeXXUX5XuX ؈M،-؊m؎؉]؍=؋}؏8C8#8c88S838s8 K+k[;{xGx'xgxxWx7xwxO/o_?   ð Ȍ¨،øLLL¤LLLLôL¬ü,,,¢,,,,ò,ʬªڬúlll¦llllöl®þ¡FsGrGs rs'r's +rsgrgsrsrs rsWrWs rs7r7s rswrwsrOO // +oo __ ?? ()B(B)()"(")()b(b)()()()R(R)()2(2)()r(r)() + +JJʨʩ**jjꨮꩾZZڨک::zzhih $+񚠉ɚ隡ٚZZZZZZZZڠڤڢڦڡڥڣڧ::::::::󺠋˺뺡ۺzzzzzzzz `P0pH(hX8xNDN$NdNNTN4NtN L,l\<|.B.".b..R.2.r. +J*jZ:znFn&nfnnVn6nvnN.n^>~A!aixGxGyxy'x'yxygxgyxyxyxyWxWyxy7x7yxywxwyxyOO//oo__??BB' e۶m۶mv>۶m۶m۵!B# "#"""# +"#b"b#"#"# "#R"R# "#2"2# "#r"r#" + +JJ ʢʣ** +jj ZZ ڢڣ:: zzcbcbcFbB01q I)iY9yXEX%XeXXUX5XuX ؈M،-؊m؎؉]؍=؋}؏8C8#8c88S838s8 K+k[;{xGx'xgxxWx7xwxO/o_?   ð Ȍ¨،øLLL¤LLLLôL¬ü,,,¢,,,,ò,ʬªڬúlll¦llllöl®þ¡EGs rs'r's +rsgrgsrsrs rsWrWs rs7r7s rswrwsrOO // +oo __ ?? ()B(B)()"(")()b(b)()()()R(R)()2(2)()r(r)() + +JJʨʩ**jjꨮꩾZZڨک::zzhihiFhF $+񚠉ɚ隡ٚZZZZZZZZڠڤڢڦڡڥڣڧ::::::::󺠋˺뺡ۺzzzzzzzz `P0pH(hX8xNDN$NdNNTN4NtN L,l\<|.B.".b..R.2.r. +J*jZ:znFn&nfnnVn6nvnN.n^>~A!aQixxy'x'yxygxgyxyxyxyWxWyxy7x7yxywxwyxyOO//oo__??Bl n۶m۶m۶ݶm۶mVaQ1q Iɐ)iYِ9yPPEPP%PPePPPPUPP5PPuPP M-m]=}00C00#00c0xLDLdLTLtLl\|,B,b,R,rJjZzlFlflVlvNn^~AaQqIiYy\E\e\U\uMm]}gd!fe1g d)fe9gVd%VfVe5Vg d-fe=g6d#6f6e36g d+fe;gvd'vfve7vgd/fe? 0(8h888S88388s88 K˸+k븞[۸;{xxGxx'xxgxxxxWxx7xxwxxO/o_?DALB!JFaNAIEQMC1KGqO@ HDILɕB)JFiNAIEYMٕC9KGyOU@UHUDEULUB%UJUFeUNUAUIUEUUMUC5UKUGuUO@ HDMLB-JFmNAIE]MC=KG}O5@5H5DC5L5B#5J5Fc5N%YM$MM4M ,<-"--2- +*:m&mm6m.>!1 )9]%]]5] -==#==3= +;}'}}7}/?qPsppHrhqXsxGpDGrdGqTGstpLrlq\s|'pB'rb'qR'srpJrjqZszgpFgrfgqVgsvpNrnq^s~pAraqQsqpIriqYsyWpEWreWqUWsupMrmq]s}7pC7rc7qS7sspKrkq[s{wpGwrgwqWwswpOroq_s@`PpHhX3Lv==ɓ=S==3=˳=s= ȋK˽+ʫkɛ[۽;˻{}}ȇ}G}}'}ʧ}g}}}ɗ}W}}7}˷}w}ȏO/ʯoɟ_?˿/$4,<?Am۶m۶m[n۶m۶m'P0pH(hX8xHDH$HdHHTH4HtH ȈLȌ,ȊlȎȉ\ȍ<ȋ|ȏ(B("(b((R(2(r( +J*jZ:zhFh&hfhhVh6hvhN.n^>~A!aQ1q I`2`*a:f`&fa6`.a>`!a1`)a9V`%Va5`-a=6`#6a3`+a;v`'va7`/a? 0(8N$N4,<.".2*:n&n6.>!1)9^%^5-=>#>3+;~'~7/123C2C3 23#2#3 +23c2c32323 23S2S3 233233 23s2s32  KK ˲˳++ +kk [[ ۲۳;; {{srsrsGrGs rs'rAR4)iY9y\E\%\e\\U\5\u\ M-m]=}>닾꛾~~ꟃ89C8C989#8#989c8c9898989S8S989383989s8s989 KK˸˹++kk븮빾[[۸۹;;{{xyxyGxGyxy'x'e;ɞ⩞ᙞٞ㹞^^^^^^^^>>>>>>>>˾⫾᛾۾㻾~~~~~~~~O<@̮e۶m۶m{Xm۶mۮP0pH(@TDCt@LBlA\C|$@B$Bb$AR$Cr@JBjAZCzd@FdBfdAVdCv@NBnA^C~@ABaAQCq@IBiAYCyT@ETBeTAUTCu@MBmA]C}4@C4Bc4AS4Cs@KBkA[C{t@GtBgtAWtCw@OBoA_C @ ` P pbFbFc bc&b&c +bB00300s00 K˰+k[۰;{ppGpp'ppgppppWpp7ppwppO/o_?!ahX8xLDL$LdLLTL4LtL L,l\<|,B,",b,,R,2,r, +J*jZ:zlFl&lfllVl6lvlN.n^>~A!a@HhXxNDNdNTN#Hfsgrgsrsrs rsWrWs rs7r7s rswrwsrOO // +oo __ ?? )B(B)()"(")(@QMC1KGqO@ HDILɕB)JFiNAIEYMٕC9KGyOU@UHUDEULUB%UJUFeUNUAUIUEUUMUC5UKUGuUO@ HDMLB-JFmNAIE]MC=KG}O5@5H5DC5LQ1q I)i( +tLl\|-B-b-R-rJjZzmFmfmVmvNn^~AaQqIiYy]E]e]U]uMm]}=C=c=S=sKk[{}G}g}W}wOo_s0wt(vu8wGt$Gv89c8c9898989S8S989383989s8s989 KK˸˹++kk븮빾[[۸۹;;{{xyxy=#=ʣ=c===ɓ=S=0-AY9y^E^%^e^^U^5^u^ M-m]=}>C>#>c>>S>3>s> K+k[;{~G~'~g~~W~7~w~O/o_?A + x ]˶m۶mXm۶mۺC(FE8GDD$DF *!:b &b!6 .!> !!1 )!9R %R!5 -!=2 #2!3 +!;r 'r!7 /!? + +0(8J$J4ʠ,ʡ<*"*2*:j&j6.>!1)9Z%Z5ڠ-ڡ=:#:3+;z'z7/?` a0`(a81#1 +1c111 1S1 131 !A9yXEX%XeXXUX5XuX ؈M،-؊m؎؉]؍=؋}؏8C8#8c88S838s8 K+k[;{xGx'xgxxWx7xwxO/o_? ð ȌFe4Fg d,fegd!fe1g d)fe9gVd%VfVe5Vg d-fe=g6d#6f6e36g d+fe;gvd'vfve7vgd/fe? 0g Gp$Gq4p,q<'p"'q2p*q:gp&g$E39s9 K˹+k빁[۹;{yyyGyy'yygyyyyWyy7yywyO/o_?O\!RZaV^QYQ芡؊JJJJJJJJʠʤʢʦʡʥʣʧ********򪠊ʪꪡڪjjjjjjjjꠎꢮꡞꣾ +(8M$MM4M ,AdihihihiVhVihi6h6ihivhvihi鰎討NN..鲮誮nn鱞詞^^>>鳾諾~~9;C:C;:;#:#;1ӱq ЉIɜ)ҩiљYٜ9ӹy\Ѕ\E\\%\ҥ\e\\\ѕ\U\\5\ӵ\u\\ ЍM-ҭmѝ]=ӽ}<Ѓ!1 )9_%__5_ -=?#??3? +;'7/`AB' fײm۶m۶ll۶m۶B"B# "#"""# +1q Iɐ)iYِ9yPPEPP%PPePPPPUPP5PPuPP M-m]=}00C00񘀉ɘ阁٘ ,",,2, +*:l&ll6l.>!1 )9\%\\5\ -=<#<<3< +;|'||7|/?cp`HbhaXcxF`DFbdFa23c2c32323 23S2S3 233233 23s2s32  KK ˲˳++ +kk [[ ۲۳;; {{srsr3#88c8888S88388s8\\\¥\\\\õ\­ý<<<£<<<<ó<˼«ۼû|||§||||÷|¯ÿ` + +P +0 +p +H( +PTEStPLRlQ\S|%PB%Rb%QR%SrPJRjQZSzePFeRfeQVeSvPNRnQ^S~PARaQQSqPIRiQYSyUPEUReUQUUSuPMRmQ]S}5PC5Rc5QS5SsPKRkQ[S{uPGuRguQWuSwPORoQ_S @ ` P pjFjFkjk&j&kjkfjfkj J4_ PXKT˴\+RZkV^QY[U۴];S[{W_tPtXGtTt\'tRtZgtVt^tQtYWtUt]7tSt[wtWt_PXOT\/RZoV^QY_U]?S[W!ʡaɑhX8xNDN$NdNNTN4NtN L,l\<|.B.".b..R.2.r. +J*jZ:znFn&nfnnVn6nvnN.n^>~A!a@HhXxODOdOTOtLl\3Lv{z{z{WzW{z{7z7{z{wzw{zOO//oo__??_PA!Akٶm۶m^]e۶m۶! +a hX8xHDH$HdHHTH4HtH ȈLȌ,ȊlȎȉ\ȍ<ȋ|ȏ(B("(b((R(2(r( +J*jZ:zhFh&hfhhVh6hvhN.n^>~A!a@HhXxLDLdLTLtLl\|,B,@Fc bcVbVc bc6b6c bcvbvcbNN .. +nn ^^ >> ~~18C0$C140,1<#0"#120Q1q Iə)i陁Yٙ9yYYYEYY%YYeYYYYUYY5YYuYـ ولMٌق-ينmَفىم]ٍك=ًه}ُ999C9Q1q I)iY9y\EI b.R.rJjZznFnfnVnvNn^~AaQqIiYy^E^e^U^uMm]}>C>c>S>sKk[{~G~g~W~wOo_S0WT(VU8WET$EV()b(b)()()()R(R)()2(2)()r(r)() + +JJʨʩ**jjꨮꩾZZڨک::zzhihi5B#5J5Fc5N5A5I5ES5M5C35K5Gs5O@ H%YAZ%ZeZZUZ5ZuZ ڨMڬ-ڪmڮک]ڭ=ګ}گ:C:#:c::S:3:s: K+k[;{zGz'zgzzWz7zwzO/o_?ȎGu4Gw t,vuwt!vu1w t)vu9wWt%WvWu5Ww t-vu=w7t#7v7u37w t+vu;wwt'wvwu7wwt/vu? 0wGxGyxy'x'yxygxgyxyxe;ȋK˽+ʫkɛ[۽;˻{}}ȇ}G}}'}ʧ}g}}}ɗ}W}}7}˷}w}ȏO/ʯoɟ_?˿/(XP`Zm۶m۶ml۶m]D(FE8GDD$DF *!:b &b!6 .!> !!1 )!9R %R!5 -!=2 #2!3 +!;r 'r!7 /!? + +0(8J$J4ʠ,ʡ<*"*2*:j&j6.>!1)9Z%Z5ڠ-ڡ=:#:3+;z'z7/?` a0`(a81#1 +1c111 1S1 131 1s1 K !AXXUX5XuX ؈M،-؊m؎؉]؍=؋}؏8C8#8c88S838s8 K+k[;{xGx'xgxxWx7xwxO/o_? ð ȌFe4Fg d,fegd!fe1g d)fe9gVd%VfVe5Vg d-fe=g6d#6f6e36g d+fe;gvd'vfve7vgd/fe? 0g Gp$Gq4p,q<'p"'q2p*q:gp&gq6p.q>p!q1p)$E3˹+k빁[۹;{yyyGyy'yygyyyyWyy7yywyO/o_?O\!RZaV^QYQ芡؊JJJJJJJJʠʤʢʦʡʥʣʧ********򪠊ʪꪡڪjjjjjjjjꠎꢮꡞꣾ +(8M$MM4M ,<-"--2AdiVhVihi6h6ihivhvihi鰎討NN..鲮誮nn鱞詞^^>>鳾諾~~9;C:C;:;#:#;1ӱq ЉIɜ)ҩiљYٜ9ӹy\Ѕ\E\\%\ҥ\e\\\ѕ\U\\5\ӵ\u\\ ЍM-ҭmѝ]=ӽ}<Ѓ!1 )9_%__5_ -=?#??3? +;'7/`AB Ͷnm۶mvmՖj͊[ 5ܶ|σ8xHDH$HdHHTH4HtH ȈLȌ,@VdCvD"r"r#" + +JJ ʢPPPUPP5PPuPP M-m]=}00C00#00c0000S00300s00 K˰+k[۰;{ ppGpp'ppgppppWpp}M|q qwqc<'xO>_k|oc'|O?_k~oc>S>s/?g_o|˿7c|b!N!AH!IH!EHR!MH҅!C2!KYC=D!grB_+}oz'zgzA?^'_^~C*ZoVѿO˱q ȉIɝ)ʩiəlHpNrnq^s~pAraqQsqpIriqYs˻++kk뺞뻁[[ۺۻ;;{{{z{z{GzG{z{'z'{z{gzg{z{z{z{WzW{z{7z7{z{wzw{e{OO//;#okDM߶km#Jֽ+/NtdtTL5!b-#'\/MkĿҳ1 ċpt[AQ\Y-tw&RnS n3*5*DyALOCE@5*<fgf cPf@P A(&Q*>Rulv+{LΏݪJ%E:߯SGs{4)RKNWsm{f# )eOBW@{Ѡ pg)/,پ{s||#q7Z0ޖ+!y(lmvm#;zkֲ<'Pap@!B!B!B!fǃ zDGw5+C.(c\ʽ*K@UDg ^ 6+LxyPU/ܹpĠ5iC<|VY2O{plyzUJ*Mplyq<m\};,8\vBW7bČu%+5h%sy\#t-li7c]\H\dwJRƎ!8R>;t1U*{*k&mmQ([xpii +G|ћYGU(14 ƣfwv{{c8Nj$h>i8UGkiconZQ/gkm?swNyMIbԫ7*ߌNSX815ߍ< O@}wƇ^]Ar']7:O DY\i?]ǏJM_-57Eu%!L0Zx^#NjTNl4zylmW3B!B!<2yKemԮ1Ng_\d[ѿz\R^gLmjmu{Eɩ8=|] 9ڵF6J<1vPx+CH̶}c*ײݾ6kh-7ԑbjp=U;yܗC@3M'>w=7.1TB oOHr߲ٕȜRV2GV_Zәv iaBo3X7!B0~׍md[VFfGƳҡ ֍M7B aW|)} $H9/?ء,2 dhuID԰y +aF~4A !B!B~2c>-ė& zZ S8E+&w/]G!!P9hVڤ5L'~cјDK%ga `5| lUPkeI8 +2!! I!U@&T83a$+zo>T}VYӪ@lKB:V~)^jM)_micalp;$B&ѩrF"a Nf\հM 8pLNCE BAEM!B!B!_AAphPxge7rz#xZr?e]*%{n3h.ȞY3`q!B!B!B!B!B!B!LUV;sWo{(潚֖v?!<E34{fzX:2iN]\Ji+mZC$BKەb/SljPzn-ݖ0*Z5`҄&M4j|DδǨ>''\.bc?'z^e@͵6uC {onr:fA2{6K<<{wdU7{]eqM."u} N&n}t=u'w!H E|j + h-*GIk"{y C1-(_ kDFGP5!<֝i~C=+L%i؁ȟ{D-L&o&9r  7ɹp t8s-ӑLK ,ic¾;v+-Dnjf:[gw;/}KJ'_u&7orQ|} 7*0^krVE@JrZ24 KhHŨ=LlLpQ[V\`Kbftƨm\BΌOşţzwZ}XV+(E54& +.~ + +A I9 fC= +Ig0l&3;sehVpbl :7ֿ=U,(o07=y,VX|E_Є&aPG4;J*#>/BS<>/Dest(figure-33)/F 4/Rect[65.905512 355.756868 109.581293 342.157259]/Subtype/Link/Type/Annot>> +endobj +806 0 obj +<>/BS<>/Dest(name-example-of-an-address-in-to)/F 4/Rect[115.040033 355.756868 414.376459 342.157259]/Subtype/Link/Type/Annot>> +endobj +807 0 obj +<>/BS<>/Dest(section-2.6)/F 4/Rect[65.905512 327.657259 95.494623 312.057259]/Subtype/Link/Type/Annot>> +endobj +808 0 obj +<>/BS<>/Dest(name-resource-properties)/F 4/Rect[95.494623 327.657259 218.559809 312.057259]/Subtype/Link/Type/Annot>> +endobj +809 0 obj +<>/BS<>/Dest(section-2.6.1)/F 4/Rect[65.905512 267.35804 99.092035 254.35804]/Subtype/Link/Type/Annot>> +endobj +810 0 obj +<>/BS<>/Dest(name-cryptokeys)/F 4/Rect[99.092035 267.35804 155.527338 254.35804]/Subtype/Link/Type/Annot>> +endobj +811 0 obj +<>/BS<>/Dest(resource)/F 4/Rect[274.557123 202.158821 318.073236 188.559212]/Subtype/Link/Type/Annot>> +endobj +812 0 obj +<>/BS<>/Dest(resource)/F 4/Rect[324.13183 202.158821 383.146723 188.559212]/Subtype/Link/Type/Annot>> +endobj +2495 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2494 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2493 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2492 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2491 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2490 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2489 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2488 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1830 0 obj +<>stream +xW[S7>$@`2սKaHm.Ng2NN6b{H:ߧsH9J#TN 朷F^'7 :v(Iв&5J2˹u6uV3W:[I~ODʧI`u=gwz-];KWB0ɕs2mh=9huюHߢcZBy"w ;w(3XlW.z4wN҇*wL2)J @-z 86Zql1 Zôz|^FXfI3̉07ILE/:?~5f9 n{@Q$a;EI//li3V (|'lGEq/(wY8愕8FapSxoSgv"-$7D!=\OĤ+x8g' -a\xfWXb~9;IELNBG +JRb(yIh>B_J`9rы1U09W6C4>ULh5Zc8k+ sZзv<-(03tq?Џxz?5Le%T/t suZ +hiB"v}0\U1c2@.&L4ǐٺ +QSHja}uaK$3Osr3&jmNȫγO"xpCh6:6$#C4ÞNjRFYtLph?u +V*h"&#۵r1X}6|)8/z!t6Yypy5D8(!hm%?BOHspV;8:~ 0G%2ŵgÍ^LUcP?ByPNHq'kD%P!!X3Ǵ'&5d5z8XP×Sb($$@?hR{O٣! >$7Clً|+ŮB]j . +endstream +endobj +1714 0 obj +<>/Font<>>> +endobj +800 0 obj +<>/BS<>/Dest(figure-32)/F 4/Rect[65.905512 581.289764 109.581293 567.690154]/Subtype/Link/Type/Annot>> +endobj +801 0 obj +<>/BS<>/Dest(name-example-of-an-address-in-tha)/F 4/Rect[115.040033 581.289764 276.613031 567.690154]/Subtype/Link/Type/Annot>> +endobj +802 0 obj +<>/BS<>/Dest(localizations)/F 4/Rect[346.674311 544.090545 405.689203 530.490936]/Subtype/Link/Type/Annot>> +endobj +2498 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2497 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2496 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1829 0 obj +<>stream +xZ[o Tq#;N|p+WsٹIbEQRbHڧ{r릠is;߹Ιc= +,3*Cn%v_l wZT.2M6gSGfr +cg >43aPd'>oXfzLoHpҭop +C?Š߻{_nɘzߘWRFgFICMQqQpizWGg=&2\C}KrF&dFF9EO9'}C,dyOpu\y$P-xƹP0~=Kr + fd `&dF^;O+hEc)pj94A@s m#@=&st mC_pS=U&4 +-"|<ʖ񼶂3Se! a17 X(#mzl ZGzG? +]dB  {kub,cSqٻTlX0ϊaNah|V| m;L瞍xus2W:\J:j | )hg14Uj} +cɎВ&(]+mO6AW JÞcc$YU^<Zi .a~}t+@i:+ +"jg|6ۜ#'!.3rg%b7NGȽ)A4B9AF^@gOɗ 'p'7~F;Ke\5I4|Nޠ>>AYq0*fp:sȤˆҜj)k |^t0gg5 +ղчY^ L譱42ø9}g]B [^#tZFKĵh}@N!3!.)i{`jj .Y-v#xܪDplAF` +JY<~sdm(=5gn;4.1#Qg󂅏~?FݾnpǍD>vlڛޔ SB'K晡dj nyEDO5d3G}M5w0NR8bz}L%bU bn{|!K/걬k]sCI,EYovjC&>w]+jS[4l3F+(8Ԕ1Yn0~OpcF!;|y`A߂^2&8nQk߇6%2/2MnH` +hZ^)=OpGAUl/W6ooD}%'``&-xx(eH@{wD<&Q#!4Ba`fI󺭬(F3Z8w93I^"3#D +,ǝs҂ZyӔfZjH#"μ,v?Je rQ}љa*]Nkuѓ(IN8pN~qUӒ<ׇXd?Ebv?"*ȐvQk<-V0_ Zd0UФL䬰_/4CtpZ-/ta˻qU<:+.`})jvU-<Ǻݐ3XĞ{oggFM~U+NQ5d~K͡,kʿq"5wߗ(.hj/}-3Em%DE3E e(,@K3- yb E|[:vl|3%J' 'UUr+θBF +3F-߾y,!1e!9KlKjqYF!틺9κH +endstream +endobj +1712 0 obj +<>/Font<>>> +endobj +793 0 obj +<>/BS<>/Dest(enumerated-values)/F 4/Rect[390.129877 771.389764 448.224115 757.790154]/Subtype/Link/Type/Annot>> +endobj +794 0 obj +<>/BS<>/Dest(enumerated-values)/F 4/Rect[454.282709 771.389764 513.297602 757.790154]/Subtype/Link/Type/Annot>> +endobj +795 0 obj +<>/BS<>/Dest(prop-phonetic)/F 4/Rect[140.2185 276.202264 199.233393 262.602654]/Subtype/Link/Type/Annot>> +endobj +796 0 obj +<>/BS<>/Dest(section-2.5.1.3)/F 4/Rect[65.905512 247.602654 107.621088 234.602654]/Subtype/Link/Type/Annot>> +endobj +797 0 obj +<>/BS<>/Dest(name-additional-address-examples)/F 4/Rect[107.621088 247.602654 256.92309 234.602654]/Subtype/Link/Type/Annot>> +endobj +2503 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2502 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2501 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2500 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2499 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1828 0 obj +<>stream +xY[sng\X6TxlP!GV"yu5 Tăl 򐟞{.;םYƞٹ9߹NxplS:Qߌߎe~ߎqgMb1l⬦J1t?wco;_sʒoC8jcS ]t:c>ϟuI̯dJږ^_=Z#Jp2%kqagqK8sTH/Kߌw'<pI# [dL% 3]<l 99%Ȕ}3#8ϋB9˴n. VB@YͫHm./2.{^6 #N *TݨIOvwq,FYdJ! s2 +?wT烜Ǒ>~XޒjnU="kZûph7@#x<]!{$n؆YqM&ԣRΣ9Uz~7iYQkfq), Zvhj֬r)) !#hw_ +<ɧbp4ܨGI4h w g`S[#pиpu蒄f2ͥNZ-8)e8%4’ gB72>ʬ~UvӞpU=<@ YKy՞W7pz֐V44p.5NԚ&2g͎uAoc^)EE[Ew0y-IE=C -) /P'Y)9L(yۑI/̯AY}ōPwE˻HbU7]Krcʓ:ydnT]Z4.ښ؊U1R]dE4w }U^m=s{7(:ꍱ?Y+)]qUk0OKGfކi123(qzB8m'Jio__N_&D^I I9:j;t(SGnE%ѬHc2׭p P٢ŋ̎Oڵ$RdHɽZ}SN$Ju.?jp3||Uiݍ~R + J{3"V{)=ɸpoPqa4,Zԯ0㐥Rl,CTu%z:4t9CqSOFgD?T(uqlP|M&wȏkA\8j d)?X_R[Y< @ Ȥ,J ~3tCQ&U8~"_ur)[-I*TJnS;d1SF8unXlqU|aڏw"2u\y˹e,An$wM.àd dc/ЫcHQj c J bx1eԈլ3Slb/h8^3ν8f `{Kȍ 4k1ſ6(ҶhQVa٢HwAiC"ZS^26`@q|Id +zUKtSߜvnB:ɩn!q}rQHtbmel8s`FPQM`O*ӆ&䨹• lAu2I +YH*7s4w&f;K7@Fw++5m+>uHQMh=Cp= ٌP`/|6ԵMSZ/`Y-򝗵3DMkq)( 0a +nLI-MZayhyf-ͱH( <&WPm6!Ca $R˨dq2F!XUwGq q};XoZVjĕԳJ'q8˫f[+R3>/Font<>>> +endobj +781 0 obj +<>/BS<>/Dest(addresscomponent)/F 4/Rect[348.830561 744.190545 442.070795 730.590936]/Subtype/Link/Type/Annot>> +endobj +782 0 obj +<>/BS<>/Dest(addresscomponent)/F 4/Rect[448.129389 744.190545 515.233881 730.590936]/Subtype/Link/Type/Annot>> +endobj +783 0 obj +<>/BS<>/Dest(prop-pref)/F 4/Rect[98.713617 681.792108 157.72851 668.192498]/Subtype/Link/Type/Annot>> +endobj +784 0 obj +<>/BS<>/Dest(prop-phonetic)/F 4/Rect[212.219233 646.592889 271.234125 632.993279]/Subtype/Link/Type/Annot>> +endobj +785 0 obj +<>/BS<>/Dest(prop-phonetic)/F 4/Rect[212.219233 611.39367 271.234125 597.794061]/Subtype/Link/Type/Annot>> +endobj +786 0 obj +<>/BS<>/Dest(address-examples)/F 4/Rect[292.1206 574.194451 359.225092 560.594842]/Subtype/Link/Type/Annot>> +endobj +787 0 obj +<>/BS<>/Dest(figure-31)/F 4/Rect[65.905512 306.919842 109.581293 293.320233]/Subtype/Link/Type/Annot>> +endobj +788 0 obj +<>/BS<>/Dest(name-example-of-an-address-in-th)/F 4/Rect[115.040033 306.919842 271.841303 293.320233]/Subtype/Link/Type/Annot>> +endobj +789 0 obj +<>/BS<>/Dest(section-2.5.1.2)/F 4/Rect[65.905512 278.320233 107.621088 265.320233]/Subtype/Link/Type/Annot>> +endobj +790 0 obj +<>/BS<>/Dest(name-addresscomponent-object)/F 4/Rect[107.621088 278.320233 242.407221 265.320233]/Subtype/Link/Type/Annot>> +endobj +2513 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2512 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2511 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2510 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2509 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2508 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2507 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2506 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2505 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2504 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1827 0 obj +<>stream +xZ[o^ T6_ +RdF)S-*mFb&9߹<|9S5jßt? qd(ZƬ#guJ>csG_yF5 /p.D7\ xaj_@GskkK(˻d6q._}݄(}ṿx\t_)ߨgSg17̥BzF\4įF?&νL=IYHΒU2O˫_ _l\\Z:dc6yL:*(Uryӳ|@vi >-~R|ٗϓdA9-Yy3¤ +f"HπsM]G |. ^WNp~3ϓ{ Vb2B-:!S[18\5QN&P))zifm~ z&R ÛZl\Sw"=Ά18ݡ2;*S~= /8谠O֥FXa7Uɐ(aP7jJLmጄ(6FaYCfB?$W;wFi$! }Dx腤DyejLmq4IVBõq=QCf}!NN:^Տ0-*L8zBt|B}[nN–Ea2ux,ܯ(OifNf={6uQ`23sP)3"yh:}CᒛJjKAC !aΧI#A=?xA!4x`$oC.Е)Z;O;Ȗ2\R4ҍjBlŜYo(FY J ޕj]0Yf*Z_mAɅ2x>&#?h9 )WpR2g^:XʜS>.sV;+Ci]>PcН[{ -*uK+4nj3t8 |ܿzr޸dhΊF 3ZG@qj̝s9U)M_v"5(k;NZE;9W1K[EM^PjoC +ɤ%e>QZSuTnjHyь,t}"ƹ K#N[*_E6s~.o~g9alΰIy9Mb uFsj?#͐g.i}q}V~߇=-/%μ;T3_AI 7&_ rUX}Dvto:U|6S[EQ(oV2T대{̼P'WXQrSs.7ƹn'cUݾ OjxȾ# D7kPVZR&&1ڪKfQ ssN6 +Lt޿0S%4E3K/&mt >,o2.r>*Kn*[ᤈD[I=6=Z{TG،3⳻(b+;qБK K1w$FQ9Q9 +:)D#e +OܷɸgٻWmLtL=H9E99H~,ˀYgQVe?W]"s4iRfP6^˲ ӾRVC -)=ʋcg5~a %]] +P6zb=n]޹ӆU55~7WEh "FOD`VGj4gEӬ0Kx8wVXÜvM)$E8_b00.De_^呣H"2,pԟ+YH 'cfWG*P :'DQ{U$y;![Q6řҦ9. mA|eJ1{/`|{Iث=9..[fl8/twY^oɉk)iyJ UuA+TtmN1m;]#,fWot{'CX6d2vW)߼ẋv&k$ܻVݒ + n7so-SH悚|(-{^dh˿՘@ٙYwoӈE l.sfhKIj%/veS#qct[,<ȸU @淒UwoP ȝ*9rc3! I pԋj/9maՏ*vќ}Bc D@^/ۿ^@`dgAZAG-dJ2Du$SvCHRN +3("Y\^7o-ԥfHPMg!s{[[T8dI׮Zb#/MsQN +endstream +endobj +1708 0 obj +<>/Font<>>> +endobj +770 0 obj +<>/BS<>/Dest(section-2.5.1.1)/F 4/Rect[65.905512 729.190545 107.621088 716.190545]/Subtype/Link/Type/Annot>> +endobj +771 0 obj +<>/BS<>/Dest(name-address-object)/F 4/Rect[107.621088 729.190545 184.061762 716.190545]/Subtype/Link/Type/Annot>> +endobj +772 0 obj +<>/BS<>/Dest(addresscomponent)/F 4/Rect[312.149652 644.391717 370.474604 630.792108]/Subtype/Link/Type/Annot>> +endobj +773 0 obj +<>/BS<>/Dest(addresscomponent)/F 4/Rect[376.533197 644.391717 443.63769 630.792108]/Subtype/Link/Type/Annot>> +endobj +774 0 obj +<>/BS<>/Dest(ISO.3166-1)/F 4/Rect[350.743158 365.198358 400.619623 351.598748]/Subtype/Link/Type/Annot>> +endobj +775 0 obj +<>/BS<>/Dest(RFC5870)/F 4/Rect[280.580072 343.598748 321.537836 329.999139]/Subtype/Link/Type/Annot>> +endobj +776 0 obj +<>/BS<>/Dest(IANA-TZ)/F 4/Rect[244.53808 308.399529 341.02807 294.79992]/Subtype/Link/Type/Annot>> +endobj +777 0 obj +<>/BS<>/Dest(IANA-TZ)/F 4/Rect[347.227289 308.399529 387.774164 294.79992]/Subtype/Link/Type/Annot>> +endobj +778 0 obj +<>/BS<>/Dest(prop-contexts)/F 4/Rect[361.206293 273.200311 420.221186 259.600701]/Subtype/Link/Type/Annot>> +endobj +2522 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2521 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2520 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2519 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2518 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2517 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2516 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2515 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2514 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1826 0 obj +<>stream +xZIsn rHl-hGj\Tja*RR\e;ʇ\ou 03 H}g ǣprS5*Cju|X&3JR˘u6sVSW:C7õלð΅{HsW.#++X=ק`F]=)E<ª\˯y庺r wv8KUk\Uf@l{/E \x85qVhϳõ?#Ґx+;>|@]C= #2 W͇9ޙQPΜ:]EL%Y'GV䐜|JM< Od NdFwJ,:7Y65*+W*a48Yz8A?V\,6[Ƕ>` jtq3N`;vE'?ީޒ&O`w|FSŬ-t˕LKdeyNYɁ4Zн%O*6n!4)] +G Np! m| +stˏӭAb1YCHda&8'y M`:ih&} D-@.TӋVccqrוgѾ͇2TLҀ {`>a%-'x2w^k!ɕ/Y-unL#1\?1"5fہY R;x%priɑ]&w +1Gxm5R>V~r;Bw48wqs +d#48#:ZG+cڟ{;m+:>RP2NRXE$pW2qHh rNlDy%qaQ٦iAvʹ2ki\F6gCE4D0Aד]ڟ(xe{|!5*T08GwK M֤ߧ7N +Kk`6T2WmVaKЯ/t;f荗;g=Uqָtו +X%M8FDɛ<Ι/6s7JPNQ^lo#1`;Sr%Pz?|;q0Kqd=fI Zl~Fv@{%U9Ow7qyU&qF&-j]W Q>뙪e>ShHQnTB TV-z>Z@O%2 D&E Tzϵ1fU$[i'sx$6sf7vp}< ce+MNv'y+[4ҋd#++w2 +8 +kݪOʕboV.rN僦:F8mesX\9okSTy~uD q-bѡ'2QcX'c`SX͉UWɗ\_YR=hD<4"{`t<;wf)jهt=Nx-)Zy;w-A~(8c +endstream +endobj +1706 0 obj +<>/Font<>>> +endobj +753 0 obj +<>/BS<>/Dest(figure-29)/F 4/Rect[65.905512 634.489764 109.581293 620.890154]/Subtype/Link/Type/Annot>> +endobj +754 0 obj +<>/BS<>/Dest(name-example-for-the-calendars-p)/F 4/Rect[115.040033 634.489764 280.081049 620.890154]/Subtype/Link/Type/Annot>> +endobj +755 0 obj +<>/BS<>/Dest(section-2.4.2)/F 4/Rect[65.905512 609.390154 99.092035 596.390154]/Subtype/Link/Type/Annot>> +endobj +756 0 obj +<>/BS<>/Dest(name-schedulingaddresses)/F 4/Rect[99.092035 609.390154 205.679193 596.390154]/Subtype/Link/Type/Annot>> +endobj +757 0 obj +<>/AP<>/BS<>/F 4/Rect[186.862787 475.392108 229.698481 461.792498]/Subtype/Link/Type/Annot>> +endobj +758 0 obj +<>/BS<>/Dest(RFC3986)/F 4/Rect[247.955561 475.392108 288.913324 461.792498]/Subtype/Link/Type/Annot>> +endobj +759 0 obj +<>/BS<>/Dest(prop-contexts)/F 4/Rect[98.713617 440.192889 157.72851 426.593279]/Subtype/Link/Type/Annot>> +endobj +760 0 obj +<>/BS<>/Dest(prop-pref)/F 4/Rect[228.029291 404.99367 287.044184 391.394061]/Subtype/Link/Type/Annot>> +endobj +761 0 obj +<>/BS<>/Dest(prop-label)/F 4/Rect[429.50268 383.394061 488.517572 369.794451]/Subtype/Link/Type/Annot>> +endobj +762 0 obj +<>/BS<>/Dest(figure-30)/F 4/Rect[65.905512 275.719451 109.581293 262.119842]/Subtype/Link/Type/Annot>> +endobj +763 0 obj +<>/BS<>/Dest(name-example-for-the-schedulinga)/F 4/Rect[115.040033 275.719451 331.083979 262.119842]/Subtype/Link/Type/Annot>> +endobj +764 0 obj +<>/BS<>/Dest(section-2.5)/F 4/Rect[65.905512 247.619842 95.494623 232.019842]/Subtype/Link/Type/Annot>> +endobj +765 0 obj +<>/BS<>/Dest(name-address-and-location-proper)/F 4/Rect[95.494623 247.619842 294.145014 232.019842]/Subtype/Link/Type/Annot>> +endobj +766 0 obj +<>/BS<>/Dest(section-2.5.1)/F 4/Rect[65.905512 187.320623 99.092035 174.320623]/Subtype/Link/Type/Annot>> +endobj +767 0 obj +<>/BS<>/Dest(name-addresses)/F 4/Rect[99.092035 187.320623 149.34643 174.320623]/Subtype/Link/Type/Annot>> +endobj +2537 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2536 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2535 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2534 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2533 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2532 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2531 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2530 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2529 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2528 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2527 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2526 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2525 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2524 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2523 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1825 0 obj +<>stream +xYoDXH +z +()d2lMrlݴ] +"q21)N֨ߺ8XƗudMf1l欦J1tkgxKw ,nXo}s!޸{+gJg +yt̨u~ 7mm^*עb՞ϼ\_W{;9*Ƶc.*3RHlɤSJ/E .n( pQhϳݍ g\HCbVvr}|%gtMO:y e IkH'[&ǤG19vȀwDJ6(h>b,XfxFIK dZ\͓vP x頋!-_8uT>xOxDIm=8Ktz"mJ.9YK`wŌr4"ӝ&Nq|AIF>ƹ>"VO'xG1 y`TTˬ-sb/Uj-DSSlFPYqɽ~d$Khg "nBO:S=#lbS[}9G4 h&Bsl*=沕L(D Q}j9scjq*Vh8퉋UxFmg%S +5f 'z)`UYli_ҭmC*pjgao7*W:Om[ x9sb4L9r 'Ee=#KA @l ^ JnLᆰT +BG= :Ilא;*Q X# +:4Dբ\VLf!^D8CpߊR ]?OZUVtp0>Gc{^/uX 57#SyP!kk:*Q +AE e-O_My3ZtM7\6Xlh}^l̋w[rX+&6uyg҄DKJQi]-<W&8)xWb&\ +cI p=u@qw!>yl04prU3f*A(`M]Q :.-:YFluZNd:-^iAكhG;)MRg;UM+*ە &-ӇE:Ӟ*o>Uu-r4?3CQc _hz48`ªŜM6A;8o,Z*4oab80D?p lԌr㬖0U(o;",[-iyj-Eufǿ5Q +endstream +endobj +1704 0 obj +<>/Font<>>> +endobj +741 0 obj +<>/BS<>/Dest(figure-28)/F 4/Rect[65.905512 506.434764 109.581293 492.835154]/Subtype/Link/Type/Annot>> +endobj +742 0 obj +<>/BS<>/Dest(name-example-for-the-preferredla)/F 4/Rect[115.040033 506.434764 328.204096 492.835154]/Subtype/Link/Type/Annot>> +endobj +743 0 obj +<>/BS<>/Dest(section-2.4)/F 4/Rect[65.905512 478.335154 95.494623 462.735154]/Subtype/Link/Type/Annot>> +endobj +744 0 obj +<>/BS<>/Dest(name-calendaring-and-scheduling-)/F 4/Rect[95.494623 478.335154 333.433588 462.735154]/Subtype/Link/Type/Annot>> +endobj +745 0 obj +<>/BS<>/Dest(section-2.4.1)/F 4/Rect[65.905512 418.035936 99.092035 405.035936]/Subtype/Link/Type/Annot>> +endobj +746 0 obj +<>/BS<>/Dest(name-calendars)/F 4/Rect[99.092035 418.035936 148.837397 405.035936]/Subtype/Link/Type/Annot>> +endobj +747 0 obj +<>/BS<>/Dest(resource)/F 4/Rect[267.979242 352.836717 311.495356 339.237108]/Subtype/Link/Type/Annot>> +endobj +748 0 obj +<>/BS<>/Dest(resource)/F 4/Rect[317.553949 352.836717 376.568842 339.237108]/Subtype/Link/Type/Annot>> +endobj +749 0 obj +<>/BS<>/Dest(enumerated-values)/F 4/Rect[256.904047 299.537889 314.998285 285.938279]/Subtype/Link/Type/Annot>> +endobj +750 0 obj +<>/BS<>/Dest(enumerated-values)/F 4/Rect[321.056879 299.537889 380.071772 285.938279]/Subtype/Link/Type/Annot>> +endobj +2547 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2546 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2545 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2544 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2543 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2542 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2541 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2540 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2539 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2538 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1824 0 obj +<>stream +xZow-h q k;hYY ; <$E ]rՒ"D.5g J9ũszfH/{|f5QZƬ*żO?O,\?>e/ώp.Ϝ q4w`yQUU}X<2_"s׶AJע|ɪ_k^YWU/e{LRg1q'xn=ʸĮlyL>9!c r od7Cv]7xWg;ܼpK/xQ]L!(H5P"gC5T3!_B.𯁺݆ٗF.Պ'2 PX!يt#'XmC<9%{cgV#| ?}n|>2wO1`lEǃxp dZyX + xv!q'oRԈr|6#~b+Er5He,ND(AHO#9\ 'wI9d J3m7Ҫq%FvW&E"X&  +B*TCPm#6hwid覌dx/OڵP8F,n<(N'&U-'ijҎZ\rj:U͠='8)lySP#Pi;ѫa5s.$FS~E>NKMS")\mbԓv}sdwsh<[Av{7)Kkvy?ADՇ7zPflf(-\] +dS\2LQ5BQE?!i5 mL oth@s!:xc4gVWUpF +9B53^z'TaK9y 1#5ͳsHPP \dHBT@Fqt`1MeVKɧdlDj0:a0\:f))3 $0"c4eb!WRYuHɑ*!v$mRQs;jėxɋB=9TAڵ"nbNw 5s%Z/ 쁫V{۸F`E}9<x+nG[@UO9PE"R d2BC&9.FB'*mv!8mg*ZW&V0Dm1KjZtG0B,LaE+pջ5i1U - RKBA>Zw' y/6IˤùdZ$Q,űpAq6Zd7 X/XOi>qꘪTp$on,U׃̪ۤyj4\[Tm^팤g̫0~^H^=GM#>n P3.kI$Niڬl#N`T'4qwcۿQ)3c|Z(Яɗ4R˜4H92`Y4p[1\]X(>0;o@!. 2K[1 N :kK5~a ªEE-7|>,kVjފXvXL[=e* ؠ삼lB!:eK>)P;oR,|0?^ +endstream +endobj +1702 0 obj +<>/Font<>>> +endobj +727 0 obj +<>/BS<>/Dest(prop-contexts)/F 4/Rect[487.298822 715.590936 521.945307 701.991326]/Subtype/Link/Type/Annot>> +endobj +728 0 obj +<>/BS<>/Dest(prop-contexts)/F 4/Rect[80.905512 701.991326 102.674555 688.391717]/Subtype/Link/Type/Annot>> +endobj +729 0 obj +<>/BS<>/Dest(prop-pref)/F 4/Rect[98.713617 666.792108 157.72851 653.192498]/Subtype/Link/Type/Annot>> +endobj +730 0 obj +<>/BS<>/Dest(prop-label)/F 4/Rect[364.390375 645.192498 423.405268 631.592889]/Subtype/Link/Type/Annot>> +endobj +731 0 obj +<>/BS<>/Dest(figure-27)/F 4/Rect[65.905512 399.197889 109.581293 385.598279]/Subtype/Link/Type/Annot>> +endobj +732 0 obj +<>/BS<>/Dest(name-example-for-the-phones-prop)/F 4/Rect[115.040033 399.197889 267.621088 385.598279]/Subtype/Link/Type/Annot>> +endobj +733 0 obj +<>/BS<>/Dest(section-2.3.4)/F 4/Rect[65.905512 374.098279 99.092035 361.098279]/Subtype/Link/Type/Annot>> +endobj +734 0 obj +<>/BS<>/Dest(name-preferredlanguages)/F 4/Rect[99.092035 374.098279 202.562006 361.098279]/Subtype/Link/Type/Annot>> +endobj +735 0 obj +<>/BS<>/Dest(RFC5646)/F 4/Rect[96.753656 240.100233 137.71142 226.500623]/Subtype/Link/Type/Annot>> +endobj +736 0 obj +<>/BS<>/Dest(prop-contexts)/F 4/Rect[492.118158 218.500623 526.764643 204.901014]/Subtype/Link/Type/Annot>> +endobj +737 0 obj +<>/BS<>/Dest(prop-contexts)/F 4/Rect[80.905512 204.901014 102.674555 191.301404]/Subtype/Link/Type/Annot>> +endobj +738 0 obj +<>/BS<>/Dest(prop-pref)/F 4/Rect[212.011225 169.701795 271.026117 156.102186]/Subtype/Link/Type/Annot>> +endobj +2559 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2558 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2557 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2556 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2555 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2554 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2553 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2552 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2551 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2550 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2549 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2548 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1823 0 obj +<>stream +xZ[sngu +v21 V//CVhIJH**<s!޸8|8+W^&/+dĨez+@ Wn:Eq?*_c^畮cՃresçù*Ƶc.Q!.{ju0vwa%kH<==~wcOn1$~}L &/qDC'\KlqFC|4ѧەt+Bn%-Q /j]}XY[[x߬GP{ы&g|oߐ_{r0T/\֞PoRdJRZ@m!_"wD+ɺLun(-:;~¥*UzV$PI(YP}FRbO![W3<|vYCHĊ)E d9? acEܵn׉i$0so<{Rgee APwj^* Fz,&?;6_gK6}p/Y}fV7_|Rw +P%UҰP%U>5!jO7̇] ~uD謱$FC`YM K|>G,@"i+5oaӎ& to"ӳr_?Yj~Fb\x=Y,:h(AL8oJe nq2?d +endstream +endobj +1700 0 obj +<>/Font<>>> +endobj +711 0 obj +<>/AP<>/BS<>/F 4/Rect[238.719721 757.790154 281.555414 744.190545]/Subtype/Link/Type/Annot>> +endobj +712 0 obj +<>/BS<>/Dest(RFC3986)/F 4/Rect[299.812494 757.790154 340.770258 744.190545]/Subtype/Link/Type/Annot>> +endobj +713 0 obj +<>/BS<>/Dest(prop-contexts)/F 4/Rect[482.678705 700.991326 517.32519 687.391717]/Subtype/Link/Type/Annot>> +endobj +714 0 obj +<>/BS<>/Dest(prop-contexts)/F 4/Rect[80.905512 687.391717 102.674555 673.792108]/Subtype/Link/Type/Annot>> +endobj +715 0 obj +<>/BS<>/Dest(prop-pref)/F 4/Rect[80.905512 652.192498 139.920404 638.592889]/Subtype/Link/Type/Annot>> +endobj +716 0 obj +<>/BS<>/Dest(prop-label)/F 4/Rect[364.390375 630.592889 423.405268 616.993279]/Subtype/Link/Type/Annot>> +endobj +717 0 obj +<>/BS<>/Dest(figure-26)/F 4/Rect[65.905512 469.718279 109.581293 456.11867]/Subtype/Link/Type/Annot>> +endobj +718 0 obj +<>/BS<>/Dest(name-example-for-the-onlineservi)/F 4/Rect[115.040033 469.718279 301.197504 456.11867]/Subtype/Link/Type/Annot>> +endobj +719 0 obj +<>/BS<>/Dest(section-2.3.3)/F 4/Rect[65.905512 444.61867 99.092035 431.61867]/Subtype/Link/Type/Annot>> +endobj +720 0 obj +<>/BS<>/Dest(name-phones)/F 4/Rect[99.092035 444.61867 135.598871 431.61867]/Subtype/Link/Type/Annot>> +endobj +721 0 obj +<>/BS<>/Dest(RFC3966)/F 4/Rect[168.556635 310.620623 209.514399 297.021014]/Subtype/Link/Type/Annot>> +endobj +722 0 obj +<>/BS<>/Dest(RFC3261)/F 4/Rect[256.998041 310.620623 297.955805 297.021014]/Subtype/Link/Type/Annot>> +endobj +723 0 obj +<>/BS<>/Dest(enumerated-values)/F 4/Rect[206.28515 261.821795 264.379389 248.222186]/Subtype/Link/Type/Annot>> +endobj +724 0 obj +<>/BS<>/Dest(enumerated-values)/F 4/Rect[270.437983 261.821795 329.452875 248.222186]/Subtype/Link/Type/Annot>> +endobj +2573 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2572 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2571 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2570 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2569 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2568 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2567 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2566 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2565 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2564 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2563 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2562 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2561 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2560 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1822 0 obj +<>stream +xZ[sEnJ`R`Cac'i{c96e[qD! UH ~sLFn&ܺ|&'W>>w:׎;E5Sew8ᒆ5$F%gWgL&]!#rH)Yk"8S҈zd8bP>9Ƙ!orup BOa } MqBaX81ݍRn7On4czs~8{7xq!LXsU .,"-@huzȨw'K>ڛsba-lNX4_n v/Rka =iłɃprc3,]eX0r\,RKI8_nw)M42d>l*e~G%P.m ]GR% Cf-{^EM ')i2C/eT( 7i., D\Px?:5ˇ^r#ɿSy"agɥ2DԖ”;W9c޾i/3 XM<~^a~R HmToQiReɚ|dC>|J~ k0-iϰ~#VE E]؅F!f*g;UWTRh0Yhd+Ӯ7aef317P+*Xrl T-O`e( \wȞōQESpCUNSàS6n([mP.O֔7ͷsfã 91LЄxfMTjԉ* G:Dkj]Ճ +RqYڅC{[ɒvYrL=+ۯ0^jy_:gSp P$sKQ[ )eїVSCSܩtAF肌9zAnG1 Ly.ߍ 3#|v07(S惙AM$l@ >WI!f5tk 9N/eyezK}Y5j+st3`;{D" Q'ɇߎRN$. PH#IIdE]<98,WMlu$E^el=d}1FT u|>8Lnxfhsy@]yV;^ * D\؝P[(j 3w2r8 ?*g9E۾LׯۇÛiSu5 +}kc,Vd^|f0%E? #$ZP .k5eȋԢJq\ٻՍA‘!jjSKT87|a f%m!,Wrm(]!&Tiw>F۲-cS V-SAseCie߃\bP]e=vrS 2g?]k苰;yz 4^*r;眯,\15K[uh 7L[Zl5gA>`RF.T)<غ7*uTn(oBxo +Niv< ~q\/aX{[ejsr˕w<ű^#?8w^|ׯ^.h֫$'L yۭt=i3,9Êڂ?ːdI`O>83v} %_BO(.'|ϺxϬoO;2ÊԨZrא-ݞsK1SuGXsoC5mEY[$jZf͌ĨIws˂Wצj)oeY-bR7,0kI:@n.T|S1!a5JSU)a_L !>F1hd|& iش}lcӜ(K.o/\9vъ +kR~~_{& +endstream +endobj +1698 0 obj +<>/Font<>>> +endobj +700 0 obj +<>/AP<>/BS<>/F 4/Rect[80.905512 678.991326 139.920404 665.391717]/Subtype/Link/Type/Annot>> +endobj +701 0 obj +<>/BS<>/Dest(RFC5322)/F 4/Rect[158.177484 678.991326 199.135248 665.391717]/Subtype/Link/Type/Annot>> +endobj +702 0 obj +<>/BS<>/Dest(prop-contexts)/F 4/Rect[80.905512 643.792108 139.920404 630.192498]/Subtype/Link/Type/Annot>> +endobj +703 0 obj +<>/BS<>/Dest(prop-pref)/F 4/Rect[173.685053 608.592889 232.699945 594.993279]/Subtype/Link/Type/Annot>> +endobj +704 0 obj +<>/BS<>/Dest(prop-label)/F 4/Rect[364.390375 586.993279 423.405268 573.39367]/Subtype/Link/Type/Annot>> +endobj +705 0 obj +<>/BS<>/Dest(figure-25)/F 4/Rect[65.905512 404.83867 109.581293 391.239061]/Subtype/Link/Type/Annot>> +endobj +706 0 obj +<>/BS<>/Dest(name-example-for-the-emails-prop)/F 4/Rect[115.040033 404.83867 264.961664 391.239061]/Subtype/Link/Type/Annot>> +endobj +707 0 obj +<>/BS<>/Dest(section-2.3.2)/F 4/Rect[65.905512 379.739061 99.092035 366.739061]/Subtype/Link/Type/Annot>> +endobj +708 0 obj +<>/BS<>/Dest(name-onlineservices)/F 4/Rect[99.092035 379.739061 173.543451 366.739061]/Subtype/Link/Type/Annot>> +endobj +2582 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2581 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2580 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2579 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2578 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2577 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2576 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2575 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2574 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1821 0 obj +<>stream +xY[oDe@- T¥$d,iMKYM^?o q}|sf6õnNqꜷFe>R'_ 1&3JR˘u6sVSW:{p:|>Y^>S0[ \7.Ҝ p5w,B0CuY[ףdθVx-Qi>q2?[('KU;KUk\ƍ +yvly0z Foeg)!S엘{Lȣ-E//4r&|Cꌢ(vDZ#LrG[ ~;ij#xt ǒʽ1!:7ºp_%m/Wb# |ãý6moQ!I-W ze&DP%Ie%3`>dȷp6UD3spGsٜ*aV#DQ}D~VdDՊP<6ה[/@9 Sp -xׄ<^P0ca$Z4 ]̻yS//fU˵hA>],|kEi[4##03BCM +Ԭ`B fŨiͳ'1b\e +) %*+EU%O\ +F>-tGEQtf%%o52_}M/Gnj{ޕ>E,irLD蓔A1>m˾Cyƈ#&fMx;rT \rL.K=8xLإBK +{L$ӫKF)fnM`)$S\7CwQ+o\]ۜ6P'{/8VbT,n}^{3K\DV 9^ M :_\j`Ac)U=K~YQ-Anw8Tr4tzTn4br|,Jb?PMa(h]#ZQ)cTNIqvJ\H;Q(:WxY:y_y軓X6?ީ"M6ɧ$#5WATxҲ5\O"Sۅ B TƇ^OȏM5v+`v42M> `ytB;"2Ф0Xu?jZYdUZP_ZL?mx7u~݇pbzN7(JWݯh0>vYP/*Ѷ0x-@U"uc6i\P+0uYŎW%JNBŲ;-k%) 7#ՏXd&YX`V[v؄!N;nn4.i ەbUޏON'HWvvUgǓo*ܤ\G"S7խN,zsmC "]Fa} Y w[=\朗\ K%6 +j^L1*I{%1u7 mW-AV&գx0"46d~OL2/5Â,:_A=rpAZMFZ-3[i:  +endstream +endobj +1696 0 obj +<>/Font<>>> +endobj +688 0 obj +<>/BS<>/Dest(section-2.2.5)/F 4/Rect[65.905512 756.389764 99.092035 743.389764]/Subtype/Link/Type/Annot>> +endobj +689 0 obj +<>/BS<>/Dest(name-titles)/F 4/Rect[99.092035 756.389764 124.818354 743.389764]/Subtype/Link/Type/Annot>> +endobj +690 0 obj +<>/BS<>/Dest(enumerated-values)/F 4/Rect[101.33349 563.592889 159.427729 549.993279]/Subtype/Link/Type/Annot>> +endobj +691 0 obj +<>/BS<>/Dest(enumerated-values)/F 4/Rect[165.486322 563.592889 224.501215 549.993279]/Subtype/Link/Type/Annot>> +endobj +692 0 obj +<>/BS<>/Dest(figure-24)/F 4/Rect[65.905512 275.579451 109.581293 261.979842]/Subtype/Link/Type/Annot>> +endobj +693 0 obj +<>/BS<>/Dest(name-example-for-the-titles-prop)/F 4/Rect[115.040033 275.579451 257.571527 261.979842]/Subtype/Link/Type/Annot>> +endobj +694 0 obj +<>/BS<>/Dest(section-2.3)/F 4/Rect[65.905512 247.479842 95.494623 231.879842]/Subtype/Link/Type/Annot>> +endobj +695 0 obj +<>/BS<>/Dest(name-contact-properties)/F 4/Rect[95.494623 247.479842 209.164301 231.879842]/Subtype/Link/Type/Annot>> +endobj +696 0 obj +<>/BS<>/Dest(section-2.3.1)/F 4/Rect[65.905512 200.780233 99.092035 187.780233]/Subtype/Link/Type/Annot>> +endobj +697 0 obj +<>/BS<>/Dest(name-emails)/F 4/Rect[99.092035 200.780233 132.568109 187.780233]/Subtype/Link/Type/Annot>> +endobj +2592 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2591 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2590 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2589 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2588 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2587 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2586 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2585 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2584 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2583 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1820 0 obj +<>stream +xZo pAbFu%@.%QIaPE~kYrXkrwv3 {guW] =,tU+g3wB82 ZmwՕY<"DOvv4@jt|I3bw)|=rk#~\E(1Xrj͍ޫU.WD}F{>d:=rc\r>8&  ATrr9!Is\sa_&/b|%mK%o6K< ։t(c%8JP.-B+S/,lQoc`{h6[W +8~N)1²- M\ K5#gMUi?4_JbdFɤ- ^Kvg"~X>HlDŬTNNvU*TkEnTDB1^ -JGlR+8J(JE0!%SO,NrZ1HB[o]0r"Q`mBct@LS^a'; &s4؊i ks\H~֐h{", +nFz|nT?Օ>yn;Ksta!^EDnup;B-;OyK֎> Y?r}gB.jΝwmu\B95j>b`V]BM"9(%ʔY<~͂:O{rS7mLf{HQC.-7pyM_C]`6* ƯwH OSֈi)Y\QP 晥ޘ()UQ!@oV[%,6Ť{¾nl\-wZ@\KEy[PT 顭6ڵN3ʫ0mkH1ꆠAcd<ÔXY UIG=Ly]];Q J`a\F/xq9C}cm)3䱥eM{8noL}x/qi/!72to 9^+VFsF,j]͆R' Q1?F5. "n!gSd{Fpid _8Y}CPW* IK$ + 5O;n1xmA_/sm:p*RzLf)XOec*#? l_i:W7dᒹ@_MIlg9>،Xq|e\Kڏv?gh 6eṡ>gpN7TY)L}vΌ{ +endstream +endobj +1694 0 obj +<>/Font<>>> +endobj +678 0 obj +<>/BS<>/Dest(enumerated-values)/F 4/Rect[80.905512 730.590936 138.99975 716.991326]/Subtype/Link/Type/Annot>> +endobj +679 0 obj +<>/BS<>/Dest(enumerated-values)/F 4/Rect[145.058344 730.590936 204.073236 716.991326]/Subtype/Link/Type/Annot>> +endobj +680 0 obj +<>/BS<>/Dest(localizations)/F 4/Rect[80.905512 446.096795 140.8081 432.497186]/Subtype/Link/Type/Annot>> +endobj +681 0 obj +<>/BS<>/Dest(localizations)/F 4/Rect[146.866693 446.096795 205.881586 432.497186]/Subtype/Link/Type/Annot>> +endobj +682 0 obj +<>/BS<>/Dest(prop-contexts)/F 4/Rect[80.905512 410.897576 139.920404 397.297967]/Subtype/Link/Type/Annot>> +endobj +683 0 obj +<>/BS<>/Dest(prop-pref)/F 4/Rect[207.501703 375.698358 266.516596 362.098748]/Subtype/Link/Type/Annot>> +endobj +684 0 obj +<>/BS<>/Dest(figure-23)/F 4/Rect[65.905512 182.903748 109.581293 169.304139]/Subtype/Link/Type/Annot>> +endobj +685 0 obj +<>/BS<>/Dest(name-example-for-the-speaktoas-p)/F 4/Rect[115.040033 182.903748 284.63891 169.304139]/Subtype/Link/Type/Annot>> +endobj +2600 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2599 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2598 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2597 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2596 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2595 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2594 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2593 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1819 0 obj +<>stream +xZog +֬Ő bc9<(Lٖmq늺H;-#x;II:?|egJ[[-tvsdo3:RRcMfʥTOw/?vY^?4[o8+k5 PyIu 2/6A,Y/dqe$Wu8qJ_,O%n3gJywkrk$eR1js. +lvuP\\BjpAD)/ɟ)0t$- [s?9+DN"' pN w~-\t.%B(.rajy_c`IHsw(;IX BC\aGF0WFx{ӧN%rA,=,!a `A:c\;N ̇ sHlJY3(?1 ?^֣K`;p]كSxcCҧqYwD~5lCw~50 "Q3]z{٘öE#NCQZ3pHZiJadQlA #G BB*Q,O{̪ 9h`v&Lt|zH}Wx9Ox6ThQ/k=WCY:}%|U+Dg&&)p6à;߭ֆ cSaf^RVy;Uq"Q*i$8Iq.DKhnsǘwYDmcE aژN)v6uWjȀU8];ך綰+ZFiqVޮ "$S߮X8ɔDdZ~ExͪDī.\ D7 H~*IgQ!\Rk^qQ*ifBqP0҃tM*] +h௣:dC܇͙CHU#Vg΋ +D6J9$dzm%+_!]ep6+(j`Pۨۯ]@Z]_S밶bTS6|]m.])S+I0xa9/r|bJ+^MԛGV׉—-|nߒ{z䟒Mr1mi/UH)r~9 \ߑo}ߴouدlNKF&}$fkׯ-P׼@縻_N=OK C)N=1s5E(ZISqz +(H[CD|Rkw a8L|b &o-ύE.8w68M*|K)\0K?tjƸ_.X+M:1r7y>/Font<>>> +endobj +671 0 obj +<>/BS<>/Dest(prop-contexts)/F 4/Rect[80.905512 646.592889 139.920404 632.993279]/Subtype/Link/Type/Annot>> +endobj +672 0 obj +<>/BS<>/Dest(figure-22)/F 4/Rect[65.905512 330.921404 109.581293 317.321795]/Subtype/Link/Type/Annot>> +endobj +673 0 obj +<>/BS<>/Dest(name-example-for-the-organizatio)/F 4/Rect[115.040033 330.921404 299.148188 317.321795]/Subtype/Link/Type/Annot>> +endobj +674 0 obj +<>/BS<>/Dest(section-2.2.4)/F 4/Rect[65.905512 305.821795 99.092035 292.821795]/Subtype/Link/Type/Annot>> +endobj +675 0 obj +<>/BS<>/Dest(name-speaktoas)/F 4/Rect[99.092035 305.821795 153.247309 292.821795]/Subtype/Link/Type/Annot>> +endobj +2605 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2604 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2603 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2602 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2601 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1818 0 obj +<>stream +xZYo0#IJ2HxqeI-\L?AI!~OpwEZ ˹%+)>/JFuFoFGĨ:G2RCF)#VϏ?g?sWwas6Mhf.Rۤm빿?2bԷdzlpq6^u_ !L2?6վ<o FR,%(ʹqٻ˒ d*ϮG>)N⤘b^;b8?մ/4q./)d{{D*@ cڍ`NM5Z_A 9hvp +dNC9icSZͬ-F,iM=lMwFוֹ2`]'A] m49´BwƌGøu8*o̼I:<|m1;,}CWq4 "*vO ʙ!Th$Yl ~pֶurÐ9S2[vi-B|'"v'J: >^C*K5f%:KBy04a;B ۋd)u"4> 7skqum +!4+QGy7? +}8I:w{aȱ޷y \8JdnXurcϗ~1`A7OR*.W}ag$Q+_8S[bj9jOJo)$Mno @Jd9e @@V[[8ᚂbwS2\ 3M̛Jo] +FDZvCOC93,X'ORapkH1W0wHS $9ԛS}qjw:^42y4MCN?+"Ia l3Ҟ'u5l{jY!E;t>S}7r Ra-o^f*"fH&yL6j`jf燜EvPCI1O:+ڳSx!kg^` TU-v[%VIks:4K| Zs#"K92.yWeFuLg$ 6~H#A\OcB6Dj ~r +WGԙ^e?o|@>*R|ĔOY! +N'Wiziw=XBހ>CIśa+П#i0fhD MùO̽Pߵ6+hY8_TAœ|fMZN,b;W>j)l2fŕ_%RXGDN~ 8)09W^S_Ϣ.:ߊh->q/a#k6Hߑuj~WFuU[>X<"0dyC3 +͚6Udwۦg+'e]Ca=E~3\z XT"W)C$͝rT ]mc5SY.d6l[PlYQiCj jTNS'L;aUP}VS ìF:&0r&ZAk|XO!cUW4du_U\]'~=Yӗ +B[*ʫfga/pMij{@Mq +endstream +endobj +1690 0 obj +<>/Font<>>> +endobj +660 0 obj +<>/BS<>/Dest(prop-phonetic)/F 4/Rect[140.2185 638.993279 199.233393 625.39367]/Subtype/Link/Type/Annot>> +endobj +661 0 obj +<>/BS<>/Dest(section-2.2.2)/F 4/Rect[65.905512 613.89367 99.092035 600.89367]/Subtype/Link/Type/Annot>> +endobj +662 0 obj +<>/BS<>/Dest(name-nicknames)/F 4/Rect[99.092035 613.89367 154.017084 600.89367]/Subtype/Link/Type/Annot>> +endobj +663 0 obj +<>/BS<>/Dest(prop-contexts)/F 4/Rect[80.905512 471.895623 139.920404 458.296014]/Subtype/Link/Type/Annot>> +endobj +664 0 obj +<>/BS<>/Dest(prop-pref)/F 4/Rect[121.740961 436.696404 180.755854 423.096795]/Subtype/Link/Type/Annot>> +endobj +665 0 obj +<>/BS<>/Dest(figure-21)/F 4/Rect[65.905512 329.021795 109.581293 315.422186]/Subtype/Link/Type/Annot>> +endobj +666 0 obj +<>/BS<>/Dest(name-example-for-the-nicknames-p)/F 4/Rect[115.040033 329.021795 284.460932 315.422186]/Subtype/Link/Type/Annot>> +endobj +667 0 obj +<>/BS<>/Dest(section-2.2.3)/F 4/Rect[65.905512 303.922186 99.092035 290.922186]/Subtype/Link/Type/Annot>> +endobj +668 0 obj +<>/BS<>/Dest(name-organizations)/F 4/Rect[99.092035 303.922186 168.755609 290.922186]/Subtype/Link/Type/Annot>> +endobj +2614 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2613 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2612 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2611 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2610 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2609 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2608 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2607 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2606 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1817 0 obj +<>stream +xZ[o $0F!; [%܋@]](EI$}a$AmR_Uޗ$%923|:7+9-ovR`vHKA cƚEdN<׻Wݯ8eѫ?uz%1Ui\tG@l T&e2ߧ`Fm/[2!\6:l<*Iy齼G[\Pk$29in(#a5;3cQ.~/{rB\jAcNO".h!0+:$-2 }򌌷bIzCnm}q/(s)gV8^wI6YՆ7Lmd32 )>%Od)`qކ~Ϝ`LOz~G&U\*t,]<+a|3!egft~UWEbg\Xk\+[Yx,{#g*ɴ!xY&!q||d?1៳2ujT"[1cR}5%|F"<)l'&-eJ)*c)>ax_.cx5VcY A\5!rl{H84vS']  O\h +5TPs|x\=nk0M&[5`k|@1rc:]{3‰+WBxih"vQb+/`) =隂|.Fz7>Iҥ4Ij@?k2DAJ<{x̠yOU(KCns.h-vBRt5ϵ%u@t" z1`bJ*oaP EAk}HdfW2H+$V^ Y-0瘸* AԞB$v-kZ\0D->-G5ת6 =8oBaR>E<@'Ȯ!@,A` ,Q L(e%`;/j?cC0= x IO{$~,Dė%> vLbXD3\(bXDM0T1Cr9N3;s@ >Te6'6oHEkd.£aJT54PbYk5v4IO(<;Q?8Yy;&)8zN!9w'ͨ~5*c-ЮTd%gVi ݠRei~d+_3KE +#lɱ鴀WϝK + +1Bauer<ڱ4vܹ[ZGuU둛Rp@M&7Puc ꘲6^F!Q4sh\*=CGc7 v莴|)Nr˪rr%CQ(>/Font<>>> +endobj +652 0 obj +<>/BS<>/Dest(figure-20)/F 4/Rect[65.905512 505.135447 109.581293 491.535838]/Subtype/Link/Type/Annot>> +endobj +653 0 obj +<>/BS<>/Dest(name-example-for-the-phonetic-an)/F 4/Rect[115.040033 505.135447 364.171869 491.535838]/Subtype/Link/Type/Annot>> +endobj +654 0 obj +<>/BS<>/Dest(section-2.2.1.2)/F 4/Rect[65.905512 476.535838 107.621088 463.535838]/Subtype/Link/Type/Annot>> +endobj +655 0 obj +<>/BS<>/Dest(name-namecomponent)/F 4/Rect[107.621088 476.535838 195.404047 463.535838]/Subtype/Link/Type/Annot>> +endobj +656 0 obj +<>/BS<>/Dest(enumerated-values)/F 4/Rect[380.022455 370.1374 438.116693 356.537791]/Subtype/Link/Type/Annot>> +endobj +657 0 obj +<>/BS<>/Dest(enumerated-values)/F 4/Rect[444.175287 370.1374 503.19018 356.537791]/Subtype/Link/Type/Annot>> +endobj +2620 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2619 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2618 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2617 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2616 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2615 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1816 0 obj +<>stream +xY[oW q<" \KWs<֡$ZR%RVTiQAvA}O7g/]RD;;|~f"^Y wVW|?j;Νww&ךm5 =Y|` z%BH5׃ > -|#V&{[|xdzm0}VnYnx>-ɟ+6Ĉ]B\Y/TA |QLf |1^'x7Iz[ C3Dx)9ٍ!~ =0|AJlJj KApis$wq.H#ZM#8On#vB+ kC}7"=vtbȷ ۄ+-]@PFZkUIdQ:5I%8e(\=m+*ĂctVt:!H!V:sEO.LɧGp_VA<& Pᶢ)yӌRBO/))`jkKC~XĘni:+rb֫ )$F?!RɚJbDY+DW6hDe!Tkun^!^dp!FFNZD[K;e{Ğ׃S.=RLFO(P.ȫTR&l@*͑fIjhv%sײ1}4iĠ?)HIڥxHE+T˦4k,ݯsS8$'NWj!adӟteQ!+ūT:)qKQCVmYvJU7>X}A-EFU"huʼ)5<+ў-zXďǙge]b_|/uc۪/¬ " Q#՗"%ElJ2#"=M,te}BTRK^ц"/ǘ`]G#j&R{VYgYB$?Mi(6 D`V/έWfe΃JuEyC!AyʚnKr-KQS|YOS9Wauӵ8cph4ZS2Vu=dMm9p'm IznbBI%[ v?>sC]gYop~U޿ï +:tѤ۱AǗ B@T}YTs'R{3_9rnU2ejv [{u6,=<Z`3hn; U\+uz|rK|[koBph- xD_@Xl1*A5RkTDf؆fuym`\n\w\ǣ'[>ɀݷ xI-[o.rRūOtOkd=`? oMp[JA%^@vX^RDs!16??gBPs>DŽ(߰iJY'pTCt&fQ̄or 4_4lq[=k>/􃱈c2wPR]MMm%΄tdM5O~#UÇi}h`mܑ~ ^Ǭ6F0k?9Md)-{'^N30(YΪ*&j*4?rd<문 4㒽weN\r8'Еx=fʈNvCgԄq<@vrK +/tZ5UO`ͭR+?(Nj.3pL +endstream +endobj +1686 0 obj +<>/Font<>>> +endobj +643 0 obj +<>/BS<>/Dest(example-name-sortas)/F 4/Rect[80.905512 656.192498 125.571527 642.592889]/Subtype/Link/Type/Annot>> +endobj +644 0 obj +<>/BS<>/Dest(prop-phonetic)/F 4/Rect[145.827387 550.995233 204.842279 537.395623]/Subtype/Link/Type/Annot>> +endobj +645 0 obj +<>/BS<>/Dest(example-name-phonetic)/F 4/Rect[333.336908 550.995233 378.002924 537.395623]/Subtype/Link/Type/Annot>> +endobj +646 0 obj +<>/BS<>/Dest(prop-phonetic)/F 4/Rect[145.827387 515.796014 204.842279 502.196404]/Subtype/Link/Type/Annot>> +endobj +647 0 obj +<>/BS<>/Dest(example-name-phonetic)/F 4/Rect[333.336908 515.796014 378.002924 502.196404]/Subtype/Link/Type/Annot>> +endobj +648 0 obj +<>/BS<>/Dest(figure-19)/F 4/Rect[65.905512 333.641404 109.581293 320.041795]/Subtype/Link/Type/Annot>> +endobj +649 0 obj +<>/BS<>/Dest(name-example-for-the-sortas-prop)/F 4/Rect[115.040033 333.641404 264.990961 320.041795]/Subtype/Link/Type/Annot>> +endobj +2627 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2626 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2625 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2624 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2623 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2622 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2621 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1815 0 obj +<>stream +xZ[oph R;I&mh>+%KtiRTy]i&@.9{㒲 +kM9ߜs;gxplS:Q__ ay7 Ѳ&3JR˘u6sVSW:oCrʲ1 [?}s!޸DsWQ^*_Uxʨc'Wde{">vTVRƄgTUd3.{x /0:[*բoѻA;Q^FK*H_ia! >8gr!0쒶d `r|RcR+erq }[X= 8"zc_i'ylܳS-%'qv'Wp5?q"ZժkCHʋ>Ľq+FN;WZ2GZ9O>]ҡRn -h7V;[\݇xָ%T@zAgRZJAW o +O`ڙRkqc!C䄠3JZ)*:t]EjL=duI$VRM2jj'g3 9ed@q5Esmnm(}E1_F'ȓ)j )jp%£Z8b0~s|L7T%%jqOȝ[5XjқeĐ="qˬ5,?U`gNw %eڏjDJѨV[U]e\i\ lG=Kaa\PHg,o &[ȟ6~M>zT¸ݟ7 @Un16*F2|b Uf5fkglSbD : cfm~J5egS(b0v(a2IL8k {~ɞU=<= +4%<Ȧn &M+FԶTK/%73x3ޔ.hnĜΑhSj^po6þo6S뽄)֖MytOzQI@'+r]yɑ0'WoԌ¶Է6t|rxMȨaSmH0H R[G;azKi^@1W9pNeK_v$ =UI[FaR M6d+aW(h(Itu)3@vբ>Y;*M`iiD*Í ++AV [ + 2\C"_|oCt\E {:œ녒FV4kQcb@{>/Font<>>> +endobj +630 0 obj +<>/BS<>/Dest(figure-16)/F 4/Rect[80.905512 666.409764 124.581293 652.810154]/Subtype/Link/Type/Annot>> +endobj +631 0 obj +<>/BS<>/Dest(name-example-of-a-surname-with-t)/F 4/Rect[130.040033 666.409764 313.750483 652.810154]/Subtype/Link/Type/Annot>> +endobj +632 0 obj +<>/BS<>/Dest(example-name-surname2)/F 4/Rect[80.905512 642.810154 125.571527 629.210545]/Subtype/Link/Type/Annot>> +endobj +633 0 obj +<>/BS<>/Dest(example-name-sortas)/F 4/Rect[231.639399 629.210545 242.819086 615.610936]/Subtype/Link/Type/Annot>> +endobj +634 0 obj +<>/BS<>/Dest(example-localizations-replace)/F 4/Rect[266.236078 629.210545 277.415766 615.610936]/Subtype/Link/Type/Annot>> +endobj +635 0 obj +<>/BS<>/Dest(figure-17)/F 4/Rect[80.905512 489.615936 124.581293 476.016326]/Subtype/Link/Type/Annot>> +endobj +636 0 obj +<>/BS<>/Dest(name-example-of-a-second-surname)/F 4/Rect[130.040033 489.615936 269.857172 476.016326]/Subtype/Link/Type/Annot>> +endobj +637 0 obj +<>/BS<>/Dest(namecomponent)/F 4/Rect[348.830561 395.617889 431.923822 382.018279]/Subtype/Link/Type/Annot>> +endobj +638 0 obj +<>/BS<>/Dest(namecomponent)/F 4/Rect[437.982416 395.617889 505.086908 382.018279]/Subtype/Link/Type/Annot>> +endobj +639 0 obj +<>/BS<>/Dest(figure-18)/F 4/Rect[80.905512 268.104842 124.581293 254.505233]/Subtype/Link/Type/Annot>> +endobj +640 0 obj +<>/BS<>/Dest(name-example-for-the-full-proper)/F 4/Rect[130.040033 268.104842 264.812983 254.505233]/Subtype/Link/Type/Annot>> +endobj +2638 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2637 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2636 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2635 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2634 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2633 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2632 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2631 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2630 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2629 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2628 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1814 0 obj +<>stream +xZIЅ>B(3D~h܏Q.očۮvy[`dqԪE>vm~2QXͰww  34~#2CћO%`lVl >V+\4:cGf^-RV0@.}YK+'@Âb9m3Hњ'{ xDOp9tFE-$MPJjEnSVe%6C\O}qvȎ"͢R8誚274e!7Hɘ8]}/ӭ<_Q#]j.\gYI +dpYnOΚ&$xF!2+uK\'OM٫dkܹ"IcrPq.]k +y$YeK19^ +;KތV1 %X/eE ˏvegծ`{A nMW9dw@kni8jIȢVrl%"cT1! (3(q(tX[]i3k-KB#@Rb@GIҽ:#>!t3&ɻ$TrNQm*L8]PzMi\+Zah4SΉOf F>妏uۗuJsƂ.e2dXᛖim5XC|8Eh\EU}O\rޏ[.𰁣n&O(7ӻG]˂,U`(sDE*?( q]Vݨ،vVʤQju uNKf%7vڮjfɼQF=җ\E*mYP5J)ܕ;pSKBH9™_+G#TUZe1ަUhHO&/VEnp>JB<Sl pS;qJRe#ܡQXjP.DE8]b׍2겲24wqJ*e2E<ی!e} ҄w,x;$ Q vy;CptѶBy& y;kN$ 2%wᛆfU ͸")Z+ThteCìu^%[u"$i_zݹUwDOjJ[[3B We.MW1DŽ +ņuWvL y* (E +z HӱBڄ9Inժw!.>Vq?#w6[7Ggg)4Zm +\oU׾ѰOKZ3B,G; RP߱9PBfw7ٺՐ +N[{F3jX={qXmz&W=tmOKL9.xhtSmѠ[o]OZt6ה݅!FoWf_'eZk5_L\@̗ |~Ѷreѹ;*XWI..חs~ł2,UTo>ǝ K3aQj]8 +qNt3V5 ?| +endstream +endobj +1682 0 obj +<>/Font<>>> +endobj +617 0 obj +<>/BS<>/Dest(figure-15)/F 4/Rect[65.905512 692.675545 109.581293 679.075936]/Subtype/Link/Type/Annot>> +endobj +618 0 obj +<>/BS<>/Dest(name-example-for-the-updated-pro)/F 4/Rect[115.040033 692.675545 272.301996 679.075936]/Subtype/Link/Type/Annot>> +endobj +619 0 obj +<>/BS<>/Dest(section-2.2)/F 4/Rect[65.905512 664.575936 95.494623 648.975936]/Subtype/Link/Type/Annot>> +endobj +620 0 obj +<>/BS<>/Dest(name-name-and-organization-prope)/F 4/Rect[95.494623 664.575936 306.937494 648.975936]/Subtype/Link/Type/Annot>> +endobj +621 0 obj +<>/BS<>/Dest(section-2.2.1)/F 4/Rect[65.905512 590.677108 99.092035 577.677108]/Subtype/Link/Type/Annot>> +endobj +622 0 obj +<>/BS<>/Dest(name-name)/F 4/Rect[99.092035 590.677108 127.319574 577.677108]/Subtype/Link/Type/Annot>> +endobj +623 0 obj +<>/BS<>/Dest(section-2.2.1.1)/F 4/Rect[65.905512 520.477889 107.621088 507.477889]/Subtype/Link/Type/Annot>> +endobj +624 0 obj +<>/BS<>/Dest(name-name-object)/F 4/Rect[107.621088 520.477889 172.494623 507.477889]/Subtype/Link/Type/Annot>> +endobj +625 0 obj +<>/BS<>/Dest(namecomponent)/F 4/Rect[302.00268 449.27867 360.327631 435.679061]/Subtype/Link/Type/Annot>> +endobj +626 0 obj +<>/BS<>/Dest(namecomponent)/F 4/Rect[366.386225 449.27867 433.490717 435.679061]/Subtype/Link/Type/Annot>> +endobj +627 0 obj +<>/BS<>/Dest(example-name-twoword)/F 4/Rect[80.905512 191.68492 125.571527 178.085311]/Subtype/Link/Type/Annot>> +endobj +2649 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2648 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2647 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2646 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2645 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2644 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2643 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2642 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2641 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2640 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2639 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1813 0 obj +<>stream +xZYoTIk^:R5\$ČP}ILB7m<!HyȿW޾[w1fY:K}Lfǽt +Fw&>^]wehg[nf?G_fU"{~$R)nethN8ZHyKl>ݟ܅0*o9k_y}zNjԪܿeJWy~\5U6ʤ\lȎl<N6;>m#c=dS{k:~TEhćBI/%4"E[mAtRhD@A7̶&P+iu119(wrk\hd{ :F`B)?IaGe*çYF녖I&F##t!rB^j)cEP@z\jyeEPV[@VZjqEPVAZ +{yz\7`_,/rsl`uH KwWך4W"O=pos0Z))ʮ5:0P7[횅<@vfoD}iѿJ%kONo@MhT.fض'<`G'FM;)y{5py<& u_VE5LG_CUZ $Tq aǎV<><@`cuf.d7\s\~ k& ++%. ^/-=5V-2+OoV> 6ӛ?[ pirΦwS~3yazl +-p uk&rjHu{d gLS*oh_W-27a0H2 ng&wLjɧѹ|'GCle`\>'x,lx)VJX'֜i!#)զ4<)[{1-bQKu̖Pt4 v5O꫄Me(* UAZ7-o'T##jQ^!{8bWa G\mc 6nNKHnsFwGыP>J~8_![8YС#W%=#9+\gx߅2+VbߥFϬL6dt} +qxJVa(!ѼquB.T'%b~d()CZ-\L$@Wpw(>1\pÔW.kdah&Byɬ0jgU%굂웋ʵ԰JJޖ;9O?ےWkҗdSq}u]()n ue)bwQ*v12תJk:LfMz]c_/4Bʜ_.{=QKh34X޿HiK[Iyw WƜ39'EB~\fjqg͢=Xy\A`z}p^*ez8_^1oăDƴsտOfL^$Z`n""*hXpjFm[A)*G1 VsH9:hkL4oυvN1NGnHG7y ĖLV,my|B L43Gsr!.b4H{Lr/,¨'׃N}Jm^TQN +D'b*Rd9GY!|6]vsIY{w_Os+-IOhS ,9җzme G{B6ۃѿΎ|5iKP!ly>I4voNboPYk6js9 +endstream +endobj +1680 0 obj +<>/Font<>>> +endobj +602 0 obj +<>/BS<>/Dest(figure-13)/F 4/Rect[65.905512 385.120623 109.581293 371.521014]/Subtype/Link/Type/Annot>> +endobj +603 0 obj +<>/BS<>/Dest(name-example-for-the-relatedto-p)/F 4/Rect[115.040033 385.120623 278.769281 371.521014]/Subtype/Link/Type/Annot>> +endobj +604 0 obj +<>/BS<>/Dest(section-2.1.9)/F 4/Rect[65.905512 360.021014 99.092035 347.021014]/Subtype/Link/Type/Annot>> +endobj +605 0 obj +<>/BS<>/Dest(name-uid)/F 4/Rect[99.092035 360.021014 115.770014 347.021014]/Subtype/Link/Type/Annot>> +endobj +606 0 obj +<>/BS<>/Dest(RFC8141)/F 4/Rect[390.563227 318.421404 431.52099 304.821795]/Subtype/Link/Type/Annot>> +endobj +607 0 obj +<>/BS<>/Dest(RFC6350)/F 4/Rect[174.822504 304.821795 215.780268 291.222186]/Subtype/Link/Type/Annot>> +endobj +608 0 obj +<>/BS<>/Dest(RFC3986)/F 4/Rect[324.868647 304.821795 365.82641 291.222186]/Subtype/Link/Type/Annot>> +endobj +609 0 obj +<>/BS<>/Dest(RFC9562)/F 4/Rect[301.092768 291.222186 342.050531 277.622576]/Subtype/Link/Type/Annot>> +endobj +610 0 obj +<>/BS<>/Dest(RFC9562)/F 4/Rect[354.349359 291.222186 395.307123 277.622576]/Subtype/Link/Type/Annot>> +endobj +611 0 obj +<>/BS<>/Dest(figure-14)/F 4/Rect[65.905512 212.507967 109.581293 198.908358]/Subtype/Link/Type/Annot>> +endobj +612 0 obj +<>/BS<>/Dest(name-example-for-the-uid-propert)/F 4/Rect[115.040033 212.507967 249.383783 198.908358]/Subtype/Link/Type/Annot>> +endobj +613 0 obj +<>/BS<>/Dest(section-2.1.10)/F 4/Rect[65.905512 187.408358 104.681879 174.408358]/Subtype/Link/Type/Annot>> +endobj +614 0 obj +<>/BS<>/Dest(name-updated)/F 4/Rect[104.681879 187.408358 146.52807 174.408358]/Subtype/Link/Type/Annot>> +endobj +2662 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2661 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2660 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2659 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2658 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2657 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2656 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2655 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2654 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2653 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2652 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2651 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2650 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1812 0 obj +<>stream +xZSouʖ$G, j>G `M%J* UvW!z~3;=B1=g ǃpqS5*֏-ju|Y^-W(GX73|@p>!]<VSvx(2a#:AZSsڟs: ~fbb[ݹ*0C`lf dq3N@Oc +xӭ jw|Kܾ" 8< #q UHIL¦IYA͋LKdx!r( _t4A31Qϡ usR/ZoQeq|~ l:@]+1h8w6iQQy:V_V:fB{ ?IQ BXW8,fܒf{1nFbVH[;$v{"Fzo(X1lzjJL3ݹ& ō^na/ufZ:FCakjfz^谨4z|'*_+Q{rB uwH[b)ؔ @g'suqIdM$}vMZPT~vsN!mvv++"(fglC"ۨ4Mx~е[dhSf4L=QsI;;Z7;iɿϜBk並Bz]dy Ԇkt˖; r|6|:*]ڨ9-=%Ͻ]u/s, O}JjPR|ZN*4!/Wa16U9to.e͛z8 コ>ȷq2FQP+Lf,bI|ϯcZ*abi"mFN-z9uY_N76?cͩZijUOZ]HTk[,6 +endstream +endobj +1678 0 obj +<>/Font<>>> +endobj +586 0 obj +<>/BS<>/Dest(figure-11)/F 4/Rect[65.905512 645.129764 109.581293 631.530154]/Subtype/Link/Type/Annot>> +endobj +587 0 obj +<>/BS<>/Dest(name-example-for-the-members-pro)/F 4/Rect[115.040033 645.129764 277.280268 631.530154]/Subtype/Link/Type/Annot>> +endobj +588 0 obj +<>/BS<>/Dest(section-2.1.7)/F 4/Rect[65.905512 620.030154 99.092035 607.030154]/Subtype/Link/Type/Annot>> +endobj +589 0 obj +<>/BS<>/Dest(name-prodid)/F 4/Rect[99.092035 620.030154 133.888666 607.030154]/Subtype/Link/Type/Annot>> +endobj +590 0 obj +<>/BS<>/Dest(figure-12)/F 4/Rect[65.905512 513.315936 109.581293 499.716326]/Subtype/Link/Type/Annot>> +endobj +591 0 obj +<>/BS<>/Dest(name-example-for-the-prodid-prop)/F 4/Rect[115.040033 513.315936 265.80102 499.716326]/Subtype/Link/Type/Annot>> +endobj +592 0 obj +<>/BS<>/Dest(section-2.1.8)/F 4/Rect[65.905512 488.216326 99.092035 475.216326]/Subtype/Link/Type/Annot>> +endobj +593 0 obj +<>/BS<>/Dest(name-relatedto)/F 4/Rect[99.092035 488.216326 148.146723 475.216326]/Subtype/Link/Type/Annot>> +endobj +594 0 obj +<>/BS<>/Dest(enumerated-values)/F 4/Rect[161.213373 276.220233 219.307611 262.620623]/Subtype/Link/Type/Annot>> +endobj +595 0 obj +<>/BS<>/Dest(enumerated-values)/F 4/Rect[225.366205 276.220233 284.381098 262.620623]/Subtype/Link/Type/Annot>> +endobj +596 0 obj +<>/BS<>/Dest(IANA-vCard)/F 4/Rect[497.986078 276.220233 522.634272 262.620623]/Subtype/Link/Type/Annot>> +endobj +597 0 obj +<>/BS<>/Dest(IANA-vCard)/F 4/Rect[84.505365 262.620623 141.41015 249.021014]/Subtype/Link/Type/Annot>> +endobj +598 0 obj +<>/AP<>/BS<>/F 4/Rect[390.439447 262.620623 449.45434 249.021014]/Subtype/Link/Type/Annot>> +endobj +599 0 obj +<>/BS<>/Dest(RFC6350)/F 4/Rect[467.71142 262.620623 508.669184 249.021014]/Subtype/Link/Type/Annot>> +endobj +2676 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2675 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2674 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2673 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2672 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2671 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2670 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2669 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2668 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2667 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2666 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2665 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2664 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2663 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1811 0 obj +<>stream +xZo D0b7vËu}E8LHI0i!vyC~3;{ryl^g ')N֨짷wCjuXƓ8&3JR˘u6sVSW:|!ç?rʲ֗K8jk|@pyYMbq=Ͽ3_!s˶v8^zv&?P._|v1,}ϙ* v ç'ǯ<˸d\gK^c2bTLRlX$Sre3KoRQq@%c2!G~d@&rK`5)\+h +%)sFS\`oB lQ,FZubI"8c~Z(gɛHbamig{֐j=.'yt\^kR}-mÝi!D8õ+[6_3'gkW2iIJ.̢<.+\Ցk>otr%ȸUrOQ(hMי kdz{J. uF9%mNV&-7lwj=h+Mx=^p$Aj+쪺Z>iM Ԩ@*Ԭ@!Ԩ}z7t |h\&H&xfYVWd7R"iwQC-574=Q@)oRK JP1y|{t.68ϡ_D&q bBb9jQwKdEa+h*,ڿp6At]\C6]ɦ Pse጗ipT2/ϟd&yRB!`G|Çc{@|I~'Ϥ+ЋB3!.#{A]& ch/ɭPdfl%b[",W-r +"N9Ghv,lVR!3lm4T-9Ԁ[j@ſ~82ES+4%XPe , jlQ +)堶,V5n^^ָG!IEZpɣ2FΜY/M(S f~yt.$4S7hcmņ.GY&{NXqa)ydk£{8lHML8 ǭCO;AmF|F4*#uy_c + Cn:r"bច'̢ +q#i3^Y֬;g^v.(FA +|%4Nh0]J;ʕ57 A4ɷɧmkk'JM@Y 'y#P^n@[fF0p`0KXXJJ y0Pt1F%1 Y `5z3hY{Gnx՝ņFi ؉`-+w_-[*Xj#TH 0 C)V/.0PE(br_$L;|LıaP'XኸWXu8X-„،vwzav_k <\[ŨJhث%Kf fNDS*Y)-SNf:L GEnYR5AW4QJb`4A1@YhWdZ=#FǖsXc )!^NTڏc@GdgN^b #s18b2$fo˴`"UlFâ 4B4 ]|l=Q5k<*'3ُ͜u|~Tj™q| _OtqߔӞԌr㬖0{i&l-Ozj*0Zr|^:q2!Wy +endstream +endobj +1676 0 obj +<>/Font<>>> +endobj +571 0 obj +<>/BS<>/Dest(enumerated-values)/F 4/Rect[101.33349 771.389764 159.427729 757.790154]/Subtype/Link/Type/Annot>> +endobj +572 0 obj +<>/BS<>/Dest(enumerated-values)/F 4/Rect[165.486322 771.389764 224.501215 757.790154]/Subtype/Link/Type/Annot>> +endobj +573 0 obj +<>/BS<>/Dest(figure-9)/F 4/Rect[65.905512 602.177498 103.991449 588.577889]/Subtype/Link/Type/Annot>> +endobj +574 0 obj +<>/BS<>/Dest(name-example-for-the-kind-proper)/F 4/Rect[109.45019 602.177498 249.483393 588.577889]/Subtype/Link/Type/Annot>> +endobj +575 0 obj +<>/BS<>/Dest(section-2.1.5)/F 4/Rect[65.905512 577.077889 99.092035 564.077889]/Subtype/Link/Type/Annot>> +endobj +576 0 obj +<>/BS<>/Dest(name-language)/F 4/Rect[99.092035 577.077889 144.837641 564.077889]/Subtype/Link/Type/Annot>> +endobj +577 0 obj +<>/BS<>/Dest(RFC5646)/F 4/Rect[358.08349 549.077889 399.041254 535.478279]/Subtype/Link/Type/Annot>> +endobj +578 0 obj +<>/BS<>/Dest(localizations)/F 4/Rect[305.429438 521.87867 365.332025 508.279061]/Subtype/Link/Type/Annot>> +endobj +579 0 obj +<>/BS<>/Dest(localizations)/F 4/Rect[371.390619 521.87867 430.405512 508.279061]/Subtype/Link/Type/Annot>> +endobj +580 0 obj +<>/BS<>/Dest(figure-10)/F 4/Rect[65.905512 456.764061 109.581293 443.164451]/Subtype/Link/Type/Annot>> +endobj +581 0 obj +<>/BS<>/Dest(name-example-for-the-language-pr)/F 4/Rect[115.040033 456.764061 277.212152 443.164451]/Subtype/Link/Type/Annot>> +endobj +582 0 obj +<>/BS<>/Dest(section-2.1.6)/F 4/Rect[65.905512 431.664451 99.092035 418.664451]/Subtype/Link/Type/Annot>> +endobj +583 0 obj +<>/BS<>/Dest(name-members)/F 4/Rect[99.092035 431.664451 146.826899 418.664451]/Subtype/Link/Type/Annot>> +endobj +2689 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2688 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2687 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2686 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2685 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2684 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2683 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2682 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2681 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2680 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2679 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2678 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2677 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1810 0 obj +<>stream +xY[En*VQYpJY޾_²n, rAKy랙d.L"KCss>$*ru'a0aVw}rVY'dEkG:何o'tth-PꋤS4Rj7eyB6%[y5|>@*S0˴mnu){s(s3_ACr:$%&9"_#r9"v3FnM;F(P%jz + i%{D}L3jxMg57l +cPfht._% +SDMڻt?R'fⳂ8& `uY0#I1F,&U5ф܄) AF!"1U<lvVVрyBIW'~vrB\jr9rŧZ +aU&% hsaG:b|#TkJN¹ {2{ԺlCE;7o:XTb#|rRX5"A\cot0`o/F3 '7(I.ŵs=,EO OH. |'f ;Q i2fPQ|]3yǻ 3Eͷq/ +\K΄o1E^bl:NE @2ޗé؉<:<U\Ir3B^sj t d':ZDy\ ɓA\}${[id1(,T8 /,uXpEͨ#kWԒQd`a(iZ,( ZyT9=kt2eNbʔrc_M^{b|n$E4BV|'֬RlUU |i#% *?}moOaӄ+&jNb9UhA0 + b 7ۚ/NuHuݧ'ښ V5Ap3L?)b)8,TRRT93‘u+LX*(*/Wyf_LR\뫴@ܺNj=-ήբ=>/Font<>>> +endobj +552 0 obj +<>/BS<>/Dest(figure-6)/F 4/Rect[65.905512 602.569764 103.991449 588.970154]/Subtype/Link/Type/Annot>> +endobj +553 0 obj +<>/BS<>/Dest(name-example-of-a-basic-card)/F 4/Rect[109.45019 602.569764 221.938471 588.970154]/Subtype/Link/Type/Annot>> +endobj +554 0 obj +<>/BS<>/Dest(section-2.1)/F 4/Rect[65.905512 574.470154 95.494623 558.870154]/Subtype/Link/Type/Annot>> +endobj +555 0 obj +<>/BS<>/Dest(name-metadata-properties)/F 4/Rect[95.494623 574.470154 219.904535 558.870154]/Subtype/Link/Type/Annot>> +endobj +556 0 obj +<>/BS<>/Dest(section-2.1.1)/F 4/Rect[65.905512 514.170936 99.092035 501.170936]/Subtype/Link/Type/Annot>> +endobj +557 0 obj +<>/BS<>/Dest(name-type)/F 4/Rect[99.092035 514.170936 130.299799 501.170936]/Subtype/Link/Type/Annot>> +endobj +558 0 obj +<>/BS<>/Dest(section-2.1.2)/F 4/Rect[65.905512 461.071326 99.092035 448.071326]/Subtype/Link/Type/Annot>> +endobj +559 0 obj +<>/BS<>/Dest(name-version)/F 4/Rect[99.092035 461.071326 137.287836 448.071326]/Subtype/Link/Type/Annot>> +endobj +560 0 obj +<>/BS<>/Dest(current-version)/F 4/Rect[439.813471 419.471717 498.828363 405.872108]/Subtype/Link/Type/Annot>> +endobj +561 0 obj +<>/BS<>/Dest(figure-7)/F 4/Rect[65.905512 354.357108 103.991449 340.757498]/Subtype/Link/Type/Annot>> +endobj +562 0 obj +<>/BS<>/Dest(name-example-for-the-version-pro)/F 4/Rect[109.45019 354.357108 263.370844 340.757498]/Subtype/Link/Type/Annot>> +endobj +563 0 obj +<>/BS<>/Dest(section-2.1.3)/F 4/Rect[65.905512 329.257498 99.092035 316.257498]/Subtype/Link/Type/Annot>> +endobj +564 0 obj +<>/BS<>/Dest(name-created)/F 4/Rect[99.092035 329.257498 137.538324 316.257498]/Subtype/Link/Type/Annot>> +endobj +565 0 obj +<>/BS<>/Dest(figure-8)/F 4/Rect[65.905512 236.142889 103.991449 222.543279]/Subtype/Link/Type/Annot>> +endobj +566 0 obj +<>/BS<>/Dest(name-example-for-the-created-pro)/F 4/Rect[109.45019 236.142889 263.441156 222.543279]/Subtype/Link/Type/Annot>> +endobj +567 0 obj +<>/BS<>/Dest(section-2.1.4)/F 4/Rect[65.905512 211.043279 99.092035 198.043279]/Subtype/Link/Type/Annot>> +endobj +568 0 obj +<>/BS<>/Dest(name-kind)/F 4/Rect[99.092035 211.043279 122.129633 198.043279]/Subtype/Link/Type/Annot>> +endobj +2706 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2705 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2704 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2703 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2702 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2701 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2700 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2699 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2698 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2697 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2696 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2695 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2694 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2693 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2692 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2691 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2690 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1809 0 obj +<>stream +xZn b'i$w;u%Y@EN{ً%柙=kIڎiϣ;z +,H!Xل((5;y C|3þ&:9$Fv{Z 1s,^Szr: >Ra\Ӻo>nLe܊J *PJ \pO6vHzsvS="᪌=m1^(F^۞ v%:d_GTy*=tliIx/?Gd![tB,cr'fB¸gQ,g^( *W4pcmee!%5Ko,EQ;)1&A 񗵧&7yEw.c?4P;κ;ySWcɔML2Gz1MwbiB@=.+g)me~"Aӓ>e-KHN=a4!IF\!l[xoMw1o?ѽgWxP[2 +r{| +Jw^;2Qʚ^~&B#oTDD\9+^Ҿ/R%J! ;y{ )ʙ0qB"/4:?0>8 p78>ú-*[3:M3fe]RE,Ǫ{[튚vfM 0'L*;GdU5Yo'-9$nM.܆$n)[_PZVN;f +sqcj@ aEk!qg9;g; .ǽ7TlLf5A&ws|>&qO6oD4Q5&)j3-|2VfB[ C%_49X=ӰżQ.VmYTڭ;d|GZ cnB,>lgr +endstream +endobj +1672 0 obj +<>/Font<>>> +endobj +530 0 obj +<>/BS<>/Dest(section-1.9)/F 4/Rect[65.905512 753.389764 95.494623 737.789764]/Subtype/Link/Type/Annot>> +endobj +531 0 obj +<>/BS<>/Dest(name-versioning)/F 4/Rect[95.494623 753.389764 160.664057 737.789764]/Subtype/Link/Type/Annot>> +endobj +532 0 obj +<>/BS<>/Dest(card)/F 4/Rect[206.698969 731.789764 229.316156 718.190154]/Subtype/Link/Type/Annot>> +endobj +533 0 obj +<>/BS<>/Dest(card)/F 4/Rect[235.37475 731.789764 278.210443 718.190154]/Subtype/Link/Type/Annot>> +endobj +534 0 obj +<>/BS<>/Dest(prop-version)/F 4/Rect[459.527338 718.190154 495.303949 704.590545]/Subtype/Link/Type/Annot>> +endobj +535 0 obj +<>/BS<>/Dest(prop-version)/F 4/Rect[69.36474 704.590545 128.379633 690.990936]/Subtype/Link/Type/Annot>> +endobj +536 0 obj +<>/BS<>/Dest(iana-media-type)/F 4/Rect[306.875238 704.590545 342.65185 690.990936]/Subtype/Link/Type/Annot>> +endobj +537 0 obj +<>/BS<>/Dest(iana-media-type)/F 4/Rect[348.710443 704.590545 399.635736 690.990936]/Subtype/Link/Type/Annot>> +endobj +538 0 obj +<>/BS<>/Dest(section-1.9.1)/F 4/Rect[65.905512 499.895233 99.092035 486.895233]/Subtype/Link/Type/Annot>> +endobj +539 0 obj +<>/BS<>/Dest(name-version-format-and-requirem)/F 4/Rect[99.092035 499.895233 273.172602 486.895233]/Subtype/Link/Type/Annot>> +endobj +540 0 obj +<>/BS<>/Dest(figure-5)/F 4/Rect[65.905512 375.981795 103.991449 362.382186]/Subtype/Link/Type/Annot>> +endobj +541 0 obj +<>/BS<>/Dest(name-the-abnf-for-jscontact-vers)/F 4/Rect[109.45019 375.981795 290.940668 362.382186]/Subtype/Link/Type/Annot>> +endobj +542 0 obj +<>/BS<>/Dest(section-1.9.2)/F 4/Rect[65.905512 350.882186 99.092035 337.882186]/Subtype/Link/Type/Annot>> +endobj +543 0 obj +<>/BS<>/Dest(name-current-version)/F 4/Rect[99.092035 350.882186 180.442865 337.882186]/Subtype/Link/Type/Annot>> +endobj +544 0 obj +<>/BS<>/Dest(tab-iana-version-registry)/F 4/Rect[338.004633 332.882186 372.240961 319.282576]/Subtype/Link/Type/Annot>> +endobj +545 0 obj +<>/BS<>/Dest(section-2)/F 4/Rect[65.905512 301.182576 89.131635 282.462576]/Subtype/Link/Type/Annot>> +endobj +546 0 obj +<>/BS<>/Dest(name-card)/F 4/Rect[89.131635 301.182576 124.251264 282.462576]/Subtype/Link/Type/Annot>> +endobj +547 0 obj +<>/BS<>/Dest(iana-media-type)/F 4/Rect[197.038324 238.063358 247.963617 224.463748]/Subtype/Link/Type/Annot>> +endobj +548 0 obj +<>/BS<>/Dest(example-card)/F 4/Rect[65.905512 214.463748 104.981684 200.864139]/Subtype/Link/Type/Annot>> +endobj +549 0 obj +<>/BS<>/Dest(prop-type)/F 4/Rect[414.771967 200.864139 473.786859 187.264529]/Subtype/Link/Type/Annot>> +endobj +2726 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2725 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2724 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2723 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2722 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2721 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2720 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2719 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2718 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2717 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2716 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2715 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2714 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2713 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2712 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2711 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2710 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2709 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2708 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2707 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1808 0 obj +<>stream +xZYo[Q +0NQ[AS۲lw4-ZW(GD"0H҃lv>@{ܹ+y/IEDw|̙0|UZVɟ^ICc~ /dt1cMbMJbNɻ?7}ϻ8e_~q΅)wچ1'!>ۼU$wA$W7d6qTO6TVU+qgrJ~Pke6R!HmuÄK<9鿸C܆fwȀ 69$2#6juEw9߲1OAd{s@ ,eav<0ð^^Byi쇅ߩ^JqQZP-vid8lrø +GzPM;B+]$IXHĩ $L6p{  +h] :@k;AAd1Vy70W#qYE 8S5c\xE@0Hg0Xauv )[O^#cmɔީTiFֻJֱs@j 6m1=*zVn -uXa9:{TϢEIea00Ƥ_a%K3m\G5 {`cbUM +ӎI Ol쭪ʠnߊ⴪̯BUfB{On[h.~8\)0<,[oi]<#6\\ۿ`oDPܫTUX+'(y~.lru.9aF'0:֓p>[J* K"Ш3wBFkyp;VjFIi clH*FGZ#_lHL}ҢS4IKtXRsQZr,WrFE7*0 ̦V7YfyB"±ɤ^yo:7U\NHЌmSuϦSj@h"54) oډC=H>/T''8+oq-ThV; +5 O1B/¢@=,Ȝ7s@tJ~M>kgCM73)ܬ_>ac܇\.m{a]>*4f\5Qe+x5 {k;4}Tuc3]rekB8 Ny[\6 +pYޕ]kueY縲Бn,K-v},+w."zjE2`yZ|R-K\ˇc '5]#,{us ^˛a[o[f^kWo#˵_4+L蔀Jx)9kD2jm.LYB0C3kʹ-BDh ajL7B7KQhNԫnB-m _Ku_ Z*|_r|/Dq(cupTGUfQ(tt5|G"h ꢲ6׼K: ;JXiKJE9ڍU+ j%dŞQ0?c*XFu5(Ef+UiOf+!bt,-UnQ8(2q3ac>|:bÜ(a1:}OKCU07;Y)aqq8JʅZ,e/I-lZX!{Aʒ' 'zsXxsM߶u񁋷015)=9p[ ˹i8e5m 8j䮩N{?uRkViO.&Y$SeZn.^FlHYNJ*ZةPEK6-".b[s%Viu&BgE +֞UJƕ-m &!&!Jd>Zsvh\BSIrFXÐϧfyƾF>r3ȔϤ< +1ˤ=NN%e2N֤rc>/Font<>>> +endobj +514 0 obj +<>/BS<>/Dest(RFC9499)/F 4/Rect[467.331293 693.391717 508.289057 679.792108]/Subtype/Link/Type/Annot>> +endobj +515 0 obj +<>/BS<>/Dest(figure-2)/F 4/Rect[65.905512 494.677889 103.991449 481.078279]/Subtype/Link/Type/Annot>> +endobj +516 0 obj +<>/BS<>/Dest(name-abnf-rules-for-vendor-speci)/F 4/Rect[109.45019 494.677889 332.334955 481.078279]/Subtype/Link/Type/Annot>> +endobj +517 0 obj +<>/BS<>/Dest(vendor-property-example)/F 4/Rect[414.952875 443.879061 454.029047 430.279451]/Subtype/Link/Type/Annot>> +endobj +518 0 obj +<>/BS<>/Dest(figure-3)/F 4/Rect[65.905512 346.844451 103.991449 333.244842]/Subtype/Link/Type/Annot>> +endobj +519 0 obj +<>/BS<>/Dest(name-examples-of-vendor-specific)/F 4/Rect[109.45019 346.844451 290.297602 333.244842]/Subtype/Link/Type/Annot>> +endobj +520 0 obj +<>/BS<>/Dest(section-1.8.2)/F 4/Rect[65.905512 321.744842 99.092035 308.744842]/Subtype/Link/Type/Annot>> +endobj +521 0 obj +<>/BS<>/Dest(name-vendor-specific-values)/F 4/Rect[99.092035 321.744842 213.809076 308.744842]/Subtype/Link/Type/Annot>> +endobj +522 0 obj +<>/BS<>/Dest(kind)/F 4/Rect[137.42724 290.145233 167.224359 276.545623]/Subtype/Link/Type/Annot>> +endobj +523 0 obj +<>/BS<>/Dest(kind)/F 4/Rect[173.282953 290.145233 232.297846 276.545623]/Subtype/Link/Type/Annot>> +endobj +524 0 obj +<>/BS<>/Dest(vendor-specific-properties)/F 4/Rect[215.528315 262.946014 274.543207 249.346404]/Subtype/Link/Type/Annot>> +endobj +525 0 obj +<>/BS<>/Dest(vendor-value-example)/F 4/Rect[355.714594 262.946014 394.790766 249.346404]/Subtype/Link/Type/Annot>> +endobj +526 0 obj +<>/BS<>/Dest(figure-4)/F 4/Rect[65.905512 197.831404 103.991449 184.231795]/Subtype/Link/Type/Annot>> +endobj +527 0 obj +<>/BS<>/Dest(name-example-of-a-vendor-specifi)/F 4/Rect[109.45019 197.831404 271.861811 184.231795]/Subtype/Link/Type/Annot>> +endobj +2740 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2739 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2738 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2737 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2736 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2735 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2734 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2733 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2732 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2731 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2730 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2729 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2728 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2727 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1807 0 obj +<>stream +xZ[o^ _b//ERHKdMP.}O33;%גkZfe;gvB'>ݏ4j%&?}2.ě/23&JR-K!r??t><~wZVC(e*cnK'G$%'}wf7`O֍۷X}dqys\gf7IqFF B!fB-f'8&/yXyYLbYX38>yqo' \1HE)`?/OO8(s#dNڈl\lюaeIUU]G%|_eqGp-][ \z +~P=~pSesX5ܿ;k'a1Ԅ* V)A%?GlS4R٦p+49w +xfV\t.K U|- +}]KzG]mpЋxCN@5mEqG IJ8EoxP${g@b'tOF[%cV! Y=b +k+8$\ ?ppJH6<5lx[/k +"etSAd;>qk|;P$S4vǪ@ng R*k!YyYR00.B,~1xHъ @--!r!2j=Bv#ŗ[I)[ZFp"@ܲte8xeUwLwꙆ,l0Z&:R^uHHۜxM9r|ާh sWjVk^k{T]덺:u%h'W#ۆSzp[2 H'ddrrfnNzpLT4e_z_W,Q++ >\^4~5Ě%gQe d $[V_G +>1{T}\4&aLUP@؁m.ct(b9+cJc&SgXBUs{h$܀i R ?֎4nj bO§C\hM'tk_)Œ>b7G[%aYQb]A~;70R׋ +^bLَCbRX-(F'^ٞ_\)7 &\RB"$!$(Cj7jw%D[Pgdj@4Rʔ'p9=N43%Iw0`=[H3VȰTe/gu|J9*~3fSDQk6׺}>P@%1j? !%ъ*YnU +FmNw}x5QJII:+ 9:/`1%eO1cKP3j@3o0ć!ovz$&fmJ9Y8֍.[z[voo(3QV(S<$ᴀTB.\Y N(6YLwJ0Y1bPQ&ĹgjP®f. +Fm[A:~yof c9[<-\ݍa9ogW6PhoXPZZfoi7أ1>XOڍ8StsWGKJK#Z7<vZB7ha&/=Lw505DtbNORȲ]&W![x +:iyMqWg"_#e/l;in ދ+.݅mC7`w(ɳ -"Yyf5Ѕ%pXʢA朡Ğj7bӣ(djLj#Uxd.uAGʥ, ~>Hn:q@O'4ظ)jM_OC[kgoWt'0ބ>P*t\-'xgRJ\$D3R^H+* +ЯTK6RXӯ}_H(>4Ch&5KpmzPA8,d<ϓ| pe]n`F0JA~´M4{1?F̽6svPN"|@hozS6 j.%$#>=nqHnӁbUr<4\{Yn} +endstream +endobj +1668 0 obj +<>/Font<>>> +endobj +492 0 obj +<>/BS<>/Dest(section-1.7.3.1)/F 4/Rect[65.905512 766.389764 107.621088 753.389764]/Subtype/Link/Type/Annot>> +endobj +493 0 obj +<>/BS<>/Dest(name-extra)/F 4/Rect[107.621088 766.389764 134.85766 753.389764]/Subtype/Link/Type/Annot>> +endobj +494 0 obj +<>/BS<>/Dest(section-1.7.4)/F 4/Rect[65.905512 674.491326 99.092035 661.491326]/Subtype/Link/Type/Annot>> +endobj +495 0 obj +<>/BS<>/Dest(name-unknown-properties)/F 4/Rect[99.092035 674.491326 203.501703 661.491326]/Subtype/Link/Type/Annot>> +endobj +496 0 obj +<>/BS<>/Dest(case-sensitivity)/F 4/Rect[143.426508 615.692498 202.4414 602.092889]/Subtype/Link/Type/Annot>> +endobj +497 0 obj +<>/BS<>/Dest(section-1.7.5)/F 4/Rect[65.905512 512.594842 99.092035 499.594842]/Subtype/Link/Type/Annot>> +endobj +498 0 obj +<>/BS<>/Dest(name-enumerated-values)/F 4/Rect[99.092035 512.594842 197.540522 499.594842]/Subtype/Link/Type/Annot>> +endobj +499 0 obj +<>/BS<>/Dest(iana-enum-registry)/F 4/Rect[290.326899 467.395623 447.829096 453.796014]/Subtype/Link/Type/Annot>> +endobj +500 0 obj +<>/BS<>/Dest(iana-enum-registry)/F 4/Rect[453.88769 467.395623 504.812983 453.796014]/Subtype/Link/Type/Annot>> +endobj +501 0 obj +<>/BS<>/Dest(vendor-specific-values)/F 4/Rect[310.852289 453.796014 383.824945 440.196404]/Subtype/Link/Type/Annot>> +endobj +502 0 obj +<>/BS<>/Dest(vendor-specific-values)/F 4/Rect[389.883539 453.796014 448.898432 440.196404]/Subtype/Link/Type/Annot>> +endobj +503 0 obj +<>/BS<>/Dest(section-1.8)/F 4/Rect[65.905512 412.096795 95.494623 396.496795]/Subtype/Link/Type/Annot>> +endobj +504 0 obj +<>/BS<>/Dest(name-vendor-specific-extensions)/F 4/Rect[95.494623 412.096795 259.984125 396.496795]/Subtype/Link/Type/Annot>> +endobj +505 0 obj +<>/BS<>/Dest(iana-considerations)/F 4/Rect[308.196527 349.697967 351.032221 336.098358]/Subtype/Link/Type/Annot>> +endobj +506 0 obj +<>/BS<>/Dest(iana-registered-properties)/F 4/Rect[356.131342 349.697967 415.146234 336.098358]/Subtype/Link/Type/Annot>> +endobj +507 0 obj +<>/BS<>/Dest(section-1.8.1)/F 4/Rect[65.905512 310.998748 99.092035 297.998748]/Subtype/Link/Type/Annot>> +endobj +508 0 obj +<>/BS<>/Dest(name-vendor-specific-properties)/F 4/Rect[99.092035 310.998748 233.947748 297.998748]/Subtype/Link/Type/Annot>> +endobj +509 0 obj +<>/BS<>/Dest(RFC1034)/F 4/Rect[478.63476 252.19992 519.592524 238.600311]/Subtype/Link/Type/Annot>> +endobj +510 0 obj +<>/BS<>/Dest(RFC1035)/F 4/Rect[69.505365 238.600311 110.463129 225.000701]/Subtype/Link/Type/Annot>> +endobj +511 0 obj +<>/BS<>/Dest(RFC6901)/F 4/Rect[335.676264 211.401092 376.634027 197.801483]/Subtype/Link/Type/Annot>> +endobj +2760 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2759 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2758 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2757 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2756 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2755 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2754 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2753 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2752 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2751 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2750 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2749 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2748 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2747 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2746 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2745 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2744 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2743 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2742 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2741 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1806 0 obj +<>stream +x[o' E I-iv2J⸑;-$vc !)VE7̄M(~+-'4yLOFK F$_ɰp|ɎSx +~oqםo~;CB^X_/RPuC]W^Mf85B5 g\@SAٺށ79|Ply INԈ^"eJkEag`rq>a$&sDԙ&F^{w-*%WSf8mbp(DռZ*pϏᦫqMT4:G >[,਀Jܻ|l*}s1i;3yǨwبKPNLW痥x󢅜{F"8lEpJR-W ,p]IxO_}eqa`su/ ]ap&=ǘO; +S+K%fZR#Y.dƴ2拍O2eio-NgUoG(2ۻW"扞{jd>M@\f rXC+]Z̤<[GUrFXZG>џ˜~;MCI5i?mrS k9/ă7*-Nieiנ%x:׷tWfߢ$ɣzHw-&BЍ4:P\v?փ~XpRJFyW>r*N S-"#i9Z'(_n+'Yv fюXg6sl4f㪪zVI?V >$2'=0Iݒ#guXF38Ji +p +`n8{e| pC`u8$wT7֌w%=ޑq lUNPּX ÿa},}e$/L(Bqj-"od0]J~I)тSӂ4]hT_2C!Id\5 $ +r6摏eQ<jp>J:pЯ6" FL4L^`P(Q>+E~y0!DXiT\H@wϓ#ҖP6;8ǔv(wx@C]*SFYgNy!y!/AVV )SѤ&K&nRwWEY9-<U>TzwB÷aq't}z֟VKkUWg҆iǹ]{;jFTפܠ3Fq_1J7ܴ,6qgZUt\!O2^Ŧ{'OS 9γ /hxJBr \ *ai:P S\qþ '{CQQVUee ]FB5 +}fJVEϷ#)u瘳; tx]iBPmKEښvSRFvZmZGJ% +endstream +endobj +1666 0 obj +<>/Font<>>> +endobj +471 0 obj +<>/BS<>/Dest(section-1.7)/F 4/Rect[65.905512 753.389764 95.494623 737.789764]/Subtype/Link/Type/Annot>> +endobj +472 0 obj +<>/BS<>/Dest(name-validating-jscontact)/F 4/Rect[95.494623 753.389764 219.090082 737.789764]/Subtype/Link/Type/Annot>> +endobj +473 0 obj +<>/BS<>/Dest(vendor-specific-properties)/F 4/Rect[259.89184 704.590545 318.906733 690.990936]/Subtype/Link/Type/Annot>> +endobj +474 0 obj +<>/BS<>/Dest(section-1.7.1)/F 4/Rect[65.905512 601.492889 99.092035 588.492889]/Subtype/Link/Type/Annot>> +endobj +475 0 obj +<>/BS<>/Dest(name-case-sensitivity)/F 4/Rect[99.092035 601.492889 179.073236 588.492889]/Subtype/Link/Type/Annot>> +endobj +476 0 obj +<>/BS<>/Dest(prop-version)/F 4/Rect[289.267816 529.094451 325.044428 515.494842]/Subtype/Link/Type/Annot>> +endobj +477 0 obj +<>/BS<>/Dest(prop-version)/F 4/Rect[331.103022 529.094451 390.117914 515.494842]/Subtype/Link/Type/Annot>> +endobj +478 0 obj +<>/BS<>/Dest(unknown-properties)/F 4/Rect[442.360102 529.094451 501.374994 515.494842]/Subtype/Link/Type/Annot>> +endobj +479 0 obj +<>/BS<>/Dest(section-1.7.2)/F 4/Rect[65.905512 490.395233 99.092035 477.395233]/Subtype/Link/Type/Annot>> +endobj +480 0 obj +<>/BS<>/Dest(name-iana-registered-properties)/F 4/Rect[99.092035 490.395233 238.986078 477.395233]/Subtype/Link/Type/Annot>> +endobj +481 0 obj +<>/BS<>/Dest(iana-considerations)/F 4/Rect[244.192377 458.795623 287.02807 445.196014]/Subtype/Link/Type/Annot>> +endobj +482 0 obj +<>/BS<>/Dest(unknown-properties)/F 4/Rect[226.778315 407.996795 285.793207 394.397186]/Subtype/Link/Type/Annot>> +endobj +483 0 obj +<>/BS<>/Dest(prop-version)/F 4/Rect[91.122065 367.197967 126.898676 353.598358]/Subtype/Link/Type/Annot>> +endobj +484 0 obj +<>/BS<>/Dest(prop-version)/F 4/Rect[132.95727 367.197967 191.972162 353.598358]/Subtype/Link/Type/Annot>> +endobj +485 0 obj +<>/AP<>/BS<>/F 4/Rect[426.03515 316.399139 489.509027 302.799529]/Subtype/Link/Type/Annot>> +endobj +486 0 obj +<>/BS<>/Dest(RFC5234)/F 4/Rect[69.505365 302.799529 110.463129 289.19992]/Subtype/Link/Type/Annot>> +endobj +487 0 obj +<>/BS<>/Dest(section-1.7.3)/F 4/Rect[65.905512 264.100311 99.092035 251.100311]/Subtype/Link/Type/Annot>> +endobj +488 0 obj +<>/BS<>/Dest(name-reserved-properties)/F 4/Rect[99.092035 264.100311 201.830316 251.100311]/Subtype/Link/Type/Annot>> +endobj +489 0 obj +<>/BS<>/Dest(iana-registry-policy)/F 4/Rect[278.861566 246.100311 329.786859 232.500701]/Subtype/Link/Type/Annot>> +endobj +2779 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2778 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2777 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2776 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2775 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2774 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2773 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2772 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2771 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2770 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2769 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2768 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2767 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2766 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2765 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2764 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2763 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2762 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2761 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1805 0 obj +<>stream +xZ[o `uQˎGsٹEѺII$R"%9 Ӣm>5@?3gf]rIZirٝs|gazZgt65 +O#.k7;0fXhQ0W7j_WiͶp.Ui{^ܦ+[d:o"73`Fm'2.6Ϫ8%y+&||_;Q.N|yޞjMv8TH'휿m_pI:۟?%>i2"'Wd@sGNkx% 2)38wq2 ]\am:p#/:hZ0Y$9^l?gRRTn} Ľ-9' ZX o,3k;K+yZtG[-ֆzjƩPҺ ,:}]ue9vּdB;G:OF "!4p(o''Bԇ1UZ.}P)ujByG*J S0K-Iq,e ȟF};4S=BҲ[gp֖s\@ F(M +- Tc/"G>;WG%35@[&3?%4R[= Z 4mOHx ~M\NTw$5?!l5*Q|λ ڬ"֬ U" +[EΎdž# #Rr}Kl !! V+SO ^,R[6fZU\yzt +w卣VAT%I &g5=HD{:Sj{ @Nۼ/oo+l*tx|z) ]mP)4L| + ;amF{ЉJpUh_P'(ohts[U'0XQ (4'Hu{< Rf$@m:q@~fB^!KOZԎH.H"n0#P; (+|O9=ܒ&?AI\aE.(7ͺr PfQxu:itc)03\}r/.̯\' +8 -*LrW^)`rPj+ez=URo-{)( ;Ë +Ւ;fGb*YQ +W'הJ8 +EQU,̃#pl8e@\ @01t's8!t<^];%Y7rSG^%E ؛Ũb_V's'TH,yb=.d(~;{XM!C~UZ*jRUWH%yos RT=ɒݥubFb'΄֭816in}54'W!#{\)Y#l|>eg^!'1ls2gY@WJEhg +&Iy}G5G3A@ir=yX`jZ*>TMƙv>ڗ چC kh!)54x]o 0>zYKwVzz2Y3p;C=4nYZ`T))'^բ!ڏv^g|nڶ`a0V wפu+5oE=JKC ֎q_k!f6 0F 4291Le +ཨohIX-bXOn9Sx yPI>VaIZf>+ҁ0(kt/{~j!e0IpY'TG$ Oe+1{ ' ,4W1.M wNj~z!Kb˜w[" |*r@BOU8W5Pnp4 AV<&δb[U4V| +M:Z_ byKyc26P?#fgYܱ ],5 \w05ofde~ޅuAK +jU&ֲ8"UQ<Cj:W{B^}MFJs0f#z:Wqf'PwApӇޛHqe,HH+B3W{fJ 4[un# +SP /k+O7#%5UƑ.& o̬f4Zb}%&2̖T89}QOf5~%݌8vUX`͘C!dxQ!_􎦯gц%aiMi74-NZtEʑ^%R7 +endstream +endobj +1664 0 obj +<>/Font<>>> +endobj +454 0 obj +<>/BS<>/Dest(name-prop)/F 4/Rect[358.98852 771.389764 385.866938 757.790154]/Subtype/Link/Type/Annot>> +endobj +455 0 obj +<>/BS<>/Dest(name-prop)/F 4/Rect[391.925531 771.389764 450.940424 757.790154]/Subtype/Link/Type/Annot>> +endobj +456 0 obj +<>/BS<>/Dest(figure-1)/F 4/Rect[65.905512 588.840745 103.991449 575.241136]/Subtype/Link/Type/Annot>> +endobj +457 0 obj +<>/BS<>/Dest(name-example-of-a-phonetic-prope)/F 4/Rect[109.45019 588.840745 502.506586 575.241136]/Subtype/Link/Type/Annot>> +endobj +458 0 obj +<>/BS<>/Dest(section-1.6)/F 4/Rect[65.905512 560.741136 95.494623 545.141136]/Subtype/Link/Type/Annot>> +endobj +459 0 obj +<>/BS<>/Dest(name-internationalization)/F 4/Rect[95.494623 560.741136 219.546381 545.141136]/Subtype/Link/Type/Annot>> +endobj +460 0 obj +<>/BS<>/Dest(section-1.6.1)/F 4/Rect[65.905512 473.242698 99.092035 460.242698]/Subtype/Link/Type/Annot>> +endobj +461 0 obj +<>/BS<>/Dest(name-free-form-text)/F 4/Rect[99.092035 473.242698 177.122797 460.242698]/Subtype/Link/Type/Annot>> +endobj +462 0 obj +<>/BS<>/Dest(UBiDi)/F 4/Rect[126.998285 414.44387 154.375483 400.844261]/Subtype/Link/Type/Annot>> +endobj +463 0 obj +<>/BS<>/Dest(section-1.6.2)/F 4/Rect[65.905512 334.945823 99.092035 321.945823]/Subtype/Link/Type/Annot>> +endobj +464 0 obj +<>/BS<>/Dest(name-uris)/F 4/Rect[99.092035 334.945823 122.519281 321.945823]/Subtype/Link/Type/Annot>> +endobj +465 0 obj +<>/BS<>/Dest(RFC3986)/F 4/Rect[400.424555 316.945823 441.382318 303.346214]/Subtype/Link/Type/Annot>> +endobj +466 0 obj +<>/AP<>/BS<>/F 4/Rect[287.011957 289.746605 337.93725 276.146995]/Subtype/Link/Type/Annot>> +endobj +467 0 obj +<>/BS<>/Dest(RFC3987)/F 4/Rect[356.19433 289.746605 397.152094 276.146995]/Subtype/Link/Type/Annot>> +endobj +468 0 obj +<>/BS<>/Dest(WHATWG-URL)/F 4/Rect[206.819086 248.947776 278.262445 235.348167]/Subtype/Link/Type/Annot>> +endobj +2794 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2793 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2792 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2791 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2790 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2789 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2788 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2787 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2786 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2785 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2784 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2783 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2782 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2781 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2780 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1804 0 obj +<>stream +x[[o^ 1"N|0 +sAJIXd.eGyH:/v}CzϜ]^KP˽̜9ߙY،?XɈh9ǧSb,x)=RCff"RR'NM~egFOx!qNs5|`jf''$fɏ};+d1qtn&e)^GjsV;]gva7Ku߿VX#)Sӊ(Õc,޿>~9<5{aYJRTj+n=Ip|gr$V<1Q^ ']l9Z-(sF !+62֢ 9Y3u&#rm +E$qGvO^"#1Ydg Bߢw +#Mqt;YɵjH0 TZp= u=A: TX2M{+t%!p}x(aGBw\2 w= % +`<(c 7휸.ԋ*R3/_WifWIN2G5ڕSZƭn_Yd֔qJ xӼAy|uTh\e-| u+@8|~ۃHAxٮ>v"}®vo^E%ݕvΒ3ə0hh);`t9Tkt-h%8 HR>x ϋпC&-mi#8@E1B%E\ K/ړa%x*c4C2K|v֨RBxk<@-EaZ`1fQB2Ó|RU1 +21[(85^(QZxHW5[r04"r$[oEw#Y,+yYhum=6=|܋隢%#9sͱ o{Z|:=dž}U/߳WTZ <] XcWy EXq OkIhRy k&ޛogu:M/3[U$XJa%Y j 3PgU--OD7~s^mC5*hU$R2)XeS eo"4s ߕu`eQe1:ZKf|\Wzh+TZܥAAE=)ĉ ,[/U]$-6Xh$ZA +l]SM^ cAоa.$ RDBAһ,זэA;5֑Ւw *RK콨NͤDR%oN/06"!Q h' z}u\dRNNZ磤-kY qӒZ SUJ PcTU02ĥI`VocRwnUw5I' +ɹ1 ](I-guUkKO 3|/Y#5Fl-" v=WwPo-q٭׏ğA4.CyG?VǧF/I+ _c%+$}o&*`)%\8B/+[`Oo 2/jú}".KVgKs\ެ+JcEɴ&*'jV)Aqg,t 0b\m,n/ÊbwY@ k],+YiW|":I(5顥+NwdM)* >Q?܁uw8q7<] G$sP9)0.~+qqԠ_*|SY*vUU={x P9zkќ;"SN&m}~V wbې0Z7áSVI;2ҫˑ^%920`e_$;·S!'W쫱9 9wwb[8zH/vբ"VKi#RD*#||AZZ)J7:!:B:%Nb1qq3kf;h]mo7?Su8_;1rxA*^(\E0l&)U\fE1()6FPA=+T&j#wxcC2ǽ@1fKz˰bcdhAVz0%Zi8:7'!`wL(gVA & Kgm[kl$ ZU+]BYW\. [[pz/RK2$ +~). ZNA';<l/`QZNDf>ʾq0)#k9o2|W¦H]*JW\K|ZZT;٣. +endstream +endobj +1662 0 obj +<>/Font<>>> +endobj +429 0 obj +<>/BS<>/Dest(section-1.5.2)/F 4/Rect[65.905512 756.389764 99.092035 743.389764]/Subtype/Link/Type/Annot>> +endobj +430 0 obj +<>/BS<>/Dest(name-label)/F 4/Rect[99.092035 756.389764 124.318842 743.389764]/Subtype/Link/Type/Annot>> +endobj +431 0 obj +<>/BS<>/Dest(section-1.5.3)/F 4/Rect[65.905512 662.491326 99.092035 649.491326]/Subtype/Link/Type/Annot>> +endobj +432 0 obj +<>/BS<>/Dest(name-pref)/F 4/Rect[99.092035 662.491326 120.549799 649.491326]/Subtype/Link/Type/Annot>> +endobj +433 0 obj +<>/BS<>/Dest(section-1.5.4)/F 4/Rect[65.905512 494.194451 99.092035 481.194451]/Subtype/Link/Type/Annot>> +endobj +434 0 obj +<>/BS<>/Dest(name-phonetic)/F 4/Rect[99.092035 494.194451 143.5581 481.194451]/Subtype/Link/Type/Annot>> +endobj +435 0 obj +<>/BS<>/Dest(language)/F 4/Rect[65.905512 462.594842 109.171869 448.995233]/Subtype/Link/Type/Annot>> +endobj +436 0 obj +<>/BS<>/Dest(language)/F 4/Rect[115.230463 462.594842 174.245356 448.995233]/Subtype/Link/Type/Annot>> +endobj +437 0 obj +<>/BS<>/Dest(localizations)/F 4/Rect[344.662348 462.594842 404.564936 448.995233]/Subtype/Link/Type/Annot>> +endobj +438 0 obj +<>/BS<>/Dest(localizations)/F 4/Rect[410.623529 462.594842 469.638422 448.995233]/Subtype/Link/Type/Annot>> +endobj +439 0 obj +<>/BS<>/Dest(language)/F 4/Rect[80.905512 374.596795 124.171869 360.997186]/Subtype/Link/Type/Annot>> +endobj +440 0 obj +<>/BS<>/Dest(language)/F 4/Rect[130.230463 374.596795 189.245356 360.997186]/Subtype/Link/Type/Annot>> +endobj +441 0 obj +<>/AP<>/BS<>/F 4/Rect[257.042719 312.198358 316.057611 298.598748]/Subtype/Link/Type/Annot>> +endobj +442 0 obj +<>/BS<>/Dest(RFC5646)/F 4/Rect[334.314691 312.198358 375.272455 298.598748]/Subtype/Link/Type/Annot>> +endobj +443 0 obj +<>/BS<>/Dest(enumerated-values)/F 4/Rect[101.33349 276.999139 159.427729 263.399529]/Subtype/Link/Type/Annot>> +endobj +444 0 obj +<>/BS<>/Dest(enumerated-values)/F 4/Rect[165.486322 276.999139 224.501215 263.399529]/Subtype/Link/Type/Annot>> +endobj +445 0 obj +<>/BS<>/Dest(IPA)/F 4/Rect[178.835199 253.399529 332.347895 239.79992]/Subtype/Link/Type/Annot>> +endobj +446 0 obj +<>/BS<>/Dest(IPA)/F 4/Rect[338.547113 253.399529 354.805414 239.79992]/Subtype/Link/Type/Annot>> +endobj +447 0 obj +<>/BS<>/Dest(name)/F 4/Rect[319.883783 184.001092 347.942133 170.401483]/Subtype/Link/Type/Annot>> +endobj +448 0 obj +<>/BS<>/Dest(name)/F 4/Rect[354.000727 184.001092 421.105219 170.401483]/Subtype/Link/Type/Annot>> +endobj +449 0 obj +<>/BS<>/Dest(address)/F 4/Rect[447.98144 184.001092 486.186762 170.401483]/Subtype/Link/Type/Annot>> +endobj +450 0 obj +<>/BS<>/Dest(address)/F 4/Rect[492.245356 184.001092 526.89184 170.401483]/Subtype/Link/Type/Annot>> +endobj +451 0 obj +<>/BS<>/Dest(address)/F 4/Rect[65.905512 170.401483 95.764154 156.801873]/Subtype/Link/Type/Annot>> +endobj +2817 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2816 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2815 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2814 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2813 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2812 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2811 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2810 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2809 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2808 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2807 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2806 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2805 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2804 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2803 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2802 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2801 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2800 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2799 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2798 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2797 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2796 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2795 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1803 0 obj +<>stream +xZKs +J*K$R +G1]hޏ]H.H >$)Uvr!?==;v 1L{z P+-'0yL‹'/'Z +b(5LQDJꤚz1/?_:_cq#qNs37%|`hf RkF$*oleS|u )#oV]}ríI|b\̿5IN Ǖ\|<}uÄ ckrq3~Ur,erKV9YqLdsxz|t( Rhjx<)_䜂1Vr̳dPx bW azxր| %;Vqvn & 9 '4)z G? ߠfwWB(v=GV~1#H "4+^S8 }3)\{S0J>^]|4B1~NWv.f(tb4700*^(,5@fMlզuP9@J O9L . ;4l㐿5u3ekc9(VXh@Knoz*==5B޷`)h<)%PJ ;ӃW. +{q]3Nh}Bq) u(mrY?%-a +GܻPC1 +Bڨ7Dpʹx)X,jݶqyp@CmtZLXκ9o"K}EY]a,3eMY֜y^9|7y]AKRVZ[T4-#tlLq3$%΋:u5̙F:bܦ*Wr d]a +t&}5VPeJ + 19J pUYTwt2[0X@E?~13w]QȜ :4勋"K{Α02K꾛o՝n7f;Yv=@}pgs YuH";(b{|,9O)Ԧ=# P[ $ +#ڿ`\`iIȒj]ʩ>9-VҲVAc[=ѹW`%r%|uW . c\>뼞\c~S{+Qײ}0Ī +endstream +endobj +1660 0 obj +<>/Font<>>> +endobj +409 0 obj +<>/AP<>/BS<>/F 4/Rect[443.105951 722.590936 485.941645 708.991326]/Subtype/Link/Type/Annot>> +endobj +410 0 obj +<>/BS<>/Dest(RFC3986)/F 4/Rect[84.505365 708.991326 125.463129 695.391717]/Subtype/Link/Type/Annot>> +endobj +411 0 obj +<>/BS<>/Dest(RFC2046)/F 4/Rect[294.33935 687.391717 335.297113 673.792108]/Subtype/Link/Type/Annot>> +endobj +412 0 obj +<>/BS<>/Dest(prop-contexts)/F 4/Rect[492.876947 652.192498 527.523432 638.592889]/Subtype/Link/Type/Annot>> +endobj +413 0 obj +<>/BS<>/Dest(prop-contexts)/F 4/Rect[80.905512 638.592889 102.674555 624.993279]/Subtype/Link/Type/Annot>> +endobj +414 0 obj +<>/BS<>/Dest(prop-pref)/F 4/Rect[98.713617 603.39367 157.72851 589.794061]/Subtype/Link/Type/Annot>> +endobj +415 0 obj +<>/BS<>/Dest(prop-label)/F 4/Rect[364.390375 581.794061 423.405268 568.194451]/Subtype/Link/Type/Annot>> +endobj +416 0 obj +<>/BS<>/Dest(section-1.4.5)/F 4/Rect[65.905512 556.694451 99.092035 543.694451]/Subtype/Link/Type/Annot>> +endobj +417 0 obj +<>/BS<>/Dest(name-utcdatetime)/F 4/Rect[99.092035 556.694451 168.604731 543.694451]/Subtype/Link/Type/Annot>> +endobj +418 0 obj +<>/BS<>/Dest(RFC3339)/F 4/Rect[334.182856 538.694451 375.140619 525.094842]/Subtype/Link/Type/Annot>> +endobj +419 0 obj +<>/BS<>/Dest(section-1.5)/F 4/Rect[65.905512 432.596795 95.494623 416.996795]/Subtype/Link/Type/Annot>> +endobj +420 0 obj +<>/BS<>/Dest(name-common-properties)/F 4/Rect[95.494623 432.596795 216.952143 416.996795]/Subtype/Link/Type/Annot>> +endobj +421 0 obj +<>/BS<>/Dest(section-1.5.1)/F 4/Rect[65.905512 331.498748 99.092035 318.498748]/Subtype/Link/Type/Annot>> +endobj +422 0 obj +<>/BS<>/Dest(name-contexts)/F 4/Rect[99.092035 331.498748 142.307856 318.498748]/Subtype/Link/Type/Annot>> +endobj +423 0 obj +<>/BS<>/Dest(phones)/F 4/Rect[344.645502 276.299529 379.212152 262.69992]/Subtype/Link/Type/Annot>> +endobj +424 0 obj +<>/BS<>/Dest(phones)/F 4/Rect[385.270746 276.299529 444.285639 262.69992]/Subtype/Link/Type/Annot>> +endobj +425 0 obj +<>/BS<>/Dest(enumerated-values)/F 4/Rect[313.21435 239.100311 371.308588 225.500701]/Subtype/Link/Type/Annot>> +endobj +426 0 obj +<>/BS<>/Dest(enumerated-values)/F 4/Rect[377.367182 239.100311 436.382074 225.500701]/Subtype/Link/Type/Annot>> +endobj +2835 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2834 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2833 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2832 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2831 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2830 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2829 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2828 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2827 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2826 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2825 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2824 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2823 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2822 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2821 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2820 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2819 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2818 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1802 0 obj +<>stream +x[[o TNФ Pðd= PAJZ$e>E@>?gn;!̹̹|xDF^/IQ~P݌_pHrV(V#D96\>csHFዿ~ЎWB Fj7zLMt|w] .o7Buz;'U9;Fx߱U~I>-[ +Nr*Pb~?|到1y0Z+³`CcAQt&N"[KɇgRaU(3Tx_MߜS4h~5|.|nv.A.Wp{^~, 4^pws &p>aOmJJ%7@F@"~ߧ (VԶ}1a-J;.98os<+yZD'{_wfa +ϜNb5B=RaȧMtu!0ך̀KtߧB\cӯ]>r.sڧ?Uq @]ӠS⥣sD;##ŲLI#SPfrtΆ-yQ $0J++Q / p7 Fux)jtdNG˴N5M/R(^ʘ ՜{Y07 vMK+g2c:r6qTw vSn){ѭXu2t@ +t+È7!s*T `+,ČBK!ALz傔{!Xe١*,.>"Bؽ}T ,\XӉg>KgADzw"wL8*CYS3K+FT6G sBfF7j*|#96wߝ ddtrO.mh; +[u +8L(` M\Vf{݂j%XXҞ๟]uoc_ge m[Gl[a2Q$1+gUN/w+D IWqr$(kѠ@l E +XxfqDuSxp:!g7@FZ9ޘola` S OI(]b&tX&N,o*ҝǦ7gKD3(eLU ŹN{( Y/[ӿLhRf(F1Wݜ8.e/6'2=guw5LnU޵Ji[ze +̰)ѫ u-:0tu(-OkQ8!$؏pɁBr! F7w +p|q$sMjE87>chAƉQmAG0Iau#n؝ft9z{(HS׋O#qƉjװQ=Lrь״R8iA:9Ij_XڿtI #zS($2GИ +A5j~ +Ƥ"HJz7qz*[ i;a*4R鹒jW+iiGI,NvweIw8fA}t9i4럖I^2%&@e4qVf:VreU+5ol^xO0j417*޶] _(y|ںi<Um\&0fO= '7|2i96Ali='b LD-Gjʓ\6ځY#T1FihVyYK@Pc{2ti; _Yd`.ciNiH>m֞R6'ڟL>F_Q*uU<ߨ=\Bh҈{MQ.,e%( Zt,"af"H}w ^\~JBP#FIJ^(~a쿷 +i!]LtSC 偺FVPA>zvY.S@*h)|#07. +endstream +endobj +1658 0 obj +<>/Font<>>> +endobj +398 0 obj +<>/BS<>/Dest(section-1.4.3)/F 4/Rect[65.905512 756.389764 99.092035 743.389764]/Subtype/Link/Type/Annot>> +endobj +399 0 obj +<>/BS<>/Dest(name-patchobject)/F 4/Rect[99.092035 756.389764 160.286615 743.389764]/Subtype/Link/Type/Annot>> +endobj +400 0 obj +<>/BS<>/Dest(RFC6901)/F 4/Rect[400.414301 724.790154 441.372065 711.190545]/Subtype/Link/Type/Annot>> +endobj +401 0 obj +<>/BS<>/Dest(prop-type)/F 4/Rect[247.443598 379.198358 277.310297 365.598748]/Subtype/Link/Type/Annot>> +endobj +402 0 obj +<>/BS<>/Dest(prop-type)/F 4/Rect[283.368891 379.198358 342.383783 365.598748]/Subtype/Link/Type/Annot>> +endobj +403 0 obj +<>/BS<>/Dest(section-1.4.4)/F 4/Rect[65.905512 303.29992 99.092035 290.29992]/Subtype/Link/Type/Annot>> +endobj +404 0 obj +<>/BS<>/Dest(name-resource)/F 4/Rect[99.092035 303.29992 145.757563 290.29992]/Subtype/Link/Type/Annot>> +endobj +405 0 obj +<>/BS<>/Dest(RFC3986)/F 4/Rect[160.49267 271.700311 201.450434 258.100701]/Subtype/Link/Type/Annot>> +endobj +406 0 obj +<>/BS<>/Dest(resource-properties)/F 4/Rect[352.628168 160.102654 403.553461 146.503045]/Subtype/Link/Type/Annot>> +endobj +2844 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2843 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2842 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2841 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2840 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2839 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2838 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2837 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2836 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1801 0 obj +<>stream +xZ'* ΰ]hIjt ] i?@ˇ(|).P)M ^iQ~?q)'~ΔL%3E*JdE__4~f$oC{2-2 j{n4apyDγ|WnW_Lop.~X;wN;ze4gŰ{28BR3&tz~aUzq;ER$d∑/82S8$#|'erǗArw͓5^}K9M&p~\F~ +%ɟ1۳1ְƑrLdbMȞ=8d9rň"9e"3 }!caj`mN.IZ&EgYJkFe)UA)jf,(\ΝFBZ3B^{G6Ku5!(%sdR_! mQ0t ^{3_T^DݗW@:;IAu6<$u$ӛYyffgTdBI؋o1[a +7m{吨g^Yn'Sfݒg=(#lDp3sV(<ZD7o7# Y}hMjF pwW mE +/}Q}zUI3Lrޗr*׹W7䃥zThHKL!,b}ea/<&uhP0 +҃}qe쓦@%\4K?.$B:[_Aܭ b4 gɵ8n:TZ#YlwwxΌΌFzK:^c+=Gk>Le9:v 6Oey]6JtD2nX֠H<HommDx3 ܐy`jl(.QskȬ: dk\3\$]xFʼY/K5uYMZg>x7#9S\\ u8bU9IfKXL}|$g|[ H~5, =J:++%] d-cRO+G&: 3J}'rS +?賃) +.m"v`?bҦMb8sލ!yu7蝋(~AɫH# 3GЖւ#ur@?߲sdz>k$nZbe&vi4%]cDГA>{/@j;3^[Y{4fZbNc\X<Ì^q t):wa;vޟ:N>/;0kjEp5~:c}F*)R}mw^#lZTȒ9/=ڷvj{tgKe"*}.9}/-!(# HqI{4x=sߗU1s~EYhTq7DPUD!&j⏯P '=m>ţB8 +D :]Q*Qty+TqT ^S6 .z#吠VTNuÌs]Y<#1f/-kпIEυw&;r @H +ūx3!(n4՛3/e f966gs6qgL<[O ;\DLnԄJ6F}tجW>6 x L0K[b7W<y ;FMFxe(/L]NzU:\G]H3ʧ)%nn3ȼtvstIY41!P  +x@ YJҹ@BE!O}]q|{r;2!S ܷU4y(UC: d:.O18j*F3mxU^Ei@q;>%T>6e*LF48}xfϱLF֡fA$ѣtmnph+7Zc'xFaG ۝-shm=)@ჇdLhi)ܱA=RL5Rl>;iVNܨ=8AAa8/%lwF͘xrgٝGiB3@%Yw=ӵ(y=i7Rf"5ydL*ηx9ϳB~ĉ^xm'kw@o UnU! +BY3ޥX'ɧyIƈw'8`e&'xLR~xRҌr}:0EY5V|V-İŨ:~Dyyן @#LyHܧBwHqg5aL؟=W=:pJ\62s'1;#lH2oQ{K} M^@&7;O貂=)>3Y_\6F~\ΉTڰBg1?U +!qG[۬^%g7lO[BsEVw`?\b7UMiZ Rmrِ +endstream +endobj +1656 0 obj +<>/Font<>>> +endobj +386 0 obj +<>/BS<>/Dest(section-1.4)/F 4/Rect[65.905512 592.294061 95.494623 576.694061]/Subtype/Link/Type/Annot>> +endobj +387 0 obj +<>/BS<>/Dest(name-common-data-types)/F 4/Rect[95.494623 592.294061 219.796869 576.694061]/Subtype/Link/Type/Annot>> +endobj +388 0 obj +<>/BS<>/Dest(section-1.4.1)/F 4/Rect[65.905512 531.994842 99.092035 518.994842]/Subtype/Link/Type/Annot>> +endobj +389 0 obj +<>/BS<>/Dest(name-id)/F 4/Rect[99.092035 531.994842 109.59057 518.994842]/Subtype/Link/Type/Annot>> +endobj +390 0 obj +<>/AP<>/BS<>/F 4/Rect[129.547846 486.795623 172.383539 473.196014]/Subtype/Link/Type/Annot>> +endobj +391 0 obj +<>/BS<>/Dest(RFC4648)/F 4/Rect[190.640619 486.795623 231.598383 473.196014]/Subtype/Link/Type/Annot>> +endobj +392 0 obj +<>/BS<>/Dest(card)/F 4/Rect[280.070795 317.19992 302.687983 303.600311]/Subtype/Link/Type/Annot>> +endobj +393 0 obj +<>/BS<>/Dest(card)/F 4/Rect[308.746576 317.19992 351.58227 303.600311]/Subtype/Link/Type/Annot>> +endobj +394 0 obj +<>/BS<>/Dest(section-1.4.2)/F 4/Rect[65.905512 251.301483 99.092035 238.301483]/Subtype/Link/Type/Annot>> +endobj +395 0 obj +<>/BS<>/Dest(name-int-and-unsignedint)/F 4/Rect[99.092035 251.301483 199.900385 238.301483]/Subtype/Link/Type/Annot>> +endobj +2854 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2853 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2852 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2851 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2850 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2849 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2848 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2847 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2846 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2845 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1800 0 obj +<>stream +xZI."#*վ\.3bF$gIcE +`%u5Ō#J\o_W ËS:Qw?xؼɚ(I-cYMb^C^LJ/U?c~s BPͽqxp ] Y]d.;_3oo5&_x-s+̓}rTk˛+3NT9*U7/o.F_V\R ĒdJܒ%K<^ 5~k#|_Ӛ +*Kt(^ sJ~&&(q WfR0߷)Q)j}F&A;$ oYmh-gG-Uf\XXjz{!bE*::J/UOLF1gb R7mϒpj-m˭h e9+ PEb"g#qՀN 8$u +L1E|keQSN5!PKp:ErSCRZm?^ 48x|# *`*s&.1׍71+kT—Exю?x|x{  {d` zy25ls8AU4{xNF&2uޡshK p:96"䄴1HψZc%x#86b@Fopi}Z!ml 6Æ:% Ć99Mv:K#@ Zۅ10mswYw'pzAGiiw{L뗱p-]u]vp +ZjgƩ )՟Wh55\!sXx[*w,Lv/iz$f䋺ösP3J>ޛQG-p7wKL| ]ggUpN&n +B 0vn=&3$;[ dkhQeqPPWc-ҤNyRBu1]B'@]Njv M)d'օQtg%2sq-If$I#0k (#1OrO\"e`JQH]lqc$"ΘzM6anMH~l3lKpȣB`Ѕ\U񾊰kaJ5^k4b6! +&bviPiDB>q\ ۩T~zYŬ#V2_)hg0f+eO/F +׽qd dc8Qz[{yDeuuc멂' ,mxz%.|(ӆ1CX]i4KN }M  1 +y?'w1 $l崕0~XL +^ÿ LH[Y-aެtnyȽYՑ}Xc,%`\ *R+ +endstream +endobj +1654 0 obj +<>/Font<>>> +endobj +377 0 obj +<>/BS<>/Dest(section-1.3.2)/F 4/Rect[65.905512 702.991326 99.092035 689.991326]/Subtype/Link/Type/Annot>> +endobj +378 0 obj +<>/BS<>/Dest(name-type-signatures)/F 4/Rect[99.092035 702.991326 180.343988 689.991326]/Subtype/Link/Type/Annot>> +endobj +379 0 obj +<>/BS<>/Dest(common-data-types)/F 4/Rect[65.905512 470.995233 116.830805 457.395623]/Subtype/Link/Type/Annot>> +endobj +380 0 obj +<>/BS<>/Dest(section-1.3.3)/F 4/Rect[65.905512 445.895623 99.092035 432.895623]/Subtype/Link/Type/Annot>> +endobj +381 0 obj +<>/BS<>/Dest(name-property-attributes)/F 4/Rect[99.092035 445.895623 198.831781 432.895623]/Subtype/Link/Type/Annot>> +endobj +382 0 obj +<>/BS<>/Dest(section-1.3.4)/F 4/Rect[65.905512 263.598748 99.092035 250.598748]/Subtype/Link/Type/Annot>> +endobj +383 0 obj +<>/BS<>/Dest(name-the-type-property)/F 4/Rect[99.092035 263.598748 199.373041 250.598748]/Subtype/Link/Type/Annot>> +endobj +2861 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2860 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2859 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2858 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2857 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2856 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2855 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1799 0 obj +<>stream +xZo? T؉qoER-H(mQ.}ޙݻݻ(;6-=YNؤ׷aˍZ?ގZI'ÑV%\6zb̅(9k&󿱼1>mcYe虻^43HOMrb1L:|M+yNlEo10+g%4?c]+- +&Ma&*L_ގrlnك({?\K0+Γ.!f7tv{|eْN^gs6z2XDn25H+\:_^8I%9P'c 8ZivWft5܏|/|ù)|=3xVXfw`$nYi6\l<Le'Bx y'*(W\ XFQ͑W^`CRے_ӕ-BLx*aYWt =sDn\YptJ3(I<@87Adtϔށ[w>W8VGܐrV>'rr ,q |!cXeF<>9 +n`<~ޑkϜSrm+ކ( q~쯐HGl;A}5F(Tnʑ_d=ziN`^vn-0{ mxT!_v$;s +#P>.URR2%<ҙ4't2L6V5xL" G&/l k??P VXU_zt3%F&L-D,AG\򜁹h,-XVsErb$Z0Qˬ1- +Н^){|G,ت\4i6[#!G|CgN9|h@FdjUGL]YiQ2W0ZLԁnC=x.[ЌrI* +27eay#?(g]uhN8dD ijco] 7tjћS9XC}/ؐZ[~dI)%;]HÊ֔po؃I@xzw +0d$Wa^Ma{Ԇ&z4gv/RU⻇3rhp- Rʢ u ” )! &h`݀dM칱CN +Kcgշ9M2.i,DtP(i1 +ڪX6(\tYQ +nӤSvs^'@+Ы,̯]iu0ϥ74o8U\I?BP܍֚zqR%x}GneبeY+"Q=ol4tpPZzCUlH5zH*F#2+BMQҾm0ZJ0iEpfE}r=r2 3JS4?ހ?;+嶵?:mW/SܧTuurOB<3]kh:l-*mm]ṌtQ/ppMhi/h^@6: OAk$;OVF6ZX +O7GٓSx=lJOTq쵃Pw0% \ݔw#oߣkRuPDβoϳrO]"ghY!pI]uw'=UkXn-nb"\R@q/ +endstream +endobj +1652 0 obj +<>/Font<>>> +endobj +359 0 obj +<>/BS<>/Dest(section-1.3)/F 4/Rect[65.905512 753.389764 95.494623 737.789764]/Subtype/Link/Type/Annot>> +endobj +360 0 obj +<>/BS<>/Dest(name-data-type-notations)/F 4/Rect[95.494623 753.389764 218.704828 737.789764]/Subtype/Link/Type/Annot>> +endobj +361 0 obj +<>/AP<>/BS<>/F 4/Rect[295.276606 680.990936 338.112299 667.391326]/Subtype/Link/Type/Annot>> +endobj +362 0 obj +<>/BS<>/Dest(RFC8259)/F 4/Rect[356.369379 680.990936 397.327143 667.391326]/Subtype/Link/Type/Annot>> +endobj +363 0 obj +<>/BS<>/Dest(RFC7493)/F 4/Rect[282.468744 667.391326 313.296381 653.791717]/Subtype/Link/Type/Annot>> +endobj +364 0 obj +<>/BS<>/Dest(RFC7493)/F 4/Rect[319.4956 667.391326 360.453363 653.791717]/Subtype/Link/Type/Annot>> +endobj +365 0 obj +<>/AP<>/BS<>/F 4/Rect[443.5935 640.192108 486.429193 626.592498]/Subtype/Link/Type/Annot>> +endobj +366 0 obj +<>/BS<>/Dest(RFC8259)/F 4/Rect[69.505365 626.592498 110.463129 612.992889]/Subtype/Link/Type/Annot>> +endobj +367 0 obj +<>/BS<>/Dest(section-1.3.1)/F 4/Rect[65.905512 601.492889 99.092035 588.492889]/Subtype/Link/Type/Annot>> +endobj +368 0 obj +<>/BS<>/Dest(name-objects-and-properties)/F 4/Rect[99.092035 601.492889 214.439691 588.492889]/Subtype/Link/Type/Annot>> +endobj +369 0 obj +<>/BS<>/Dest(iana-type-registry)/F 4/Rect[293.602045 519.094451 416.717768 505.494842]/Subtype/Link/Type/Annot>> +endobj +370 0 obj +<>/BS<>/Dest(iana-type-registry)/F 4/Rect[422.776361 519.094451 473.701654 505.494842]/Subtype/Link/Type/Annot>> +endobj +371 0 obj +<>/BS<>/Dest(prop-type)/F 4/Rect[462.606195 459.696014 521.621088 446.096404]/Subtype/Link/Type/Annot>> +endobj +372 0 obj +<>/BS<>/Dest(validating-jscontact)/F 4/Rect[429.500971 436.096404 443.180414 422.496795]/Subtype/Link/Type/Annot>> +endobj +373 0 obj +<>/BS<>/Dest(vendor-specific-extensions)/F 4/Rect[466.597406 436.096404 480.27685 422.496795]/Subtype/Link/Type/Annot>> +endobj +374 0 obj +<>/BS<>/Dest(prop-type)/F 4/Rect[335.064447 231.000701 394.07934 217.401092]/Subtype/Link/Type/Annot>> +endobj +2877 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2876 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2875 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2874 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2873 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2872 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2871 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2870 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2869 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2868 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2867 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2866 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2865 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2864 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2863 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2862 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1798 0 obj +<>stream +x[[oT T6[bG~iH)K-RHڧ"=sff7.wC:%r;s.s.93!חJY댖8y7;~j)2CfhʤN/,? п~~p-x!q)1o3x̦'ʏHJ $(πXf&ĥۦpgUv>U!\uq\w1 E_kϘ̔!6qeܾ8jD3O!dBȘ~Մ\ܝ<Y4~'F)|wOMa)\3| +>q%/`櫸gX΀cn1x3 2<Јb2'STAKI>ȍ`%>w Z󚲴#P:9y(%>%xq[T%2'1 +!p]]rdk1([7c}u~ 18ˋwwSwP)Pa?Y (F+JU5?j|M=ָf>ʀ&Fe,*DF7$K6R(rw C<%6\X"AvTw'TLi >;a<$OӞTfQ&]w;+uB0ɩ-@|Ѐ  Xs ׫IE6 hqyU&}[IPEҍ2!4JeTu,֜G ep+ei;Bx0:Ǘ!)¦[=+0W6( mS 2'/yV$@WHv.J}=;+|l]<k1^łiB8rJK^`>ׯ%$SL^xA,| 4_u) Kg Wڄv4`WY)TE_9}/jj%-/?;âj +%.2X$~">63YTB+퓈k|جdXl%wvoBXT euV"S}XUvsK). uxVŠ=TR, + D.2B!Ѹh]zwzAD3A< ;'**ǵ[+e'm^}\JB)1uMfA!f(:o[B(8 J:уW\ENUWAh_Z:ڨk8mqvj3Z +>xد7 7OciF<_3M IB\qe1x_@>)HFee=%y$Dh9%4"dN)WKm09eU rgCbQL1_c@ϗ2J"Vϣ,dQ,V[H|U67eB& WٵÁBݧ:[\8(yD{6R*\/[%)7 XQ.[bOiocTq6\rƺ<-k }((N(.C~>+U*Gy]J%+~|[UwJQO-}Dƭdw'>^C)KcO`vӃNIOzjS6g MB@ FMIN ېtw' +'j})ܚV}o} [=Vo<ƀsCsqwaNy?q@a"eݐ+ߋ'm۟fBuk, B8=l|ZBQZ* =Lkxޮ)(H0%LthMM|M +(\p ]J $frrӀT[X[,MuqG0p9%R'R]gء=%C\ 8zkg[uG`d|/wK+NGظkߒJfF)I&p)˼2þHh"5&˩қ852 =i߾i%J8L7H$i~kL]yWVh mn<=8F7[`vP#Ն |uxh"֗ω$6N: |gsp# 'h31Afi`jˍSٹ! ]( &K;c/3*NiX`AA2ƢWh+'dLXusTR75HOvWɚDYkd^;F KuYxe,Bwƍpt@w C`;̗/[HrH‰o܂Kj]Q`t'AEՠwoY9Y'=̏@IBfM!Kl辏,eC) =UZamw4'Y{vxwpg2;SE<4@u,=7M36lmԮ;2B)θI}QЁ/bvꊵЅFjQZfB%#2؎xH\?u5&ihԼJqN_{Rь, /}Ŵϟ=UkYVo#,(j +endstream +endobj +1650 0 obj +<>/Font<>>> +endobj +339 0 obj +<>/BS<>/Dest(RFC7493)/F 4/Rect[474.357416 704.491326 515.31518 690.891717]/Subtype/Link/Type/Annot>> +endobj +340 0 obj +<>/BS<>/Dest(RFC8259)/F 4/Rect[355.349848 690.891717 396.307611 677.292108]/Subtype/Link/Type/Annot>> +endobj +341 0 obj +<>/BS<>/Dest(section-1.1)/F 4/Rect[65.905512 621.993279 95.494623 606.393279]/Subtype/Link/Type/Annot>> +endobj +342 0 obj +<>/BS<>/Dest(name-motivation-and-relation-to-)/F 4/Rect[95.494623 621.993279 407.479242 606.393279]/Subtype/Link/Type/Annot>> +endobj +343 0 obj +<>/BS<>/Dest(RFC6350)/F 4/Rect[179.822016 600.393279 220.779779 586.79367]/Subtype/Link/Type/Annot>> +endobj +344 0 obj +<>/BS<>/Dest(RFC2426)/F 4/Rect[347.777338 573.194061 391.743158 559.594451]/Subtype/Link/Type/Annot>> +endobj +345 0 obj +<>/BS<>/Dest(RFC2426)/F 4/Rect[397.942377 573.194061 438.900141 559.594451]/Subtype/Link/Type/Annot>> +endobj +346 0 obj +<>/BS<>/Dest(RFC9554)/F 4/Rect[404.005365 393.598358 444.963129 379.998748]/Subtype/Link/Type/Annot>> +endobj +347 0 obj +<>/BS<>/Dest(RFC9555)/F 4/Rect[254.033197 379.998748 294.990961 366.399139]/Subtype/Link/Type/Annot>> +endobj +348 0 obj +<>/BS<>/Dest(RFC6351)/F 4/Rect[120.929438 342.799529 161.887201 329.19992]/Subtype/Link/Type/Annot>> +endobj +349 0 obj +<>/BS<>/Dest(RFC7095)/F 4/Rect[220.719721 342.799529 261.677484 329.19992]/Subtype/Link/Type/Annot>> +endobj +350 0 obj +<>/BS<>/Dest(section-1.2)/F 4/Rect[65.905512 273.901092 95.494623 258.301092]/Subtype/Link/Type/Annot>> +endobj +351 0 obj +<>/BS<>/Dest(name-notational-conventions)/F 4/Rect[95.494623 273.901092 239.129145 258.301092]/Subtype/Link/Type/Annot>> +endobj +352 0 obj +<>/BS<>/Dest(RFC2119)/F 4/Rect[249.76391 225.101873 290.721674 211.502264]/Subtype/Link/Type/Annot>> +endobj +353 0 obj +<>/BS<>/Dest(RFC8174)/F 4/Rect[300.520746 225.101873 341.47851 211.502264]/Subtype/Link/Type/Annot>> +endobj +354 0 obj +<>/BS<>/Dest(RFC5234)/F 4/Rect[352.532221 187.902654 393.489984 174.303045]/Subtype/Link/Type/Annot>> +endobj +355 0 obj +<>/BS<>/Dest(RFC5234)/F 4/Rect[240.495111 174.303045 281.452875 160.703436]/Subtype/Link/Type/Annot>> +endobj +356 0 obj +<>/BS<>/Dest(RFC6350)/F 4/Rect[216.058588 160.703436 257.016352 147.103826]/Subtype/Link/Type/Annot>> +endobj +2895 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2894 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2893 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2892 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2891 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2890 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2889 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2888 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2887 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2886 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2885 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2884 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2883 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2882 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2881 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2880 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2879 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2878 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1797 0 obj +<>stream +x[IoG.72cċd> +˵/A(J!lIIQ8;@.6)VM6]R3WykTߏ_jY}8&3JR˘u6sVSW:E>緟)~zs!8|}]9P>">| Qx[& n߬NkQi?v^v]~*Ƶc.*3R&ӜSj9|׽<S}8o}$~|b sn>__}qYLݼ<'OO7&fq&̹VveT.٬ m{l>YhK%DRz\{M;sŚ6x u>Cfdy +}|cDS|%.#Z,-*( H ,MfNJzcqjB9oY)kbMi*vPJ +>#jp[&5u٩sԑXAu$?:VGS3Ƒ<+q +.R=|'a%zo/+V[ ѣs\\Qj;: X>v{JfR8SF:W d_F.;t5Ds%nj߂R+0>50L?Զ>l^e1BB](gj%/#cх/0)AP J :EV$ PZ3u(Rj!*9pfVxeLi b+'t/d6n櫊nFu_ߠ#j'fBl !liӡ(b/R82ӰQ +%=núGj&A{<\rc½“xbuG;}i-wfZh:;ctk73jg(ɛܼ6(cZ:ӍcRl`u3*\nPy Z&X lZ{Ū0QZ&o麐}zQmC4Rr/;. DGstV nbƻg,߀+X’\7mPU>G;5V: +Ӂ4y88&Ѳ`H~AgmE:w1,sw6+~&-SwXhp3_a9ga]-PK@^ ݾd*H Wܻe#H!EL$S9E%SP>!a%[*"2۾֚S-Lao2aT(mYpdj){0/'}:I/\;=(wM@VgS f#_A`?jv=g I lPLld #12g.ϖq!7yVj`s[k2}xgQL[r`Z=̘cl njG -'.9ZUI/q51 +endstream +endobj +1648 0 obj +<>/Font<>>> +endobj +277 0 obj +<>/BS<>/Dest(section-3.5)/F 4/Rect[77.905512 771.389764 91.584955 758.389764]/Subtype/Link/Type/Annot>> +endobj +278 0 obj +<>/BS<>/Dest(name-creation-of-the-jscontact-p)/F 4/Rect[99.283441 771.389764 310.847162 758.389764]/Subtype/Link/Type/Annot>> +endobj +279 0 obj +<>/BS<>/Dest(name-creation-of-the-jscontact-p)/F 4/Rect[518.190391 771.389764 529.370079 758.389764]/Subtype/Link/Type/Annot>> +endobj +280 0 obj +<>/BS<>/Dest(section-3.5.1)/F 4/Rect[89.905512 750.889764 111.674555 737.889764]/Subtype/Link/Type/Annot>> +endobj +281 0 obj +<>/BS<>/Dest(name-jscontact-properties-regist)/F 4/Rect[119.373041 750.889764 304.461908 737.889764]/Subtype/Link/Type/Annot>> +endobj +282 0 obj +<>/BS<>/Dest(name-jscontact-properties-regist)/F 4/Rect[518.190391 750.889764 529.370079 737.889764]/Subtype/Link/Type/Annot>> +endobj +283 0 obj +<>/BS<>/Dest(section-3.5.2)/F 4/Rect[89.905512 730.389764 111.674555 717.389764]/Subtype/Link/Type/Annot>> +endobj +284 0 obj +<>/BS<>/Dest(name-initial-contents-of-the-jsco)/F 4/Rect[119.373041 730.389764 363.242426 717.389764]/Subtype/Link/Type/Annot>> +endobj +285 0 obj +<>/BS<>/Dest(name-initial-contents-of-the-jsco)/F 4/Rect[518.190391 730.389764 529.370079 717.389764]/Subtype/Link/Type/Annot>> +endobj +286 0 obj +<>/BS<>/Dest(section-3.6)/F 4/Rect[77.905512 707.389764 91.584955 694.389764]/Subtype/Link/Type/Annot>> +endobj +287 0 obj +<>/BS<>/Dest(name-creation-of-the-jscontact-t)/F 4/Rect[99.283441 707.389764 289.330072 694.389764]/Subtype/Link/Type/Annot>> +endobj +288 0 obj +<>/BS<>/Dest(name-creation-of-the-jscontact-t)/F 4/Rect[518.190391 707.389764 529.370079 694.389764]/Subtype/Link/Type/Annot>> +endobj +289 0 obj +<>/BS<>/Dest(section-3.6.1)/F 4/Rect[89.905512 686.889764 111.674555 673.889764]/Subtype/Link/Type/Annot>> +endobj +290 0 obj +<>/BS<>/Dest(name-jscontact-types-registry-te)/F 4/Rect[119.373041 686.889764 282.944818 673.889764]/Subtype/Link/Type/Annot>> +endobj +291 0 obj +<>/BS<>/Dest(name-jscontact-types-registry-te)/F 4/Rect[518.190391 686.889764 529.370079 673.889764]/Subtype/Link/Type/Annot>> +endobj +292 0 obj +<>/BS<>/Dest(section-3.6.2)/F 4/Rect[89.905512 666.389764 111.674555 653.389764]/Subtype/Link/Type/Annot>> +endobj +293 0 obj +<>/BS<>/Dest(name-initial-contents-of-the-jscon)/F 4/Rect[119.373041 666.389764 341.725336 653.389764]/Subtype/Link/Type/Annot>> +endobj +294 0 obj +<>/BS<>/Dest(name-initial-contents-of-the-jscon)/F 4/Rect[518.190391 666.389764 529.370079 653.389764]/Subtype/Link/Type/Annot>> +endobj +295 0 obj +<>/BS<>/Dest(section-3.7)/F 4/Rect[77.905512 643.389764 91.584955 630.389764]/Subtype/Link/Type/Annot>> +endobj +296 0 obj +<>/BS<>/Dest(name-creation-of-the-jscontact-e)/F 4/Rect[99.283441 643.389764 323.716547 630.389764]/Subtype/Link/Type/Annot>> +endobj +297 0 obj +<>/BS<>/Dest(name-creation-of-the-jscontact-e)/F 4/Rect[518.190391 643.389764 529.370079 630.389764]/Subtype/Link/Type/Annot>> +endobj +298 0 obj +<>/BS<>/Dest(section-3.7.1)/F 4/Rect[89.905512 622.889764 111.674555 609.889764]/Subtype/Link/Type/Annot>> +endobj +299 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-regis)/F 4/Rect[119.373041 622.889764 361.815668 609.889764]/Subtype/Link/Type/Annot>> +endobj +300 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-regis)/F 4/Rect[518.190391 622.889764 529.370079 609.889764]/Subtype/Link/Type/Annot>> +endobj +301 0 obj +<>/BS<>/Dest(section-3.7.2)/F 4/Rect[89.905512 602.389764 111.674555 589.389764]/Subtype/Link/Type/Annot>> +endobj +302 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-regist)/F 4/Rect[119.373041 602.389764 346.507318 589.389764]/Subtype/Link/Type/Annot>> +endobj +303 0 obj +<>/BS<>/Dest(name-jscontact-enum-values-regist)/F 4/Rect[518.190391 602.389764 529.370079 589.389764]/Subtype/Link/Type/Annot>> +endobj +304 0 obj +<>/BS<>/Dest(section-3.7.3)/F 4/Rect[89.905512 581.889764 111.674555 568.889764]/Subtype/Link/Type/Annot>> +endobj +305 0 obj +<>/BS<>/Dest(name-initial-contents-of-the-jscont)/F 4/Rect[119.373041 581.889764 376.111811 568.889764]/Subtype/Link/Type/Annot>> +endobj +306 0 obj +<>/BS<>/Dest(name-initial-contents-of-the-jscont)/F 4/Rect[518.190391 581.889764 529.370079 568.889764]/Subtype/Link/Type/Annot>> +endobj +307 0 obj +<>/BS<>/Dest(section-4)/F 4/Rect[65.905512 558.889764 71.495356 545.889764]/Subtype/Link/Type/Annot>> +endobj +308 0 obj +<>/BS<>/Dest(name-security-considerations)/F 4/Rect[79.193842 558.889764 192.069574 545.889764]/Subtype/Link/Type/Annot>> +endobj +309 0 obj +<>/BS<>/Dest(name-security-considerations)/F 4/Rect[518.190391 558.889764 529.370079 545.889764]/Subtype/Link/Type/Annot>> +endobj +310 0 obj +<>/BS<>/Dest(section-4.1)/F 4/Rect[77.905512 538.389764 91.584955 525.389764]/Subtype/Link/Type/Annot>> +endobj +311 0 obj +<>/BS<>/Dest(name-json-parsing)/F 4/Rect[99.283441 538.389764 161.857904 525.389764]/Subtype/Link/Type/Annot>> +endobj +312 0 obj +<>/BS<>/Dest(name-json-parsing)/F 4/Rect[518.190391 538.389764 529.370079 525.389764]/Subtype/Link/Type/Annot>> +endobj +313 0 obj +<>/BS<>/Dest(section-4.2)/F 4/Rect[77.905512 517.889764 91.584955 504.889764]/Subtype/Link/Type/Annot>> +endobj +314 0 obj +<>/BS<>/Dest(name-uri-values)/F 4/Rect[99.283441 517.889764 150.36767 504.889764]/Subtype/Link/Type/Annot>> +endobj +315 0 obj +<>/BS<>/Dest(name-uri-values)/F 4/Rect[518.190391 517.889764 529.370079 504.889764]/Subtype/Link/Type/Annot>> +endobj +316 0 obj +<>/BS<>/Dest(section-5)/F 4/Rect[65.905512 494.889764 71.495356 481.889764]/Subtype/Link/Type/Annot>> +endobj +317 0 obj +<>/BS<>/Dest(name-references)/F 4/Rect[79.193842 494.889764 131.429438 481.889764]/Subtype/Link/Type/Annot>> +endobj +318 0 obj +<>/BS<>/Dest(name-references)/F 4/Rect[518.190391 494.889764 529.370079 481.889764]/Subtype/Link/Type/Annot>> +endobj +319 0 obj +<>/BS<>/Dest(section-5.1)/F 4/Rect[77.905512 474.389764 91.584955 461.389764]/Subtype/Link/Type/Annot>> +endobj +320 0 obj +<>/BS<>/Dest(name-normative-references)/F 4/Rect[99.283441 474.389764 205.163813 461.389764]/Subtype/Link/Type/Annot>> +endobj +321 0 obj +<>/BS<>/Dest(name-normative-references)/F 4/Rect[518.190391 474.389764 529.370079 461.389764]/Subtype/Link/Type/Annot>> +endobj +322 0 obj +<>/BS<>/Dest(section-5.2)/F 4/Rect[77.905512 453.889764 91.584955 440.889764]/Subtype/Link/Type/Annot>> +endobj +323 0 obj +<>/BS<>/Dest(name-informative-references)/F 4/Rect[99.283441 453.889764 211.342524 440.889764]/Subtype/Link/Type/Annot>> +endobj +324 0 obj +<>/BS<>/Dest(name-informative-references)/F 4/Rect[518.190391 453.889764 529.370079 440.889764]/Subtype/Link/Type/Annot>> +endobj +325 0 obj +<>/BS<>/Dest(appendix-A)/F 4/Rect[65.905512 430.889764 65.905512 417.889764]/Subtype/Link/Type/Annot>> +endobj +326 0 obj +<>/BS<>/Dest(name-authors-addresses)/F 4/Rect[65.905512 430.889764 156.823969 417.889764]/Subtype/Link/Type/Annot>> +endobj +327 0 obj +<>/BS<>/Dest(name-authors-addresses)/F 4/Rect[518.190391 430.889764 529.370079 417.889764]/Subtype/Link/Type/Annot>> +endobj +328 0 obj +<>/BS<>/Dest(section-1)/F 4/Rect[65.905512 369.789764 89.131635 351.069764]/Subtype/Link/Type/Annot>> +endobj +329 0 obj +<>/BS<>/Dest(name-introduction)/F 4/Rect[89.131635 369.789764 182.568891 351.069764]/Subtype/Link/Type/Annot>> +endobj +330 0 obj +<>/BS<>/Dest(RFC6350)/F 4/Rect[69.505365 316.670545 110.463129 303.070936]/Subtype/Link/Type/Annot>> +endobj +331 0 obj +<>/BS<>/Dest(RFC6350)/F 4/Rect[197.211664 255.871717 238.169428 242.272108]/Subtype/Link/Type/Annot>> +endobj +332 0 obj +<>/BS<>/Dest(RFC6473)/F 4/Rect[322.270502 255.871717 363.228266 242.272108]/Subtype/Link/Type/Annot>> +endobj +333 0 obj +<>/BS<>/Dest(RFC6474)/F 4/Rect[373.027338 255.871717 413.985102 242.272108]/Subtype/Link/Type/Annot>> +endobj +334 0 obj +<>/BS<>/Dest(RFC6715)/F 4/Rect[423.784174 255.871717 464.741938 242.272108]/Subtype/Link/Type/Annot>> +endobj +335 0 obj +<>/BS<>/Dest(RFC6869)/F 4/Rect[474.54101 255.871717 515.498774 242.272108]/Subtype/Link/Type/Annot>> +endobj +336 0 obj +<>/BS<>/Dest(RFC8605)/F 4/Rect[89.505365 242.272108 130.463129 228.672498]/Subtype/Link/Type/Annot>> +endobj +2955 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2954 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2953 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2952 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2951 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2950 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2949 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2948 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2947 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2946 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2945 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2944 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2943 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2942 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2941 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2940 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2939 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2938 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2937 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2936 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2935 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2934 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2933 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2932 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2931 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2930 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2929 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2928 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2927 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2926 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2925 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2924 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2923 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2922 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2921 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2920 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2919 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2918 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2917 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2916 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2915 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2914 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2913 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2912 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2911 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2910 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2909 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2908 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2907 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2906 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2905 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2904 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2903 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2902 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2901 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2900 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2899 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2898 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2897 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2896 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1796 0 obj +<>stream +xs85o KR>0ݖW-ɺ2!IK40[.eg`?}d;l'}c'y_CzrCR](˔iG3$7o{sgGR"M"IdI)U),߁T˯0gJd;60ͲH|NjW eaE憭eWQ<.7U;~ȏYyϗ[m2R3* \"̒q66b.Jb%eUtIT~a"d1Yx#8:}:~6dId%p}<#O^/W'nQK+͢Ln|%_WX?%UDJ9K]k2#6#2&srBnagn̅T"4YKS~Hhc>pSKb6yQ"c>P@f N a4 pϕ& `.lbݪ"~iM4H!1dAY"MDR70pfjuIwv@۞DKTwQJ,b-?yM~)cmO=5lCIjn?mzXL5d ڶMdRSK1ZS">fY5cMˑͭmmӴ#>mm^}-hV_jՕ:C{=|ȲׇRtIds0n^?mz!ρGC妘%튽ׯb6JU×OdOAy_mz:^mK+uYL^^\\V`仩o(Ae)m[+&3zM^ dB SDHmRnUl{^ ZC=$钞O L `qF.nk<\Å7zm 7DOUF< L%+aJmwӶ&ZLXrM}fǤh;^2V* +`ZRѝʸ$[3Z'5fhi59.UH条Vɠ%YeIGq6JnBM; 3seuem+0Ԧ*扃KXy-hm:f&tm1Vv;Q z.T6Vj[pzx!?A(=W9m~qb^ݔhg~ ?ͼxfeO\P4R1~9R>0 +#eR{en˷KC­2zѽ2vyoD:V.BHd\L4r=K.#^"pm)cܣGؾsetvT:RvD+c#݉s[U辏{elŹ2^;q]saicCT*!CJPH[!^a~9 /@b=Y/=RGZ͔H2}\Ye2-g)ZuQnJ(2SCșn\?{wo4b"<OM@.&lC0QJL<&1aD +endstream +endobj +1646 0 obj +<>/Font<>>> +endobj +188 0 obj +<>/BS<>/Dest(section-2.3.4)/F 4/Rect[89.905512 771.389764 111.674555 758.389764]/Subtype/Link/Type/Annot>> +endobj +189 0 obj +<>/BS<>/Dest(name-preferredlanguages)/F 4/Rect[119.373041 771.389764 216.423334 758.389764]/Subtype/Link/Type/Annot>> +endobj +190 0 obj +<>/BS<>/Dest(name-preferredlanguages)/F 4/Rect[518.190391 771.389764 529.370079 758.389764]/Subtype/Link/Type/Annot>> +endobj +191 0 obj +<>/BS<>/Dest(section-2.4)/F 4/Rect[77.905512 748.389764 91.584955 735.389764]/Subtype/Link/Type/Annot>> +endobj +192 0 obj +<>/BS<>/Dest(name-calendaring-and-scheduling-)/F 4/Rect[99.283441 748.389764 285.443109 735.389764]/Subtype/Link/Type/Annot>> +endobj +193 0 obj +<>/BS<>/Dest(name-calendaring-and-scheduling-)/F 4/Rect[518.190391 748.389764 529.370079 735.389764]/Subtype/Link/Type/Annot>> +endobj +194 0 obj +<>/BS<>/Dest(section-2.4.1)/F 4/Rect[89.905512 727.889764 111.674555 714.889764]/Subtype/Link/Type/Annot>> +endobj +195 0 obj +<>/BS<>/Dest(name-calendars)/F 4/Rect[119.373041 727.889764 165.808588 714.889764]/Subtype/Link/Type/Annot>> +endobj +196 0 obj +<>/BS<>/Dest(name-calendars)/F 4/Rect[518.190391 727.889764 529.370079 714.889764]/Subtype/Link/Type/Annot>> +endobj +197 0 obj +<>/BS<>/Dest(section-2.4.2)/F 4/Rect[89.905512 707.389764 111.674555 694.389764]/Subtype/Link/Type/Annot>> +endobj +198 0 obj +<>/BS<>/Dest(name-schedulingaddresses)/F 4/Rect[119.373041 707.389764 219.182367 694.389764]/Subtype/Link/Type/Annot>> +endobj +199 0 obj +<>/BS<>/Dest(name-schedulingaddresses)/F 4/Rect[518.190391 707.389764 529.370079 694.389764]/Subtype/Link/Type/Annot>> +endobj +200 0 obj +<>/BS<>/Dest(section-2.5)/F 4/Rect[77.905512 684.389764 91.584955 671.389764]/Subtype/Link/Type/Annot>> +endobj +201 0 obj +<>/BS<>/Dest(name-address-and-location-proper)/F 4/Rect[99.283441 684.389764 254.284418 671.389764]/Subtype/Link/Type/Annot>> +endobj +202 0 obj +<>/BS<>/Dest(name-address-and-location-proper)/F 4/Rect[518.190391 684.389764 529.370079 671.389764]/Subtype/Link/Type/Annot>> +endobj +203 0 obj +<>/BS<>/Dest(section-2.5.1)/F 4/Rect[89.905512 663.889764 111.674555 650.889764]/Subtype/Link/Type/Annot>> +endobj +204 0 obj +<>/BS<>/Dest(name-addresses)/F 4/Rect[119.373041 663.889764 166.218012 650.889764]/Subtype/Link/Type/Annot>> +endobj +205 0 obj +<>/BS<>/Dest(name-addresses)/F 4/Rect[518.190391 663.889764 529.370079 650.889764]/Subtype/Link/Type/Annot>> +endobj +206 0 obj +<>/BS<>/Dest(section-2.6)/F 4/Rect[77.905512 640.889764 91.584955 627.889764]/Subtype/Link/Type/Annot>> +endobj +207 0 obj +<>/BS<>/Dest(name-resource-properties)/F 4/Rect[99.283441 640.889764 194.693109 627.889764]/Subtype/Link/Type/Annot>> +endobj +208 0 obj +<>/BS<>/Dest(name-resource-properties)/F 4/Rect[518.190391 640.889764 529.370079 627.889764]/Subtype/Link/Type/Annot>> +endobj +209 0 obj +<>/BS<>/Dest(section-2.6.1)/F 4/Rect[89.905512 620.389764 111.674555 607.389764]/Subtype/Link/Type/Annot>> +endobj +210 0 obj +<>/BS<>/Dest(name-cryptokeys)/F 4/Rect[119.373041 620.389764 172.386469 607.389764]/Subtype/Link/Type/Annot>> +endobj +211 0 obj +<>/BS<>/Dest(name-cryptokeys)/F 4/Rect[518.190391 620.389764 529.370079 607.389764]/Subtype/Link/Type/Annot>> +endobj +212 0 obj +<>/BS<>/Dest(section-2.6.2)/F 4/Rect[89.905512 599.889764 111.674555 586.889764]/Subtype/Link/Type/Annot>> +endobj +213 0 obj +<>/BS<>/Dest(name-directories)/F 4/Rect[119.373041 599.889764 170.746576 586.889764]/Subtype/Link/Type/Annot>> +endobj +214 0 obj +<>/BS<>/Dest(name-directories)/F 4/Rect[518.190391 599.889764 529.370079 586.889764]/Subtype/Link/Type/Annot>> +endobj +215 0 obj +<>/BS<>/Dest(section-2.6.3)/F 4/Rect[89.905512 579.389764 111.674555 566.389764]/Subtype/Link/Type/Annot>> +endobj +216 0 obj +<>/BS<>/Dest(name-links)/F 4/Rect[119.373041 579.389764 142.480951 566.389764]/Subtype/Link/Type/Annot>> +endobj +217 0 obj +<>/BS<>/Dest(name-links)/F 4/Rect[518.190391 579.389764 529.370079 566.389764]/Subtype/Link/Type/Annot>> +endobj +218 0 obj +<>/BS<>/Dest(section-2.6.4)/F 4/Rect[89.905512 558.889764 111.674555 545.889764]/Subtype/Link/Type/Annot>> +endobj +219 0 obj +<>/BS<>/Dest(name-media)/F 4/Rect[119.373041 558.889764 149.140131 545.889764]/Subtype/Link/Type/Annot>> +endobj +220 0 obj +<>/BS<>/Dest(name-media)/F 4/Rect[518.190391 558.889764 529.370079 545.889764]/Subtype/Link/Type/Annot>> +endobj +221 0 obj +<>/BS<>/Dest(section-2.7)/F 4/Rect[77.905512 535.889764 91.584955 522.889764]/Subtype/Link/Type/Annot>> +endobj +222 0 obj +<>/BS<>/Dest(name-multilingual-properties)/F 4/Rect[99.283441 535.889764 209.930414 522.889764]/Subtype/Link/Type/Annot>> +endobj +223 0 obj +<>/BS<>/Dest(name-multilingual-properties)/F 4/Rect[518.190391 535.889764 529.370079 522.889764]/Subtype/Link/Type/Annot>> +endobj +224 0 obj +<>/BS<>/Dest(section-2.7.1)/F 4/Rect[89.905512 515.389764 111.674555 502.389764]/Subtype/Link/Type/Annot>> +endobj +225 0 obj +<>/BS<>/Dest(name-localizations)/F 4/Rect[119.373041 515.389764 179.275629 502.389764]/Subtype/Link/Type/Annot>> +endobj +226 0 obj +<>/BS<>/Dest(name-localizations)/F 4/Rect[518.190391 515.389764 529.370079 502.389764]/Subtype/Link/Type/Annot>> +endobj +227 0 obj +<>/BS<>/Dest(section-2.8)/F 4/Rect[77.905512 492.389764 91.584955 479.389764]/Subtype/Link/Type/Annot>> +endobj +228 0 obj +<>/BS<>/Dest(name-additional-properties)/F 4/Rect[99.283441 492.389764 201.169916 479.389764]/Subtype/Link/Type/Annot>> +endobj +229 0 obj +<>/BS<>/Dest(name-additional-properties)/F 4/Rect[518.190391 492.389764 529.370079 479.389764]/Subtype/Link/Type/Annot>> +endobj +230 0 obj +<>/BS<>/Dest(section-2.8.1)/F 4/Rect[89.905512 471.889764 111.674555 458.889764]/Subtype/Link/Type/Annot>> +endobj +231 0 obj +<>/BS<>/Dest(name-anniversaries)/F 4/Rect[119.373041 471.889764 184.856684 458.889764]/Subtype/Link/Type/Annot>> +endobj +232 0 obj +<>/BS<>/Dest(name-anniversaries)/F 4/Rect[518.190391 471.889764 529.370079 458.889764]/Subtype/Link/Type/Annot>> +endobj +233 0 obj +<>/BS<>/Dest(section-2.8.2)/F 4/Rect[89.905512 451.389764 111.674555 438.389764]/Subtype/Link/Type/Annot>> +endobj +234 0 obj +<>/BS<>/Dest(name-keywords)/F 4/Rect[119.373041 451.389764 165.767572 438.389764]/Subtype/Link/Type/Annot>> +endobj +235 0 obj +<>/BS<>/Dest(name-keywords)/F 4/Rect[518.190391 451.389764 529.370079 438.389764]/Subtype/Link/Type/Annot>> +endobj +236 0 obj +<>/BS<>/Dest(section-2.8.3)/F 4/Rect[89.905512 430.889764 111.674555 417.889764]/Subtype/Link/Type/Annot>> +endobj +237 0 obj +<>/BS<>/Dest(name-notes)/F 4/Rect[119.373041 430.889764 144.970453 417.889764]/Subtype/Link/Type/Annot>> +endobj +238 0 obj +<>/BS<>/Dest(name-notes)/F 4/Rect[518.190391 430.889764 529.370079 417.889764]/Subtype/Link/Type/Annot>> +endobj +239 0 obj +<>/BS<>/Dest(section-2.8.4)/F 4/Rect[89.905512 410.389764 111.674555 397.389764]/Subtype/Link/Type/Annot>> +endobj +240 0 obj +<>/BS<>/Dest(name-personalinfo)/F 4/Rect[119.373041 410.389764 180.60644 397.389764]/Subtype/Link/Type/Annot>> +endobj +241 0 obj +<>/BS<>/Dest(name-personalinfo)/F 4/Rect[518.190391 410.389764 529.370079 397.389764]/Subtype/Link/Type/Annot>> +endobj +242 0 obj +<>/BS<>/Dest(section-3)/F 4/Rect[65.905512 387.389764 71.495356 374.389764]/Subtype/Link/Type/Annot>> +endobj +243 0 obj +<>/BS<>/Dest(name-iana-considerations)/F 4/Rect[79.193842 387.389764 178.33227 374.389764]/Subtype/Link/Type/Annot>> +endobj +244 0 obj +<>/BS<>/Dest(name-iana-considerations)/F 4/Rect[518.190391 387.389764 529.370079 374.389764]/Subtype/Link/Type/Annot>> +endobj +245 0 obj +<>/BS<>/Dest(section-3.1)/F 4/Rect[77.905512 366.889764 91.584955 353.889764]/Subtype/Link/Type/Annot>> +endobj +246 0 obj +<>/BS<>/Dest(name-media-type-registration)/F 4/Rect[99.283441 366.889764 215.039057 353.889764]/Subtype/Link/Type/Annot>> +endobj +247 0 obj +<>/BS<>/Dest(name-media-type-registration)/F 4/Rect[518.190391 366.889764 529.370079 353.889764]/Subtype/Link/Type/Annot>> +endobj +248 0 obj +<>/BS<>/Dest(section-3.2)/F 4/Rect[77.905512 346.389764 91.584955 333.389764]/Subtype/Link/Type/Annot>> +endobj +249 0 obj +<>/BS<>/Dest(name-creation-of-the-jscontact-r)/F 4/Rect[99.283441 346.389764 291.659906 333.389764]/Subtype/Link/Type/Annot>> +endobj +250 0 obj +<>/BS<>/Dest(name-creation-of-the-jscontact-r)/F 4/Rect[518.190391 346.389764 529.370079 333.389764]/Subtype/Link/Type/Annot>> +endobj +251 0 obj +<>/BS<>/Dest(section-3.3)/F 4/Rect[77.905512 325.889764 91.584955 312.889764]/Subtype/Link/Type/Annot>> +endobj +252 0 obj +<>/BS<>/Dest(name-registry-policy-and-change-)/F 4/Rect[99.283441 325.889764 284.592768 312.889764]/Subtype/Link/Type/Annot>> +endobj +253 0 obj +<>/BS<>/Dest(name-registry-policy-and-change-)/F 4/Rect[518.190391 325.889764 529.370079 312.889764]/Subtype/Link/Type/Annot>> +endobj +254 0 obj +<>/BS<>/Dest(section-3.3.1)/F 4/Rect[89.905512 305.389764 111.674555 292.389764]/Subtype/Link/Type/Annot>> +endobj +255 0 obj +<>/BS<>/Dest(name-preliminary-community-revie)/F 4/Rect[119.373041 305.389764 272.897455 292.389764]/Subtype/Link/Type/Annot>> +endobj +256 0 obj +<>/BS<>/Dest(name-preliminary-community-revie)/F 4/Rect[518.190391 305.389764 529.370079 292.389764]/Subtype/Link/Type/Annot>> +endobj +257 0 obj +<>/BS<>/Dest(section-3.3.2)/F 4/Rect[89.905512 284.889764 111.674555 271.889764]/Subtype/Link/Type/Annot>> +endobj +258 0 obj +<>/BS<>/Dest(name-submit-request-to-iana)/F 4/Rect[119.373041 284.889764 233.730463 271.889764]/Subtype/Link/Type/Annot>> +endobj +259 0 obj +<>/BS<>/Dest(name-submit-request-to-iana)/F 4/Rect[518.190391 284.889764 529.370079 271.889764]/Subtype/Link/Type/Annot>> +endobj +260 0 obj +<>/BS<>/Dest(section-3.3.3)/F 4/Rect[89.905512 264.389764 111.674555 251.389764]/Subtype/Link/Type/Annot>> +endobj +261 0 obj +<>/BS<>/Dest(name-designated-expert-review)/F 4/Rect[119.373041 264.389764 243.959467 251.389764]/Subtype/Link/Type/Annot>> +endobj +262 0 obj +<>/BS<>/Dest(name-designated-expert-review)/F 4/Rect[518.190391 264.389764 529.370079 251.389764]/Subtype/Link/Type/Annot>> +endobj +263 0 obj +<>/BS<>/Dest(section-3.3.4)/F 4/Rect[89.905512 243.889764 111.674555 230.889764]/Subtype/Link/Type/Annot>> +endobj +264 0 obj +<>/BS<>/Dest(name-change-procedures)/F 4/Rect[119.373041 243.889764 211.114008 230.889764]/Subtype/Link/Type/Annot>> +endobj +265 0 obj +<>/BS<>/Dest(name-change-procedures)/F 4/Rect[518.190391 243.889764 529.370079 230.889764]/Subtype/Link/Type/Annot>> +endobj +266 0 obj +<>/BS<>/Dest(section-3.4)/F 4/Rect[77.905512 220.889764 91.584955 207.889764]/Subtype/Link/Type/Annot>> +endobj +267 0 obj +<>/BS<>/Dest(name-creation-of-the-jscontact-v)/F 4/Rect[99.283441 220.889764 297.688471 207.889764]/Subtype/Link/Type/Annot>> +endobj +268 0 obj +<>/BS<>/Dest(name-creation-of-the-jscontact-v)/F 4/Rect[518.190391 220.889764 529.370079 207.889764]/Subtype/Link/Type/Annot>> +endobj +269 0 obj +<>/BS<>/Dest(section-3.4.1)/F 4/Rect[89.905512 200.389764 111.674555 187.389764]/Subtype/Link/Type/Annot>> +endobj +270 0 obj +<>/BS<>/Dest(name-jscontact-version-registry-)/F 4/Rect[119.373041 200.389764 291.303217 187.389764]/Subtype/Link/Type/Annot>> +endobj +271 0 obj +<>/BS<>/Dest(name-jscontact-version-registry-)/F 4/Rect[518.190391 200.389764 529.370079 187.389764]/Subtype/Link/Type/Annot>> +endobj +272 0 obj +<>/BS<>/Dest(section-3.4.2)/F 4/Rect[89.905512 179.889764 111.674555 166.889764]/Subtype/Link/Type/Annot>> +endobj +273 0 obj +<>/BS<>/Dest(name-initial-contents-of-the-jsc)/F 4/Rect[119.373041 179.889764 350.083734 166.889764]/Subtype/Link/Type/Annot>> +endobj +274 0 obj +<>/BS<>/Dest(name-initial-contents-of-the-jsc)/F 4/Rect[518.190391 179.889764 529.370079 166.889764]/Subtype/Link/Type/Annot>> +endobj +3042 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3041 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3040 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3039 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3038 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3037 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3036 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3035 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3034 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3033 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3032 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3031 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3030 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3029 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3028 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3027 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3026 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3025 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3024 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3023 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3022 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3021 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3020 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3019 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3018 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3017 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3016 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3015 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3014 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3013 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3012 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3011 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3010 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3009 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3008 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3007 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3006 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3005 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3004 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3003 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3002 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3001 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3000 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2999 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2998 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2997 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2996 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2995 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2994 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2993 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2992 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2991 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2990 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2989 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2988 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2987 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2986 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2985 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2984 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2983 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2982 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2981 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2980 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2979 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2978 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2977 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2976 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2975 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2974 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2973 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2972 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2971 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2970 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2969 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2968 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2967 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2966 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2965 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2964 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2963 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2962 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2961 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2960 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2959 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2958 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2957 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +2956 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1795 0 obj +<>stream +xoF7@ +z5-l#qIfqOFG/o,3"No/J>;.kar?z-FgFICMjT1kR#ҏştŎ[m=cﮒK2f'RFiҫtw)3&ӫ>&/+^>_$GW+76 X/xCI1S)(CF  K2-]HvBfLs#yYhF͸aQ}=9/DqOA\_TJ.S^7 1ud/LgBk95bZD9G:&ݿ*pb_^+ٌ^XB&Q9$U /[gs|QeCa`iGo/jtQ37ލYuvیFXԪ.z^,%-x/WNC87pCG]46ʈF&NkEV_!of(]6Vfw,"H˴x5& %ML@  CEaQMإj|q QjRfI"6JF}Oj"t`P#F:]yԫEuX6㪁EKi4mF:s|>gHzg+gQnRv4jHY%Z!pF]O~])WGJĂ͸Z`QE3-8\y4ʢGb'0G“}dlg98ݜ. K>vY Dvͷdlc+<N. TMp2#>'c+vY DVÓNY Dg5NDÓuN9DVȂ5N9 tBE'tCW “d쪷:{ה]?٬i5US{dl][X+ؓDEf$SIcZ0!\j!Y%C&֥+4iq3?t@.&hk)iƔR`ݍY?& 5,V).;(Rw +endstream +endobj +1644 0 obj +<>/Font<>>> +endobj +96 0 obj +<>/BS<>/Dest(section-1.7.4)/F 4/Rect[89.905512 771.389764 111.674555 758.389764]/Subtype/Link/Type/Annot>> +endobj +97 0 obj +<>/BS<>/Dest(name-unknown-properties)/F 4/Rect[119.373041 771.389764 218.023676 758.389764]/Subtype/Link/Type/Annot>> +endobj +98 0 obj +<>/BS<>/Dest(name-unknown-properties)/F 4/Rect[518.190391 771.389764 529.370079 758.389764]/Subtype/Link/Type/Annot>> +endobj +99 0 obj +<>/BS<>/Dest(section-1.7.5)/F 4/Rect[89.905512 750.889764 111.674555 737.889764]/Subtype/Link/Type/Annot>> +endobj +100 0 obj +<>/BS<>/Dest(name-enumerated-values)/F 4/Rect[119.373041 750.889764 212.032465 737.889764]/Subtype/Link/Type/Annot>> +endobj +101 0 obj +<>/BS<>/Dest(name-enumerated-values)/F 4/Rect[518.190391 750.889764 529.370079 737.889764]/Subtype/Link/Type/Annot>> +endobj +102 0 obj +<>/BS<>/Dest(section-1.8)/F 4/Rect[77.905512 727.889764 91.584955 714.889764]/Subtype/Link/Type/Annot>> +endobj +103 0 obj +<>/BS<>/Dest(name-vendor-specific-extensions)/F 4/Rect[99.283441 727.889764 227.909174 714.889764]/Subtype/Link/Type/Annot>> +endobj +104 0 obj +<>/BS<>/Dest(name-vendor-specific-extensions)/F 4/Rect[518.190391 727.889764 529.370079 714.889764]/Subtype/Link/Type/Annot>> +endobj +105 0 obj +<>/BS<>/Dest(section-1.8.1)/F 4/Rect[89.905512 707.389764 111.674555 694.389764]/Subtype/Link/Type/Annot>> +endobj +106 0 obj +<>/BS<>/Dest(name-vendor-specific-properties)/F 4/Rect[119.373041 707.389764 245.528315 694.389764]/Subtype/Link/Type/Annot>> +endobj +107 0 obj +<>/BS<>/Dest(name-vendor-specific-properties)/F 4/Rect[518.190391 707.389764 529.370079 694.389764]/Subtype/Link/Type/Annot>> +endobj +108 0 obj +<>/BS<>/Dest(section-1.8.2)/F 4/Rect[89.905512 686.889764 111.674555 673.889764]/Subtype/Link/Type/Annot>> +endobj +109 0 obj +<>/BS<>/Dest(name-vendor-specific-values)/F 4/Rect[119.373041 686.889764 227.320307 673.889764]/Subtype/Link/Type/Annot>> +endobj +110 0 obj +<>/BS<>/Dest(name-vendor-specific-values)/F 4/Rect[518.190391 686.889764 529.370079 673.889764]/Subtype/Link/Type/Annot>> +endobj +111 0 obj +<>/BS<>/Dest(section-1.9)/F 4/Rect[77.905512 663.889764 91.584955 650.889764]/Subtype/Link/Type/Annot>> +endobj +112 0 obj +<>/BS<>/Dest(name-versioning)/F 4/Rect[99.283441 663.889764 150.447504 650.889764]/Subtype/Link/Type/Annot>> +endobj +113 0 obj +<>/BS<>/Dest(name-versioning)/F 4/Rect[518.190391 663.889764 529.370079 650.889764]/Subtype/Link/Type/Annot>> +endobj +114 0 obj +<>/BS<>/Dest(section-1.9.1)/F 4/Rect[89.905512 643.389764 111.674555 630.389764]/Subtype/Link/Type/Annot>> +endobj +115 0 obj +<>/BS<>/Dest(name-version-format-and-requirem)/F 4/Rect[119.373041 643.389764 283.034906 630.389764]/Subtype/Link/Type/Annot>> +endobj +116 0 obj +<>/BS<>/Dest(name-version-format-and-requirem)/F 4/Rect[518.190391 643.389764 529.370079 630.389764]/Subtype/Link/Type/Annot>> +endobj +117 0 obj +<>/BS<>/Dest(section-1.9.2)/F 4/Rect[89.905512 622.889764 111.674555 609.889764]/Subtype/Link/Type/Annot>> +endobj +118 0 obj +<>/BS<>/Dest(name-current-version)/F 4/Rect[119.373041 622.889764 195.333979 609.889764]/Subtype/Link/Type/Annot>> +endobj +119 0 obj +<>/BS<>/Dest(name-current-version)/F 4/Rect[518.190391 622.889764 529.370079 609.889764]/Subtype/Link/Type/Annot>> +endobj +120 0 obj +<>/BS<>/Dest(section-2)/F 4/Rect[65.905512 599.889764 71.495356 586.889764]/Subtype/Link/Type/Annot>> +endobj +121 0 obj +<>/BS<>/Dest(name-card)/F 4/Rect[79.193842 599.889764 101.811029 586.889764]/Subtype/Link/Type/Annot>> +endobj +122 0 obj +<>/BS<>/Dest(name-card)/F 4/Rect[518.190391 599.889764 529.370079 586.889764]/Subtype/Link/Type/Annot>> +endobj +123 0 obj +<>/BS<>/Dest(section-2.1)/F 4/Rect[77.905512 579.389764 91.584955 566.389764]/Subtype/Link/Type/Annot>> +endobj +124 0 obj +<>/BS<>/Dest(name-metadata-properties)/F 4/Rect[99.283441 579.389764 195.971918 566.389764]/Subtype/Link/Type/Annot>> +endobj +125 0 obj +<>/BS<>/Dest(name-metadata-properties)/F 4/Rect[518.190391 579.389764 529.370079 566.389764]/Subtype/Link/Type/Annot>> +endobj +126 0 obj +<>/BS<>/Dest(section-2.1.1)/F 4/Rect[89.905512 558.889764 111.674555 545.889764]/Subtype/Link/Type/Annot>> +endobj +127 0 obj +<>/BS<>/Dest(name-type)/F 4/Rect[119.373041 558.889764 149.23974 545.889764]/Subtype/Link/Type/Annot>> +endobj +128 0 obj +<>/BS<>/Dest(name-type)/F 4/Rect[518.190391 558.889764 529.370079 545.889764]/Subtype/Link/Type/Annot>> +endobj +129 0 obj +<>/BS<>/Dest(section-2.1.2)/F 4/Rect[89.905512 538.389764 111.674555 525.389764]/Subtype/Link/Type/Annot>> +endobj +130 0 obj +<>/BS<>/Dest(name-version)/F 4/Rect[119.373041 538.389764 155.149652 525.389764]/Subtype/Link/Type/Annot>> +endobj +131 0 obj +<>/BS<>/Dest(name-version)/F 4/Rect[518.190391 538.389764 529.370079 525.389764]/Subtype/Link/Type/Annot>> +endobj +132 0 obj +<>/BS<>/Dest(section-2.1.3)/F 4/Rect[89.905512 517.889764 111.674555 504.889764]/Subtype/Link/Type/Annot>> +endobj +133 0 obj +<>/BS<>/Dest(name-created)/F 4/Rect[119.373041 517.889764 154.989252 504.889764]/Subtype/Link/Type/Annot>> +endobj +134 0 obj +<>/BS<>/Dest(name-created)/F 4/Rect[518.190391 517.889764 529.370079 504.889764]/Subtype/Link/Type/Annot>> +endobj +135 0 obj +<>/BS<>/Dest(section-2.1.4)/F 4/Rect[89.905512 497.389764 111.674555 484.389764]/Subtype/Link/Type/Annot>> +endobj +136 0 obj +<>/BS<>/Dest(name-kind)/F 4/Rect[119.373041 497.389764 141.010981 484.389764]/Subtype/Link/Type/Annot>> +endobj +137 0 obj +<>/BS<>/Dest(name-kind)/F 4/Rect[518.190391 497.389764 529.370079 484.389764]/Subtype/Link/Type/Annot>> +endobj +138 0 obj +<>/BS<>/Dest(section-2.1.5)/F 4/Rect[89.905512 476.889764 111.674555 463.889764]/Subtype/Link/Type/Annot>> +endobj +139 0 obj +<>/BS<>/Dest(name-language)/F 4/Rect[119.373041 476.889764 162.639399 463.889764]/Subtype/Link/Type/Annot>> +endobj +140 0 obj +<>/BS<>/Dest(name-language)/F 4/Rect[518.190391 476.889764 529.370079 463.889764]/Subtype/Link/Type/Annot>> +endobj +141 0 obj +<>/BS<>/Dest(section-2.1.6)/F 4/Rect[89.905512 456.389764 111.674555 443.389764]/Subtype/Link/Type/Annot>> +endobj +142 0 obj +<>/BS<>/Dest(name-members)/F 4/Rect[119.373041 456.389764 164.329828 443.389764]/Subtype/Link/Type/Annot>> +endobj +143 0 obj +<>/BS<>/Dest(name-members)/F 4/Rect[518.190391 456.389764 529.370079 443.389764]/Subtype/Link/Type/Annot>> +endobj +144 0 obj +<>/BS<>/Dest(section-2.1.7)/F 4/Rect[89.905512 435.889764 111.674555 422.889764]/Subtype/Link/Type/Annot>> +endobj +145 0 obj +<>/BS<>/Dest(name-prodid)/F 4/Rect[119.373041 435.889764 151.938715 422.889764]/Subtype/Link/Type/Annot>> +endobj +146 0 obj +<>/BS<>/Dest(name-prodid)/F 4/Rect[518.190391 435.889764 529.370079 422.889764]/Subtype/Link/Type/Annot>> +endobj +147 0 obj +<>/BS<>/Dest(section-2.1.8)/F 4/Rect[89.905512 415.389764 111.674555 402.389764]/Subtype/Link/Type/Annot>> +endobj +148 0 obj +<>/BS<>/Dest(name-relatedto)/F 4/Rect[119.373041 415.389764 164.567865 402.389764]/Subtype/Link/Type/Annot>> +endobj +149 0 obj +<>/BS<>/Dest(name-relatedto)/F 4/Rect[518.190391 415.389764 529.370079 402.389764]/Subtype/Link/Type/Annot>> +endobj +150 0 obj +<>/BS<>/Dest(section-2.1.9)/F 4/Rect[89.905512 394.889764 111.674555 381.889764]/Subtype/Link/Type/Annot>> +endobj +151 0 obj +<>/BS<>/Dest(name-uid)/F 4/Rect[119.373041 394.889764 135.060785 381.889764]/Subtype/Link/Type/Annot>> +endobj +152 0 obj +<>/BS<>/Dest(name-uid)/F 4/Rect[518.190391 394.889764 529.370079 381.889764]/Subtype/Link/Type/Annot>> +endobj +153 0 obj +<>/BS<>/Dest(section-2.1.10)/F 4/Rect[89.905512 374.389764 117.264399 361.389764]/Subtype/Link/Type/Annot>> +endobj +154 0 obj +<>/BS<>/Dest(name-updated)/F 4/Rect[122.36352 374.389764 161.628656 361.389764]/Subtype/Link/Type/Annot>> +endobj +155 0 obj +<>/BS<>/Dest(name-updated)/F 4/Rect[518.190391 374.389764 529.370079 361.389764]/Subtype/Link/Type/Annot>> +endobj +156 0 obj +<>/BS<>/Dest(section-2.2)/F 4/Rect[77.905512 351.389764 91.584955 338.389764]/Subtype/Link/Type/Annot>> +endobj +157 0 obj +<>/BS<>/Dest(name-name-and-organization-prope)/F 4/Rect[99.283441 351.389764 265.115473 338.389764]/Subtype/Link/Type/Annot>> +endobj +158 0 obj +<>/BS<>/Dest(name-name-and-organization-prope)/F 4/Rect[518.190391 351.389764 529.370079 338.389764]/Subtype/Link/Type/Annot>> +endobj +159 0 obj +<>/BS<>/Dest(section-2.2.1)/F 4/Rect[89.905512 330.889764 111.674555 317.889764]/Subtype/Link/Type/Annot>> +endobj +160 0 obj +<>/BS<>/Dest(name-name)/F 4/Rect[119.373041 330.889764 146.251459 317.889764]/Subtype/Link/Type/Annot>> +endobj +161 0 obj +<>/BS<>/Dest(name-name)/F 4/Rect[518.190391 330.889764 529.370079 317.889764]/Subtype/Link/Type/Annot>> +endobj +162 0 obj +<>/BS<>/Dest(section-2.2.2)/F 4/Rect[89.905512 310.389764 111.674555 297.389764]/Subtype/Link/Type/Annot>> +endobj +163 0 obj +<>/BS<>/Dest(name-nicknames)/F 4/Rect[119.373041 310.389764 171.179438 297.389764]/Subtype/Link/Type/Annot>> +endobj +164 0 obj +<>/BS<>/Dest(name-nicknames)/F 4/Rect[518.190391 310.389764 529.370079 297.389764]/Subtype/Link/Type/Annot>> +endobj +165 0 obj +<>/BS<>/Dest(section-2.2.3)/F 4/Rect[89.905512 289.889764 111.674555 276.889764]/Subtype/Link/Type/Annot>> +endobj +166 0 obj +<>/BS<>/Dest(name-organizations)/F 4/Rect[119.373041 289.889764 184.695551 276.889764]/Subtype/Link/Type/Annot>> +endobj +167 0 obj +<>/BS<>/Dest(name-organizations)/F 4/Rect[518.190391 289.889764 529.370079 276.889764]/Subtype/Link/Type/Annot>> +endobj +168 0 obj +<>/BS<>/Dest(section-2.2.4)/F 4/Rect[89.905512 269.389764 111.674555 256.389764]/Subtype/Link/Type/Annot>> +endobj +169 0 obj +<>/BS<>/Dest(name-speaktoas)/F 4/Rect[119.373041 269.389764 169.808344 256.389764]/Subtype/Link/Type/Annot>> +endobj +170 0 obj +<>/BS<>/Dest(name-speaktoas)/F 4/Rect[518.190391 269.389764 529.370079 256.389764]/Subtype/Link/Type/Annot>> +endobj +171 0 obj +<>/BS<>/Dest(section-2.2.5)/F 4/Rect[89.905512 248.889764 111.674555 235.889764]/Subtype/Link/Type/Annot>> +endobj +172 0 obj +<>/BS<>/Dest(name-titles)/F 4/Rect[119.373041 248.889764 142.569574 235.889764]/Subtype/Link/Type/Annot>> +endobj +173 0 obj +<>/BS<>/Dest(name-titles)/F 4/Rect[518.190391 248.889764 529.370079 235.889764]/Subtype/Link/Type/Annot>> +endobj +174 0 obj +<>/BS<>/Dest(section-2.3)/F 4/Rect[77.905512 225.889764 91.584955 212.889764]/Subtype/Link/Type/Annot>> +endobj +175 0 obj +<>/BS<>/Dest(name-contact-properties)/F 4/Rect[99.283441 225.889764 187.122797 212.889764]/Subtype/Link/Type/Annot>> +endobj +176 0 obj +<>/BS<>/Dest(name-contact-properties)/F 4/Rect[518.190391 225.889764 529.370079 212.889764]/Subtype/Link/Type/Annot>> +endobj +177 0 obj +<>/BS<>/Dest(section-2.3.1)/F 4/Rect[89.905512 205.389764 111.674555 192.389764]/Subtype/Link/Type/Annot>> +endobj +178 0 obj +<>/BS<>/Dest(name-emails)/F 4/Rect[119.373041 205.389764 150.610102 192.389764]/Subtype/Link/Type/Annot>> +endobj +179 0 obj +<>/BS<>/Dest(name-emails)/F 4/Rect[518.190391 205.389764 529.370079 192.389764]/Subtype/Link/Type/Annot>> +endobj +180 0 obj +<>/BS<>/Dest(section-2.3.2)/F 4/Rect[89.905512 184.889764 111.674555 171.889764]/Subtype/Link/Type/Annot>> +endobj +181 0 obj +<>/BS<>/Dest(name-onlineservices)/F 4/Rect[119.373041 184.889764 188.956781 171.889764]/Subtype/Link/Type/Annot>> +endobj +182 0 obj +<>/BS<>/Dest(name-onlineservices)/F 4/Rect[518.190391 184.889764 529.370079 171.889764]/Subtype/Link/Type/Annot>> +endobj +183 0 obj +<>/BS<>/Dest(section-2.3.3)/F 4/Rect[89.905512 164.389764 111.674555 151.389764]/Subtype/Link/Type/Annot>> +endobj +184 0 obj +<>/BS<>/Dest(name-phones)/F 4/Rect[119.373041 164.389764 153.939691 151.389764]/Subtype/Link/Type/Annot>> +endobj +185 0 obj +<>/BS<>/Dest(name-phones)/F 4/Rect[518.190391 164.389764 529.370079 151.389764]/Subtype/Link/Type/Annot>> +endobj +3132 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3131 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3130 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3129 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3128 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3127 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3126 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3125 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3124 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3123 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3122 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3121 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3120 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3119 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3118 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3117 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3116 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3115 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3114 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3113 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3112 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3111 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3110 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3109 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3108 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3107 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3106 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3105 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3104 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3103 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3102 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3101 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3100 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3099 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3098 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3097 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3096 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3095 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3094 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3093 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3092 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3091 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3090 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3089 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3088 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3087 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3086 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3085 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3084 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3083 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3082 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3081 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3080 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3079 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3078 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3077 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3076 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3075 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3074 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3073 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3072 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3071 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3070 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3069 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3068 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3067 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3066 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3065 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3064 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3063 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3062 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3061 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3060 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3059 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3058 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3057 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3056 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3055 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3054 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3053 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3052 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3051 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3050 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3049 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3048 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3047 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3046 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3045 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3044 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3043 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1794 0 obj +<>stream +xZKs6ƌn4(Nqhڲ(~ٱsh:u.Igw"!J$E ,yc4gFI*Nf{JJǡTih%BΩ"gw; i﮽_-EQ(=f:P9(|M!zmyB$x+N1"λf_2+[nn YlEȷٳ*ԊS&4:b \~>;|8t6b*|޽"ɘL{!WdDBM=\q GGPrWCcۅ#('Ggp%=#rGW"wf_fG7pfHN hOUݎd*z(ޭH%}:k׃i4ic-^ێܟp4v-Z@ْ;C1==iQba;PPuvbf(mdH'?uek4{{D/~{|xjB3X +-|03My.Wvv~rv aĎCxu|9#B6l[e*d};0|+ee*rz 9':<Ŕxӳy͗0-]8'o"ٌ-MܕPh&dS!P"eGq,&,kW2^tg^+f\a +I%WѲ6=vBC-_4]޸I5MLz46[ / IxR9/ʥ۷תt,] AJd{l6DXUPS"[ط.X4Ϧ,"DmDW$UުʾVYBC} :Q"[Dط.+X(7w"E>4-~ >>/Font<>>> +endobj +15 0 obj +<>/BS<>/Dest(name-table-of-contents)/F 4/Rect[65.905512 711.740936 192.878168 693.020936]/Subtype/Link/Type/Annot>> +endobj +16 0 obj +<>/BS<>/Dest(section-1)/F 4/Rect[65.905512 685.520936 71.495356 672.520936]/Subtype/Link/Type/Annot>> +endobj +17 0 obj +<>/BS<>/Dest(name-introduction)/F 4/Rect[79.193842 685.520936 139.656733 672.520936]/Subtype/Link/Type/Annot>> +endobj +18 0 obj +<>/BS<>/Dest(name-introduction)/F 4/Rect[523.780235 685.520936 529.370079 672.520936]/Subtype/Link/Type/Annot>> +endobj +19 0 obj +<>/BS<>/Dest(section-1.1)/F 4/Rect[77.905512 665.020936 91.584955 652.020936]/Subtype/Link/Type/Annot>> +endobj +20 0 obj +<>/BS<>/Dest(name-motivation-and-relation-to-)/F 4/Rect[99.283441 665.020936 342.423334 652.020936]/Subtype/Link/Type/Annot>> +endobj +21 0 obj +<>/BS<>/Dest(name-motivation-and-relation-to-)/F 4/Rect[523.780235 665.020936 529.370079 652.020936]/Subtype/Link/Type/Annot>> +endobj +22 0 obj +<>/BS<>/Dest(section-1.2)/F 4/Rect[77.905512 644.520936 91.584955 631.520936]/Subtype/Link/Type/Annot>> +endobj +23 0 obj +<>/BS<>/Dest(name-notational-conventions)/F 4/Rect[99.283441 644.520936 211.491205 631.520936]/Subtype/Link/Type/Annot>> +endobj +24 0 obj +<>/BS<>/Dest(name-notational-conventions)/F 4/Rect[523.780235 644.520936 529.370079 631.520936]/Subtype/Link/Type/Annot>> +endobj +25 0 obj +<>/BS<>/Dest(section-1.3)/F 4/Rect[77.905512 624.020936 91.584955 611.020936]/Subtype/Link/Type/Annot>> +endobj +26 0 obj +<>/BS<>/Dest(name-data-type-notations)/F 4/Rect[99.283441 624.020936 195.791742 611.020936]/Subtype/Link/Type/Annot>> +endobj +27 0 obj +<>/BS<>/Dest(name-data-type-notations)/F 4/Rect[523.780235 624.020936 529.370079 611.020936]/Subtype/Link/Type/Annot>> +endobj +28 0 obj +<>/BS<>/Dest(section-1.3.1)/F 4/Rect[89.905512 603.520936 111.674555 590.520936]/Subtype/Link/Type/Annot>> +endobj +29 0 obj +<>/BS<>/Dest(name-objects-and-properties)/F 4/Rect[119.373041 603.520936 226.94018 590.520936]/Subtype/Link/Type/Annot>> +endobj +30 0 obj +<>/BS<>/Dest(name-objects-and-properties)/F 4/Rect[523.780235 603.520936 529.370079 590.520936]/Subtype/Link/Type/Annot>> +endobj +31 0 obj +<>/BS<>/Dest(section-1.3.2)/F 4/Rect[89.905512 583.020936 111.674555 570.020936]/Subtype/Link/Type/Annot>> +endobj +32 0 obj +<>/BS<>/Dest(name-type-signatures)/F 4/Rect[119.373041 583.020936 195.774897 570.020936]/Subtype/Link/Type/Annot>> +endobj +33 0 obj +<>/BS<>/Dest(name-type-signatures)/F 4/Rect[523.780235 583.020936 529.370079 570.020936]/Subtype/Link/Type/Annot>> +endobj +34 0 obj +<>/BS<>/Dest(section-1.3.3)/F 4/Rect[89.905512 562.520936 111.674555 549.520936]/Subtype/Link/Type/Annot>> +endobj +35 0 obj +<>/BS<>/Dest(name-property-attributes)/F 4/Rect[119.373041 562.520936 211.721186 549.520936]/Subtype/Link/Type/Annot>> +endobj +36 0 obj +<>/BS<>/Dest(name-property-attributes)/F 4/Rect[523.780235 562.520936 529.370079 549.520936]/Subtype/Link/Type/Annot>> +endobj +37 0 obj +<>/BS<>/Dest(section-1.3.4)/F 4/Rect[89.905512 542.020936 111.674555 529.020936]/Subtype/Link/Type/Annot>> +endobj +38 0 obj +<>/BS<>/Dest(name-the-type-property)/F 4/Rect[119.373041 542.020936 214.152094 529.020936]/Subtype/Link/Type/Annot>> +endobj +39 0 obj +<>/BS<>/Dest(name-the-type-property)/F 4/Rect[523.780235 542.020936 529.370079 529.020936]/Subtype/Link/Type/Annot>> +endobj +40 0 obj +<>/BS<>/Dest(section-1.4)/F 4/Rect[77.905512 519.020936 91.584955 506.020936]/Subtype/Link/Type/Annot>> +endobj +41 0 obj +<>/BS<>/Dest(name-common-data-types)/F 4/Rect[99.283441 519.020936 197.33349 506.020936]/Subtype/Link/Type/Annot>> +endobj +42 0 obj +<>/BS<>/Dest(name-common-data-types)/F 4/Rect[523.780235 519.020936 529.370079 506.020936]/Subtype/Link/Type/Annot>> +endobj +43 0 obj +<>/BS<>/Dest(section-1.4.1)/F 4/Rect[89.905512 498.520936 111.674555 485.520936]/Subtype/Link/Type/Annot>> +endobj +44 0 obj +<>/BS<>/Dest(name-id)/F 4/Rect[119.373041 498.520936 129.181635 485.520936]/Subtype/Link/Type/Annot>> +endobj +45 0 obj +<>/BS<>/Dest(name-id)/F 4/Rect[523.780235 498.520936 529.370079 485.520936]/Subtype/Link/Type/Annot>> +endobj +46 0 obj +<>/BS<>/Dest(section-1.4.2)/F 4/Rect[89.905512 478.020936 111.674555 465.020936]/Subtype/Link/Type/Annot>> +endobj +47 0 obj +<>/BS<>/Dest(name-int-and-unsignedint)/F 4/Rect[119.373041 478.020936 214.713129 465.020936]/Subtype/Link/Type/Annot>> +endobj +48 0 obj +<>/BS<>/Dest(name-int-and-unsignedint)/F 4/Rect[523.780235 478.020936 529.370079 465.020936]/Subtype/Link/Type/Annot>> +endobj +49 0 obj +<>/BS<>/Dest(section-1.4.3)/F 4/Rect[89.905512 457.520936 111.674555 444.520936]/Subtype/Link/Type/Annot>> +endobj +50 0 obj +<>/BS<>/Dest(name-patchobject)/F 4/Rect[119.373041 457.520936 176.176752 444.520936]/Subtype/Link/Type/Annot>> +endobj +51 0 obj +<>/BS<>/Dest(name-patchobject)/F 4/Rect[518.190391 457.520936 529.370079 444.520936]/Subtype/Link/Type/Annot>> +endobj +52 0 obj +<>/BS<>/Dest(section-1.4.4)/F 4/Rect[89.905512 437.020936 111.674555 424.020936]/Subtype/Link/Type/Annot>> +endobj +53 0 obj +<>/BS<>/Dest(name-resource)/F 4/Rect[119.373041 437.020936 162.889154 424.020936]/Subtype/Link/Type/Annot>> +endobj +54 0 obj +<>/BS<>/Dest(name-resource)/F 4/Rect[518.190391 437.020936 529.370079 424.020936]/Subtype/Link/Type/Annot>> +endobj +55 0 obj +<>/BS<>/Dest(section-1.4.5)/F 4/Rect[89.905512 416.520936 111.674555 403.520936]/Subtype/Link/Type/Annot>> +endobj +56 0 obj +<>/BS<>/Dest(name-utcdatetime)/F 4/Rect[119.373041 416.520936 184.506586 403.520936]/Subtype/Link/Type/Annot>> +endobj +57 0 obj +<>/BS<>/Dest(name-utcdatetime)/F 4/Rect[518.190391 416.520936 529.370079 403.520936]/Subtype/Link/Type/Annot>> +endobj +58 0 obj +<>/BS<>/Dest(section-1.5)/F 4/Rect[77.905512 393.520936 91.584955 380.520936]/Subtype/Link/Type/Annot>> +endobj +59 0 obj +<>/BS<>/Dest(name-common-properties)/F 4/Rect[99.283441 393.520936 194.203852 380.520936]/Subtype/Link/Type/Annot>> +endobj +60 0 obj +<>/BS<>/Dest(name-common-properties)/F 4/Rect[518.190391 393.520936 529.370079 380.520936]/Subtype/Link/Type/Annot>> +endobj +61 0 obj +<>/BS<>/Dest(section-1.5.1)/F 4/Rect[89.905512 373.020936 111.674555 360.020936]/Subtype/Link/Type/Annot>> +endobj +62 0 obj +<>/BS<>/Dest(name-contexts)/F 4/Rect[119.373041 373.020936 159.188959 360.020936]/Subtype/Link/Type/Annot>> +endobj +63 0 obj +<>/BS<>/Dest(name-contexts)/F 4/Rect[518.190391 373.020936 529.370079 360.020936]/Subtype/Link/Type/Annot>> +endobj +64 0 obj +<>/BS<>/Dest(section-1.5.2)/F 4/Rect[89.905512 352.520936 111.674555 339.520936]/Subtype/Link/Type/Annot>> +endobj +65 0 obj +<>/BS<>/Dest(name-label)/F 4/Rect[119.373041 352.520936 142.690424 339.520936]/Subtype/Link/Type/Annot>> +endobj +66 0 obj +<>/BS<>/Dest(name-label)/F 4/Rect[518.190391 352.520936 529.370079 339.520936]/Subtype/Link/Type/Annot>> +endobj +67 0 obj +<>/BS<>/Dest(section-1.5.3)/F 4/Rect[89.905512 332.020936 111.674555 319.020936]/Subtype/Link/Type/Annot>> +endobj +68 0 obj +<>/BS<>/Dest(name-pref)/F 4/Rect[119.373041 332.020936 139.260492 319.020936]/Subtype/Link/Type/Annot>> +endobj +69 0 obj +<>/BS<>/Dest(name-pref)/F 4/Rect[518.190391 332.020936 529.370079 319.020936]/Subtype/Link/Type/Annot>> +endobj +70 0 obj +<>/BS<>/Dest(section-1.5.4)/F 4/Rect[89.905512 311.520936 111.674555 298.520936]/Subtype/Link/Type/Annot>> +endobj +71 0 obj +<>/BS<>/Dest(name-phonetic)/F 4/Rect[119.373041 311.520936 161.068354 298.520936]/Subtype/Link/Type/Annot>> +endobj +72 0 obj +<>/BS<>/Dest(name-phonetic)/F 4/Rect[518.190391 311.520936 529.370079 298.520936]/Subtype/Link/Type/Annot>> +endobj +73 0 obj +<>/BS<>/Dest(section-1.6)/F 4/Rect[77.905512 288.520936 91.584955 275.520936]/Subtype/Link/Type/Annot>> +endobj +74 0 obj +<>/BS<>/Dest(name-internationalization)/F 4/Rect[99.283441 288.520936 195.602045 275.520936]/Subtype/Link/Type/Annot>> +endobj +75 0 obj +<>/BS<>/Dest(name-internationalization)/F 4/Rect[518.190391 288.520936 529.370079 275.520936]/Subtype/Link/Type/Annot>> +endobj +76 0 obj +<>/BS<>/Dest(section-1.6.1)/F 4/Rect[89.905512 268.020936 111.674555 255.020936]/Subtype/Link/Type/Annot>> +endobj +77 0 obj +<>/BS<>/Dest(name-free-form-text)/F 4/Rect[119.373041 268.020936 192.085688 255.020936]/Subtype/Link/Type/Annot>> +endobj +78 0 obj +<>/BS<>/Dest(name-free-form-text)/F 4/Rect[518.190391 268.020936 529.370079 255.020936]/Subtype/Link/Type/Annot>> +endobj +79 0 obj +<>/BS<>/Dest(section-1.6.2)/F 4/Rect[89.905512 247.520936 111.674555 234.520936]/Subtype/Link/Type/Annot>> +endobj +80 0 obj +<>/BS<>/Dest(name-uris)/F 4/Rect[119.373041 247.520936 141.281244 234.520936]/Subtype/Link/Type/Annot>> +endobj +81 0 obj +<>/BS<>/Dest(name-uris)/F 4/Rect[518.190391 247.520936 529.370079 234.520936]/Subtype/Link/Type/Annot>> +endobj +82 0 obj +<>/BS<>/Dest(section-1.7)/F 4/Rect[77.905512 224.520936 91.584955 211.520936]/Subtype/Link/Type/Annot>> +endobj +83 0 obj +<>/BS<>/Dest(name-validating-jscontact)/F 4/Rect[99.283441 224.520936 195.23144 211.520936]/Subtype/Link/Type/Annot>> +endobj +84 0 obj +<>/BS<>/Dest(name-validating-jscontact)/F 4/Rect[518.190391 224.520936 529.370079 211.520936]/Subtype/Link/Type/Annot>> +endobj +85 0 obj +<>/BS<>/Dest(section-1.7.1)/F 4/Rect[89.905512 204.020936 111.674555 191.020936]/Subtype/Link/Type/Annot>> +endobj +86 0 obj +<>/BS<>/Dest(name-case-sensitivity)/F 4/Rect[119.373041 204.020936 193.924066 191.020936]/Subtype/Link/Type/Annot>> +endobj +87 0 obj +<>/BS<>/Dest(name-case-sensitivity)/F 4/Rect[518.190391 204.020936 529.370079 191.020936]/Subtype/Link/Type/Annot>> +endobj +88 0 obj +<>/BS<>/Dest(section-1.7.2)/F 4/Rect[89.905512 183.520936 111.674555 170.520936]/Subtype/Link/Type/Annot>> +endobj +89 0 obj +<>/BS<>/Dest(name-iana-registered-properties)/F 4/Rect[119.373041 183.520936 249.829096 170.520936]/Subtype/Link/Type/Annot>> +endobj +90 0 obj +<>/BS<>/Dest(name-iana-registered-properties)/F 4/Rect[518.190391 183.520936 529.370079 170.520936]/Subtype/Link/Type/Annot>> +endobj +91 0 obj +<>/BS<>/Dest(section-1.7.3)/F 4/Rect[89.905512 163.020936 111.674555 150.020936]/Subtype/Link/Type/Annot>> +endobj +92 0 obj +<>/BS<>/Dest(name-reserved-properties)/F 4/Rect[119.373041 163.020936 215.022943 150.020936]/Subtype/Link/Type/Annot>> +endobj +93 0 obj +<>/BS<>/Dest(name-reserved-properties)/F 4/Rect[518.190391 163.020936 529.370079 150.020936]/Subtype/Link/Type/Annot>> +endobj +3211 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3210 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3209 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3208 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3207 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3206 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3205 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3204 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3203 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3202 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3201 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3200 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3199 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3198 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3197 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3196 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3195 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3194 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3193 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3192 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3191 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3190 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3189 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3188 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3187 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3186 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3185 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3184 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3183 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3182 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3181 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3180 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3179 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3178 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3177 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3176 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3175 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3174 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3173 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3172 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3171 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3170 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3169 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3168 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3167 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3166 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3165 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3164 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3163 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3162 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3161 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3160 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3159 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3158 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3157 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3156 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3155 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3154 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3153 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3152 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3151 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3150 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3149 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3148 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3147 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3146 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3145 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3144 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3143 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3142 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3141 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3140 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3139 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3138 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3137 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3136 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3135 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3134 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3133 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1793 0 obj +<>stream +xYs oVj'q,c>M( v\$AV˘)̗Y"~8Mou7)bgLSddy"_1gI/u1Γihx +=*wּy_D?wH 5-7]rt<,x0i(.q13@y +p]w53-XcE?ǐ^$SJy,L MY21 _ho!Q$4oǵuuH 13M5ϝf:1 )/0'!5$3ךS16Diw0 +Z*^&e ]ѻ faY&WC,rml_fұx+'^CvKЗn00wBM06#frhh `sfJ#!v{ldʴBc\%EgB?ö)DNk4Uܒ=rcS + +bNj&WmV>Im?~JJ^ӽbXi 蔬Ƞ3jKFIg4vOPW&NxK PbbAD%;Z9!Ft0[g.VTWr_Z;_c$ 0X;DwƆ#vz[ayRPPX,Y+`/]>_{sW^|l^mf&Jf>.>">86Ъ+gQ>|="f<7ڂzg)(+2Į{{ +GDe\d}InC!ÈjXOx!3>!$ھ@6Š l8sQؤqWC'5 LtߡZjC> ,#P4V.ˠ̻npר-EivR /:PB `]ˊԀgs|w"B)/. Ž,~W, EALX:?zDI:p&@V3*n>Na|TOb?5.?Wŧm"MrgؐiR)]6ͨxii@lZW2y0xPdM] (|\һ! !͗瘵H41b ▫Di%ZU ^<~[HpĔ UWȕkI`8swx5mSN\C+Ӧp.4"s/Ca{dCm6d#o ZtJ6T}b!~E I&}Άغqpݖ'EmҗWH{E"8SuWw nZ៑VU=Aj7] G(ݑ)JӾbůd&n,wS߷6#פf:*hcȑA/yUgHRQw+P6G7ױ$_A`gcko~?s:;)x"9ؓL{XѩUp(gC٭YQA0@ғ%恥% HSAWvB1rFɺҒe!9PW[vsݤ.1ㆂrGBDgV.E Z~DV(7ֹ3v//-5&cDtcMi vBB3 'A$/̯-Tl4/M=[օɼf{ +C\? GҋwC9!n~KXkUOK!sӎS='H\ /(60kkm`a dZ #6ɒT\jt%3nC=)Q\!tV9+ޮ=htjf$P>#F,HZ !YPE: +endstream +endobj +4 0 obj +<>/Font 1636 0 R/Pattern<<>>/Shading<<>>/XObject<<>>>> +endobj +1636 0 obj +<> +endobj +7 0 obj +<>/AP<>/BS<>/F 4/Rect[151.905512 752.649529 172.026606 740.409295]/Subtype/Link/Type/Annot>> +endobj +8 0 obj +<>/BS<>/Dest(abstract)/F 4/Rect[65.905512 583.238123 128.239008 564.518123]/Subtype/Link/Type/Annot>> +endobj +9 0 obj +<>/BS<>/Dest(name-status-of-this-memo)/F 4/Rect[65.905512 444.020858 213.239496 425.300858]/Subtype/Link/Type/Annot>> +endobj +10 0 obj +<>/AP<>/BS<>/F 4/Rect[183.799066 316.503201 368.118891 302.903592]/Subtype/Link/Type/Annot>> +endobj +11 0 obj +<>/BS<>/Dest(name-copyright-notice)/F 4/Rect[65.905512 284.803592 188.414789 266.083592]/Subtype/Link/Type/Annot>> +endobj +12 0 obj +<>/AP<>/BS<>/F 4/Rect[125.549555 208.084764 286.09057 194.485154]/Subtype/Link/Type/Annot>> +endobj +3217 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3216 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3215 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3214 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3213 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +3212 0 obj +<>/Subtype/Form/Type/XObject>>stream +HR(T0u +endstream +endobj +1792 0 obj +<> +endobj +3218 0 obj +<>stream +HyTSwoɞc [5laQIBHADED2mtFOE.c}08׎8GNg9w߽'0 ֠Jb  + 2y.-;!KZ ^i"L0- @8(r;q7Ly&Qq4j|9 +V)gB0iW8#8wթ8_٥ʨQQj@&A)/g>'Kt;\ ӥ$պFZUn(4T%)뫔0C&Zi8bxEB;Pӓ̹A om?W= +x-[0}y)7ta>jT7@tܛ`q2ʀ&6ZLĄ?_yxg)˔zçLU*uSkSeO4?׸c. R ߁-25 S>ӣVd`rn~Y&+`;A4 A9=-tl`;~p Gp| [`L`< "A YA+Cb(R,*T2B- +ꇆnQt}MA0alSx k&^>0|>_',G!"F$H:R!zFQd?r 9\A&G rQ hE]a4zBgE#H *B=0HIpp0MxJ$D1D, VĭKĻYdE"EI2EBGt4MzNr!YK ?%_&#(0J:EAiQ(()ӔWT6U@P+!~mD eԴ!hӦh/']B/ҏӿ?a0nhF!X8܌kc&5S6lIa2cKMA!E#ƒdV(kel }}Cq9 +N')].uJr + wG xR^[oƜchg`>b$*~ :Eb~,m,-ݖ,Y¬*6X[ݱF=3뭷Y~dó ti zf6~`{v.Ng#{}}jc1X6fm;'_9 r:8q:˜O:ϸ8uJqnv=MmR 4 +n3ܣkGݯz=[==<=GTB(/S,]6*-W:#7*e^YDY}UjAyT`#D="b{ų+ʯ:!kJ4Gmt}uC%K7YVfFY .=b?SƕƩȺy چ k5%4m7lqlioZlG+Zz͹mzy]?uuw|"űNwW&e֥ﺱ*|j5kyݭǯg^ykEklD_p߶7Dmo꿻1ml{Mś nLl<9O[$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! +zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km +endstream +endobj +1790 0 obj +<> +endobj +1791 0 obj +<> +endobj +3219 0 obj +<> +endobj +3220 0 obj +<> +endobj +3222 0 obj +<> +endobj +3223 0 obj +<> +endobj +3224 0 obj +<> +endobj +3225 0 obj +<> +endobj +3226 0 obj +<> +endobj +3227 0 obj +<> +endobj +3228 0 obj +<> +endobj +3229 0 obj +<> +endobj +3230 0 obj +<> +endobj +3231 0 obj +<> +endobj +3236 0 obj +<> +endobj +3237 0 obj +<> +endobj +3238 0 obj +<> +endobj +3245 0 obj +<> +endobj +3246 0 obj +<> +endobj +3247 0 obj +<> +endobj +3252 0 obj +<> +endobj +3221 0 obj +<> +endobj +3249 0 obj +<> +endobj +3250 0 obj +<> +endobj +3251 0 obj +<> +endobj +3253 0 obj +<> +endobj +3254 0 obj +<> +endobj +3255 0 obj +<> +endobj +3256 0 obj +<> +endobj +3257 0 obj +<> +endobj +3258 0 obj +<> +endobj +3261 0 obj +<> +endobj +3262 0 obj +<> +endobj +3263 0 obj +<> +endobj +3264 0 obj +<> +endobj +3265 0 obj +<> +endobj +3266 0 obj +<> +endobj +3269 0 obj +<> +endobj +3270 0 obj +<> +endobj +3271 0 obj +<> +endobj +3274 0 obj +<> +endobj +3275 0 obj +<> +endobj +3248 0 obj +<> +endobj +3277 0 obj +<> +endobj +3276 0 obj +<> +endobj +3273 0 obj +<> +endobj +3278 0 obj +<> +endobj +3272 0 obj +<> +endobj +3268 0 obj +<> +endobj +3267 0 obj +<> +endobj +3260 0 obj +<> +endobj +3279 0 obj +<> +endobj +3280 0 obj +<> +endobj +3259 0 obj +<> +endobj +3242 0 obj +<> +endobj +3243 0 obj +<> +endobj +3244 0 obj +<> +endobj +3283 0 obj +<> +endobj +3284 0 obj +<> +endobj +3285 0 obj +<> +endobj +3286 0 obj +<> +endobj +3287 0 obj +<> +endobj +3290 0 obj +<> +endobj +3291 0 obj +<> +endobj +3294 0 obj +<> +endobj +3295 0 obj +<> +endobj +3296 0 obj +<> +endobj +3297 0 obj +<> +endobj +3298 0 obj +<> +endobj +3241 0 obj +<> +endobj +3301 0 obj +<> +endobj +3302 0 obj +<> +endobj +3306 0 obj +<> +endobj +3307 0 obj +<> +endobj +3305 0 obj +<> +endobj +3303 0 obj +<> +endobj +3304 0 obj +<> +endobj +3300 0 obj +<> +endobj +3299 0 obj +<> +endobj +3292 0 obj +<> +endobj +3293 0 obj +<> +endobj +3308 0 obj +<> +endobj +3289 0 obj +<> +endobj +3288 0 obj +<> +endobj +3282 0 obj +<> +endobj +3281 0 obj +<> +endobj +3239 0 obj +<> +endobj +3240 0 obj +<> +endobj +3310 0 obj +<> +endobj +3311 0 obj +<> +endobj +3312 0 obj +<> +endobj +3313 0 obj +<> +endobj +3314 0 obj +<> +endobj +3315 0 obj +<> +endobj +3316 0 obj +<> +endobj +3309 0 obj +<> +endobj +3233 0 obj +<> +endobj +3234 0 obj +<> +endobj +3235 0 obj +<> +endobj +3318 0 obj +<> +endobj +3319 0 obj +<> +endobj +3320 0 obj +<> +endobj +3321 0 obj +<> +endobj +3322 0 obj +<> +endobj +3323 0 obj +<> +endobj +3324 0 obj +<> +endobj +3325 0 obj +<> +endobj +3326 0 obj +<> +endobj +3327 0 obj +<> +endobj +3328 0 obj +<> +endobj +3232 0 obj +<> +endobj +3330 0 obj +<> +endobj +3329 0 obj +<> +endobj +3317 0 obj +<> +endobj +1639 0 obj +<> +endobj +1786 0 obj +<> +endobj +1638 0 obj +<>/F(rfc9553.xml)/Type/Filespec/UF(rfc9553.xml)>> +endobj +1787 0 obj +<>/Subtype/text#2Fxml/Type/EmbeddedFile>>stream +HWr8}@%II]3θdMyu6v\7 I -+_32_.dGR.>Ah#Uz4_1*UnGWQp25'ԛX44vǍvj" <^-xLfԳ:7~k='ԋ4Y_ + y, Ujyh֯Kd(po!D{7p⏻sɍS!b36ꓘOSCbaN{,"^*,ĘYr#FT]δ$9n~@8uzY-xRUs;QV (u!֊c]7Er1_hE~ɵT_\}b^RwyZ#y- _D-aپ!J .z/ e(L LJ|뱙y\CU,Nkg{Jq^̰gzkyl#%ۚ\G7 >ܜn! (.Cs5"TyY׀R \G׿HL&B9aTu`4bu}aJ@zf_e{F^ A:) ݔ ˍ +Ũ` +qc8AJ԰͞,K/L.,21蟵!IcU@+9$PC9Un`ić8rGL؉ɴ +ak j%ͿBa%CcLVmDr/g;'uJp暀vEs[/qҏ!`S3[W;8wB:T>2|>2( }kp>re9&J; qv{ٍ}"DMOw}#+QT/^6Jܾwځ)9w +(++Dfzuq}ߌs^|4#|wy%*^􃳓kTӏM?r(o@fL9S3gLsENC6q|mrbtˉMc,uEV*ZT>ԇrC,@m?G>sm<1֍'j<1϶[x;oAf~^[]laRba\} DOR K-]j1R K-fpVEuF*#&M? 6W-j1U W-{U(w*xe7@zUWSi[iU j pW}zӮw|/=~twu{R<5SFz~RV1>nΕ+%_n`@ fX jo%oDkh'6v%x-yDC3O4tL#/џ,%ųYxl#p4Sf͔2!Nah:X57[W7v~tw^d~y!wVz%0I`1I>IUKa MN\dOe9,6ݽ3`nc&b­ބ+p KXLp5L5S S t5L7 ӭV?%]y1UjMR_' Lql"5Np*QC|uxާB\ r5jFѮf PO$5ܦfÝ')QŘ6nz;5`G'LkI1fc<S%Zb~OEPË+/'I@`v{M俪lVp +p,޵*se~ċG{s;I`\"k){GcQ'[{sZ)˥,8 +@M!5("|~$'a7i޽~)ߍjGv0.yx;3oy9LT|Ժ{Ϳy򩝙 '#wݭ՘DŽ.M9ԎMO ~Zgv8!>C白!dk3B;'sokutS;t也vO6\u|et@v@jb's!t : R RkS&H&Hg4(W&C}Z AAzJ,1#Wڜ^^Lr1Xd^Xn: 2 2kdS66fZ+kioe)dxd'u <|~"TVd'Lh+ϛy`)_Z:']b dNK-1osK4QOў,F`-F`#2CXاm鴖~ C~c`Q^k* kS +<ЪmLSm*;l*{u b'!}+*@k;ۿJg8!6Blh#>'Uo7=7~Ǔ: Jy3@@@@CN3ިr=i}s v jv u -d8+E.~QTZ"eO|eJT| \ cŶ gL +p),)/,jUfM; s6Ty(Ȯl|6~ް׳*'YL%\<4'9Yȵ<8k#פD?Az9}Y>% +~T7 LJ2PZHX UM\V #YS&$tiކWaU8SŏAkWK)EKZqa3OxJUYƢvqG9>%A8I c=+P-B~G10F5p_ lǹ(|[{Sfaɜ2G&X|n<{ÓKqzvn -"CʥN|YvobyV挤_~h# &ԯgQ}y8;ܞΰSźkdZ62@5)~\s\&3uoovR>LTweC9-9c" Q 9AQxH79J(i4g(@y#u,:vW]U³KFWޏP^,$j}Hdց.>mL"u8p Mbԝ|BnG4<^r>fCooϦz^ɷH΢H˩X2@xH#6.Zg%sp lyZ/4LZ@JzMnEDNFFvv_o5><,󠱙x%P@7gXW+rD0#Qo+(,5C;CbbnT2F +{Y$Br=ilFn \ΏL8cf:ctZ%kIz U%#zCzkCӏhP@xАJPK,Ab::ӵr +pa&%! q8ղj_(ě +UC>lx.3xN?Q4ŜYu7w<4%`D[E8-!$7jxBZ -`Jx:͉kz 3 mЇCW#gD2Zu(+_&.g9AD*nL'd1k|5B# +7 s4ON Mݜ]fs9 НO+n٘,ClRf  ';O0#d"^{4Sp-W'^PX"(cM=1L|D%<eN.[N4hp/Hǭw}֭;>w +Y-]swjvQjۇsR%n#K$ވ(Q44kVO]}ŗ]1y יg''N?s?図ˣQFM4Bh5p 3,kѹ* +U^Xzw?]fF<Ņ3-o5D@-{#Av3xk#$o&";Þ&/b vZGP}h`E)!mL"_?w񷫳O_F_;bt|eoG/>C-H׮5[h݄Q4v#K<%[?D,@A s::It"@Þ+y=R ޣ{nP\0@%%'Dp}3R &,tLtč b1|7iH\E֥x^8zݦ!w?i+œ"k7tw/Nͭ۝zgӼ3Ij&[y3ZTA#Rw;(-u6v.LZ?;l/VK`xCU5nW]j0WX21I ++<'4x≮iTR0bzw.l D 98RD`7$MV0aJD_NEȹcSOJ֋׏t7,y|o9l#h 4F|7).q TN؋ L=<ߴi| SXx8&㴱R(b|bI_mǕ 0ODЄ(*N\"g aC,Rˆ+<˹F:)(p)pdj<[Z߷jG孯+Y]6&5j5{!VK['f*Q;n)~Hpc$JY4|뉶سOiaBqk1n'­'"/=2 +0Э \s<&7NQ){KV4ͻޘ˷o#9f`,)Dx8@vrйpjM}p{p Lrl.t$- K#+`[9M#'gNlS^yL1BnH!0i:MzDZ{Ʈ_!Tp[vc6ElŢ")ū#;sQ6nDǜ9UMu9d`1qne.)E 9Wr\MPM +QD#,#7eEW=德eIhvB#YI(ֲTa10ɂzܭI h ދ >{Dvp`_%gj@v*EuPy)̩LY\fKN@CJg_/Lj]`4G5v5/KbzkdY6w1cҏF=5//Tg]E,U?Bp*t&H4!wʼn"V vDBs)Ɍ3@z 62-\=nؤpSZ#*‡F-cWq &)dO2kb+fy> +TsA_+Q+qRᤵRu0C xr8 m^kp5pm,`zm93 i!& +5N0h(5p\kT=7z ҏiޔ[1;[@I[Y#d" U5h2Xh6knWp!o@ |CIvhc'̿;i2\gOW?oNgVfKx^m֩Ϡoةkyb;a:B`l~۳{[y%v@ @ELפT5&׍PWPGJWMM +R{hRyM'h@ۮosy_OYn/I @]1dOuRA+LԩHA%jͿ]\@˸!.?q '9a CJE A_z-}'9]ROj^Wy +٬Ԝe3t-Y*_(zpٔ?z3NQ$f*Mqyr/I XKx_\/4pr=ZEТ*+ތq,cC|_Q=N4Dalo5 nG *+/BFAHsY6 +}-c6hU 7~&GQ2m$qu70LS-Dna kfԁ +.xAHld]4}UHji=z P80B:8^#~ⲍ6IwBtܲ0),Zf>[6la70_o+[((c_h7fDDfᗩ"u]*ev @.`AKH_7} IOF،Yfu 7PA *UymI0@Gf<`t% +At +"[٘)B"6-`QluE)1N;{ Qj"ΖiIf,Gqˁm != Ø]fdc\ku\:HPI +#ӐfK]497hNk1g_*Iԯ4ֺy L<$e=ef +$Ve&s l^X>s*BʧpgCFZ׃Kg"gM/”6e}sY'gWENۼ{rJL@IapGsX!L`j![N6(*aVXҹGӖQ)C՟C șt ƛ^PLOY8mqed?6y]HPQS`ϷCoVL8#Q v5/^??}O3hH*NF$Q=,7?ހeXlanB9Y?ziLnsA sinHg5)\vCЩAEjCC7*+K7$bKn8;MYb qZgݼGDE0C3W%g)7R3?V$7s0UO?)+wH9Whb!Yf8 "HJR]i 4x3 )zk%ёgm +*X5 \ݎm`!rY9n}ɟk#݃ޝ|wP/%fuK@ރ9rp.3]*Yqtj~zs(ѱ=:2-\r7{SAm9 Hx:*Ǘ?Ј,ݷt3̨"!e-JҸ]f^?<2+Güzdmi\,1ãL)$.D$V-µZHԩZϾ r5YrIwZ]`O2/6apd߆Xr +*Jb6Kى9s۹ rF (/ĢV@, MHjUO=A>ugA~GAމuM*sG;_%$6@3:*cRB,tYCn92wu|zD+ EpON76Y+iwT|!={̾=A+9[t)Gl-O~ +[0D;W;U8q;\}" +̼uT7b ~W B͆bA.)w H2RF?0qMBTU@t;31k7*`-hĥX pמaIkYAW'Z?KAԐBENr;\Uu.<.qfSLPO|[XΏ*n.ye4?:_G6rzTw.;,S}sg.CϽw7]hޞOyN[a|w)\Vmo.ZWchy+xtÁ_ڀ@r|!bgˇsf +uY&ڰwY$XDXz.u_ѲחnzM >X亹w}mM"x*e,EŐJ_$ +ݝ??><ù7%! z@ 5mzi:}{yGNZ&-!'Vl$@9(8vx ΐk`lFǜ$H W`*qiZ5.eo\8[.TB} q6C9%&0x(iUVO4R^r(J}&7`r; oo 茨 CRb[z>2[ſteX Vӻ:xf9~{O=}$fx?WWm87&ߵ)U+[ۏr:ڦx3va碭s[ `Dm4^G7tsd` < + $\ڞ1Wb+-҅\cOp6eIM"Uu4rI]+J j9kei2UY:IxRN>p<I.5G̾:=eBAFRZV be +4W^/r v/Sgα4 +4EYnc+$½n0/TؖS?Nʉ|Y,*Ԣb w- G*H3,NR]SI2 b\}ߐTv,7 v{ڰ-'Wb_~xϦ9&:tșqph|/7S\hX/a xqMZtutG%ar$ m|y1$+{Lcth*@l{Ak`^Ǡa#g!# zoTqş+gm$b1YsJWجi-Q?R֕;2(bm@^cTƠImj r/0| OOD?7<'ajOGx>gFiOYq"7@"ab|)1hƧ삊nϋs>!E9~RilI;:f` 8V7 z:\k6wवï*֩BU{16ez#A:x**l\;P7|biu^5)&_;|Tlm5\hsxkpAFhS) L?KqPKT{zhgC:IpUsܶZ憎![p,mŊi)*AquM0c2~VCqC㘅XFBGl¨3tXoWt ~IOD'7ہ1ZA47ATd;=;> 8/*|-( 165yhLOj;eOm3&[[C V28tjn>ۓR.qL!mY-N ӅM.+aejᆲA50Yo'[&r)dZk$Ge9`hZzaiQzq_T[0un +tw?/An0ap +?˻(6a4ʗPƪy}i|m时>?r;a;4%v7}`n֨~7NXf:E/FȚ5E*Z!}/>F3| d^A"9sz;}Y٨) -m_5hCw #5E 149<-utp<%I3Ȼ,*7V 1YAٌ~ ^ېJ .=mZ D\cV%gI?UE;s+>s8sM^]{m.ׯ`h:A: +eћi jbD>KL$űegEquĵ{$,π%0ҫHl~3(n.q5[!W2[Rl8`57@_tkGGJ* C+ GkmBUͿ)<ƒ93=sf9?m`Vf$!qyCgbD)iaRT,1h%A +o90v%㸌.I͙NEp΃ U$L|Z tyu-6E6#2!\q'э+TB.1t(^h[{v73Nϼ3ŜvaEz/twi,x^]Iu PoLai[;?PC!$vP˚6PTf?ڊKGIN?OG*Iut:.͕^g2[KIyHhap}fAO=Ip%V:y|'6`YM(+L~~en7.W=yyZfRd=Db"՜%%2%U~Mu9Bc6J%P?YH]2#6a> z41y4R& KKiG[if eyt(Bd`@/۬$R5L-NB>и^e$^ZǯUd?etl֪ITuGJ`H').+dyhmEgfHwJKP`UN9^V}"ՠ>]QsѸ4#P$*3YML<'&t&2xMSN4]2f#cMWAQ&`T;pԀMooyP^w}9$3㎩^t|!xp f'>&(c:5E.hc^ߕݾbC28dDSQ_'P&"#E,ӕ9eq<"€Y-8']45@&M9Ԓ:uUs|68,\٥q@[OX)ڷQՉr[ŕ +KB@1[̢ ދ f&VC4ЉY U^$4!w u +&`ye>ƹWIh&wZSU +B:1[ElQɷ!zxuCcO^O+M"/X$a7?3w񛃞Ź91\Oɻߛ:㚫tVWan>;9|;azNpptT +bvN8SݩȲ>yЗ†2H[IħEXԇ>[hQHmf__|7^O'g$賃*%=ڢ$aan(JX->K[ʔ? *_9F]gȈɈ$gDxҋ^/DA`<#x- qO@+*9u6t{_^(FE4ʛh(DO .RX+|)1 +n,Fg +oMZ"!E&-ib %XV+G27L_!,`/r+L +^8y+]:H f2ԜZfF-0455FW{(q2"@9p#,\Kk[/ss) 5kT5<(,=AW2խUwh9ٱh8 :OUg$9+ml>vj@zݵ{0!ݨ =7l 3<tik.K{5w R%J$]ĊΒ.RIQv*Kr%& ZSvpgvfg{g lH`&u %4 rHFIX UGDB3_7nZC0ID^wi`&XE.vGF*DSvY59y&6wʯGjS<#nc bZ[&>zbOmU+FHZHT#VmRgv2seۜbeX`i[4r_`fʼQ5F\RF2Z 7A9ջkRMU> u/YAB:kˡ"G[ U[̫l |#qWp ?$+XCsԆ籚i0{ݱq;~[խ"MGx=Y^1 +"A[v YG ?ngW¡W%P|J/c B31Yfd#NH2ph h]Zʚ I${솉uQ<8`TSy>^sӮȢm i8 ^c +c:m}Cc̭;hXSlhF_+obpsw.kXdEj痂K]tQ693T9AwBu +$b'@r(ܞ( J'UN \4?XOMw|trˇF8%[0Qv?F%ҳWsé# Я^3s61+ᗣWWEwo\̱T[՗YBO@*=S"gF-3^%K֥kͤ:u󷥑$qE +1!{N۵tԎ +SIB#)݅` \@b̗N(ɐixE4$)>&t6#m,Vt='5b|i&D]B +3l>יGo v/_myތֶ2sVݲ b0{Bٹ'##w\ޣB-{ 7ol ~+sRjx/DPIK2yP}g L@7-9+HW!y媮k\F}DUh6%e)M8_cF+D؏ڑ1ߟ1h]z_GqtPWv..n\~ۻŀ(/OΎZJ;q._%sw:9_CT"j" մo`A.V!{*`zswhfe +:!SaHrf- b"OES(!$ +ctzײ[Npvբ CVsMW]iA(G{#Zo2ppW&hkCdn2e +Dc#8{{e>lbB1̲dVlNa6ye[ dt槾G{[x$53lgK7k3h8ُ.p Twq{1w}}aaEqJ-嶸Km!A`^g$wӨkN +gBu=PF"N9>܅^d>H@#A8z2-.|p*(ǡoƌ\NaTڭ u-LW/ +'Sn*2QJ<[KnC=ݔdce %2D?"N1ʘO4ʜH{̕48+K!T:D@!aZa?(t5PYEBA`Fހ!#z,r'Rs',ƫݪ}PFpSOopPv*l90A[@+y Ks~͍߽V!ᗣA+;7IG?;OċJ{g[eAp1ԃ&75Ɖ`V y6W8B\v{LП-Y, T fE] so>7f,LUS=(VOgt'z._\~݋],"+*;;kº|j)t;{XIlspF/Pfr6eZ!1K5G?|`g ~%űx9QO'θa=M,úZ%-,Vyp; +eI5=2M7m鼽ê[:=lJF뙫Haaw|!pÔ7IJ$^v~d*YZ0OiȞRq-5]N_E6dݲiQ'w@{|)Xhݛs>i.i[ga6\r/=n]OW[o~ x^R@(Q.Q:IFy)"b ^HlJ]ԑW3;3M9-{#"YU=MeRǨld9k:O>tQzuZ<{4z;m1Lc\6 >qiXTJW` PVCmvzɩTm(B:S_LRc xbJW+uFI%s+`h$_ܮ9Yղ˥}[}/k_WO+qbGo7CK- K_ El =67ER͠ sfXj8[|hrl ooqJ&TZTp<푱Q|c"[EgaTJ9NJ(?NG#EމlcR|\Zm}YZ] R6IzmRX"tg_U|upS1e0Ϥ +`@B.`ك$Q)q`gÊK6$d|CA$6A xO88N0in 'Bx +pM}j4;x};/oF~'H5z *m~! `=f3Gdb/~c옰nr]ݒ +K{[-KQ'Le_T!SG6=lj *sÃeJd09J݄G^E(yJP&?f +5Q2XE--<~㬯}@$)!3`g󕷑s?$oϑ:J~%>bK3Qqh^ '@cyIh4xqw0\.aiEBſFQ@I\!<4C` +@! +R ⦾vCenB +k]A8<§hp-@R D26HLEGι(Ξ?2^[N4QG)D(>}}=  C I;gT,u}!䥹!LOAZ6]H<D2;XKi7V΢jmFnhмxW4$sYL`psaa_DA\}B/NU]xa'<K,wDHv,ׯ`<~'TZGd(?죔3 m3 f{*lv?jy=Fe! ? +>Ip3`1v/L둯ë&z ' 63OܲtjF|5@R-h,ĥnQ-t.MR@"ϥGC 9zNk?'<ϙ7CojL<ágd؆iӝ y)\KXy/>gGѮ*?{pw?NL;ŕJQpS]FFLF0ǹotknƢ>%3lɎ;fݺn& K)B%(J&}@"!E_޾$ ~{a<+#Y\'K6ˡ@^(KҒ\M=.{ЬN(󝢺S}Y/Ka=sY-MVHH}|2}0(3x1 +%`h*g,)~º8pjq{m-|m$3M꾌e6cSy=5]g7+A} -L|lrͲĜ &j&QIgkni>W:Le}0mIc3XДDO3/2o%͞__o_dLi'!y+NN7GN}ߝD&;vSȯF#޽jyVto4$oK/jV)"OfR"h֌)򖌟1 9~Q ԉE#<1J4ҠAWJ:"HDe Nŀs8?͔u<`0"8RԪb5؍5%UMV n-Aű:XY] +BY}@]% 4릘*~?GYvzwP\"VGxtiT Rm˽V^Zmۻ amvkN5)}~@ƺQ[hٲ"TI*ot*0tZ&Yμ gPR8L9E!}aG|0j6)TTY/{DZK)K҈R4ZMaZ5*~nx"t )gdHShBJkBHp o xRߺ9W̒^S% S\2tzy /I*U1pI>X2}XW1Oj sD#(~6p(j(ԇTc*mǼD(?F55ea!meҀˁR9$CעSэය١ Zb6$C Kl:k-8mq7);̩ϬgTAwq ZMEnbVQ> !7@aœEQ@%7 ؄S AݨLh >pcΨc;B,Rlzt>prA|Lr4Mpy ǚȍ/5%qnU=4ySORPڄDr4g_ZMIggSIBD6??b{tZP'F}}DMG|l_xfn%Q-h>1mN;=Km]Ap44Ɔl٧rz{e1J4t΢qk^E48=f=&%·8Pƣ +z,BAhsmzln8Æ}qűْ͡9IF޺9֢9ّ&Y<s:}`lHgְ,l`4X1бP-Qov%NbeSOdO@hGYiZ~[)EkMƨL,PMEFsn ^Q` O^2x &%'"S1Д +¦O`XVƱ.x*͔Y]ˆtco;͆jJnlo섚J C%3^ ʁ#hL0'wK6=mY~TeznVu_Hԇt{hx梣2xœݶULmɊk&m^V;.krĕ'KЅYzZ;i-t]>:o +O>X@BS3 ғ=Y8O|'>X8øfo<.|[͌7Y5.Sc?65 +^fD":9_.1L5hBz!( ҅tbz[}~ +`!CKMBNНXˑ`Repﺿu/aF%O8 J 7.$+Mȓ+ZƝ- + tO1ѵ|51z<^T@{m44 T@΂;4+6̎MKaR ~U$ИQKXYtYX"s><:Ѳ2"SHY?{"{z>ߛ;2n̳-9 K$o.y AxD g?Q4YP 0(uB|DOm+5wk%t3F Vk[y;9lP*`djUf@hNCa%/'ԶA8bQM2}DTR7s  ְ{Z̏؝?k!jypmJٯƷBXRIyE7}1*K!w4Nj43 -ds1X3Sr(Y>x/9T.õ0_:OK|DEP{ ŤQr8OΜ* lPk`p>;~I3H85_F݀YggG{yq]~ԩˏL/;˕-8pTt{үo*DΝ1[zUiq|I9-y}H#C)W=";O=1 zg_"dJYH 9~vKf5cb}?hRYHT$åd&idaZ|aZD`Ժ*䗴,U*}0ھ^۫HTMJ{6RrK,S\=$&\.,Π8duV }KOtܓ`^{Z".mvFxҩlO^#$v'Nq݋d&m]>P'gwZ-n"|q-2wl*#lQS=%I7`Bt-fbkQve(cܗ3$/Ħr 2GU&hrRHvΟSVCث HmDpCπ{8~ΜA>#ĄN13Nxo:Oţy oe})@}={@ꛟ1 C mkki.tPK? a p9q8t~)Z\?pيi:SBC~zw( \Lm%#R4A N Q<*ӖB +PkqjDY^ۧ9LU A2L),p;48*@& ƥUBGfOIDUX=MZj#uuWAsWz()8O+Uܜ_nL!WQ?ioGEz_8{0P/L&,ԧ" Dt0'DE ӹfbBTKPh$DIU"+hTkAٕU~u4j݀>h%|+, 6T4担Pó:&#ED.eߓq_mmW]> + ˉhIj#zlZ1їeQcg]#J-X͌8W[Jt*s$Fi5.[O?㽱l "$I@U;"Zhp-tl +`^GU\V!.cp'<1pmRNS gm4f'#jHVjKOc+g1PL?nCɲI:&܏.5J`j\L} +'c֋p}܍sTe5 Tǻ.?L#a;rǪN5œ;/ 2H7A'X|UJ_ C]7HH LrOQ'Vl_qꔭfѬc;&e"H<ɑ䯤=P +cɢ=s(5dXZGЬlW=ꟓNoyW5b%Nʶs,G/ANn'RLsQm=f]-5][qؼ~ݹu?m.鮯؁SԷ+pZva'j5sK1x:?Jt,D#zl)"V;QyO-pĂE'Vb52G4jy%%bbʁα_9]ݔyC9t=:"+P5Dr-ɥX3_W +B"5Έ柌]%TĀ[Lj>_4]p,|!"0pGGNbnՉ9p5ԋ1[Qŝ_ʄZiL0EjyG1R =N`naMvO;%<_r( E 9v$uG?1g7gQ]7zg"+KYAj!5:h\z]w/yo7>_:h{C/f8{SHۗm4F9} 1[| %^ʳ0gՓSWa$MaROU-swԽZ="a<*[aPN"T+ܒ#l B"h|H! W"w>F8f oϒL`'ffcVN~RrD}6r]F/v*vuk 憕:@ x4(K_RwGf{z`s ݱ^KbIĐtskVڏY"€@behP^hS w c4:\cGGa+LH}{Vk&_Lbe5!RLF]Lq%U7嫋=j"jUY ݘdt hݓxoE˜CKc`rm@k.O*K]-rXԂTgtE*M$5oU f3Hօȱr>z%!Ҕc=,u,Bǒ<Š&Z_Ս|,M,YNAAo*ܲT+og%O#KRq? $CJCH~vDBvJk:Fu>|(~pLP^8=jUTY/6VjMD+tsxAmSk"B9=$YDdp:!leMTMz~qmttv3b}<)-sގلb[0/[۾v7:z@Rp1gEkiP)J0 +(܃U#9o}@Y3G5Y+.y [Oٝ0i:9kպ`83K<Ǒz3jZWC?+_D]ʹ!rFtbj'89Z:O%Xmz% +*YyS%rӎ_ĵ#RJ6 +3|!UDy0^[H5 ok0ʼn|G dL@0v$ejo ^lQBS{,xlL7(ga9A9PESB4:j2-q/TŶ`ڤ5$,'%Ś1"GtHK %aG'Q̪;wt9cYY48p7B|DTS镢*`ܭywWn%҃Mϱe S\F/iKxi)4-:.ٙ#G&Gm#j#ț`B֜Zז,i^6IjZw`RJБG8kWJk;b : pI8uQU)3HZ"EȂ;;P8;2zi}Pzns5$5Og|J[c(GuPtHiO?`T Oyߛ0-,ɓOjhنKжYސ?Fd21&kaݲLƻ/#wLjXķZP*v/޶q,2 RIz`%<0S%c'K䜞.,Q u%4J~el+"Qхds{odq|SnSdȚPUAdF7?.OT'L8=eae܃b̕HH_,ZbZ羋X3'[鉌l4&hN?Ҭ6tw(L5b]1hݧ9Ýk,@MeU^4G4qQ㖦1-D?>d2 pjA\#C3Jim|M>, P~QMQUpʁ o)UĠXϼw(UB8թ< LĐy(OvE$3<`ߦpaI7Cs<YW) _,wӃ]Vv2W;dvB44 (y~Fv.OkeU#4ziӧ[_U4`"l?G4cT/ء:GW}MR1^KUȐ̓'ց٬+^B❮-@jFXŋ8M͡__'3c,eY.+guWsAMහ.Y*)JyRITƜDW%]+I1^幈8-Xzϊ2a *Y<8Rcr29rT BBPq(ӣsuzrhp[0(<.N\>W4uȻwѡ`e߽m go)y(G7(N "R "PwgZH,)^ޯHihɪLtLOܧa՚FG`c&ؖGg>kBvg<3sg};u7Ot3* q#<yO;; jI!sB^gv[ EmI`rrB>,Jh؎ff^9^؉9{5`qTYZa)j3e4dS0Ox*r$e!Y@ {Ĵ-! 1$ k Y%[aRU"qԎx}0>v" A  +FT! Ⱥ13g +oFx߸9l~/^KUò, 瑱qVG $()c<)/,d"C7UɮvbrȲA bzڳ3g4i]RQT{!A&,G ßnG9Ba~ @m}GQ3r0Ĕ2ƍ<oÓmNS5"*~T ө̽*` Qb:{/,/dn]fy>W|m*]/$_enz1ChQvM3꯶LsS$ɓrWşh6+Wz`"XC=XE(C4c`$$ ۬" &׌ s_Eɔ4][uX\7^d䉎b"h<cY\>@uGugY9l f-оsŒ@0]M9U.M kWz[ cĉ唧N9iH)Oh4K}/&4)1t׍ + JA7-;6t򽱜]ȵMGt\艶Yg`b{qxPaW*X`c&RaGv O9?Ȁ8}J^onٶ*왜%Uy:J$hn',jIJO6&/2櫖f$X +4ɥI#rY'^L.桎K,A'p4piUeVsl07)"L7zA8N]O:7otmM?Y<8gEVYΗzC6ީ?n=jH af @]aN(|\,9.T~RLCkWB`Eep= y925E^A5[㥯rN˸ 9/37Gp:P|6  ZA1fezS/'yk#+#bXݬy3FafWݖKjvPisN6=#TLBds +r 䉽 R,qrs8ח #+|b~nlx`옮K"M귬ދϪ~LDΔA +ɑ6Js&-c/Q!9:E`ÝpVJ)2 }P d9!ڊ$Q3"!GNnXi/^d=g#u}TYdg 2.RKaI[:,F…Y"%Cfh_GU0J-9qɴ4wఋe)XhÃ}k3jcblipeS6!=Z66ZwMA'n_]N[ Blҳa(w. F̧p-Y["{AE5=h.q๋/qpg=Gjjg+/"K*tQn粛w`rslO?@\~؇|.}{ ~Sw)fK_|ܴg&"CNةcSD|H0` 1U_nXm!V tUƆ]VªhîM΢C6[J ߋ0+*v(7[(8w"'M44 {Wx?w8~qF+lO۴2Aɐ+o܁0-R;8O" j 2VKg;Pt^|FCDѰ"M=U5fz\`\&)Ts!;SPS{IR89:,EV"Ka#,ډMr摗FYOI׷QYjUeuAV' 5u,K< ;I.nW!>^mݼ!;^=*?_qz{fV9A`=qHui%s"N ):|LRBnwKxl +~+AA x^xzi6#0cW+ަ-~39 Ƅ^I3jU l+k͛vwhDxh@/?c {֚/XjϑI{Tǂқ͉Pn/xmm#қ֬Fb3xbmfC4fso)C9 + mPn%I{@l>j)PUsГ9i,8=U~L?-PGjHx:1 B?G+cFn{L5mܙn43W:r,rR[~?Z}IK_Uv%?HKo(vb;6.p +'T08%ҴGמK۲XQ֓ڦoĎSٙI8wZ&VLg$c&'AYEj?6R\Cm4XZ)GltiG|;Pȫ@m5&./4,(&yz8hipS µ:  tuZW*uMGHz_LVltG@GA߄ITHh<ӭ]x E+-3ldgVqyx<tMr~ iyù醅\[aɌ0KM]aUo%xg|+Z~~ CZZ =8 +dXGs.xRCw itJ}}u#I '֨ONxO)#ŁYj*\j0$0P=>>4}cLqe l 6 enZ2 e-"(p`gR1hx(D"QEhL#It"wwI6^L%ɶM i"/Ģrյ+XG7 3A⿆w ʫp3l^*/X,y Ù[ֲXj"rkmz Ih2 ?AO!DVt\+ub.k@ÖF\NkDޑ?C\.;Q;D@3:q"k  a[jQF_8XCʉjqt&rNd.3tFR>e3Lw艸<y"b2dcl&jA+åᯨ*_ v_]f5[ȬTEGT~A~.9Z -$`vZrN\<zpT.matóAF4%"%9)#.O |.J)%=JWg`aƈ``ۚY ٚ[`/BASY^r]KֱBҗT#* IO~2 2[-(F3h#XN~신Jt^_dlf&D"2/D?dh=Gn2c 겉ɫ&KddK7*x{3ρy6$y2ӥOc7$ FL J '@}>8% 8 2 z p1mt`"00ᩎ mWteN`]ǡbÈFqaڈe;w +ޙSq I\9/Kw_N"<$;Vr'8`=<- ?ʹU&؀5]Ū{oǹ-Uwס`}tPLM;"G Rӝ g۹ox@ ϘVCOX;,pC\ i!ymx"d.y-fL9~X}VXϟ.//WkiO]![;OпGGVnyE @({Sx3Zcgz4G]M'ArZFuEiaCFm[b\/9_ieW6URyP?Kg~MȿUP+rcHP-BmetRAU HM@kB8u 'FNӬ%鞚&œp66/*Jtz`\L¬Ojd;N lb?~TiB-l; @}N<]ٟ|ԃQ$p+vy _pzT fPugWdg=q)|kEf6<#` X@+ё3,@0J2;f3C.yPl.c׶]|"xNpt(&.s|qMUbL)NlB1ͼ=\ ZOeOfHȺ|ZPݒwZ}G֑YJP{oSw=TihS@  +J3)Kd).'Yg`2\r~Am;M^Y^0AS_f]9hvau)Q|-hg΄dFA+;AH>{|ts,pc@@2UFDrC)%㮘(EOv(<*45P-( SHW\8Y@w(mջg|΅1`[zRƙ%Q a(EX?0Pm@@p;HAtd l04'͆T")jk ,5clܠ:*ȹZ0 Ɩ\ x;%*y'~&ћ †AooPćz2ޓ+)[#'7KFF9ga1A2>V~kmXtH^QN!\z;7|r}MH p ൳* -rG8'VΞ3}iX[>w}{>-63i}/P)XT kl%ȶ7 XIUC]m 4y-*[c+bb[mK@La!Mu߼/{ 5ߩYRP9|wjU{GVϮOvqִLT9N`JbtlG;jA~vj@Wy\@_D7ƈJJ<pNv5W28ehaJa77MGE)w76R{+czR=KK-mQ#Nlvn-fA3At&5ty9w) B\7\s:Hp!c'`/=3q~t2Lu@OdN߽̎':EjR~0mjGfB*P%xLzQO$=%΁xlMG;9>dکcϯo$,!GOm=h﴿8&ZI/^Cp"6Cb֧r!q&=Zwd[,w%YΚ"8ܹrX4G"PSYyj P$+It%"ttu{n%ETorĝfJbu䲪|8\{0==UxEPL>C"w +3gq%켎JkRNZn(CL0/6Hl<$}l,U&ϫWN<(u4y3-ܜ2Au{вt;-I^B@J8,^TIB{3Y_ge2 f;n.vu힭]a])޶$}~EC L:mc@b?6ɖ ְI9}Uݤxȶ,bDWe39S)L² ]yS{=qS{_f5k'n\7OUO0;V_2o牶ľ_2 q d +_j#B3ޓIYrIKuY=SZy3_jw8àR${ ;^/1`Ƽ9iߵ* 9F?35 `-9&?ib# @P~+cngH&"*maRVuӗB&ytx z ީZJ &jJ1 R 6tHڴ DaAVCڥ)C*Kkxhn|3Z @2[HGK: z&Wz YzUWލo{9}#{&s%c4]۷#j.iiuԳNG5tenunt/UݎZf2 ;}G X!EEa"EI*WYwMn/&Wu{ɀőhѯ=QqKz H~nYX$:5F72, Fb%xg[_b!sè-}v=W]3~>?ԮRy*TV)Kc'?~8ZY^InE:Yh}sQ4^1Eeޡɕcg& .*y%y:6`hX!.v;2g#M?Au֜dЈP31|m߲Ip{hV-ѬdDGxp}\X '7:ү:v6¾i M>Ki8?^VkZm'ab~{1ZF24֬c@R&8 Fjejr9c(B绍bŒW^X߶D=p~"_G7c0ZpȠ\wxL:8fXStJB|u{.% ş^Đ]&?;-ʈ<FE cbJ15!Bp܀bD'Nt"dc{knB1-sڔt0*gtw)ޖ92rE__^^_mo-t)l<'OgIYML y ܗ'1ql -],_3Ň$Q[Yxً#E}Tf2V봁 0&Y1rȐm ]tI9cq \q'fHPkJه)rq:"[ w8@/&W1cDe`k󔞷?#ycjת^cNqtB$C UbclÙn[S DO86YDͰ/ ?D}H%F9u@U[O4L\v ˴X= PLZy<.wBMT~wNfLm oQP چk8~Uln !%/&$?(>)xJ$$ 4CjצYWf]mg3\x_Ȍ;IouқNSbEa0T*/>5]Ն^ɫrػ[4Nzs>\SKm Q5:kt GNĵ炾T)gs +>6QWM([ r`wPiEPrNu7,Nhx~t~&[4biGxo$P*|T(VUCr0>OIio_ ;4:$+t' +S](7%ve/0A Ĩm, FΖHo L$d䰙(Og6:9dMYsJɥѱ`i-՚LC/re0W)f[:BبU6h9RTpT =F0<^J=˸זk匵OLta@9T"3Ȱ} 2JjfjE(ChJL "ߜUdGqHZr/WNbmt LKVVXΫ 3>nrZnPnQq/څ}Ad[>ru\jY +UqO보{",z:/+idrWx /s }5 Քnl,Nإ8J$94|;^1}ƠR5 Ri$q*hЭ+Wێ i<3&^X۰Y[R۔4ɑߪ$X1#Q>S1(٨VӮƺ+4ơ't`hQj:EƂy4Up21av瀤ܧ/p ϱ\a #嬏nJ묟 ?sEƬѺ4#%j J謘#Nz<(1\Ȅ[uӋvm!`b+b5OmCXB>#blumF_6yu_ p )zp~qAܠH8pYJ1!J3 i,Wr(yKz.Aۅ87+u;ñ(#MfEnR1&ȍjTs&q" }G$ywnu']IЖ*!,W|5 +K H#9*f+S22=o$FacTJD.nw5 nz.1-ui.{f+_Gw.1׳ٖa<+L7i}5RP@3gAtWd)(HAEfz: qD̓z^Ϳh=^M",¾=+6n +K(GiQFpbE.d ^mpI8{[||N ["xCyfE $Y}wkbهc- \IMGNf涐\{݋`Cʙ!Yp!b@pM9f .37~%?gjR;%%_CCfgW<`a[:W5)Gy>naq]⦍V3֣c[|A>_/G3ropGs M,Mw2, Y`f@a] +UȃHwQm؁=(fܾ! +;P?p8 [.AL#5lSS|u>OZ&FTͩ'[vt|.9;G'ix Ac 2L {$C<Z!C0ӌn"<$K&z<,ڰ߽# a}L>"1+J槧A>T16zYY# 2Olꈓ6ԗS%|WEw9Ug3՜xfjG2Bbm[ҴN}5{ۅYY^o6qqټ:l'Y}w?Q(14rf b>k>*%sD SPY5eDnH0Vޠv /< +mn- 8^I|8sVE"zcb K'U6n +'϶e;vș&9/!`  p@WewA2MHm. hR.M/?>Y%NL=Ԟ?vnߎCV~e0tXUTB#TfeA1dY6mF,;lWE_%'mw݄e7 !3JAӽ}4f51=pT!gb!'Zn*bUkA(X`!0.9Q䐴9`$^(ÙԾ#2:apFWpCNxv1CC]>AS@UԝQةbf20ЖgF9#`^h%qR V0؅ƎCXiM\QeXnyұ## =HR$+ +I,!}qLI%*@Q} b["OXv.mS|btx.ͷ$g86y2 u&b 77F.K1"^I!%ރr4֕ú +RyX:H[y--g'"6ٰ@SQQةbׅË3t!rcC nyǴL\A z')rjCFj{ Mr j1a()d%gUr [thٜxe|&yd~+'+gXL}L 4j,]/ku.Rrv:w,n~. ŭbPIznv5ϱEɬ#ٱ[ 6t8 %Q̤WR!U%W:+d}!].io+VE`1?yУcSeVZj/Í=lҺ)~cg`α=W}RRf,﶑ȭE}Q$[d`5$ +Fvk9X:i#)S8`7}G1:GsW5ΒO\8 \4 #bN( +=sZ{d (?'kt)×(ڜlC}Dzz!'<;11 nߐt 2[1Sq˶3qr- 1jn͉+ d~+'+VTVp.@Bj&"hB=aITdÆ$/h"co0xd}ĮlHb4/}<7a%|BhIQB$pzXn Ѵof.u=ը`6(,vj&gݾA9GճXQ% l3?֚Q12cD.?E+UD`f%Qh%|x1[ 978lͰTz}]diJo$@H:mX;iޝa.l ^q\g`\F~xjN@# wr+RXN>WHhe!r+W1ɨرSO< Qw(ڗsQ\ۍ}APoe(x12(qp^ X? B9?X*Cdp;dp_j w&3{@*{Y;x7&{QW.VڜdLPH$/ȼIun˓ZGrCNxv"ap6ODl*aKѝS Ů - gF9BƈAt'uk#ڂ@[1SNRd1%0Ѓ"/ Fvk9 *2ZQ~sP9JfY),2y pR)d @&ʄt_,3ѓ/L C[ E g,%]! 5:Zl,LlծqV,#ѵ ? >pU|_G&p^ʌ4.Mo#^/ot|3:#Q,ޚ|{lqGWI,tՆ"˖/daG@\L7|W9 jJ1MK,iXZ/: 19} 'zӊ!16jNfAFbfBrs1k>#rHCPYRyxQvܜdLP⡤`[$/s W`â^5KY]]όr҅ȍ1}{$Du[[F+8zsb.+ (e%$J]t 8ؑX,~UEWR!+Ujwsy"Y5}q.6XO, 8ޒ :y]BHAx]̢W7VSBD +_q"y$\GR)t8#Pw&i!L8Q,`ѽ(+FB#OZد޶,W|>tl u[)#rdNKͰ3C;_IWŰ-9g9^yO:Y5g1UrSEN  ;jy ,A,sx# 9躴?3 .2cKy@jE w䑷qrd a7W\NUX_#IFϰ +]Os7D$5xAܕaN2otR )J;<1qd&KO3[_2z(|oηOWՏzښ@U,(g +N8HR?!X̊ny2z tpu&)ewU]| I.n/X-Eh|Q k+`xZ~4Z&'ZCSO۸+jY/?l}C=Ԟ ~G_,c whіxb.dFu}:-gu`mwg[^v/:E4i`sL d o'"bVM6oOxGkLD]nR:y;{foj-N-|-lPYE$%F &9o䪊p݌yu[_jlt7|fK% +՝UPk)-ڑVoyDKU>ޝOVy6Z-/+/ug'4I/7wgR;COM? fT<-ͨ v:w]6/k:Yk_I l}:mn-]yDHwĿKt[PktD4q[wս +q/tC4h,=\ o+L_Nɘ|P O;$#e YNS .qwA>H@0S\fh`7\1fp=d\E~ʅyA$OpHqP [N@ų귡!>8‡iIN4b1| F'c;tVbx'!Qoe5V-ZHGoގ)r.8U.B+L_N02XW?+4tq/̣/0tvQkLW?b؈jM'y\) `,7]`đ#wqWD3Iwշ Zgxxvzpوsh1h e6Ndd0G$<ގ}Xp$Ƈ/<sI;\_RXǗ_l‘|<>)HnT.,*w?"#?.i$b [\G\'CY+^U'noa;U3U|)͊"ůzj%†Oҥ}BF/"اdXMtOF"di;w662-; |;V?ՅWS/=}dcz\S?~PӮPr͛'@NuH R?,xfEW402b#rEipL/Nm8v/<+*.7!2HZpTDRܼ0LR0Qt5G sah( [fŒ+'R6sZM肪}Tql+Ͳߔ?B#qf.}tȸӨ/eY[BZm)HPj6* +ܦuRYNtƺFJ^Kj%H~);S@$U{?Wh<}XزM̌%>ͫ ׏Ӆ$B34׭1יWlMf_Juf< 2ʐ}ڰuΪWRB=/_m"I_*˶@=U^'{MZgFҬ Ȏ$ ΞT G~~Ed{iȖ^V'am1N">|bD7/43몜0+^r}٥NҘ4-"W@PQA"cFSÛ/>|/2~{b/gDɚhb~0'4_),BdS"QÈ3 +=u?ND:PO egå6N54@up̖QWh4#q%RɽٗmN#v+[9 (ͨvŠ7LE .lq,sr5)JCg > K8=*dedr![t~%%aPDr *x{Q翴c@CzRb?)Px *oJE\A,"`n!{ /.0x;:-Vo*9}7 +d*yԖf# lZg @o9D":(xT#y6.xv/+P ?};@URR?&*+kg̘j|ڼ|)s\Ϭ_knY$6L*nS H֖P/b5µBwy}߸ڜš`W<"dl8`3i Of &ݍJҌ3$"(f̝֦6#b̗ { T37U7rҺŻ$|ږ͌k)ִMS4+kX%m@lgaw96wcax Tu:e2c4/%\iOllxe78E^wz/L$L A4ic:YV1![a LRdL\+2" bKyZ׊L]I`7nࠃ3R~(B-1YaH!H`2~w-`S(?>شLJ"E+8qd҈szIhKJ{-Gis2 8F˚me")E׹^3l* Yy8; +;62DV;19=ɿqA,7C](ʓFQ=t "hSXB x|(<ʄרvm K9#."Ό;C/93>2_r~Z~fwM +xf|#gWf?<'fӳL⾉I܃`/FOOOTzGߨ{]5xEWzrz^*Wihz}AC@j_5_0.%cu_0F՘S//pY䪖^UU\'h!ݝ$-R+seH26'?Z#_tM5-hXBe4B"1='a7*|~4q?1r:~6?fG1h>?NpZMP(;HNT >%3PBqZkV&D $_H 'l rdyP s6=fG3 ;td.G8 ̶P99]1gU& +kWWc=W R}\e]?P +|w ~^ +z,kPk'aa'X1  +%WHl7e}"•v9[u9zt ~X6嚹08mBh6Dt5gCx`֡f6pq,]9+"7'P Q3pडljF5k6σ掮63hLTЅ6JC 6MṞ2vƝMxMf.}} ޳ͼŇKḷ.ޜsd8e8u~unfk'ܧ"_ kp## Yas[σ,M+Y qĂYG{GA^S]\cz:=| 'iЇSz7|~5>ƿ|8IRjtz};\"\RZŤ,G#A-knSA=^|-F&wBZ:.^$Θq6u ys(0և:0s`XNކ5=*ك!ڃ;R!F1¦U W!$8=#'fadm.(ul/Ӵq9ZдqeM+i84qpOpW쪺  0 G q$#2ķm}*GȗCM5|Q/_=Ũ!Ĝ5q5Q\`XK:'礆kTv%>A xŦЛֳӪI@4kaW|A߯`n8wv'2e1Eg A운2l^K(mBA`P{ll2jA%mԤ s8il _o hĬfe5DBFZA*UBJ2Q(XIsq$vE ;S䡆O9l&Ԃ_XNĆ5XYJ?Dǫ܃[A0;4gFUm + jx|^05 E/g]~3$NF.pM dS@, 48\ OC2dsܴ51+ϫcyu=ٛVz!]W~ǽ^Z' a55=GZlo~*uIz[lQ= 9NޤcTv %ǀICnZ*LZi_1٫M똃Yi_`&1?#cïke]`R]`-pK[V`|# V BR1X+P(jf +j[nGҾ$Uķv+Ԭ=0oIH@iHrs'!)<&e!vq$mZ15ÖgR"a<¶P--JnVlop$pHfB+h Gay-}[F5p&zI3 NF:&r(2G O~$*|b[sW?7?_8O[c8+S sOp$pLN㎳OI8VPcK\}%TaAUs +п/F`Q6>EtmROf* 4i*膹%A:ہx=Kcv0nA&u:ۤ.3t`l*;*mR:.l_g X[Ʀs֭RϹ.y-Swj*=@lbn:JlRJ?c#V?5t$;9< W[/'u23*$F;9zLXZ)zǼIzJ'i!defR|7û\4g +Og=z7uM{tDLi +bZKN9+ҮXdc{Z٥g Hk!yОLR,7!<5 ku0:`33+L~i윙 b)ǼeʹX.,dpePaD"MW(4^RMXnѿDbVrdƸc/9#L:G')hbBkf*ZAC{l )a 9CV6$ةM`f8VQSUAח 1b?~FRq7:iR`n': ؚ,u%M3pŮS-&mxͤ6 %EOVx`g((&5ЄZ~0EJ3]6R!.ߜ;S*{TfD PᏠ\$bɩKu2ed4 dpXK1VB;e]$XJMD.c[;CQP)O̱ʁ6|Bd`0⌋O< `Xi4P!dת'^Ř {y9a%ƉG@/zD]S EիPQ䴒27p\]q#н ` +ɻ,H߇D SR!iBE` S؄6qX:8]iaf,EbBbI<ؘuZ7'qHi}d N:X`.p2 +B—dDXͩͶC ex +N<%O[dTd<3bH yQL;V {`yA._^=7>woG#;I`)=?:U!'%#_[J/>)!8$^ZG-zf GADg!]Duܣ6KIWi:=7֣Z^\L3M.HqDzDݔ D{w .ȏ߁5%E4 5PtUXhtrOV!0;N. +Re&(ijBk%_lnji4ۥ͏K/^5?aV,/選.4:b' a 1Kjn1"%)ǗB-GMfw^`0n`LؤjdDvM/E"J\z8Œ\Z(N3T=؍QHKC9ҴQҟx7o>\$yұyӮl׹zuyqu1f?Pq{zsMG*JJڲN!Mo7{_!ct?~iFaKFx\W&t~Og],SDʭG7?m|:ZuD+rT6Z`ĠroO簘<ã/a\jxO&hB$.j\]s[H%-/?'-8~AyxᄉPx+YB{lYዦaW` KHo/Y/N\m|y_ D>DŽ'*U>!I@ +JkqY}葪]Aׯ}ǰp/oI ∠F_Bț1I.I VݏAHhdԭs7d"oՂaq-44[AoBRTZI$3*V|[!IP׻\FkS/5$h)B$fRv:! т7Q€(Ib@Htag3FnTVVݚ,0{n쪂I wE^7/_^;ݓ?J ӶZ4[b J1s+>|^7.p:N g9!z1| T5Wb -T de^U MJeG")V*Ogմ3-墅{kOlAE;pB#PdC|QXk[_r%nE z|b6%Y`jW¦#jMcOk]|iN:+ѱwHQO;i8$XD^T 6OLM,n"v5-xٙWy ŔtV!(/9 +U\H%u*p<]&-^9#KN8<*CbsG:0^[J:+&ѳ~0~K7{-{OF4 ˈiӸ=vn V MǑ 7ԁx˛̋$Hދ7UWսf4_[(n;KF4WUc(Upͮ%=zvaDDC0_=vDV}rXPYҹQ@Qh(~\=(!qJHjM^jGKndрb\+Mvplau.1r%V>jk&bsc.J%ִjtѨ6x",TS vǷmV{/vRUV*E?♃ q,Tl\%A$P$CIăD5NsFyە 0?/ImW>&[ MT8'c7͎D{7u=,:mnlFQ\[r)JtĊcz(X"!򌢝7 Ȣzz0;2 +/7l`؎87PdSK# 75!*d_J=|Cu2 N\=Uj҅4“ ]3UqVu|3/ ??O"DA9 ūK0lN\lj܅3n*`"᧓7Gr 5/6Vל%4#xtE$슑^AeMZ1^ {sH׺#F,cX0DADi$5lja莬.3il3ZSU2/̜,LweyԒoڄ>u物88>M;ß)]SVn O۱Mhِ%$d ;uuCO![ +u ש M.EbOHQ gEÜjTl$zʿ iNٕAgj̙V}S{QV +,EUW4@ EÑX +Q"# o5,sjXh6-<҇zmȿ$ z;۟ض0;_Dpr+ 68>iNNhNlQN+Tܲ7:wyz{s(4XK6ƾ8tſح>}kbPp4R'a'@1$+Nf$Rdce<ۡbK/m 7U5pQ+ :\[&4G6)J̎`d6lM'ni=۴8Av!0GL+p 3,ZF_T06M'4~8YG*HkOxc/]wWkxЪdˆ6ιUcc52PAn<H!Ur"#}iKM4ĂĠj54嵶#SH).eD=MMU^y 39[l<".OS]4Iv^{K^&.S9:1ӆGg ǿi_b'[0'w#=!p0Qӧ>2y+,]>B-A<״jP[],=׽Pe-G}lHC̝@dQUX|^:ԟ:R鑬T7.s1? yjpFdɌ(13{UNiJ_PT˔{u3RgjrW +ɾ1FfĀ9%VQHhD>x>@x31&SD"CX36ԉ$1r<2qLuHyz$H@DF;,y<"rP66MŌ[6ḆFqp9݉$iʡ G+r 4s +r<`t \yh< + e6SE ^ +&ˮ U+5ڦ%JdQgH;ꍩ pys +ϷxHk09B$C4~#a1H7, cJ֢)vT>4A֌1#̸kO'{KlodŻ+1އ.c6llF{.^#`'6o׮wPv N:Y,型7ntS5OW<(S>9L18HgK@G6N +?DI󍇸]*@ot8%A|Ivg%P\hyێNƁ2}I7=n7Gp [FD S92@p|kkLOL5WH᰺~6ej ~d |6*n1px?.}3L0I̓}YIH#9 n^|h<20F2U6ػޯp pz36{+-]h8nHQm $DÃfZï (LJcUwHK2l YE0xu&G0b-Ro('ؿR,,'P< J-tWȄ?tgxMUjgmǸz'h4I{Iå_Ufhwx fNB>!3ķTkS(͋7p̤`"T3Arn:ⓥAh.Q# }mNU0X#g5$*/N=f;#` 6 Rt-Y̝YG@fحa 21UoQLvY DGˮp,LYQWRb}B [u=bhK4H@Ĝ +*k"I1l/R[;W:"NswGSFLO,/Z#BZdxsZMxpm\-tbH9R] #-WOEx5{2w3=nj>|ҐOl?iH݃^ ɖYnFfz ~?Zԁ>/.K/1 &y?Qu_g<CE[<[Xj P7e&UZCڹFK T{W5h^j##WuSθ֍-xMG\xF Ѥ&yk/]V֝Ժ_);zb]Ob8J@hΥR|giCBZXj#c]]vYVxeK; +Ch_sca= &^/l>p,-\)Cu!E м;nf-Iyw d-z c͊݉xB݈bFoi%UK`- E/]ϑ_UO%{9\#:HykؚF]l̔BuF ˧(3$ +=!4:h6iL'&]Sf3lC=(;Ej^W| bLLVKR|)>t$*Rj+/L|9_ Û +v ?\[a[UCSDm'6{h4ǭťf$m?‹kI a`9KRեoo52.V"Lms{R~^ L~65#W UC<0<' ÝJce%9!nَ@ͣnmbKrӧAfCPh?"TsA)jl2Q]FcRM-@ մiD ON$l:sޒT,%9UΧH @0FDģ샐;$4>W<(@ +Ki #ހ2< my|P+C8[$Sx 0lp yk|8kj w:<:PMSP 1R&dĭqe|w +B{Ptts ]KE1>)%nC1:v}H EAXG@x)]^5g+Vf#(j켫j"rxuOPU"_^9цBÕ2y~>- 7WvơF蹑3׮skVA-|1A㮆m2Me/ F9aw T]t)jd8ƪWr8q0pă=`Y'5Z[`/ڂAA_zJ~:z6!<Hszi<M8*3܆"dzݏq )ŧK1Ȟ*\h8yFw^C`ҕ{ WNrg> =hεfƻ@ReChZj#BDHx/\hG<$] =} +D5&֠#Hԏy_lR6<"+]LdPp$9%p:2o.!"wv9 EK+:#77 m/1Fe GG*_lldǾ0QWy剟[j'a3͟v;?KU*r +rsˮ=kiO_ij36nx|Gc|8}`T 6@}Y S̈k$ys,G80#șH|>, +v`v@5&DdՏywdʂѾc?H?-ݿ^oȣ{U_z[]fF|SFD&TC^AC !@= dm8Y)?EĢc0|IMjPp`Vܵb I%b ,ImR 0ļNpVusf]j:ŏZ&O샾.w#ݽCÛMQ0fD k4XعekT(x5C+mpRfV@l KLӍ["1(z*(9:'lu2]pԢ--rG +|e"_ܵ\c. +ewVx$^t,ق%F}y$\65};࿓~Ƣ?ʯ^BZ R+jT>|قJlVE>A*}9m(sBcfB2~Hh¾][ +%aV}!'yYOҜt6EG<0X{[ @-i|Ooj3u`9}_)UG0e\ ý&aAZ2Z +LEzߔmwz+@CB4@~}ouy{X ߛ );(BnؕkIAwQ<. ϔ!ȸg<1 Y\hf\-ТxNM_zP-j,#U5 "#F׵MFGge:A,2} !m.5g'[6;,i3'Is)cyPshqikGW?Jͯ4V aO[* %̙wc3y1ڇuz-®4-=D>y Q_F)؎.#P*,w9'3zUZ@72HeL<_6%!k/JήdrGlh;<S! .H{Җ- ׉> +endobj +xref +0 3332 +0000000005 65535 f +0000111794 00000 n +0000000000 00000 f +0000000016 00000 n +0000922721 00000 n +0000000013 00000 f +0000112440 00000 n +0000922890 00000 n +0000923085 00000 n +0000923226 00000 n +0000923383 00000 n +0000923580 00000 n +0000923735 00000 n +0000000094 00000 f +0000112694 00000 n +0000896607 00000 n +0000896763 00000 n +0000896905 00000 n +0000897056 00000 n +0000897208 00000 n +0000897352 00000 n +0000897518 00000 n +0000897685 00000 n +0000897829 00000 n +0000897990 00000 n +0000898152 00000 n +0000898296 00000 n +0000898454 00000 n +0000898613 00000 n +0000898760 00000 n +0000898921 00000 n +0000899083 00000 n +0000899230 00000 n +0000899385 00000 n +0000899540 00000 n +0000899687 00000 n +0000899846 00000 n +0000900005 00000 n +0000900152 00000 n +0000900309 00000 n +0000900466 00000 n +0000900610 00000 n +0000900765 00000 n +0000900922 00000 n +0000901069 00000 n +0000901211 00000 n +0000901353 00000 n +0000901500 00000 n +0000901659 00000 n +0000901818 00000 n +0000901965 00000 n +0000902116 00000 n +0000902267 00000 n +0000902414 00000 n +0000902562 00000 n +0000902710 00000 n +0000902857 00000 n +0000903008 00000 n +0000903159 00000 n +0000903303 00000 n +0000903459 00000 n +0000903616 00000 n +0000903763 00000 n +0000903911 00000 n +0000904059 00000 n +0000904206 00000 n +0000904351 00000 n +0000904496 00000 n +0000904643 00000 n +0000904787 00000 n +0000904931 00000 n +0000905078 00000 n +0000905226 00000 n +0000905374 00000 n +0000905518 00000 n +0000905677 00000 n +0000905837 00000 n +0000905984 00000 n +0000906138 00000 n +0000906292 00000 n +0000906439 00000 n +0000906583 00000 n +0000906727 00000 n +0000906871 00000 n +0000907029 00000 n +0000907189 00000 n +0000907336 00000 n +0000907492 00000 n +0000907648 00000 n +0000907795 00000 n +0000907961 00000 n +0000908127 00000 n +0000908274 00000 n +0000908433 00000 n +0000000186 00000 f +0000113466 00000 n +0000867530 00000 n +0000867677 00000 n +0000867835 00000 n +0000867993 00000 n +0000868140 00000 n +0000868298 00000 n +0000868456 00000 n +0000868601 00000 n +0000868767 00000 n +0000868934 00000 n +0000869082 00000 n +0000869249 00000 n +0000869416 00000 n +0000869564 00000 n +0000869727 00000 n +0000869890 00000 n +0000870035 00000 n +0000870185 00000 n +0000870336 00000 n +0000870484 00000 n +0000870652 00000 n +0000870820 00000 n +0000870968 00000 n +0000871124 00000 n +0000871280 00000 n +0000871423 00000 n +0000871567 00000 n +0000871712 00000 n +0000871857 00000 n +0000872016 00000 n +0000872176 00000 n +0000872324 00000 n +0000872468 00000 n +0000872613 00000 n +0000872761 00000 n +0000872909 00000 n +0000873057 00000 n +0000873205 00000 n +0000873353 00000 n +0000873501 00000 n +0000873649 00000 n +0000873794 00000 n +0000873939 00000 n +0000874087 00000 n +0000874236 00000 n +0000874385 00000 n +0000874533 00000 n +0000874681 00000 n +0000874829 00000 n +0000874977 00000 n +0000875124 00000 n +0000875271 00000 n +0000875419 00000 n +0000875569 00000 n +0000875719 00000 n +0000875867 00000 n +0000876011 00000 n +0000876155 00000 n +0000876304 00000 n +0000876451 00000 n +0000876599 00000 n +0000876744 00000 n +0000876911 00000 n +0000877079 00000 n +0000877227 00000 n +0000877372 00000 n +0000877517 00000 n +0000877665 00000 n +0000877815 00000 n +0000877965 00000 n +0000878113 00000 n +0000878267 00000 n +0000878421 00000 n +0000878569 00000 n +0000878719 00000 n +0000878869 00000 n +0000879017 00000 n +0000879164 00000 n +0000879311 00000 n +0000879456 00000 n +0000879614 00000 n +0000879773 00000 n +0000879921 00000 n +0000880068 00000 n +0000880215 00000 n +0000880363 00000 n +0000880518 00000 n +0000880673 00000 n +0000880821 00000 n +0000880968 00000 n +0000000275 00000 f +0000114401 00000 n +0000839242 00000 n +0000839390 00000 n +0000839549 00000 n +0000839708 00000 n +0000839853 00000 n +0000840020 00000 n +0000840188 00000 n +0000840336 00000 n +0000840486 00000 n +0000840636 00000 n +0000840784 00000 n +0000840944 00000 n +0000841104 00000 n +0000841249 00000 n +0000841416 00000 n +0000841584 00000 n +0000841732 00000 n +0000841882 00000 n +0000842032 00000 n +0000842177 00000 n +0000842336 00000 n +0000842496 00000 n +0000842644 00000 n +0000842795 00000 n +0000842946 00000 n +0000843094 00000 n +0000843246 00000 n +0000843398 00000 n +0000843546 00000 n +0000843692 00000 n +0000843838 00000 n +0000843986 00000 n +0000844132 00000 n +0000844278 00000 n +0000844423 00000 n +0000844586 00000 n +0000844750 00000 n +0000844898 00000 n +0000845052 00000 n +0000845206 00000 n +0000845351 00000 n +0000845512 00000 n +0000845674 00000 n +0000845822 00000 n +0000845976 00000 n +0000846130 00000 n +0000846278 00000 n +0000846427 00000 n +0000846576 00000 n +0000846724 00000 n +0000846870 00000 n +0000847016 00000 n +0000847164 00000 n +0000847316 00000 n +0000847469 00000 n +0000847612 00000 n +0000847770 00000 n +0000847930 00000 n +0000848075 00000 n +0000848238 00000 n +0000848402 00000 n +0000848547 00000 n +0000848714 00000 n +0000848882 00000 n +0000849027 00000 n +0000849194 00000 n +0000849362 00000 n +0000849510 00000 n +0000849678 00000 n +0000849846 00000 n +0000849994 00000 n +0000850157 00000 n +0000850320 00000 n +0000850468 00000 n +0000850633 00000 n +0000850798 00000 n +0000850946 00000 n +0000851104 00000 n +0000851262 00000 n +0000851407 00000 n +0000851574 00000 n +0000851742 00000 n +0000851890 00000 n +0000852058 00000 n +0000852226 00000 n +0000852374 00000 n +0000852542 00000 n +0000000337 00000 f +0000115317 00000 n +0000819080 00000 n +0000819225 00000 n +0000819392 00000 n +0000819560 00000 n +0000819708 00000 n +0000819876 00000 n +0000820044 00000 n +0000820192 00000 n +0000820361 00000 n +0000820530 00000 n +0000820675 00000 n +0000820842 00000 n +0000821010 00000 n +0000821158 00000 n +0000821326 00000 n +0000821494 00000 n +0000821642 00000 n +0000821812 00000 n +0000821982 00000 n +0000822127 00000 n +0000822294 00000 n +0000822462 00000 n +0000822610 00000 n +0000822778 00000 n +0000822946 00000 n +0000823094 00000 n +0000823263 00000 n +0000823432 00000 n +0000823580 00000 n +0000823751 00000 n +0000823922 00000 n +0000824065 00000 n +0000824228 00000 n +0000824392 00000 n +0000824537 00000 n +0000824689 00000 n +0000824842 00000 n +0000824987 00000 n +0000825136 00000 n +0000825287 00000 n +0000825430 00000 n +0000825580 00000 n +0000825731 00000 n +0000825876 00000 n +0000826036 00000 n +0000826197 00000 n +0000826342 00000 n +0000826504 00000 n +0000826667 00000 n +0000826811 00000 n +0000826968 00000 n +0000827126 00000 n +0000827269 00000 n +0000827421 00000 n +0000827563 00000 n +0000827706 00000 n +0000827849 00000 n +0000827992 00000 n +0000828135 00000 n +0000828277 00000 n +0000000357 00000 f +0000116017 00000 n +0000811312 00000 n +0000811454 00000 n +0000811597 00000 n +0000811742 00000 n +0000811909 00000 n +0000812051 00000 n +0000812194 00000 n +0000812337 00000 n +0000812480 00000 n +0000812623 00000 n +0000812765 00000 n +0000812907 00000 n +0000813052 00000 n +0000813214 00000 n +0000813356 00000 n +0000813498 00000 n +0000813641 00000 n +0000813784 00000 n +0000000375 00000 f +0000116381 00000 n +0000802743 00000 n +0000802888 00000 n +0000803047 00000 n +0000803250 00000 n +0000803393 00000 n +0000803536 00000 n +0000803677 00000 n +0000803878 00000 n +0000804020 00000 n +0000804167 00000 n +0000804329 00000 n +0000804483 00000 n +0000804637 00000 n +0000804782 00000 n +0000804938 00000 n +0000805099 00000 n +0000000384 00000 f +0000116729 00000 n +0000797641 00000 n +0000797788 00000 n +0000797943 00000 n +0000798095 00000 n +0000798242 00000 n +0000798401 00000 n +0000798548 00000 n +0000000396 00000 f +0000117005 00000 n +0000792262 00000 n +0000792407 00000 n +0000792564 00000 n +0000792711 00000 n +0000792852 00000 n +0000793055 00000 n +0000793198 00000 n +0000793337 00000 n +0000793475 00000 n +0000793622 00000 n +0000000407 00000 f +0000117305 00000 n +0000786544 00000 n +0000786691 00000 n +0000786842 00000 n +0000786985 00000 n +0000787130 00000 n +0000787275 00000 n +0000787420 00000 n +0000787566 00000 n +0000787708 00000 n +0000000427 00000 f +0000117597 00000 n +0000777989 00000 n +0000778192 00000 n +0000778334 00000 n +0000778476 00000 n +0000778625 00000 n +0000778773 00000 n +0000778915 00000 n +0000779061 00000 n +0000779208 00000 n +0000779359 00000 n +0000779502 00000 n +0000779647 00000 n +0000779804 00000 n +0000779951 00000 n +0000780099 00000 n +0000780240 00000 n +0000780381 00000 n +0000780533 00000 n +0000000452 00000 f +0000117961 00000 n +0000768153 00000 n +0000768300 00000 n +0000768445 00000 n +0000768592 00000 n +0000768736 00000 n +0000768883 00000 n +0000769029 00000 n +0000769172 00000 n +0000769316 00000 n +0000769465 00000 n +0000769614 00000 n +0000769757 00000 n +0000769901 00000 n +0000770108 00000 n +0000770251 00000 n +0000770403 00000 n +0000770556 00000 n +0000770694 00000 n +0000770832 00000 n +0000770972 00000 n +0000771112 00000 n +0000771254 00000 n +0000771396 00000 n +0000000469 00000 f +0000118365 00000 n +0000760677 00000 n +0000760821 00000 n +0000760966 00000 n +0000761109 00000 n +0000761276 00000 n +0000761421 00000 n +0000761581 00000 n +0000761728 00000 n +0000761882 00000 n +0000762022 00000 n +0000762169 00000 n +0000762313 00000 n +0000762456 00000 n +0000762660 00000 n +0000762802 00000 n +0000000490 00000 f +0000118705 00000 n +0000751931 00000 n +0000752076 00000 n +0000752236 00000 n +0000752397 00000 n +0000752544 00000 n +0000752700 00000 n +0000752848 00000 n +0000752996 00000 n +0000753150 00000 n +0000753297 00000 n +0000753463 00000 n +0000753617 00000 n +0000753771 00000 n +0000753918 00000 n +0000754065 00000 n +0000754270 00000 n +0000754411 00000 n +0000754558 00000 n +0000754717 00000 n +0000000512 00000 f +0000119077 00000 n +0000742882 00000 n +0000743032 00000 n +0000743177 00000 n +0000743324 00000 n +0000743482 00000 n +0000743632 00000 n +0000743779 00000 n +0000743936 00000 n +0000744090 00000 n +0000744243 00000 n +0000744401 00000 n +0000744559 00000 n +0000744704 00000 n +0000744870 00000 n +0000745025 00000 n +0000745187 00000 n +0000745334 00000 n +0000745500 00000 n +0000745641 00000 n +0000745783 00000 n +0000000528 00000 f +0000119457 00000 n +0000735608 00000 n +0000735751 00000 n +0000735894 00000 n +0000736061 00000 n +0000736220 00000 n +0000736363 00000 n +0000736530 00000 n +0000736677 00000 n +0000736839 00000 n +0000736978 00000 n +0000737118 00000 n +0000737280 00000 n +0000737436 00000 n +0000737579 00000 n +0000000550 00000 f +0000119789 00000 n +0000726678 00000 n +0000726823 00000 n +0000726973 00000 n +0000727113 00000 n +0000727252 00000 n +0000727400 00000 n +0000727546 00000 n +0000727696 00000 n +0000727847 00000 n +0000727994 00000 n +0000728161 00000 n +0000728304 00000 n +0000728471 00000 n +0000728618 00000 n +0000728773 00000 n +0000728934 00000 n +0000729077 00000 n +0000729221 00000 n +0000729372 00000 n +0000729519 00000 n +0000000569 00000 f +0000120169 00000 n +0000718893 00000 n +0000719036 00000 n +0000719199 00000 n +0000719344 00000 n +0000719503 00000 n +0000719650 00000 n +0000719794 00000 n +0000719941 00000 n +0000720088 00000 n +0000720239 00000 n +0000720382 00000 n +0000720549 00000 n +0000720696 00000 n +0000720843 00000 n +0000720986 00000 n +0000721153 00000 n +0000721300 00000 n +0000000584 00000 f +0000120525 00000 n +0000712738 00000 n +0000712890 00000 n +0000713043 00000 n +0000713186 00000 n +0000713353 00000 n +0000713500 00000 n +0000713648 00000 n +0000713790 00000 n +0000713938 00000 n +0000714086 00000 n +0000714230 00000 n +0000714398 00000 n +0000714545 00000 n +0000000600 00000 f +0000120849 00000 n +0000706114 00000 n +0000706258 00000 n +0000706426 00000 n +0000706573 00000 n +0000706719 00000 n +0000706863 00000 n +0000707030 00000 n +0000707177 00000 n +0000707326 00000 n +0000707479 00000 n +0000707632 00000 n +0000707778 00000 n +0000707922 00000 n +0000708128 00000 n +0000000615 00000 f +0000121181 00000 n +0000699659 00000 n +0000699803 00000 n +0000699971 00000 n +0000700118 00000 n +0000700261 00000 n +0000700403 00000 n +0000700546 00000 n +0000700688 00000 n +0000700831 00000 n +0000700974 00000 n +0000701118 00000 n +0000701286 00000 n +0000701435 00000 n +0000000628 00000 f +0000121505 00000 n +0000693905 00000 n +0000694049 00000 n +0000694217 00000 n +0000694362 00000 n +0000694529 00000 n +0000694676 00000 n +0000694820 00000 n +0000694970 00000 n +0000695122 00000 n +0000695269 00000 n +0000695417 00000 n +0000000641 00000 f +0000121813 00000 n +0000687843 00000 n +0000687987 00000 n +0000688155 00000 n +0000688311 00000 n +0000688466 00000 n +0000688631 00000 n +0000688775 00000 n +0000688943 00000 n +0000689092 00000 n +0000689241 00000 n +0000689385 00000 n +0000000650 00000 f +0000122121 00000 n +0000683275 00000 n +0000683429 00000 n +0000683578 00000 n +0000683735 00000 n +0000683884 00000 n +0000684041 00000 n +0000684185 00000 n +0000000658 00000 f +0000122397 00000 n +0000679287 00000 n +0000679431 00000 n +0000679599 00000 n +0000679749 00000 n +0000679903 00000 n +0000680054 00000 n +0000000669 00000 f +0000122665 00000 n +0000674200 00000 n +0000674346 00000 n +0000674491 00000 n +0000674638 00000 n +0000674786 00000 n +0000674931 00000 n +0000675075 00000 n +0000675243 00000 n +0000675390 00000 n +0000000676 00000 f +0000122957 00000 n +0000670203 00000 n +0000670351 00000 n +0000670495 00000 n +0000670663 00000 n +0000670810 00000 n +0000000686 00000 f +0000123217 00000 n +0000665333 00000 n +0000665484 00000 n +0000665637 00000 n +0000665783 00000 n +0000665932 00000 n +0000666080 00000 n +0000666225 00000 n +0000666369 00000 n +0000000698 00000 f +0000123501 00000 n +0000659921 00000 n +0000660068 00000 n +0000660214 00000 n +0000660366 00000 n +0000660519 00000 n +0000660663 00000 n +0000660831 00000 n +0000660976 00000 n +0000661134 00000 n +0000661281 00000 n +0000000709 00000 f +0000123801 00000 n +0000654971 00000 n +0000655177 00000 n +0000655320 00000 n +0000655468 00000 n +0000655613 00000 n +0000655758 00000 n +0000655901 00000 n +0000656068 00000 n +0000656215 00000 n +0000000725 00000 f +0000124093 00000 n +0000648282 00000 n +0000648485 00000 n +0000648628 00000 n +0000648776 00000 n +0000648924 00000 n +0000649068 00000 n +0000649214 00000 n +0000649357 00000 n +0000649524 00000 n +0000649669 00000 n +0000649813 00000 n +0000649956 00000 n +0000650099 00000 n +0000650251 00000 n +0000000739 00000 f +0000124425 00000 n +0000641839 00000 n +0000641988 00000 n +0000642136 00000 n +0000642279 00000 n +0000642425 00000 n +0000642569 00000 n +0000642737 00000 n +0000642884 00000 n +0000643042 00000 n +0000643183 00000 n +0000643332 00000 n +0000643480 00000 n +0000000751 00000 f +0000124741 00000 n +0000636503 00000 n +0000636647 00000 n +0000636815 00000 n +0000636960 00000 n +0000637127 00000 n +0000637274 00000 n +0000637423 00000 n +0000637567 00000 n +0000637711 00000 n +0000637864 00000 n +0000000768 00000 f +0000125041 00000 n +0000629816 00000 n +0000629960 00000 n +0000630128 00000 n +0000630275 00000 n +0000630434 00000 n +0000630637 00000 n +0000630780 00000 n +0000630927 00000 n +0000631071 00000 n +0000631216 00000 n +0000631360 00000 n +0000631528 00000 n +0000631673 00000 n +0000631840 00000 n +0000631987 00000 n +0000000779 00000 f +0000125381 00000 n +0000624778 00000 n +0000624928 00000 n +0000625083 00000 n +0000625235 00000 n +0000625386 00000 n +0000625532 00000 n +0000625675 00000 n +0000625815 00000 n +0000625957 00000 n +0000000791 00000 f +0000125673 00000 n +0000618886 00000 n +0000619038 00000 n +0000619190 00000 n +0000619333 00000 n +0000619482 00000 n +0000619630 00000 n +0000619780 00000 n +0000619924 00000 n +0000620092 00000 n +0000620242 00000 n +0000000798 00000 f +0000125973 00000 n +0000614965 00000 n +0000615118 00000 n +0000615271 00000 n +0000615418 00000 n +0000615568 00000 n +0000000803 00000 f +0000126233 00000 n +0000611291 00000 n +0000611435 00000 n +0000611604 00000 n +0000000813 00000 f +0000126477 00000 n +0000607445 00000 n +0000607589 00000 n +0000607757 00000 n +0000607902 00000 n +0000608061 00000 n +0000608206 00000 n +0000608354 00000 n +0000608498 00000 n +0000000825 00000 f +0000126761 00000 n +0000469027 00000 n +0000469171 00000 n +0000469339 00000 n +0000469483 00000 n +0000469652 00000 n +0000469799 00000 n +0000469950 00000 n +0000470093 00000 n +0000470237 00000 n +0000470389 00000 n +0000000839 00000 f +0000127061 00000 n +0000462255 00000 n +0000462399 00000 n +0000462567 00000 n +0000462714 00000 n +0000462859 00000 n +0000463003 00000 n +0000463147 00000 n +0000463299 00000 n +0000463451 00000 n +0000463595 00000 n +0000463763 00000 n +0000463910 00000 n +0000000854 00000 f +0000127377 00000 n +0000455764 00000 n +0000455908 00000 n +0000456052 00000 n +0000456205 00000 n +0000456358 00000 n +0000456501 00000 n +0000456668 00000 n +0000456811 00000 n +0000456972 00000 n +0000457119 00000 n +0000457272 00000 n +0000457416 00000 n +0000457560 00000 n +0000000860 00000 f +0000127701 00000 n +0000449929 00000 n +0000450093 00000 n +0000450237 00000 n +0000450405 00000 n +0000000870 00000 f +0000127953 00000 n +0000445541 00000 n +0000445685 00000 n +0000445853 00000 n +0000445998 00000 n +0000446159 00000 n +0000446306 00000 n +0000446459 00000 n +0000446611 00000 n +0000000879 00000 f +0000128237 00000 n +0000441142 00000 n +0000441284 00000 n +0000441440 00000 n +0000441584 00000 n +0000441728 00000 n +0000441896 00000 n +0000442043 00000 n +0000000889 00000 f +0000128513 00000 n +0000436200 00000 n +0000436344 00000 n +0000436512 00000 n +0000436659 00000 n +0000436804 00000 n +0000436948 00000 n +0000437116 00000 n +0000437263 00000 n +0000000898 00000 f +0000128797 00000 n +0000431868 00000 n +0000432021 00000 n +0000432173 00000 n +0000432323 00000 n +0000432475 00000 n +0000432618 00000 n +0000432762 00000 n +0000000911 00000 f +0000129073 00000 n +0000415436 00000 n +0000415579 00000 n +0000415738 00000 n +0000415883 00000 n +0000416046 00000 n +0000416212 00000 n +0000416378 00000 n +0000416581 00000 n +0000416723 00000 n +0000416881 00000 n +0000417022 00000 n +0000000925 00000 f +0000129381 00000 n +0000409201 00000 n +0000409346 00000 n +0000409513 00000 n +0000409658 00000 n +0000409825 00000 n +0000409971 00000 n +0000410116 00000 n +0000410259 00000 n +0000410464 00000 n +0000410606 00000 n +0000410811 00000 n +0000410966 00000 n +0000000935 00000 f +0000129697 00000 n +0000403812 00000 n +0000403959 00000 n +0000404126 00000 n +0000404273 00000 n +0000404435 00000 n +0000404582 00000 n +0000404746 00000 n +0000404893 00000 n +0000000951 00000 f +0000129981 00000 n +0000396983 00000 n +0000397128 00000 n +0000397295 00000 n +0000397450 00000 n +0000397597 00000 n +0000397764 00000 n +0000397911 00000 n +0000398077 00000 n +0000398220 00000 n +0000398387 00000 n +0000398532 00000 n +0000398699 00000 n +0000398855 00000 n +0000399002 00000 n +0000000959 00000 f +0000130313 00000 n +0000392381 00000 n +0000392531 00000 n +0000392693 00000 n +0000392853 00000 n +0000393014 00000 n +0000393161 00000 n +0000001020 00000 f +0000130581 00000 n +0000372660 00000 n +0000372803 00000 n +0000372955 00000 n +0000373103 00000 n +0000373244 00000 n +0000373385 00000 n +0000373529 00000 n +0000373674 00000 n +0000373820 00000 n +0000373967 00000 n +0000374109 00000 n +0000374262 00000 n +0000374402 00000 n +0000374543 00000 n +0000374681 00000 n +0000374829 00000 n +0000374973 00000 n +0000375114 00000 n +0000375264 00000 n +0000375414 00000 n +0000375563 00000 n +0000375712 00000 n +0000375861 00000 n +0000376008 00000 n +0000376150 00000 n +0000376292 00000 n +0000376436 00000 n +0000376581 00000 n +0000376735 00000 n +0000376890 00000 n +0000377034 00000 n +0000377183 00000 n +0000377325 00000 n +0000377467 00000 n +0000377610 00000 n +0000377759 00000 n +0000377900 00000 n +0000378045 00000 n +0000378194 00000 n +0000378336 00000 n +0000378484 00000 n +0000378628 00000 n +0000378774 00000 n +0000378920 00000 n +0000379066 00000 n +0000379214 00000 n +0000379357 00000 n +0000379512 00000 n +0000379653 00000 n +0000379795 00000 n +0000379937 00000 n +0000380083 00000 n +0000380234 00000 n +0000380384 00000 n +0000380527 00000 n +0000380670 00000 n +0000380815 00000 n +0000380970 00000 n +0000381115 00000 n +0000001054 00000 f +0000131293 00000 n +0000359016 00000 n +0000359160 00000 n +0000359304 00000 n +0000359448 00000 n +0000359590 00000 n +0000359739 00000 n +0000359889 00000 n +0000360033 00000 n +0000360173 00000 n +0000360314 00000 n +0000360461 00000 n +0000360603 00000 n +0000360746 00000 n +0000360890 00000 n +0000361030 00000 n +0000361171 00000 n +0000361316 00000 n +0000361460 00000 n +0000361600 00000 n +0000361741 00000 n +0000361886 00000 n +0000362039 00000 n +0000362188 00000 n +0000362334 00000 n +0000362475 00000 n +0000362621 00000 n +0000362769 00000 n +0000362911 00000 n +0000363053 00000 n +0000363203 00000 n +0000363353 00000 n +0000363501 00000 n +0000001099 00000 f +0000131802 00000 n +0000342271 00000 n +0000342417 00000 n +0000342564 00000 n +0000342711 00000 n +0000342859 00000 n +0000343002 00000 n +0000343144 00000 n +0000343286 00000 n +0000343428 00000 n +0000343579 00000 n +0000343728 00000 n +0000343871 00000 n +0000344027 00000 n +0000344172 00000 n +0000344319 00000 n +0000344463 00000 n +0000344616 00000 n +0000344770 00000 n +0000344918 00000 n +0000345060 00000 n +0000345208 00000 n +0000345357 00000 n +0000345507 00000 n +0000345649 00000 n +0000345795 00000 n +0000345942 00000 n +0000346089 00000 n +0000346237 00000 n +0000346379 00000 n +0000346521 00000 n +0000346664 00000 n +0000346808 00000 n +0000346958 00000 n +0000347099 00000 n +0000347241 00000 n +0000347386 00000 n +0000347531 00000 n +0000347680 00000 n +0000347829 00000 n +0000347971 00000 n +0000348117 00000 n +0000348259 00000 n +0000348401 00000 n +0000001140 00000 f +0000132410 00000 n +0000326086 00000 n +0000326237 00000 n +0000326380 00000 n +0000326530 00000 n +0000326679 00000 n +0000326822 00000 n +0000326975 00000 n +0000327124 00000 n +0000327268 00000 n +0000327408 00000 n +0000327548 00000 n +0000327691 00000 n +0000327831 00000 n +0000327980 00000 n +0000328124 00000 n +0000328270 00000 n +0000328416 00000 n +0000328562 00000 n +0000328710 00000 n +0000328853 00000 n +0000329008 00000 n +0000329149 00000 n +0000329291 00000 n +0000329433 00000 n +0000329579 00000 n +0000329730 00000 n +0000329873 00000 n +0000330019 00000 n +0000330165 00000 n +0000330321 00000 n +0000330466 00000 n +0000330611 00000 n +0000330766 00000 n +0000330909 00000 n +0000331054 00000 n +0000331200 00000 n +0000331345 00000 n +0000331500 00000 n +0000331651 00000 n +0000001172 00000 f +0000132982 00000 n +0000312293 00000 n +0000312443 00000 n +0000312593 00000 n +0000312739 00000 n +0000312883 00000 n +0000313026 00000 n +0000313166 00000 n +0000313316 00000 n +0000313460 00000 n +0000313601 00000 n +0000313746 00000 n +0000313891 00000 n +0000314036 00000 n +0000314184 00000 n +0000314326 00000 n +0000314468 00000 n +0000314619 00000 n +0000314774 00000 n +0000314919 00000 n +0000315070 00000 n +0000315220 00000 n +0000315373 00000 n +0000315522 00000 n +0000315670 00000 n +0000315819 00000 n +0000315969 00000 n +0000316111 00000 n +0000316280 00000 n +0000316427 00000 n +0000316569 00000 n +0000001188 00000 f +0000133473 00000 n +0000302957 00000 n +0000303103 00000 n +0000303270 00000 n +0000303427 00000 n +0000303575 00000 n +0000303743 00000 n +0000303902 00000 n +0000304062 00000 n +0000304210 00000 n +0000304380 00000 n +0000304524 00000 n +0000304677 00000 n +0000304826 00000 n +0000304967 00000 n +0000001214 00000 f +0000133820 00000 n +0000292699 00000 n +0000292845 00000 n +0000292985 00000 n +0000293132 00000 n +0000293280 00000 n +0000293423 00000 n +0000293562 00000 n +0000293714 00000 n +0000293869 00000 n +0000294010 00000 n +0000294151 00000 n +0000294292 00000 n +0000294442 00000 n +0000294588 00000 n +0000294730 00000 n +0000294882 00000 n +0000295033 00000 n +0000295183 00000 n +0000295333 00000 n +0000295483 00000 n +0000295631 00000 n +0000295780 00000 n +0000295923 00000 n +0000296069 00000 n +0000001234 00000 f +0000134257 00000 n +0000283286 00000 n +0000283442 00000 n +0000283588 00000 n +0000283740 00000 n +0000283890 00000 n +0000284033 00000 n +0000284185 00000 n +0000284333 00000 n +0000284475 00000 n +0000284644 00000 n +0000284789 00000 n +0000284931 00000 n +0000285100 00000 n +0000285267 00000 n +0000285413 00000 n +0000285580 00000 n +0000285736 00000 n +0000285884 00000 n +0000001245 00000 f +0000134640 00000 n +0000277097 00000 n +0000277259 00000 n +0000277420 00000 n +0000277590 00000 n +0000277738 00000 n +0000277907 00000 n +0000278069 00000 n +0000278229 00000 n +0000278377 00000 n +0000001266 00000 f +0000134942 00000 n +0000268978 00000 n +0000269122 00000 n +0000269266 00000 n +0000269416 00000 n +0000269566 00000 n +0000269710 00000 n +0000269879 00000 n +0000270048 00000 n +0000270198 00000 n +0000270348 00000 n +0000270492 00000 n +0000270662 00000 n +0000270831 00000 n +0000271000 00000 n +0000271170 00000 n +0000271340 00000 n +0000271482 00000 n +0000271623 00000 n +0000271764 00000 n +0000001288 00000 f +0000135334 00000 n +0000259719 00000 n +0000259861 00000 n +0000260003 00000 n +0000260145 00000 n +0000260287 00000 n +0000260431 00000 n +0000260600 00000 n +0000260769 00000 n +0000260914 00000 n +0000261060 00000 n +0000261206 00000 n +0000261352 00000 n +0000261498 00000 n +0000261644 00000 n +0000261788 00000 n +0000261957 00000 n +0000262126 00000 n +0000262279 00000 n +0000262432 00000 n +0000262585 00000 n +0000001312 00000 f +0000135735 00000 n +0000249478 00000 n +0000249631 00000 n +0000249784 00000 n +0000249937 00000 n +0000250090 00000 n +0000250243 00000 n +0000250396 00000 n +0000250549 00000 n +0000250702 00000 n +0000250854 00000 n +0000251006 00000 n +0000251159 00000 n +0000251312 00000 n +0000251465 00000 n +0000251610 00000 n +0000251779 00000 n +0000251948 00000 n +0000252098 00000 n +0000252248 00000 n +0000252398 00000 n +0000252543 00000 n +0000252713 00000 n +0000001333 00000 f +0000136154 00000 n +0000240219 00000 n +0000240365 00000 n +0000240511 00000 n +0000240656 00000 n +0000240827 00000 n +0000240998 00000 n +0000241139 00000 n +0000241279 00000 n +0000241419 00000 n +0000241560 00000 n +0000241701 00000 n +0000241842 00000 n +0000241987 00000 n +0000242159 00000 n +0000242331 00000 n +0000242479 00000 n +0000242627 00000 n +0000242772 00000 n +0000242945 00000 n +0000001356 00000 f +0000136546 00000 n +0000230806 00000 n +0000230948 00000 n +0000231093 00000 n +0000231267 00000 n +0000231441 00000 n +0000231583 00000 n +0000231725 00000 n +0000231866 00000 n +0000232010 00000 n +0000232184 00000 n +0000232359 00000 n +0000232509 00000 n +0000232659 00000 n +0000232809 00000 n +0000232959 00000 n +0000233109 00000 n +0000233259 00000 n +0000233409 00000 n +0000233559 00000 n +0000233704 00000 n +0000233880 00000 n +0000001375 00000 f +0000136956 00000 n +0000222368 00000 n +0000222517 00000 n +0000222666 00000 n +0000222815 00000 n +0000222960 00000 n +0000223137 00000 n +0000223314 00000 n +0000223456 00000 n +0000223599 00000 n +0000223744 00000 n +0000223923 00000 n +0000224102 00000 n +0000224251 00000 n +0000224400 00000 n +0000224549 00000 n +0000224694 00000 n +0000224862 00000 n +0000001399 00000 f +0000137330 00000 n +0000212967 00000 n +0000213117 00000 n +0000213267 00000 n +0000213417 00000 n +0000213562 00000 n +0000213731 00000 n +0000213900 00000 n +0000214045 00000 n +0000214190 00000 n +0000214336 00000 n +0000214482 00000 n +0000214628 00000 n +0000214774 00000 n +0000214920 00000 n +0000215066 00000 n +0000215212 00000 n +0000215358 00000 n +0000215504 00000 n +0000215650 00000 n +0000215796 00000 n +0000215942 00000 n +0000216088 00000 n +0000001413 00000 f +0000137749 00000 n +0000205610 00000 n +0000205756 00000 n +0000205902 00000 n +0000206048 00000 n +0000206194 00000 n +0000206339 00000 n +0000206508 00000 n +0000206677 00000 n +0000206821 00000 n +0000206985 00000 n +0000207131 00000 n +0000207284 00000 n +0000001431 00000 f +0000138078 00000 n +0000189872 00000 n +0000190018 00000 n +0000190169 00000 n +0000190373 00000 n +0000190517 00000 n +0000190661 00000 n +0000190812 00000 n +0000190958 00000 n +0000191119 00000 n +0000191310 00000 n +0000191515 00000 n +0000191713 00000 n +0000191912 00000 n +0000192111 00000 n +0000192309 00000 n +0000192508 00000 n +0000001453 00000 f +0000138443 00000 n +0000179261 00000 n +0000179460 00000 n +0000179659 00000 n +0000179858 00000 n +0000180057 00000 n +0000180256 00000 n +0000180454 00000 n +0000180653 00000 n +0000180852 00000 n +0000181051 00000 n +0000181250 00000 n +0000181449 00000 n +0000181648 00000 n +0000181846 00000 n +0000182045 00000 n +0000182244 00000 n +0000182443 00000 n +0000182642 00000 n +0000182841 00000 n +0000183037 00000 n +0000001475 00000 f +0000138844 00000 n +0000167911 00000 n +0000168110 00000 n +0000168309 00000 n +0000168455 00000 n +0000168618 00000 n +0000168824 00000 n +0000169030 00000 n +0000169229 00000 n +0000169427 00000 n +0000169625 00000 n +0000169822 00000 n +0000170021 00000 n +0000170220 00000 n +0000170418 00000 n +0000170617 00000 n +0000170816 00000 n +0000171014 00000 n +0000171212 00000 n +0000171411 00000 n +0000171609 00000 n +0000001491 00000 f +0000139245 00000 n +0000158752 00000 n +0000158951 00000 n +0000159150 00000 n +0000159349 00000 n +0000159548 00000 n +0000159747 00000 n +0000159945 00000 n +0000160143 00000 n +0000160339 00000 n +0000160535 00000 n +0000160722 00000 n +0000160909 00000 n +0000161067 00000 n +0000161253 00000 n +0000001492 00000 f +0000001493 00000 f +0000001494 00000 f +0000001495 00000 f +0000001496 00000 f +0000001497 00000 f +0000001498 00000 f +0000001499 00000 f +0000001500 00000 f +0000001501 00000 f +0000001502 00000 f +0000001503 00000 f +0000001504 00000 f +0000001505 00000 f +0000001506 00000 f +0000001507 00000 f +0000001508 00000 f +0000001509 00000 f +0000001510 00000 f +0000001511 00000 f +0000001512 00000 f +0000001513 00000 f +0000001514 00000 f +0000001515 00000 f +0000001516 00000 f +0000001517 00000 f +0000001518 00000 f +0000001519 00000 f +0000001520 00000 f +0000001521 00000 f +0000001522 00000 f +0000001523 00000 f +0000001524 00000 f +0000001525 00000 f +0000001526 00000 f +0000001527 00000 f +0000001528 00000 f +0000001529 00000 f +0000001530 00000 f +0000001531 00000 f +0000001532 00000 f +0000001533 00000 f +0000001534 00000 f +0000001535 00000 f +0000001536 00000 f +0000001537 00000 f +0000001538 00000 f +0000001539 00000 f +0000001540 00000 f +0000001541 00000 f +0000001542 00000 f +0000001543 00000 f +0000001544 00000 f +0000001545 00000 f +0000001546 00000 f +0000001547 00000 f +0000001548 00000 f +0000001549 00000 f +0000001550 00000 f +0000001551 00000 f +0000001552 00000 f +0000001553 00000 f +0000001554 00000 f +0000001555 00000 f +0000001556 00000 f +0000001557 00000 f +0000001558 00000 f +0000001559 00000 f +0000001560 00000 f +0000001561 00000 f +0000001562 00000 f +0000001563 00000 f +0000001564 00000 f +0000001565 00000 f +0000001566 00000 f +0000001567 00000 f +0000001568 00000 f +0000001569 00000 f +0000001570 00000 f +0000001571 00000 f +0000001572 00000 f +0000001573 00000 f +0000001574 00000 f +0000001575 00000 f +0000001576 00000 f +0000001577 00000 f +0000001578 00000 f +0000001579 00000 f +0000001580 00000 f +0000001581 00000 f +0000001582 00000 f +0000001583 00000 f +0000001584 00000 f +0000001585 00000 f +0000001586 00000 f +0000001587 00000 f +0000001588 00000 f +0000001589 00000 f +0000001590 00000 f +0000001591 00000 f +0000001592 00000 f +0000001593 00000 f +0000001594 00000 f +0000001595 00000 f +0000001596 00000 f +0000001597 00000 f +0000001598 00000 f +0000001599 00000 f +0000001600 00000 f +0000001601 00000 f +0000001602 00000 f +0000001603 00000 f +0000001604 00000 f +0000001605 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000152173 00000 n +0000151676 00000 n +0000142369 00000 n +0000000000 00000 f +0000143801 00000 n +0000143190 00000 n +0000142513 00000 n +0000000000 00000 f +0000199346 00000 n +0000198885 00000 n +0000198228 00000 n +0000000000 00000 f +0000422372 00000 n +0000421930 00000 n +0000421151 00000 n +0000000000 00000 f +0000475437 00000 n +0000475046 00000 n +0000474321 00000 n +0000000000 00000 f +0000454781 00000 n +0000454569 00000 n +0000454012 00000 n +0000922819 00000 n +0000101940 00000 n +0000946370 00000 n +0000946245 00000 n +0000000000 00000 f +0000000000 00000 f +0000896515 00000 n +0000000000 00000 f +0000867454 00000 n +0000000000 00000 f +0000839166 00000 n +0000000000 00000 f +0000818988 00000 n +0000000000 00000 f +0000811220 00000 n +0000000000 00000 f +0000802651 00000 n +0000000000 00000 f +0000797549 00000 n +0000000000 00000 f +0000792170 00000 n +0000000000 00000 f +0000786452 00000 n +0000000000 00000 f +0000777881 00000 n +0000000000 00000 f +0000768061 00000 n +0000000000 00000 f +0000760537 00000 n +0000000000 00000 f +0000751839 00000 n +0000000000 00000 f +0000742790 00000 n +0000000000 00000 f +0000735484 00000 n +0000000000 00000 f +0000726554 00000 n +0000000000 00000 f +0000718769 00000 n +0000000000 00000 f +0000712614 00000 n +0000000000 00000 f +0000705990 00000 n +0000000000 00000 f +0000699535 00000 n +0000000000 00000 f +0000693781 00000 n +0000000000 00000 f +0000687719 00000 n +0000000000 00000 f +0000683151 00000 n +0000000000 00000 f +0000679147 00000 n +0000000000 00000 f +0000674076 00000 n +0000000000 00000 f +0000670079 00000 n +0000000000 00000 f +0000665209 00000 n +0000000000 00000 f +0000659797 00000 n +0000000000 00000 f +0000654847 00000 n +0000000000 00000 f +0000648158 00000 n +0000000000 00000 f +0000641715 00000 n +0000000000 00000 f +0000636363 00000 n +0000000000 00000 f +0000629692 00000 n +0000000000 00000 f +0000624686 00000 n +0000000000 00000 f +0000618762 00000 n +0000000000 00000 f +0000614873 00000 n +0000000000 00000 f +0000611183 00000 n +0000000000 00000 f +0000474181 00000 n +0000000000 00000 f +0000468887 00000 n +0000000000 00000 f +0000462115 00000 n +0000000000 00000 f +0000453872 00000 n +0000000000 00000 f +0000449805 00000 n +0000000000 00000 f +0000445417 00000 n +0000000000 00000 f +0000441018 00000 n +0000000000 00000 f +0000436076 00000 n +0000000000 00000 f +0000421027 00000 n +0000000000 00000 f +0000415344 00000 n +0000000000 00000 f +0000409109 00000 n +0000000000 00000 f +0000403720 00000 n +0000000000 00000 f +0000396875 00000 n +0000000000 00000 f +0000392289 00000 n +0000000000 00000 f +0000372568 00000 n +0000000000 00000 f +0000358924 00000 n +0000000000 00000 f +0000342179 00000 n +0000000000 00000 f +0000325994 00000 n +0000000000 00000 f +0000312185 00000 n +0000000000 00000 f +0000302865 00000 n +0000000000 00000 f +0000292607 00000 n +0000000000 00000 f +0000283178 00000 n +0000000000 00000 f +0000277005 00000 n +0000000000 00000 f +0000268870 00000 n +0000000000 00000 f +0000259611 00000 n +0000000000 00000 f +0000249370 00000 n +0000000000 00000 f +0000240111 00000 n +0000000000 00000 f +0000230698 00000 n +0000000000 00000 f +0000222260 00000 n +0000000000 00000 f +0000212859 00000 n +0000000000 00000 f +0000198120 00000 n +0000000000 00000 f +0000189780 00000 n +0000000000 00000 f +0000179169 00000 n +0000000000 00000 f +0000167819 00000 n +0000000000 00000 f +0000142277 00000 n +0000158724 00000 n +0000946283 00000 n +0000946498 00000 n +0000111689 00000 n +0000111765 00000 n +0000927690 00000 n +0000927820 00000 n +0000924834 00000 n +0000920499 00000 n +0000894682 00000 n +0000865824 00000 n +0000837467 00000 n +0000816645 00000 n +0000807658 00000 n +0000799761 00000 n +0000795291 00000 n +0000789222 00000 n +0000783403 00000 n +0000775010 00000 n +0000765213 00000 n +0000757742 00000 n +0000748944 00000 n +0000739860 00000 n +0000732683 00000 n +0000724010 00000 n +0000716655 00000 n +0000710383 00000 n +0000703544 00000 n +0000697230 00000 n +0000691212 00000 n +0000685407 00000 n +0000681109 00000 n +0000676902 00000 n +0000671714 00000 n +0000667744 00000 n +0000662936 00000 n +0000657728 00000 n +0000652517 00000 n +0000645434 00000 n +0000639527 00000 n +0000634399 00000 n +0000627462 00000 n +0000621916 00000 n +0000616490 00000 n +0000612206 00000 n +0000609849 00000 n +0000472051 00000 n +0000465866 00000 n +0000459665 00000 n +0000451168 00000 n +0000447972 00000 n +0000443247 00000 n +0000438623 00000 n +0000433987 00000 n +0000418886 00000 n +0000412934 00000 n +0000406258 00000 n +0000401281 00000 n +0000394235 00000 n +0000390165 00000 n +0000368475 00000 n +0000355030 00000 n +0000337675 00000 n +0000321267 00000 n +0000307233 00000 n +0000299839 00000 n +0000288770 00000 n +0000279906 00000 n +0000274775 00000 n +0000265758 00000 n +0000256205 00000 n +0000245987 00000 n +0000237226 00000 n +0000227598 00000 n +0000219556 00000 n +0000209238 00000 n +0000195120 00000 n +0000186248 00000 n +0000174820 00000 n +0000163556 00000 n +0000139592 00000 n +0000151198 00000 n +0000142652 00000 n +0000144018 00000 n +0000152395 00000 n +0000163406 00000 n +0000163255 00000 n +0000163104 00000 n +0000162953 00000 n +0000162802 00000 n +0000162651 00000 n +0000162500 00000 n +0000162349 00000 n +0000162198 00000 n +0000162047 00000 n +0000161896 00000 n +0000161745 00000 n +0000161594 00000 n +0000161443 00000 n +0000174669 00000 n +0000174518 00000 n +0000174367 00000 n +0000174216 00000 n +0000174065 00000 n +0000173914 00000 n +0000173764 00000 n +0000173614 00000 n +0000173464 00000 n +0000173313 00000 n +0000173162 00000 n +0000173012 00000 n +0000172862 00000 n +0000172711 00000 n +0000172560 00000 n +0000172409 00000 n +0000172258 00000 n +0000172108 00000 n +0000171958 00000 n +0000171808 00000 n +0000186098 00000 n +0000185947 00000 n +0000185796 00000 n +0000185646 00000 n +0000185495 00000 n +0000185344 00000 n +0000185194 00000 n +0000185043 00000 n +0000184892 00000 n +0000184741 00000 n +0000184590 00000 n +0000184440 00000 n +0000184289 00000 n +0000184138 00000 n +0000183988 00000 n +0000183838 00000 n +0000183688 00000 n +0000183538 00000 n +0000183387 00000 n +0000183236 00000 n +0000194969 00000 n +0000194818 00000 n +0000194667 00000 n +0000194516 00000 n +0000194365 00000 n +0000194214 00000 n +0000194063 00000 n +0000193912 00000 n +0000193761 00000 n +0000193610 00000 n +0000193460 00000 n +0000193309 00000 n +0000193159 00000 n +0000193009 00000 n +0000192858 00000 n +0000192707 00000 n +0000198374 00000 n +0000199571 00000 n +0000209087 00000 n +0000208936 00000 n +0000208785 00000 n +0000208634 00000 n +0000208483 00000 n +0000208332 00000 n +0000208183 00000 n +0000208032 00000 n +0000207881 00000 n +0000207730 00000 n +0000207579 00000 n +0000207428 00000 n +0000219405 00000 n +0000219254 00000 n +0000219103 00000 n +0000218952 00000 n +0000218801 00000 n +0000218650 00000 n +0000218499 00000 n +0000218348 00000 n +0000218197 00000 n +0000218046 00000 n +0000217895 00000 n +0000217744 00000 n +0000217593 00000 n +0000217442 00000 n +0000217291 00000 n +0000217140 00000 n +0000216989 00000 n +0000216838 00000 n +0000216687 00000 n +0000216536 00000 n +0000216385 00000 n +0000216234 00000 n +0000227447 00000 n +0000227296 00000 n +0000227145 00000 n +0000226994 00000 n +0000226843 00000 n +0000226692 00000 n +0000226541 00000 n +0000226390 00000 n +0000226239 00000 n +0000226088 00000 n +0000225937 00000 n +0000225786 00000 n +0000225635 00000 n +0000225484 00000 n +0000225333 00000 n +0000225182 00000 n +0000225031 00000 n +0000237075 00000 n +0000236924 00000 n +0000236773 00000 n +0000236622 00000 n +0000236471 00000 n +0000236320 00000 n +0000236169 00000 n +0000236018 00000 n +0000235867 00000 n +0000235716 00000 n +0000235565 00000 n +0000235414 00000 n +0000235263 00000 n +0000235112 00000 n +0000234961 00000 n +0000234810 00000 n +0000234659 00000 n +0000234508 00000 n +0000234357 00000 n +0000234206 00000 n +0000234055 00000 n +0000245836 00000 n +0000245685 00000 n +0000245534 00000 n +0000245383 00000 n +0000245232 00000 n +0000245081 00000 n +0000244930 00000 n +0000244779 00000 n +0000244628 00000 n +0000244477 00000 n +0000244326 00000 n +0000244175 00000 n +0000244024 00000 n +0000243873 00000 n +0000243722 00000 n +0000243571 00000 n +0000243420 00000 n +0000243269 00000 n +0000243118 00000 n +0000256054 00000 n +0000255903 00000 n +0000255752 00000 n +0000255601 00000 n +0000255450 00000 n +0000255299 00000 n +0000255148 00000 n +0000254997 00000 n +0000254846 00000 n +0000254695 00000 n +0000254544 00000 n +0000254393 00000 n +0000254242 00000 n +0000254091 00000 n +0000253940 00000 n +0000253789 00000 n +0000253638 00000 n +0000253487 00000 n +0000253336 00000 n +0000253185 00000 n +0000253034 00000 n +0000252883 00000 n +0000265607 00000 n +0000265456 00000 n +0000265305 00000 n +0000265154 00000 n +0000265003 00000 n +0000264852 00000 n +0000264701 00000 n +0000264550 00000 n +0000264399 00000 n +0000264248 00000 n +0000264097 00000 n +0000263946 00000 n +0000263795 00000 n +0000263644 00000 n +0000263493 00000 n +0000263342 00000 n +0000263191 00000 n +0000263040 00000 n +0000262889 00000 n +0000262738 00000 n +0000274624 00000 n +0000274473 00000 n +0000274322 00000 n +0000274171 00000 n +0000274020 00000 n +0000273869 00000 n +0000273718 00000 n +0000273567 00000 n +0000273416 00000 n +0000273265 00000 n +0000273114 00000 n +0000272963 00000 n +0000272812 00000 n +0000272661 00000 n +0000272510 00000 n +0000272359 00000 n +0000272208 00000 n +0000272057 00000 n +0000271906 00000 n +0000279755 00000 n +0000279604 00000 n +0000279453 00000 n +0000279302 00000 n +0000279151 00000 n +0000279000 00000 n +0000278849 00000 n +0000278698 00000 n +0000278548 00000 n +0000288619 00000 n +0000288468 00000 n +0000288317 00000 n +0000288166 00000 n +0000288015 00000 n +0000287864 00000 n +0000287713 00000 n +0000287562 00000 n +0000287411 00000 n +0000287260 00000 n +0000287109 00000 n +0000286958 00000 n +0000286807 00000 n +0000286656 00000 n +0000286505 00000 n +0000286354 00000 n +0000286203 00000 n +0000286052 00000 n +0000299688 00000 n +0000299537 00000 n +0000299386 00000 n +0000299235 00000 n +0000299084 00000 n +0000298933 00000 n +0000298782 00000 n +0000298631 00000 n +0000298480 00000 n +0000298329 00000 n +0000298178 00000 n +0000298027 00000 n +0000297876 00000 n +0000297725 00000 n +0000297574 00000 n +0000297423 00000 n +0000297272 00000 n +0000297121 00000 n +0000296970 00000 n +0000296819 00000 n +0000296668 00000 n +0000296517 00000 n +0000296366 00000 n +0000296215 00000 n +0000307082 00000 n +0000306931 00000 n +0000306780 00000 n +0000306629 00000 n +0000306478 00000 n +0000306327 00000 n +0000306176 00000 n +0000306025 00000 n +0000305874 00000 n +0000305723 00000 n +0000305572 00000 n +0000305421 00000 n +0000305270 00000 n +0000305119 00000 n +0000321116 00000 n +0000320965 00000 n +0000320814 00000 n +0000320663 00000 n +0000320512 00000 n +0000320361 00000 n +0000320210 00000 n +0000320059 00000 n +0000319908 00000 n +0000319757 00000 n +0000319607 00000 n +0000319456 00000 n +0000319305 00000 n +0000319154 00000 n +0000319003 00000 n +0000318852 00000 n +0000318701 00000 n +0000318550 00000 n +0000318399 00000 n +0000318248 00000 n +0000318097 00000 n +0000317946 00000 n +0000317795 00000 n +0000317644 00000 n +0000317493 00000 n +0000317342 00000 n +0000317191 00000 n +0000317040 00000 n +0000316889 00000 n +0000316738 00000 n +0000337524 00000 n +0000337373 00000 n +0000337222 00000 n +0000337071 00000 n +0000336920 00000 n +0000336769 00000 n +0000336618 00000 n +0000336467 00000 n +0000336316 00000 n +0000336165 00000 n +0000336014 00000 n +0000335863 00000 n +0000335712 00000 n +0000335561 00000 n +0000335410 00000 n +0000335260 00000 n +0000335109 00000 n +0000334958 00000 n +0000334807 00000 n +0000334656 00000 n +0000334505 00000 n +0000334355 00000 n +0000334204 00000 n +0000334053 00000 n +0000333902 00000 n +0000333751 00000 n +0000333600 00000 n +0000333450 00000 n +0000333299 00000 n +0000333149 00000 n +0000332999 00000 n +0000332848 00000 n +0000332697 00000 n +0000332546 00000 n +0000332395 00000 n +0000332244 00000 n +0000332093 00000 n +0000331942 00000 n +0000331791 00000 n +0000354879 00000 n +0000354728 00000 n +0000354578 00000 n +0000354427 00000 n +0000354276 00000 n +0000354125 00000 n +0000353975 00000 n +0000353824 00000 n +0000353673 00000 n +0000353522 00000 n +0000353371 00000 n +0000353220 00000 n +0000353070 00000 n +0000352920 00000 n +0000352769 00000 n +0000352618 00000 n +0000352468 00000 n +0000352317 00000 n +0000352166 00000 n +0000352015 00000 n +0000351864 00000 n +0000351713 00000 n +0000351562 00000 n +0000351411 00000 n +0000351260 00000 n +0000351110 00000 n +0000350959 00000 n +0000350808 00000 n +0000350657 00000 n +0000350506 00000 n +0000350355 00000 n +0000350204 00000 n +0000350053 00000 n +0000349902 00000 n +0000349751 00000 n +0000349601 00000 n +0000349450 00000 n +0000349299 00000 n +0000349148 00000 n +0000348997 00000 n +0000348846 00000 n +0000348695 00000 n +0000348544 00000 n +0000368324 00000 n +0000368173 00000 n +0000368022 00000 n +0000367871 00000 n +0000367720 00000 n +0000367569 00000 n +0000367418 00000 n +0000367267 00000 n +0000367116 00000 n +0000366965 00000 n +0000366814 00000 n +0000366663 00000 n +0000366512 00000 n +0000366361 00000 n +0000366210 00000 n +0000366059 00000 n +0000365908 00000 n +0000365757 00000 n +0000365606 00000 n +0000365455 00000 n +0000365304 00000 n +0000365153 00000 n +0000365002 00000 n +0000364851 00000 n +0000364700 00000 n +0000364549 00000 n +0000364398 00000 n +0000364247 00000 n +0000364096 00000 n +0000363945 00000 n +0000363794 00000 n +0000363643 00000 n +0000390014 00000 n +0000389863 00000 n +0000389712 00000 n +0000389561 00000 n +0000389411 00000 n +0000389260 00000 n +0000389109 00000 n +0000388958 00000 n +0000388807 00000 n +0000388656 00000 n +0000388505 00000 n +0000388354 00000 n +0000388203 00000 n +0000388052 00000 n +0000387901 00000 n +0000387750 00000 n +0000387599 00000 n +0000387448 00000 n +0000387298 00000 n +0000387147 00000 n +0000386996 00000 n +0000386845 00000 n +0000386694 00000 n +0000386543 00000 n +0000386393 00000 n +0000386242 00000 n +0000386091 00000 n +0000385940 00000 n +0000385790 00000 n +0000385639 00000 n +0000385488 00000 n +0000385337 00000 n +0000385186 00000 n +0000385035 00000 n +0000384884 00000 n +0000384733 00000 n +0000384582 00000 n +0000384431 00000 n +0000384280 00000 n +0000384129 00000 n +0000383978 00000 n +0000383827 00000 n +0000383677 00000 n +0000383526 00000 n +0000383375 00000 n +0000383224 00000 n +0000383073 00000 n +0000382922 00000 n +0000382772 00000 n +0000382621 00000 n +0000382470 00000 n +0000382319 00000 n +0000382168 00000 n +0000382017 00000 n +0000381867 00000 n +0000381716 00000 n +0000381565 00000 n +0000381415 00000 n +0000381265 00000 n +0000394084 00000 n +0000393933 00000 n +0000393782 00000 n +0000393631 00000 n +0000393480 00000 n +0000393329 00000 n +0000401130 00000 n +0000400979 00000 n +0000400828 00000 n +0000400677 00000 n +0000400527 00000 n +0000400376 00000 n +0000400225 00000 n +0000400074 00000 n +0000399923 00000 n +0000399772 00000 n +0000399621 00000 n +0000399470 00000 n +0000399319 00000 n +0000399169 00000 n +0000406107 00000 n +0000405956 00000 n +0000405805 00000 n +0000405654 00000 n +0000405503 00000 n +0000405352 00000 n +0000405201 00000 n +0000405050 00000 n +0000412783 00000 n +0000412632 00000 n +0000412481 00000 n +0000412330 00000 n +0000412179 00000 n +0000412028 00000 n +0000411877 00000 n +0000411726 00000 n +0000411575 00000 n +0000411424 00000 n +0000411273 00000 n +0000411122 00000 n +0000418735 00000 n +0000418584 00000 n +0000418433 00000 n +0000418282 00000 n +0000418131 00000 n +0000417980 00000 n +0000417829 00000 n +0000417678 00000 n +0000417527 00000 n +0000417376 00000 n +0000417225 00000 n +0000421291 00000 n +0000422588 00000 n +0000433836 00000 n +0000433685 00000 n +0000433534 00000 n +0000433383 00000 n +0000433232 00000 n +0000433081 00000 n +0000432930 00000 n +0000438472 00000 n +0000438321 00000 n +0000438170 00000 n +0000438019 00000 n +0000437868 00000 n +0000437717 00000 n +0000437566 00000 n +0000437415 00000 n +0000443096 00000 n +0000442946 00000 n +0000442795 00000 n +0000442644 00000 n +0000442493 00000 n +0000442342 00000 n +0000442191 00000 n +0000447821 00000 n +0000447670 00000 n +0000447519 00000 n +0000447368 00000 n +0000447217 00000 n +0000447066 00000 n +0000446915 00000 n +0000446764 00000 n +0000451018 00000 n +0000450867 00000 n +0000450716 00000 n +0000450566 00000 n +0000454159 00000 n +0000455010 00000 n +0000459514 00000 n +0000459363 00000 n +0000459212 00000 n +0000459061 00000 n +0000458910 00000 n +0000458759 00000 n +0000458608 00000 n +0000458457 00000 n +0000458306 00000 n +0000458155 00000 n +0000458004 00000 n +0000457853 00000 n +0000457702 00000 n +0000465715 00000 n +0000465564 00000 n +0000465413 00000 n +0000465263 00000 n +0000465112 00000 n +0000464961 00000 n +0000464810 00000 n +0000464659 00000 n +0000464508 00000 n +0000464357 00000 n +0000464206 00000 n +0000464055 00000 n +0000471900 00000 n +0000471749 00000 n +0000471598 00000 n +0000471447 00000 n +0000471296 00000 n +0000471145 00000 n +0000470994 00000 n +0000470843 00000 n +0000470692 00000 n +0000470541 00000 n +0000474467 00000 n +0000475683 00000 n +0000609698 00000 n +0000609547 00000 n +0000609396 00000 n +0000609245 00000 n +0000609094 00000 n +0000608943 00000 n +0000608792 00000 n +0000608641 00000 n +0000612055 00000 n +0000611904 00000 n +0000611753 00000 n +0000616339 00000 n +0000616188 00000 n +0000616037 00000 n +0000615886 00000 n +0000615735 00000 n +0000621765 00000 n +0000621614 00000 n +0000621463 00000 n +0000621312 00000 n +0000621161 00000 n +0000621010 00000 n +0000620859 00000 n +0000620708 00000 n +0000620557 00000 n +0000620406 00000 n +0000627311 00000 n +0000627160 00000 n +0000627010 00000 n +0000626859 00000 n +0000626708 00000 n +0000626557 00000 n +0000626408 00000 n +0000626257 00000 n +0000626106 00000 n +0000634248 00000 n +0000634097 00000 n +0000633946 00000 n +0000633795 00000 n +0000633644 00000 n +0000633493 00000 n +0000633342 00000 n +0000633191 00000 n +0000633040 00000 n +0000632889 00000 n +0000632738 00000 n +0000632587 00000 n +0000632437 00000 n +0000632286 00000 n +0000632135 00000 n +0000639376 00000 n +0000639225 00000 n +0000639074 00000 n +0000638923 00000 n +0000638772 00000 n +0000638621 00000 n +0000638470 00000 n +0000638319 00000 n +0000638168 00000 n +0000638017 00000 n +0000645283 00000 n +0000645133 00000 n +0000644982 00000 n +0000644831 00000 n +0000644680 00000 n +0000644529 00000 n +0000644378 00000 n +0000644228 00000 n +0000644077 00000 n +0000643926 00000 n +0000643776 00000 n +0000643625 00000 n +0000652366 00000 n +0000652215 00000 n +0000652064 00000 n +0000651914 00000 n +0000651763 00000 n +0000651612 00000 n +0000651461 00000 n +0000651310 00000 n +0000651159 00000 n +0000651008 00000 n +0000650857 00000 n +0000650706 00000 n +0000650555 00000 n +0000650404 00000 n +0000657577 00000 n +0000657426 00000 n +0000657275 00000 n +0000657124 00000 n +0000656973 00000 n +0000656822 00000 n +0000656671 00000 n +0000656520 00000 n +0000656369 00000 n +0000662785 00000 n +0000662634 00000 n +0000662483 00000 n +0000662332 00000 n +0000662181 00000 n +0000662030 00000 n +0000661879 00000 n +0000661729 00000 n +0000661578 00000 n +0000661427 00000 n +0000667593 00000 n +0000667442 00000 n +0000667291 00000 n +0000667140 00000 n +0000666989 00000 n +0000666838 00000 n +0000666687 00000 n +0000666536 00000 n +0000671563 00000 n +0000671412 00000 n +0000671261 00000 n +0000671110 00000 n +0000670959 00000 n +0000676751 00000 n +0000676600 00000 n +0000676449 00000 n +0000676298 00000 n +0000676147 00000 n +0000675996 00000 n +0000675845 00000 n +0000675694 00000 n +0000675543 00000 n +0000680958 00000 n +0000680807 00000 n +0000680656 00000 n +0000680506 00000 n +0000680355 00000 n +0000680204 00000 n +0000685257 00000 n +0000685106 00000 n +0000684956 00000 n +0000684805 00000 n +0000684655 00000 n +0000684504 00000 n +0000684353 00000 n +0000691061 00000 n +0000690911 00000 n +0000690761 00000 n +0000690610 00000 n +0000690459 00000 n +0000690308 00000 n +0000690157 00000 n +0000690006 00000 n +0000689855 00000 n +0000689704 00000 n +0000689553 00000 n +0000697079 00000 n +0000696928 00000 n +0000696777 00000 n +0000696626 00000 n +0000696475 00000 n +0000696324 00000 n +0000696173 00000 n +0000696022 00000 n +0000695872 00000 n +0000695721 00000 n +0000695571 00000 n +0000703393 00000 n +0000703242 00000 n +0000703091 00000 n +0000702941 00000 n +0000702790 00000 n +0000702639 00000 n +0000702488 00000 n +0000702337 00000 n +0000702186 00000 n +0000702035 00000 n +0000701884 00000 n +0000701733 00000 n +0000701582 00000 n +0000710232 00000 n +0000710082 00000 n +0000709931 00000 n +0000709780 00000 n +0000709629 00000 n +0000709478 00000 n +0000709327 00000 n +0000709176 00000 n +0000709025 00000 n +0000708874 00000 n +0000708723 00000 n +0000708572 00000 n +0000708421 00000 n +0000708270 00000 n +0000716504 00000 n +0000716353 00000 n +0000716202 00000 n +0000716051 00000 n +0000715900 00000 n +0000715749 00000 n +0000715598 00000 n +0000715447 00000 n +0000715296 00000 n +0000715145 00000 n +0000714994 00000 n +0000714843 00000 n +0000714692 00000 n +0000723859 00000 n +0000723708 00000 n +0000723557 00000 n +0000723407 00000 n +0000723256 00000 n +0000723105 00000 n +0000722954 00000 n +0000722803 00000 n +0000722652 00000 n +0000722501 00000 n +0000722350 00000 n +0000722199 00000 n +0000722048 00000 n +0000721897 00000 n +0000721746 00000 n +0000721595 00000 n +0000721444 00000 n +0000732532 00000 n +0000732381 00000 n +0000732230 00000 n +0000732079 00000 n +0000731928 00000 n +0000731777 00000 n +0000731626 00000 n +0000731475 00000 n +0000731324 00000 n +0000731173 00000 n +0000731022 00000 n +0000730872 00000 n +0000730721 00000 n +0000730570 00000 n +0000730419 00000 n +0000730268 00000 n +0000730117 00000 n +0000729966 00000 n +0000729815 00000 n +0000729664 00000 n +0000739709 00000 n +0000739558 00000 n +0000739407 00000 n +0000739256 00000 n +0000739105 00000 n +0000738954 00000 n +0000738803 00000 n +0000738652 00000 n +0000738501 00000 n +0000738350 00000 n +0000738199 00000 n +0000738048 00000 n +0000737897 00000 n +0000737746 00000 n +0000748793 00000 n +0000748642 00000 n +0000748491 00000 n +0000748341 00000 n +0000748190 00000 n +0000748039 00000 n +0000747888 00000 n +0000747737 00000 n +0000747586 00000 n +0000747435 00000 n +0000747284 00000 n +0000747133 00000 n +0000746983 00000 n +0000746832 00000 n +0000746681 00000 n +0000746530 00000 n +0000746379 00000 n +0000746228 00000 n +0000746077 00000 n +0000745926 00000 n +0000757591 00000 n +0000757440 00000 n +0000757289 00000 n +0000757138 00000 n +0000756987 00000 n +0000756836 00000 n +0000756685 00000 n +0000756534 00000 n +0000756383 00000 n +0000756232 00000 n +0000756081 00000 n +0000755930 00000 n +0000755779 00000 n +0000755628 00000 n +0000755477 00000 n +0000755326 00000 n +0000755175 00000 n +0000755024 00000 n +0000754873 00000 n +0000765062 00000 n +0000764911 00000 n +0000764760 00000 n +0000764609 00000 n +0000764458 00000 n +0000764307 00000 n +0000764156 00000 n +0000764005 00000 n +0000763854 00000 n +0000763703 00000 n +0000763552 00000 n +0000763401 00000 n +0000763250 00000 n +0000763099 00000 n +0000762948 00000 n +0000774859 00000 n +0000774708 00000 n +0000774557 00000 n +0000774406 00000 n +0000774255 00000 n +0000774104 00000 n +0000773953 00000 n +0000773802 00000 n +0000773651 00000 n +0000773500 00000 n +0000773349 00000 n +0000773198 00000 n +0000773047 00000 n +0000772896 00000 n +0000772745 00000 n +0000772594 00000 n +0000772443 00000 n +0000772292 00000 n +0000772141 00000 n +0000771990 00000 n +0000771839 00000 n +0000771688 00000 n +0000771537 00000 n +0000783252 00000 n +0000783101 00000 n +0000782950 00000 n +0000782799 00000 n +0000782649 00000 n +0000782498 00000 n +0000782347 00000 n +0000782196 00000 n +0000782045 00000 n +0000781894 00000 n +0000781743 00000 n +0000781592 00000 n +0000781441 00000 n +0000781290 00000 n +0000781139 00000 n +0000780988 00000 n +0000780837 00000 n +0000780686 00000 n +0000789071 00000 n +0000788920 00000 n +0000788769 00000 n +0000788618 00000 n +0000788467 00000 n +0000788316 00000 n +0000788165 00000 n +0000788014 00000 n +0000787863 00000 n +0000795140 00000 n +0000794989 00000 n +0000794838 00000 n +0000794687 00000 n +0000794536 00000 n +0000794385 00000 n +0000794234 00000 n +0000794083 00000 n +0000793932 00000 n +0000793781 00000 n +0000799610 00000 n +0000799460 00000 n +0000799309 00000 n +0000799158 00000 n +0000799007 00000 n +0000798856 00000 n +0000798705 00000 n +0000807507 00000 n +0000807357 00000 n +0000807206 00000 n +0000807055 00000 n +0000806904 00000 n +0000806753 00000 n +0000806602 00000 n +0000806451 00000 n +0000806300 00000 n +0000806149 00000 n +0000805998 00000 n +0000805847 00000 n +0000805696 00000 n +0000805545 00000 n +0000805394 00000 n +0000805243 00000 n +0000816494 00000 n +0000816343 00000 n +0000816192 00000 n +0000816041 00000 n +0000815890 00000 n +0000815739 00000 n +0000815588 00000 n +0000815437 00000 n +0000815286 00000 n +0000815135 00000 n +0000814984 00000 n +0000814833 00000 n +0000814682 00000 n +0000814531 00000 n +0000814380 00000 n +0000814229 00000 n +0000814078 00000 n +0000813927 00000 n +0000837316 00000 n +0000837165 00000 n +0000837014 00000 n +0000836864 00000 n +0000836713 00000 n +0000836562 00000 n +0000836412 00000 n +0000836261 00000 n +0000836110 00000 n +0000835959 00000 n +0000835808 00000 n +0000835657 00000 n +0000835507 00000 n +0000835356 00000 n +0000835205 00000 n +0000835055 00000 n +0000834904 00000 n +0000834753 00000 n +0000834602 00000 n +0000834451 00000 n +0000834300 00000 n +0000834150 00000 n +0000833999 00000 n +0000833848 00000 n +0000833698 00000 n +0000833547 00000 n +0000833396 00000 n +0000833246 00000 n +0000833095 00000 n +0000832944 00000 n +0000832793 00000 n +0000832642 00000 n +0000832491 00000 n +0000832340 00000 n +0000832189 00000 n +0000832038 00000 n +0000831887 00000 n +0000831736 00000 n +0000831585 00000 n +0000831434 00000 n +0000831283 00000 n +0000831132 00000 n +0000830981 00000 n +0000830831 00000 n +0000830680 00000 n +0000830529 00000 n +0000830378 00000 n +0000830227 00000 n +0000830080 00000 n +0000829929 00000 n +0000829778 00000 n +0000829627 00000 n +0000829476 00000 n +0000829325 00000 n +0000829174 00000 n +0000829023 00000 n +0000828872 00000 n +0000828721 00000 n +0000828570 00000 n +0000828419 00000 n +0000865674 00000 n +0000865523 00000 n +0000865372 00000 n +0000865221 00000 n +0000865071 00000 n +0000864920 00000 n +0000864770 00000 n +0000864619 00000 n +0000864468 00000 n +0000864318 00000 n +0000864167 00000 n +0000864016 00000 n +0000863865 00000 n +0000863714 00000 n +0000863563 00000 n +0000863413 00000 n +0000863263 00000 n +0000863112 00000 n +0000862961 00000 n +0000862810 00000 n +0000862659 00000 n +0000862509 00000 n +0000862358 00000 n +0000862207 00000 n +0000862057 00000 n +0000861906 00000 n +0000861755 00000 n +0000861605 00000 n +0000861454 00000 n +0000861303 00000 n +0000861153 00000 n +0000861002 00000 n +0000860851 00000 n +0000860700 00000 n +0000860549 00000 n +0000860398 00000 n +0000860248 00000 n +0000860097 00000 n +0000859946 00000 n +0000859795 00000 n +0000859644 00000 n +0000859493 00000 n +0000859343 00000 n +0000859192 00000 n +0000859041 00000 n +0000858891 00000 n +0000858740 00000 n +0000858589 00000 n +0000858439 00000 n +0000858288 00000 n +0000858137 00000 n +0000857987 00000 n +0000857836 00000 n +0000857685 00000 n +0000857534 00000 n +0000857383 00000 n +0000857232 00000 n +0000857081 00000 n +0000856930 00000 n +0000856779 00000 n +0000856628 00000 n +0000856477 00000 n +0000856326 00000 n +0000856175 00000 n +0000856024 00000 n +0000855873 00000 n +0000855723 00000 n +0000855572 00000 n +0000855421 00000 n +0000855271 00000 n +0000855120 00000 n +0000854969 00000 n +0000854819 00000 n +0000854668 00000 n +0000854517 00000 n +0000854367 00000 n +0000854217 00000 n +0000854066 00000 n +0000853915 00000 n +0000853764 00000 n +0000853613 00000 n +0000853463 00000 n +0000853313 00000 n +0000853162 00000 n +0000853012 00000 n +0000852861 00000 n +0000852710 00000 n +0000894532 00000 n +0000894381 00000 n +0000894230 00000 n +0000894080 00000 n +0000893929 00000 n +0000893778 00000 n +0000893627 00000 n +0000893476 00000 n +0000893325 00000 n +0000893175 00000 n +0000893024 00000 n +0000892873 00000 n +0000892723 00000 n +0000892572 00000 n +0000892421 00000 n +0000892270 00000 n +0000892119 00000 n +0000891968 00000 n +0000891818 00000 n +0000891667 00000 n +0000891516 00000 n +0000891366 00000 n +0000891215 00000 n +0000891064 00000 n +0000890913 00000 n +0000890762 00000 n +0000890611 00000 n +0000890460 00000 n +0000890309 00000 n +0000890158 00000 n +0000890008 00000 n +0000889857 00000 n +0000889706 00000 n +0000889556 00000 n +0000889405 00000 n +0000889254 00000 n +0000889104 00000 n +0000888953 00000 n +0000888802 00000 n +0000888652 00000 n +0000888501 00000 n +0000888350 00000 n +0000888200 00000 n +0000888049 00000 n +0000887898 00000 n +0000887748 00000 n +0000887597 00000 n +0000887446 00000 n +0000887296 00000 n +0000887145 00000 n +0000886994 00000 n +0000886844 00000 n +0000886693 00000 n +0000886542 00000 n +0000886392 00000 n +0000886241 00000 n +0000886090 00000 n +0000885939 00000 n +0000885788 00000 n +0000885637 00000 n +0000885486 00000 n +0000885335 00000 n +0000885184 00000 n +0000885034 00000 n +0000884883 00000 n +0000884732 00000 n +0000884582 00000 n +0000884431 00000 n +0000884280 00000 n +0000884130 00000 n +0000883979 00000 n +0000883828 00000 n +0000883678 00000 n +0000883527 00000 n +0000883376 00000 n +0000883226 00000 n +0000883075 00000 n +0000882924 00000 n +0000882773 00000 n +0000882622 00000 n +0000882471 00000 n +0000882321 00000 n +0000882170 00000 n +0000882019 00000 n +0000881869 00000 n +0000881718 00000 n +0000881567 00000 n +0000881417 00000 n +0000881266 00000 n +0000881115 00000 n +0000920348 00000 n +0000920197 00000 n +0000920046 00000 n +0000919895 00000 n +0000919744 00000 n +0000919594 00000 n +0000919443 00000 n +0000919292 00000 n +0000919141 00000 n +0000918990 00000 n +0000918839 00000 n +0000918688 00000 n +0000918537 00000 n +0000918387 00000 n +0000918236 00000 n +0000918085 00000 n +0000917935 00000 n +0000917784 00000 n +0000917633 00000 n +0000917483 00000 n +0000917332 00000 n +0000917181 00000 n +0000917031 00000 n +0000916880 00000 n +0000916729 00000 n +0000916578 00000 n +0000916427 00000 n +0000916276 00000 n +0000916126 00000 n +0000915976 00000 n +0000915825 00000 n +0000915675 00000 n +0000915524 00000 n +0000915373 00000 n +0000915223 00000 n +0000915072 00000 n +0000914921 00000 n +0000914771 00000 n +0000914620 00000 n +0000914469 00000 n +0000914319 00000 n +0000914168 00000 n +0000914017 00000 n +0000913866 00000 n +0000913715 00000 n +0000913564 00000 n +0000913414 00000 n +0000913263 00000 n +0000913112 00000 n +0000912962 00000 n +0000912811 00000 n +0000912660 00000 n +0000912510 00000 n +0000912359 00000 n +0000912208 00000 n +0000912058 00000 n +0000911907 00000 n +0000911756 00000 n +0000911605 00000 n +0000911454 00000 n +0000911303 00000 n +0000911153 00000 n +0000911002 00000 n +0000910851 00000 n +0000910701 00000 n +0000910550 00000 n +0000910399 00000 n +0000910248 00000 n +0000910098 00000 n +0000909947 00000 n +0000909797 00000 n +0000909647 00000 n +0000909496 00000 n +0000909346 00000 n +0000909195 00000 n +0000909044 00000 n +0000908894 00000 n +0000908743 00000 n +0000908592 00000 n +0000924683 00000 n +0000924532 00000 n +0000924381 00000 n +0000924231 00000 n +0000924080 00000 n +0000923929 00000 n +0000925009 00000 n +0000928021 00000 n +0000928151 00000 n +0000931162 00000 n +0000928294 00000 n +0000928475 00000 n +0000928625 00000 n +0000928777 00000 n +0000928971 00000 n +0000929113 00000 n +0000929253 00000 n +0000929442 00000 n +0000929593 00000 n +0000929798 00000 n +0000945536 00000 n +0000942968 00000 n +0000943148 00000 n +0000943334 00000 n +0000929973 00000 n +0000930150 00000 n +0000930328 00000 n +0000941483 00000 n +0000941619 00000 n +0000938828 00000 n +0000936419 00000 n +0000936563 00000 n +0000936706 00000 n +0000930510 00000 n +0000930689 00000 n +0000930856 00000 n +0000934514 00000 n +0000931317 00000 n +0000931479 00000 n +0000931625 00000 n +0000931010 00000 n +0000931823 00000 n +0000931980 00000 n +0000932133 00000 n +0000932324 00000 n +0000932471 00000 n +0000932619 00000 n +0000936248 00000 n +0000935771 00000 n +0000932811 00000 n +0000932956 00000 n +0000933091 00000 n +0000933280 00000 n +0000933419 00000 n +0000933558 00000 n +0000935622 00000 n +0000935473 00000 n +0000933747 00000 n +0000933880 00000 n +0000934022 00000 n +0000935309 00000 n +0000935003 00000 n +0000934212 00000 n +0000934365 00000 n +0000934843 00000 n +0000934679 00000 n +0000935154 00000 n +0000935934 00000 n +0000936125 00000 n +0000941330 00000 n +0000941180 00000 n +0000936901 00000 n +0000937031 00000 n +0000937222 00000 n +0000937363 00000 n +0000937499 00000 n +0000941024 00000 n +0000940874 00000 n +0000937701 00000 n +0000937856 00000 n +0000940398 00000 n +0000940545 00000 n +0000938065 00000 n +0000938205 00000 n +0000938354 00000 n +0000938543 00000 n +0000938679 00000 n +0000940239 00000 n +0000940088 00000 n +0000939032 00000 n +0000939196 00000 n +0000939798 00000 n +0000939942 00000 n +0000939644 00000 n +0000939332 00000 n +0000939486 00000 n +0000940705 00000 n +0000942816 00000 n +0000941758 00000 n +0000941906 00000 n +0000942060 00000 n +0000942210 00000 n +0000942362 00000 n +0000942515 00000 n +0000942664 00000 n +0000946054 00000 n +0000943546 00000 n +0000943711 00000 n +0000943891 00000 n +0000944108 00000 n +0000944277 00000 n +0000944461 00000 n +0000944674 00000 n +0000944840 00000 n +0000945021 00000 n +0000945230 00000 n +0000945388 00000 n +0000945887 00000 n +0000945718 00000 n +0001017891 00000 n +trailer +<<8504DAADCEB9B2110A00000000000000>]>> +startxref +1018790 +%%EOF diff --git a/specifications/contacts/rfc9553.txt b/specifications/contacts/rfc9553.txt new file mode 100644 index 00000000..0b72c682 --- /dev/null +++ b/specifications/contacts/rfc9553.txt @@ -0,0 +1,4043 @@ + + + + +Internet Engineering Task Force (IETF) R. Stepanek +Request for Comments: 9553 Fastmail +Category: Standards Track M. Loffredo +ISSN: 2070-1721 IIT-CNR + May 2024 + + + JSContact: A JSON Representation of Contact Data + +Abstract + + This specification defines a data model and JavaScript Object + Notation (JSON) representation of contact card information that can + be used for data storage and exchange in address book or directory + applications. It aims to be an alternative to the vCard data format + and to be unambiguous, extendable, and simple to process. In + contrast to the JSON-based jCard format, it is not a direct mapping + from the vCard data model and expands semantics where appropriate. + Two additional specifications define new vCard elements and how to + convert between JSContact and vCard. + +Status of This Memo + + This is an Internet Standards Track document. + + This document is a product of the Internet Engineering Task Force + (IETF). It represents the consensus of the IETF community. It has + received public review and has been approved for publication by the + Internet Engineering Steering Group (IESG). Further information on + Internet Standards is available in Section 2 of RFC 7841. + + Information about the current status of this document, any errata, + and how to provide feedback on it may be obtained at + https://www.rfc-editor.org/info/rfc9553. + +Copyright Notice + + Copyright (c) 2024 IETF Trust and the persons identified as the + document authors. All rights reserved. + + This document is subject to BCP 78 and the IETF Trust's Legal + Provisions Relating to IETF Documents + (https://trustee.ietf.org/license-info) in effect on the date of + publication of this document. Please review these documents + carefully, as they describe your rights and restrictions with respect + to this document. Code Components extracted from this document must + include Revised BSD License text as described in Section 4.e of the + Trust Legal Provisions and are provided without warranty as described + in the Revised BSD License. + +Table of Contents + + 1. Introduction + 1.1. Motivation and Relation to vCard, jCard, and xCard + 1.2. Notational Conventions + 1.3. Data Type Notations + 1.3.1. Objects and Properties + 1.3.2. Type Signatures + 1.3.3. Property Attributes + 1.3.4. The @type Property + 1.4. Common Data Types + 1.4.1. Id + 1.4.2. Int and UnsignedInt + 1.4.3. PatchObject + 1.4.4. Resource + 1.4.5. UTCDateTime + 1.5. Common Properties + 1.5.1. contexts + 1.5.2. label + 1.5.3. pref + 1.5.4. phonetic + 1.6. Internationalization + 1.6.1. Free-Form Text + 1.6.2. URIs + 1.7. Validating JSContact + 1.7.1. Case-Sensitivity + 1.7.2. IANA-Registered Properties + 1.7.3. Reserved Properties + 1.7.4. Unknown Properties + 1.7.5. Enumerated Values + 1.8. Vendor-Specific Extensions + 1.8.1. Vendor-Specific Properties + 1.8.2. Vendor-Specific Values + 1.9. Versioning + 1.9.1. Version Format and Requirements + 1.9.2. Current Version + 2. Card + 2.1. Metadata Properties + 2.1.1. @type + 2.1.2. version + 2.1.3. created + 2.1.4. kind + 2.1.5. language + 2.1.6. members + 2.1.7. prodId + 2.1.8. relatedTo + 2.1.9. uid + 2.1.10. updated + 2.2. Name and Organization Properties + 2.2.1. name + 2.2.2. nicknames + 2.2.3. organizations + 2.2.4. speakToAs + 2.2.5. titles + 2.3. Contact Properties + 2.3.1. emails + 2.3.2. onlineServices + 2.3.3. phones + 2.3.4. preferredLanguages + 2.4. Calendaring and Scheduling Properties + 2.4.1. calendars + 2.4.2. schedulingAddresses + 2.5. Address and Location Properties + 2.5.1. addresses + 2.6. Resource Properties + 2.6.1. cryptoKeys + 2.6.2. directories + 2.6.3. links + 2.6.4. media + 2.7. Multilingual Properties + 2.7.1. localizations + 2.8. Additional Properties + 2.8.1. anniversaries + 2.8.2. keywords + 2.8.3. notes + 2.8.4. personalInfo + 3. IANA Considerations + 3.1. Media Type Registration + 3.2. Creation of the JSContact Registry Group + 3.3. Registry Policy and Change Procedures + 3.3.1. Preliminary Community Review + 3.3.2. Submit Request to IANA + 3.3.3. Designated Expert Review + 3.3.4. Change Procedures + 3.4. Creation of the JSContact Version Registry + 3.4.1. JSContact Version Registry Template + 3.4.2. Initial Contents of the JSContact Version Registry + 3.5. Creation of the JSContact Properties Registry + 3.5.1. JSContact Properties Registry Template + 3.5.2. Initial Contents of the JSContact Properties Registry + 3.6. Creation of the JSContact Types Registry + 3.6.1. JSContact Types Registry Template + 3.6.2. Initial Contents of the JSContact Types Registry + 3.7. Creation of the JSContact Enum Values Registry + 3.7.1. JSContact Enum Values Registry Property Template + 3.7.2. JSContact Enum Values Registry Value Template + 3.7.3. Initial Contents of the JSContact Enum Values Registry + 4. Security Considerations + 4.1. JSON Parsing + 4.2. URI Values + 5. References + 5.1. Normative References + 5.2. Informative References + Authors' Addresses + +1. Introduction + + This document defines a data model for contact card data normally + used in address book or directory applications and services. It aims + to be an alternative to the vCard data format [RFC6350]. + + The key design considerations for this data model are as follows: + + * The data model and set of attributes should be mostly compatible + with the model defined for the vCard data format [RFC6350] and + extensions [RFC6473] [RFC6474] [RFC6715] [RFC6869] [RFC8605]. The + specification should add new attributes or value types where + appropriate. Not all existing vCard definitions need an + equivalent in JSContact, especially if the vCard definition is + considered to be obsolete or otherwise inappropriate. Conversion + between the data formats need not fully preserve semantic meaning. + + * The attributes of the card data must be described as simple key- + value pairs to reduce the complexity of the representation of the + card data. + + * The data model should avoid all ambiguities and make it difficult + to make mistakes during implementation. + + * Extensions, such as new properties and components, MUST NOT lead + to a required update of this document. + + The representation of this data model is defined in the Internet JSON + (I-JSON) format [RFC7493], which is a strict subset of the JSON data + interchange format [RFC8259]. Using JSON is mostly a pragmatic + choice: its widespread use makes JSContact easier to adopt, and the + availability of production-ready JSON implementations eliminates a + whole category of parser-related interoperability issues. + +1.1. Motivation and Relation to vCard, jCard, and xCard + + The vCard data format [RFC6350] is an interchange format for contacts + data between address book service providers and vendors. However, + this format has gone through multiple specification iterations with + only a subset of its deprecated version 3 [RFC2426] being widely in + use. Consequently, products and services use an internal contact + data model that is richer than what they expose when serializing that + information to vCard. In addition, service providers often use a + proprietary JSON representation of contact data in their APIs. + + JSContact provides a standard JSON-based data model and + representation of contact data as an alternative to proprietary + formats. + + At the time of writing this document, several missing features in + vCard were brought to the attention of the authors such as social + media contacts, gender pronouns, and others. This highlights how + vCard is not perceived as an evolving format and, consequently, + hasn't been updated for about ten years. JSContact addresses these + unmet demands and defines new vCard properties and parameters to + allow interchanging them in both formats. + + Two additional documents define the relation of JSContact and vCard: + [RFC9554] defines new vCard properties and parameters, and [RFC9555] + defines how to convert JSContact data from and to vCard. + + The xCard [RFC6351] and jCard [RFC7095] specifications define + alternative representations for vCard data in XML and JSON formats, + respectively. Both explicitly aim to not change the underlying data + model. Accordingly, they are regarded as equal to vCard in the + context of this document. + +1.2. Notational Conventions + + The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", + "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and + "OPTIONAL" in this document are to be interpreted as described in + BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all + capitals, as shown here. + + The ABNF definitions in this document use the notations of [RFC5234]. + ABNF rules not defined in this document are defined in either + [RFC5234] (such as the ABNF for CRLF, WSP, DQUOTE, VCHAR, ALPHA, and + DIGIT) or [RFC6350]. + +1.3. Data Type Notations + + This section introduces the notations and terminology used to define + data types in JSContact. + + The underlying format for JSContact is JSON, so its data types also + build on JSON values. The terms "object" and "array" as well as the + four primitive types ("strings", "numbers", "booleans", and "null") + are to be interpreted as described in Section 1 of [RFC8259]. All + JSContact data MUST be valid according to the constraints given in + I-JSON [RFC7493]. Unless otherwise noted, all member names in JSON + objects and all string values are case-sensitive. Within the context + of JSON objects, the term "key" is synonymous with "member name" as + defined in Section 1 of [RFC8259]. + +1.3.1. Objects and Properties + + JSContact defines data types for contact information such as + addresses or names. This information typically consists of multiple + related elements; for example, a personal name and surname together + form a name. These related elements are organized in JSContact + objects. A JSContact object is a JSON object that has the following: + + 1. A unique type name registered in the IANA "JSContact Types" + registry (Section 3.6). + + 2. One or more object members for which the name and allowed value + types are specified. Such members are called "properties". + + 3. One property named @type with a string value that matches the + type name of the JSContact object. In general, this property + does not need to be set explicitly as outlined in Section 1.3.4. + + The following sections specify how to define JSContact object types. + Sections 1.7 and 1.8 then define the exact requirements for property + names. + + The next paragraph illustrates how a JSContact object is defined. + The names "Foo" and "baz" are only for demonstration and have no + meaning outside the example. + + A Foo object has the following properties: + + @type: String. The JSContact type of the object. The value MUST + be "Foo", if set. + + baz: Number (mandatory). The baz level of the contact. The value + MUST be an integer greater than 0 and less than 10. + + The above paragraph illustrates the following: + + * It defines a JSContact object type named "Foo" that has two + properties, named "@type" and "baz". + + * The @type property adheres to the rules outlined in Section 1.3.4. + Because of this, it is neither defined to be mandatory nor + optional, as this depends on how the Foo object type is used. + + * The baz property value MUST be valid according to the definition + of the Number type. + + * The property has one attribute, "mandatory", which specifies that + the property MUST be present for a value of the Foo object type to + be valid. + + * The free-text description of the baz property describes the + semantics and further restrictions for its values. + +1.3.2. Type Signatures + + Type signatures are given for all JSON values and JSContact + definitions in this document. The following conventions are used: + + String: The JSON string type. + + Number: The JSON number type. + + Boolean: The JSON boolean type. + + A[B]: A JSON object where all keys are of type A and all values are + of type B. + + A[]: A JSON array of values of type A. + + A|B: The value is either of type A or of type B. + + *: The type is undefined (the value could be any type, although + permitted values may be constrained by the context of this value). + + Section 1.4 defines common data types, including signed or unsigned + integers and dates. + +1.3.3. Property Attributes + + Object properties may also have a set of attributes defined along + with the type signature. These have the following meanings: + + mandatory: The property MUST be set for an instance of this object + to be valid. + + optional: The property can, but need not, be set for an instance of + this object to be valid. + + default: This is followed by a JSON value. That value will be used + for this property if it is omitted. + + defaultType: This is followed by the name of a JSContact object + type. A property value of JSContact object type is expected to be + of this named type, in case it omits the @type property. + +1.3.4. The @type Property + + @type: String. The JSContact type of a JSON object. It MUST match + the type name of the JSContact object of which the JSON object is + an instance of. + + The purpose of the @type property is to help implementations identify + which JSContact object type a given JSON object represents. + Implementations MUST validate that JSON objects with this property + conform to the specification of the JSContact object type of that + name. + + In many cases, the @type property value is implied by where its + object occurs in JSContact data. Assuming that both A and B are + JSContact object types: + + * An object that is set as the value for a property with type + signature "A" MAY have the @type property set. If the @type + property is not set, then its value is implied to be A by the + property definition. + + * An object that is set as the value for a property with type + signature "A|B (defaultType: A)" MAY have the @type property set + if it is an instance of A. It MUST have the @type property set if + it is an instance of B. If, instead, the defaultType attribute is + not defined, then the @type property MUST also be set for A. + + * An object that is not the value of a property, such as the topmost + object in JSON data (directly or as a member of an array), MUST + have the @type property set. + +1.4. Common Data Types + + In addition to the standard JSON data types, a couple of additional + data types are common to the definitions of JSContact objects and + properties. + +1.4.1. Id + + Where "Id" is given as a data type, it means a String of at least 1 + and a maximum of 255 octets in size, and it MUST only contain + characters from the "URL and Filename Safe" base64url alphabet, as + defined in Section 5 of [RFC4648], excluding the pad character ("="). + This means the allowed characters are the ASCII alphanumeric + characters ("A-Za-z0-9"), hyphen ("-"), and underscore ("_"). + + In many places in JSContact, a JSON map is used where the map keys + are of type Id and the map values are all the same type of object. + This construction represents an unordered set of objects, with the + added advantage that each entry has a name (the corresponding map + key). This allows for more concise patching of objects and, when + applicable, for the objects in question to be referenced from other + objects within the JSContact object. The map keys MUST be preserved + across multiple versions of the JSContact object. + + Unless otherwise specified for a particular property, there are no + uniqueness constraints on an Id value (other than, of course, the + requirement that you cannot have two values with the same key within + a single JSON map). For example, two Card (Section 2) objects might + use the same Ids in their respective photos properties. Or within + the same Card, the same Id could appear in the emails and phones + properties. These situations do not imply any semantic connections + among the objects. + +1.4.2. Int and UnsignedInt + + Where "Int" is given as a data type, it means an integer in the range + -2^53+1 <= value <= 2^53-1, which is the safe range for integers + stored in a floating-point double, represented as a JSON Number. + + Where "UnsignedInt" is given as a data type, it means an integer in + the range 0 <= value <= 2^53-1 represented as a JSON Number. + +1.4.3. PatchObject + + A PatchObject is of type "String[*]" and represents an unordered set + of patches on a JSON object. Each key is a path represented in a + subset of the JSON Pointer format [RFC6901]. The paths have an + implicit leading "/", so each key is prefixed with "/" before + applying the JSON Pointer evaluation algorithm. + + A patch within a PatchObject is only valid if all the following + conditions apply: + + 1. The pointer MAY reference inside an array, but if the last + reference token in the pointer is an array index, then the patch + value MUST NOT be null. The pointer MUST NOT use "-" as an array + index in any of its reference tokens (i.e., you MUST NOT insert/ + delete from an array, but you MAY replace the contents of its + existing members. To add or remove members, one needs to replace + the complete array value). + + 2. All reference tokens prior to the last (i.e., the value after the + final slash) MUST already exist as values in the object being + patched. If the last reference token is an array index, then a + member at this index MUST already exist in the referenced array. + + 3. There MUST NOT be two patches in the PatchObject where the + pointer of one is the prefix of the pointer of the other, e.g., + "addresses/1/city" and "addresses". + + 4. The value for the patch MUST be valid for the property being set + (of the correct type and obeying any other applicable + restrictions), or if null, the property MUST be optional. + + The value associated with each pointer determines how to apply that + patch: + + * If null, remove the property from the patched object. If the key + is not present in the parent, this is a no-op. + + * If non-null, set the value given as the value for this property + (this may be a replacement or addition to the object being + patched). + + A PatchObject does not define its own @type (Section 1.3.4) property. + Instead, the @type property in a patch MUST be handled as any other + patched property value. + + Implementations MUST reject a PatchObject in its entirety if any of + its patches are invalid. Implementations MUST NOT apply partial + patches. + +1.4.4. Resource + + The Resource data type defines a resource associated with the entity + represented by the Card, identified by a URI [RFC3986]. Later in + this document, several property definitions refer to the Resource + type as the basis for their property-specific value types. The + Resource type defines the properties that are common to all of them. + Property definitions making use of Resource MAY define additional + properties for their value types. + + A Resource object has the following properties: + + @type: String. The JSContact type of the object. The value MUST NOT + be "Resource"; instead, the value MUST be the name of a concrete + resource type (see Section 2.6). + + kind: String (optional). The kind of the resource. The allowed + values are defined in the property definition that makes use of + the Resource type. Some property definitions may change this + property from being optional to mandatory. + + uri: String (mandatory). The resource value. This MUST be a _URI_ + as defined in Section 3 of [RFC3986]. + + mediaType: String (optional). The media type [RFC2046] of the + resource identified by the uri property value. + + contexts: String[Boolean] (optional). The contexts in which to use + this resource. Also see Section 1.5.1. + + pref: UnsignedInt (optional). The preference of the resource in + relation to other resources. Also see Section 1.5.3. + + label: String (optional). A custom label for the value. Also see + Section 1.5.2. + +1.4.5. UTCDateTime + + The UTCDateTime type is a String in "date-time" format [RFC3339], + with further restrictions that any letters MUST be in uppercase and + the time offset MUST be the character "Z". Fractional second values + MUST NOT be included unless they are non-zero, and they MUST NOT have + trailing zeros to ensure there is only a single representation for + each date-time. + + For example, "2010-10-10T10:10:10.003Z" is conformant, but + "2010-10-10T10:10:10.000Z" is invalid; the correct encoding is + "2010-10-10T10:10:10Z". + +1.5. Common Properties + + Most of the properties in this document are specific to a single + JSContact object type. Such properties are defined along with the + respective object type. The properties in this section are common to + multiple data types and are defined here to avoid repetition. Note + that these properties MUST only be set for a JSContact object if they + are explicitly mentioned as allowable for this object type. + +1.5.1. contexts + + contexts: String[Boolean]. The contexts in which to use the contact + information. For example, someone might have distinct phone + numbers for work and private contexts and may set the desired + context on the respective phone number in the phones + (Section 2.3.3) property. + + This section defines common contexts. Additional contexts may be + defined in the properties or data types that make use of this + property. The enumerated (Section 1.7.5) common context values + are: + + * private: the contact information that may be used in a private + context. + + * work: the contact information that may be used in a + professional context. + +1.5.2. label + + label: String. The labels associated with the contact data. Such + labels may be set for phone numbers, email addresses, and other + resources. Typically, these labels are displayed along with their + associated contact data in graphical user interfaces. Note that + succinct labels are best for proper display on small graphical + interfaces and screens. + +1.5.3. pref + + pref: UnsignedInt. A preference order for contact information. For + example, a person may have two email addresses and prefer to be + contacted with one of them. + + The value MUST be in the range of 1 to 100. Lower values + correspond to a higher level of preference, with 1 being most + preferred. If no preference is set, then the contact information + MUST be interpreted as being least preferred. + + Note that the preference is only defined in relation to contact + information of the same type. For example, the preference orders + within emails and phone numbers are independent of each other. + +1.5.4. phonetic + + The following properties define how to pronounce a value in the + language indicated in the Card language (Section 2.1.5) property or + the language tag of its localizations (Section 2.7.1). Exemplary + uses of these properties are defining how to pronounce Japanese names + and romanizing Mandarin or Cantonese name and address components. + The properties are defined as follows: + + phonetic: String. The phonetic representation of a value. Any + script language subtag in the Card language (Section 2.1.5) + property MUST be ignored and not used with the phonetic property. + If this property is set, then at least one of the phoneticScript + or phoneticSystem properties that relate to this value MUST be + set. + + phoneticScript: String. The script used in the value of the related + phonetic property. This MUST be a valid script subtag as defined + in Section 2.2.3 of [RFC5646]. + + phoneticSystem: String. The phonetic system used in the related + value of the phonetic property. The enumerated (Section 1.7.5) + values are: + + * ipa: denotes the International Phonetic Alphabet [IPA]. + + * jyut: denotes the Cantonese romanization system "Jyutping". + + * piny: denotes the Standard Mandarin romanization system "Hanyu + Pinyin". + + The relation between the phoneticSystem, phoneticScript, and phonetic + properties is type-specific. This specification defines this + relation in the Name (Section 2.2.1.1) and Address (Section 2.5.1.1) + object types, respectively. + + The following example illustrates the phonetic property for a name + (Section 2.2.1): + + "name": { + "components": [{ + "kind": "given", + "value": "John", + "phonetic": "/ˈdʒɑːn/" + }, { + "kind": "surname", + "value": "Smith", + "phonetic": "/smɪθ/" + }], + "phoneticSystem": "ipa" + } + + Figure 1: Example of a phonetic Property for the Name "John Smith" as + Pronounced in the USA + +1.6. Internationalization + + JSContact aims to be used for international contacts and address book + data. Notably, text values such as names and addresses are likely to + cover a wide range of languages and cultures. This section describes + internationalization for free-form text values as well as Uniform + Resource Identifiers (URIs). + +1.6.1. Free-Form Text + + Properties having free-form text values MAY contain any valid + sequence of Unicode characters encoded as a JSON string. Such values + can contain unidirectional left-to-right and right-to-left text, as + well as bidirectional text using Unicode Directional Formatting + Characters as described in Section 2 of [UBiDi]. Implementations + setting bidirectional text MUST make sure that each property value + complies with the requirements of the Unicode Bidirectional + Algorithm. Implementations MUST NOT assume that text values of + adjacent properties are processed or displayed as a combined string; + for example, the values of a given name component and a surname + component may or may not be rendered together. + +1.6.2. URIs + + Several properties require their string value to be a URI as defined + in [RFC3986]. Implementations MUST make sure to use proper percent- + encoding for URIs that cannot be represented using unreserved URI + characters. Section 3.1 of [RFC3987] defines how to convert + Internationalized Resource Identifiers to URIs. JSContact makes no + recommendation on how to display URIs, but the WHATWG URL Living + Standard (see "Internationalization and special characters" + (Section 4.8.3) of [WHATWG-URL]) provides guidance for URLs found in + the context of a web browser. + +1.7. Validating JSContact + + This specification distinguishes between three kinds of properties + regarding validation: IANA-registered properties and unknown + properties, which are defined in this section, and vendor-specific + properties, which are defined in Section 1.8.1. A JSContact object + is invalid if any of its properties are invalid. + + This document defines whether each property is mandatory or optional. + A mandatory property MUST be present for a JSContact object to be + valid. An optional property does not need to be present. The values + of both required and optional properties MUST adhere to the data type + and definition of that property. + +1.7.1. Case-Sensitivity + + All property names, object type names, and enumerated values are + case-sensitive, unless explicitly stated otherwise in their + definitions. Implementations MUST handle a JSContact object as + invalid if a type name, property name, or enumerated value only + differs in case from one defined for any JSContact version known to + that implementation. This applies regardless of what JSContact + version the Card object defines in its version (Section 2.1.2) + property. Section 1.7.4 defines how to handle unknown properties. + +1.7.2. IANA-Registered Properties + + An IANA-registered property is any property that has been registered + according to the IANA property registry rules as outlined in + Section 3. All properties defined in this specification, including + their object value types and enumerated values, are registered at + IANA. + + Implementations MUST validate IANA-registered properties in JSContact + data, unless they are unknown to the implementation (Section 1.7.4). + They MUST reject invalid IANA-registered properties. A property is + invalid if its name matches the name of an IANA-registered property + but the value violates its definition according to the JSContact + specification version defined in the Card version (Section 2.1.2) + property. + + IANA-registered property names MUST NOT contain ASCII control + characters (U+0000 to U+001F, U+007F), the COLON (U+003A), or the + QUOTATION MARK (U+0022). They MUST only contain ASCII alphanumeric + characters that match the ALPHA and DIGIT rules defined in + Appendix B.1 of [RFC5234] or the COMMERCIAL AT (U+0040) character. + IANA-registered property names MUST be notated in lower camel case. + +1.7.3. Reserved Properties + + IANA-registered properties can be reserved (Section 3.3). + Implementations MUST NOT set properties having a reserved name in + JSContact objects for which this property is reserved or all objects + if the property context in the registry is "not applicable". + Reserved properties have no type, and their type signature is "not + applicable". Any JSContact object including a property that is + reserved in context of this object MUST be considered invalid. + + This document reserves one property as described below. + +1.7.3.1. extra + + extra: not applicable. The reserved property "extra" provides + implementors with a property name that is certain to never occur + as a property in any JSContact object. Implementations might want + to map unknown or vendor-specific properties to a variable with + this name, but this is implementation-specific. + +1.7.4. Unknown Properties + + Implementations may encounter JSContact data where a property name is + unknown to that implementation but the name adheres to the syntactic + restrictions of IANA-registered property names. Implementations MUST + make sure that such a name does not violate the case-sensitivity + rules defined in Section 1.7.1. If the property name is valid, then + implementations MUST NOT treat such properties as invalid. Instead, + they MUST preserve them in the JSContact object. + + Implementations that create or update JSContact data MUST only set + IANA-registered properties or vendor-specific properties. Preserving + properties that are unknown to the implementation is to allow + applications and services to interoperate without data loss, even if + not all of them implement the same set of JSContact extensions. + +1.7.5. Enumerated Values + + Several properties in this document restrict their allowed values to + a list of String values. These values are case-sensitive. If not + noted otherwise for a specific property, the initial list of values + for such properties is registered at IANA in the "JSContact Enum + Values" registry (Section 3.7). Implementations MUST only set IANA- + registered or vendor-specific (Section 1.8.2) values for such + properties. + +1.8. Vendor-Specific Extensions + + Vendors may extend properties and values for experimentation or to + store contacts data that is only useful for a single service or + application. Such extensions are not meant for interoperation. If, + instead, interoperation is desired, vendors are strongly encouraged + to define and register new properties, types, and values at IANA as + defined in Section 3. Section 1.7.2 defines the naming conventions + for IANA-registered elements. + +1.8.1. Vendor-Specific Properties + + Vendor-specific property names MUST start with a vendor-specific + prefix followed by a name, as produced by the "v-extension" ABNF + below. The prefix and name together form the property name. The + vendor-specific prefix MUST be a domain name under control of the + service or application that sets the property, but it need not + resolve in the Domain Name System [RFC1034] [RFC1035]. The prefix + "ietf.org" and its subdomain names are reserved for IETF + specifications. The name MUST NOT contain the TILDE (U+007E) and + SOLIDUS (U+002F) characters, as these require special escaping when + encoding a JSON Pointer [RFC6901] for that property. + + Vendor-specific properties MAY be set in any JSContact object. + Implementations MUST preserve vendor-specific properties in JSContact + data, irrespective if they know their use. They MUST NOT reject the + property value as invalid, unless they are in control of the vendor- + specific property as outlined in the above paragraph. + + The ABNF rule "v-extension" formally defines valid vendor-specific + property names. Note that the vendor prefix allows for more values + than Internationalized Domain Names (IDNs) [RFC9499]; therefore, + JSContact implementations can simply validate property names without + implementing the full set of rules that apply to domain names. + + v-extension = v-prefix ":" v-name + + v-prefix = v-label *("." v-label) + + v-label = alnum-int / alnum-int *(alnum-int / "-") alnum-int + + alnum-int = ALPHA / DIGIT / NON-ASCII + ; see RFC 6350, Section 3.3 + + v-name = 1*(WSP / "!" / %x23-2e / %x30-7d / NON-ASCII) + ; any characters except CTLs, DQUOTE, SOLIDUS, and TILDE + + Figure 2: ABNF Rules for Vendor-Specific Property Names + + The value of vendor-specific properties can be any valid JSON value, + and naming restrictions do not apply to such values. Specifically, + if the property value is a JSON object, then the keys of such objects + need not be named as vendor-specific properties, as illustrated in + Figure 3: + + "example.com:foo": "bar", + "example.com:foo2": { + "bar": "baz" + } + + Figure 3: Examples of Vendor-Specific Properties + +1.8.2. Vendor-Specific Values + + Some JSContact IANA-registered properties allow their values to be + vendor-specific. One such example is the "kind" (Section 2.1.4) + property, which enumerates its standard values but also allows for + arbitrary vendor-specific values. Such vendor-specific values MUST + be valid "v-extension" values as defined in Section 1.8.1. The + example in Figure 4 illustrates this: + + "kind": "example.com:baz" + + Figure 4: Example of a Vendor-Specific Value + + Vendors are strongly encouraged to specify a new standard value once + a vendor-specific one turns out to also be useful for other systems. + +1.9. Versioning + + Every instance of a JSContact Card (Section 2) indicates which + JSContact version its IANA-registered properties and values are based + on. The version is indicated both in the version (Section 2.1.2) + property within the Card and in the version (Section 3.1) parameter + of the JSContact media type. All IANA-registered elements indicate + the version at which they were introduced or obsoleted. + + A JSContact version consists of a major and minor version. + + Differing major version values indicate substantial differences in + JSContact semantics and format. Implementations MUST be prepared for + property definitions and other JSContact elements that differ in a + backwards-incompatible manner. + + Differing minor version values indicate additions that enrich + JSContact data but do not introduce backwards-incompatible changes. + Typically, these are new property enum values or properties with a + narrow semantic scope. A new minor version MUST NOT require + implementations to change their processing of JSContact data. + Changing the major version number resets the minor version number to + zero. + +1.9.1. Version Format and Requirements + + A version value starts with the numeric major version, followed by + the FULL STOP character (U+002E), followed by the numeric minor + version. Later versions are numerically higher than former versions, + with the major version being more significant than the minor version. + A version value is produced by the following ABNF: + + jsversion = 1*DIGIT "." 1*DIGIT + + Figure 5: The ABNF for JSContact Version Values + +1.9.2. Current Version + + This specification registers JSContact version value "1.0" (Table 1). + +2. Card + + This section defines the JSContact object type Card. A Card stores + contact information, typically that of a person, organization, or + company. + + Its media type is defined in Section 3.1. + + Figure 6 shows a basic Card for the person "John Doe". As the object + is the topmost object in the JSON data, it has the @type property set + according to the rules defined in Section 1.3.4. + + { + "@type": "Card", + "version": "1.0", + "uid": "22B2C7DF-9120-4969-8460-05956FE6B065", + "kind": "individual", + "name": { + "components": [ + { "kind": "given", "value": "John" }, + { "kind": "surname", "value": "Doe" } + ], + "isOrdered": true + } + } + + Figure 6: Example of a Basic Card + +2.1. Metadata Properties + + This section defines properties about this instance of a Card such as + its unique identifier, its creation date, and how it relates to other + Cards and other metadata information. + +2.1.1. @type + + @type: String (mandatory). The JSContact type of the Card object. + The value MUST be "Card". + +2.1.2. version + + version: String (mandatory). The JSContact version of this Card. + The value MUST be one of the IANA-registered JSContact Version + values for the version property. Also see Section 1.9.2. + + "version": "1.0" + + Figure 7: Example for the version Property + +2.1.3. created + + created: UTCDateTime (optional). The date and time when the Card was + created. + + "created": "2022-09-30T14:35:10Z" + + Figure 8: Example for the created Property + +2.1.4. kind + + kind: String (optional; default: "individual"). The kind of the + entity the Card represents. + + The enumerated (Section 1.7.5) values are: + + * individual: a single person + + * group: a group of people or entities + + * org: an organization + + * location: a named location + + * device: a device such as an appliance, a computer, or a network + element + + * application: a software application + + "kind": "individual" + + Figure 9: Example for the kind Property + +2.1.5. language + + language: String (optional). The language tag, as defined in + [RFC5646], that best describes the language used for text in the + Card, optionally including additional information such as the + script. Note that values MAY be localized in the localizations + (Section 2.7.1) property. + + "language": "de-AT" + + Figure 10: Example for the language Property + +2.1.6. members + + members: String[Boolean] (optional). The set of Cards that are + members of this group Card. Each key in the set is the uid + property value of the member, and each boolean value MUST be + "true". If this property is set, then the value of the kind + property MUST be "group". + + The opposite is not true. A group Card will usually contain the + members property to specify the members of the group, but it is + not required to. A group Card without the members property can be + considered an abstract grouping or one whose members are known + empirically (e.g., "IETF Participants"). + + "kind": "group", + "name": { + "full": "The Doe family" + }, + "uid": "urn:uuid:ab4310aa-fa43-11e9-8f0b-362b9e155667", + "members": { + "urn:uuid:03a0e51f-d1aa-4385-8a53-e29025acd8af": true, + "urn:uuid:b8767877-b4a1-4c70-9acc-505d3819e519": true + } + + Figure 11: Example for the members Property + +2.1.7. prodId + + prodId: String (optional). The identifier for the product that + created the Card. If set, the value MUST be at least one + character long. + + "prodId": "ACME Contacts App version 1.23.5" + + Figure 12: Example for the prodId Property + +2.1.8. relatedTo + + relatedTo: String[Relation] (optional). The set of Card objects that + relate to the Card. The value is a map, where each key is the uid + property value of the related Card, and the value defines the + relation. + + The Relation object has the following properties: + + @type: String. + The JSContact type of the object. The value MUST be "Relation", + if set. + + relation: String[Boolean] (optional; default: empty Object). + The relationship of the related Card to the Card, defined as a set + of relation types. The keys in the set define the relation type; + the values for each key in the set MUST be "true". The + relationship between the two objects is undefined if the set is + empty. + + The initial list of enumerated (Section 1.7.5) relation types + matches the IANA-registered TYPE [IANA-vCard] parameter values of + the vCard RELATED property (Section 6.6.6 of [RFC6350]): + + * acquaintance + + * agent + + * child + + * co-resident + + * co-worker + + * colleague + + * contact + + * crush + + * date + + * emergency + + * friend + + * kin + + * me + + * met + + * muse + + * neighbor + + * parent + + * sibling + + * spouse + + * sweetheart + + "relatedTo": { + "urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6": { + "relation": { + "friend": true + } + }, + "8cacdfb7d1ffdb59@example.com": { + "relation": {} + } + } + + Figure 13: Example for the relatedTo Property + +2.1.9. uid + + uid: String (mandatory). An identifier that associates the object as + the same across different systems, address books, and views. The + value SHOULD be a URN [RFC8141], but for compatibility with + [RFC6350], it MAY also be a URI [RFC3986] or free-text value. The + value of the URN SHOULD be in the "uuid" namespace [RFC9562]. + [RFC9562] describes multiple versions of Universally Unique + IDentifiers (UUIDs); UUID version 4 is RECOMMENDED. + + "uid": "urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6" + + Figure 14: Example for the uid Property + +2.1.10. updated + + updated: UTCDateTime (optional). The date and time when the data in + the Card was last modified. + + "updated": "2021-10-31T22:27:10Z" + + Figure 15: Example for the updated Property + +2.2. Name and Organization Properties + + This section defines properties that name the entity represented by + the Card and its related organizations and roles. It also describes + how to refer to the entity represented by the Card in spoken or + written language. + +2.2.1. name + + name: Name (optional). The name of the entity represented by the + Card. This can be any type of name, e.g., it can, but need not, + be the legal name of a person. + +2.2.1.1. Name Object + + A Name object has the following properties: + + @type: String. The JSContact type of the object. The value MUST be + "Name", if set. + + components: NameComponent[] (optional). The components + (Section 2.2.1.2) making up this name. The components property + MUST be set if the full property is not set; otherwise, it SHOULD + be set. The component list MUST have at least one entry having a + different kind property value than "separator". + + Name components SHOULD be ordered such that when their values are + joined as a String, a valid full name of the entity is produced. + If so, implementations MUST set the isOrdered property value to + "true". + + If the name components are ordered, then the defaultSeparator + property and name components with the kind property value set to + "separator" give guidance on what characters to insert between + components, but implementations are free to choose any others. + When lacking a separator, inserting a single space character in + between the name component values is a good choice. + + If, instead, the name components follow no particular order, then + the isOrdered property value MUST be "false", the components + property MUST NOT contain a NameComponent with the kind property + value set to "separator", and the defaultSeparator property MUST + NOT be set. + + Figure 16 shows an example for the name "Vincent van Gogh". Note + how a single name component value may consist of multiple words. + + "name": { + "components": [ + { "kind": "given", "value": "Vincent" }, + { "kind": "surname", "value": "van Gogh" } + ], + "isOrdered": true + } + + Figure 16: Example of a Surname with Two Words + + Figure 17 illustrates a name with a second surname such as a + Spanish name. Additional examples are shown in Figures 19 and 39. + + "name": { + "components": [ + { "kind": "given", "value": "Diego" }, + { "kind": "surname", "value": "Rivera" }, + { "kind": "surname2", "value": "Barrientos" } + ], + "isOrdered": true + } + + Figure 17: Example of a Second Surname + + isOrdered: Boolean (optional; default: "false"). The indicator if + the name components in the components property are ordered. + + defaultSeparator: String (optional). The default separator to insert + between name component values when concatenating all name + component values to a single String. Also see the definition of + the kind property value "separator" for the NameComponent + (Section 2.2.1.2) object. The defaultSeparator property MUST NOT + be set if the Name isOrdered property value is "false" or if the + components property is not set. + + full: String (optional). The full name representation of the Name. + The full property MUST be set if the components property is not + set. + + "full": "Mr. John Q. Public, Esq." + + Figure 18: Example for the full Property + + sortAs: String[String] (optional). The value to lexicographically + sort the name in relation to other names when compared by a name + component type. The keys in the map define the name component + type. The values define the verbatim string to compare when + sorting by the name component type. Absence of a key indicates + that the name component type SHOULD NOT be considered during sort. + Sorting by that missing name component type, or if the sortAs + property is not set, is implementation-specific. The sortAs + property MUST NOT be set if the components property is not set. + + Each key in the map MUST be a valid name component type value as + defined for the kind property of the NameComponent object (see + below). For each key in the map, there MUST exist at least one + NameComponent object that has the type in the components property + of the name. + + Figure 19 illustrates the use of the sortAs property. The + property value indicates that the middle name followed by both + surnames should be used when sorting the name by surname. The + absence of "middle" indicates that the middle name on its own + should be disregarded during sort. Even though the name only + contains one name component for the given name, the sortAs + property still explicitly defines how to sort by the given name; + otherwise, sorting by it would be undefined. + + phoneticScript: String (optional). The script used in the value of + the NameComponent phonetic property. See Section 1.5.4 for more + information and Figure 20 for an example. + + phoneticSystem: String (optional). The phonetic system used in the + NameComponent phonetic property. See Section 1.5.4 for more + information and Figure 20 for an example. + + "name": { + "components": [ + { "kind": "given", "value": "Robert" }, + { "kind": "given2", "value": "Pau" }, + { "kind": "surname", "value": "Shou Chang" } + ], + "sortAs": { + "surname": "Pau Shou Chang", + "given": "Robert" + }, + "isOrdered": true + } + + Figure 19: Example for the sortAs Property + + { + "@type": "Card", + "language": "zh-Hant", + "name": { + "components": [ + { "kind": "surname", "value": "孫" }, + { "kind": "given", "value": "中山" }, + { "kind": "given2", "value": "文" }, + { "kind": "given2", "value": "逸仙" } + ] + }, + "localizations": { + "yue": { + "name/phoneticSystem": "jyut", + "name/phoneticScript": "Latn", + "name/components/0/phonetic": "syun1", + "name/components/1/phonetic": "zung1saan1", + "name/components/2/phonetic": "man4", + "name/components/3/phonetic": "jat6sin1" + } + } + } + + Figure 20: Example for the phonetic and localizations Properties + +2.2.1.2. NameComponent + + A NameComponent object has the following properties: + + @type: String. The JSContact type of the object. The value MUST be + "NameComponent", if set. + + value: String (mandatory). The value of the name component. This + can be composed of one or multiple words such as "Poe" or "van + Gogh". + + kind: String (mandatory). The kind of the name component. The + enumerated (Section 1.7.5) values are: + + * title: an honorific title or prefix, e.g., "Mr.", "Ms.", or + "Dr.". + + * given: a given name, also known as "first name" or "personal + name". + + * given2: a name that appears between the given and surname such + as a middle name or patronymic name. + + * surname: a surname, also known as "last name" or "family name". + + * surname2: a secondary surname (used in some cultures), also + known as "maternal surname". + + * credential: a credential, also known as "accreditation + qualifier" or "honorific suffix", e.g., "B.A.", "Esq.". + + * generation: a generation marker or qualifier, e.g., "Jr." or + "III". + + * separator: a formatting separator between two ordered name non- + separator components. The value property of the component + includes the verbatim separator, for example, a hyphen + character or even an empty string. This value has higher + precedence than the defaultSeparator property of the Name. + Implementations MUST NOT insert two consecutive separator + components; instead, they SHOULD insert a single separator + component with the combined value. This component kind MUST + NOT be set if the Name isOrdered property value is "false". + + phonetic: String (optional). The pronunciation of the name + component. If this property is set, then at least one of the Name + object properties, phoneticSystem or phoneticScript, MUST be set. + Also see Section 1.5.4. + +2.2.2. nicknames + + nicknames: Id[Nickname] (optional). The nicknames of the entity + represented by the Card. + + A Nickname object has the following properties: + + @type: String. The JSContact type of the object. The value MUST be + "Nickname", if set. + + name: String (mandatory). The nickname. + + contexts: String[Boolean] (optional). The contexts in which to use + the nickname. Also see Section 1.5.1. + + pref: UnsignedInt (optional). The preference of the nickname in + relation to other nicknames. Also see Section 1.5.3. + + "nicknames": { + "k391": { + "name": "Johnny" + } + } + + Figure 21: Example for the nicknames Property + +2.2.3. organizations + + organizations: Id[Organization] (optional). The company or + organization names and units associated with the Card. + + An Organization object has the following properties, of which at + least one of the name and units properties MUST be set: + + @type: String. The JSContact type of the object. The value MUST be + "Organization", if set. + + name: String (optional). The name of the organization. + + units: OrgUnit[] (optional). A list of organizational units, ordered + as descending by hierarchy (e.g., a geographic or functional + division sorts before a department within that division). If set, + the list MUST contain at least one entry. + + sortAs: String (optional). The value to lexicographically sort the + organization in relation to other organizations when compared by + name. The value defines the verbatim string value to compare. In + absence of this property, the name property value MAY be used for + comparison. + + contexts: String[Boolean] (optional). The contexts in which + association with the organization applies. For example, + membership in a choir may only apply in a private context. Also + see Section 1.5.1. + + An OrgUnit object has the following properties: + + @type: String. The JSContact type of the object. The value MUST be + "OrgUnit", if set. + + name: String (mandatory). The name of the organizational unit. + + sortAs: String (optional). The value to lexicographically sort the + organizational unit in relation to other organizational units of + the same level when compared by name. The level is defined by the + array index of the organizational unit in the units property of + the Organization object. The property value defines the verbatim + string value to compare. In absence of this property, the name + property value MAY be used for comparison. + + "organizations": { + "o1": { + "name": "ABC, Inc.", + "units": [ + { "name": "North American Division" }, + { "name": "Marketing" } + ], + "sortAs": "ABC" + } + } + + Figure 22: Example for the organizations Property + +2.2.4. speakToAs + + speakToAs: SpeakToAs (optional). The information that directs how to + address, speak to, or refer to the entity that is represented by + the Card. + + A SpeakToAs object has the following properties, of which at least + one of the grammaticalGender and pronouns properties MUST be set: + + @type: String. The JSContact type of the object. The value MUST be + "SpeakToAs", if set. + + grammaticalGender: String (optional). The grammatical gender to use + in salutations and other grammatical constructs. For example, the + German language distinguishes by grammatical gender in salutations + such as "Sehr geehrte" (feminine) and "Sehr geehrter" (masculine). + The enumerated (Section 1.7.5) values are: + + * animate + * common + * feminine + * inanimate + * masculine + * neuter + + Note that the grammatical gender does not allow inferring the + gender identities or assigned sex of the contact. + + pronouns: Id[Pronouns] (optional). The pronouns that the contact + chooses to use for themselves. + + A Pronouns object has the following properties: + + @type: String. The JSContact type of the object. The value MUST be + "Pronouns", if set. + + pronouns: String (mandatory). The pronouns. Any value or form is + allowed. Examples in English include "she/her" and "they/them/ + theirs". The value MAY be overridden in the localizations + (Section 2.7.1) property. + + contexts: String[Boolean] (optional). The contexts in which to use + the pronouns. Also see Section 1.5.1. + + pref: UnsignedInt (optional). The preference of the pronouns in + relation to other pronouns in the same context. Also see + Section 1.5.3. + + "speakToAs": { + "grammaticalGender": "neuter", + "pronouns": { + "k19": { + "pronouns": "they/them", + "pref": 2 + }, + "k32": { + "pronouns": "xe/xir", + "pref": 1 + } + } + } + + Figure 23: Example for the speakToAs Property + +2.2.5. titles + + titles: Id[Title] (optional). The job titles or functional positions + of the entity represented by the Card. + + A Title object has the following properties: + + @type: String. The JSContact type of the object. The value MUST be + "Title", if set. + + name: String (mandatory). The title or role name of the entity + represented by the Card. + + kind: String (optional; default: "title"). The organizational or + situational kind of the title. Some organizations and individuals + distinguish between _titles_ as organizational positions and + _roles_ as more temporary assignments such as in project + management. + + The enumerated (Section 1.7.5) values are: + + * title + * role + + organizationId: Id (optional). The identifier of the organization in + which this title is held. + + "titles": { + "le9": { + "kind": "title", + "name": "Research Scientist" + }, + "k2": { + "kind": "role", + "name": "Project Leader", + "organizationId": "o2" + } + }, + "organizations": { + "o2": { + "name": "ABC, Inc." + } + } + + Figure 24: Example for the titles Property + +2.3. Contact Properties + + This section defines how properties contact the entity represented by + the Card. + +2.3.1. emails + + emails: Id[EmailAddress] (optional). The email addresses in which to + contact the entity represented by the Card. + + An EmailAddress object has the following properties: + + @type: String. The JSContact type of the object. The value MUST be + "EmailAddress", if set. + + address: String (mandatory). The email address. This MUST be an + _addr-spec_ value as defined in Section 3.4.1 of [RFC5322]. + + contexts: String[Boolean] (optional). The contexts in which to use + this email address. Also see Section 1.5.1. + + pref: UnsignedInt (optional). The preference of the email address in + relation to other email addresses. Also see Section 1.5.3. + + label: String (optional). A custom label for the value. Also see + Section 1.5.2. + + "emails": { + "e1": { + "contexts": { + "work": true + }, + "address": "jqpublic@xyz.example.com" + }, + "e2": { + "address": "jane_doe@example.com", + "pref": 1 + } + } + + Figure 25: Example for the emails Property + +2.3.2. onlineServices + + onlineServices: Id[OnlineService] (optional). The online services + that are associated with the entity represented by the Card. This + can be messaging services, social media profiles, and other. + + An OnlineService object has the following properties, of which at + least the uri or user property MUST be set: + + @type: String. The JSContact type of the object. The value MUST be + "OnlineService", if set. + + service: String (optional). The name of the online service or + protocol. The name MAY be capitalized the same as on the + service's website, app, or publishing material, but names MUST be + considered equal if they match case-insensitively. Examples are + "GitHub", "kakao", and "Mastodon". + + uri: String (optional). The identifier for the entity represented by + the Card at the online service. This MUST be a _URI_ as defined + in Section 3 of [RFC3986]. + + user: String (optional). The name the entity represented by the Card + at the online service. Any free-text value is allowed. The + service property SHOULD be set. + + contexts: String[Boolean] (optional). The contexts in which to use + the service. Also see Section 1.5.1. + + pref: UnsignedInt (optional). The preference of the service in + relation to other services. Also see Section 1.5.3. + + label: String (optional). A custom label for the value. Also see + Section 1.5.2. + + "onlineServices": { + "x1": { + "uri": "xmpp:alice@example.com" + }, + "x2": { + "service": "Mastodon", + "user": "@alice@example2.com", + "uri": "https://example2.com/@alice" + } + } + + Figure 26: Example for the onlineServices Property + +2.3.3. phones + + phones: Id[Phone] (optional). The phone numbers by which to contact + the entity represented by the Card. + + Phone object has the following properties: + + @type: String. The JSContact type of the object. The value MUST be + "Phone", if set. + + number: String (mandatory). The phone number as either a URI or free + text. Typical URI schemes are "tel" [RFC3966] or "sip" [RFC3261], + but any URI scheme is allowed. + + features: String[Boolean] (optional). The set of contact features + that the phone number may be used for. The set is represented as + an object, with each key being a method type. The boolean value + MUST be "true". The enumerated (Section 1.7.5) method type values + are: + + * mobile: this number is for a mobile phone. + * voice: this number supports calling by voice. + * text: this number supports text messages (SMS). + * video: this number supports video conferencing. + * main-number: this number is a main phone number such as the + number of the front desk at a company, as opposed to a direct- + dial number of an individual employee. + * textphone: this number is for a device for people with hearing + or speech difficulties. + * fax: this number supports sending faxes. + * pager: this number is for a pager or beeper. + + contexts: String[Boolean] (optional). The contexts in which to use + the number. Also see Section 1.5.1. + + pref: UnsignedInt (optional). The preference of the number in + relation to other numbers. Also see Section 1.5.3. + + label: String (optional). A custom label for the value. Also see + Section 1.5.2. + + "phones": { + "tel0": { + "contexts": { + "private": true + }, + "features": { + "voice": true + }, + "number": "tel:+1-555-555-5555;ext=5555", + "pref": 1 + }, + "tel3": { + "contexts": { + "work": true + }, + "number": "tel:+1-201-555-0123" + } + } + + Figure 27: Example for the phones Property + +2.3.4. preferredLanguages + + preferredLanguages : Id[LanguagePref] (optional). The preferred + languages for contacting the entity associated with the Card. + + A LanguagePref object has the following properties: + + @type: String. The JSContact type of the object. The value MUST be + "LanguagePref", if set. + + language: String (mandatory). The preferred language. This MUST be + a language tag as defined in [RFC5646] . + + contexts: String[Boolean] (optional). The contexts in which to use + the language. Also see Section 1.5.1. + + pref: UnsignedInt (optional). The preference of the language in + relation to other languages of the same contexts. Also see + Section 1.5.3. + + "preferredLanguages": { + "l1": { + "language": "en", + "contexts": { + "work": true + }, + "pref": 1 + }, + "l2": { + "language": "fr", + "contexts": { + "work": true + }, + "pref": 2 + }, + "l3": { + "language": "fr", + "contexts": { + "private": true + } + } + } + + Figure 28: Example for the preferredLanguages Property + +2.4. Calendaring and Scheduling Properties + + This section defines properties for scheduling calendar events with + the entity represented by the Card. + +2.4.1. calendars + + calendars: Id[Calendar] (optional). The calendaring resources of the + entity represented by the Card, such as to look up free-busy + information. + + A Calendar object has all properties of the Resource (Section 1.4.4) + data type, with the following additional definitions: + + * The @type property value MUST be "Calendar", if set. + + * The kind property is mandatory. Its enumerated (Section 1.7.5) + values are: + + - calendar: The resource is a calendar that contains entries such + as calendar events or tasks. + + - freeBusy: The resource allows for free-busy lookups, for + example, to schedule group events. + + "calendars": { + "calA": { + "kind": "calendar", + "uri": "webcal://calendar.example.com/calA.ics" + }, + "project-a": { + "kind": "freeBusy", + "uri": "https://calendar.example.com/busy/project-a" + } + } + + Figure 29: Example for the calendars Property + +2.4.2. schedulingAddresses + + schedulingAddresses: Id[SchedulingAddress] (optional). The + scheduling addresses by which the entity may receive calendar + scheduling invitations. + + A SchedulingAddress object has the following properties: + + @type: String. The JSContact type of the object. The value MUST be + "SchedulingAddress", if set. + + uri: String (mandatory). The address to use for calendar scheduling + with the contact. This MUST be a URI as defined in Section 3 of + [RFC3986]. + + contexts: String[Boolean] (optional). The contexts in which to use + the scheduling address. Also see Section 1.5.1. + + pref: UnsignedInt (optional). The preference of the scheduling + address in relation to other scheduling addresses. Also see + Section 1.5.3. + + label: String (optional). A custom label for the scheduling address. + Also see Section 1.5.2. + + "schedulingAddresses": { + "sched1": { + "uri": "mailto:janedoe@example.com" + } + } + + Figure 30: Example for the schedulingAddresses Property + +2.5. Address and Location Properties + + This section defines properties for postal addresses and geographical + locations associated with the entity represented by the Card. + +2.5.1. addresses + + addresses: Id[Address] (optional). The addresses of the entity + represented by the Card, such as postal addresses or geographic + locations. + +2.5.1.1. Address Object + + An Address object has the following properties, of which at least one + of components, coordinates, countryCode, full or timeZone MUST be + set: + + @type: String. The JSContact type of the object. The value MUST be + "Address", if set. + + components: AddressComponent[] (optional). The components + (Section 2.5.1.2) that make up the address. The component list + MUST have at least one entry that has a kind property value other + than "separator". + + Address components SHOULD be ordered such that when their values + are joined as a String, a valid full address is produced. If so, + implementations MUST set the isOrdered property value to "true". + + If the address components are ordered, then the defaultSeparator + property and address components with the kind property value set + to "separator" give guidance on what characters to insert between + components, but implementations are free to choose any others. + When lacking a separator, inserting a single space character in + between address component values is a good choice. + + If, instead, the address components follow no particular order, + then the isOrdered property value MUST be "false", the components + property MUST NOT contain an AddressComponent with the kind + property value set to "separator", and the defaultSeparator + property MUST NOT be set. + + isOrdered: Boolean (optional; default: "false"). The indicator if + the address components in the components property are ordered. + + countryCode: String (optional). The Alpha-2 country code + [ISO.3166-1]. + + coordinates: String (optional). A "geo:" URI [RFC5870] for the + address. + + timeZone: String (optional). The time zone in which the address is + located. This MUST be a time zone name registered in the IANA + Time Zone Database [IANA-TZ]. + + contexts: String[Boolean] (optional). The contexts in which to use + this address. The boolean value MUST be "true". In addition to + the common contexts (Section 1.5.1), allowed key values are: + + * billing: an address to be used for billing. + * delivery: an address to be used for delivering physical items. + + full: String (optional). The full address, including street, region, + or country. The purpose of this property is to define an address, + even if the individual address components are not known. + + defaultSeparator: String (optional). The default separator to insert + between address component values when concatenating all address + component values to a single String. Also see the definition of + the kind property value "separator" for the AddressComponent + (Section 2.5.1.2) object. The defaultSeparator property MUST NOT + be set if the Address isOrdered property value is "false" or if + the components property is not set. + + pref: UnsignedInt (optional). The preference of the address in + relation to other addresses. Also see Section 1.5.3. + + phoneticScript: String (optional). The script used in the value of + the AddressComponent phonetic property. Also see Section 1.5.4. + + phoneticSystem: String (optional). The phonetic system used in the + AddressComponent phonetic property. Also see Section 1.5.4. + + The following example illustrates the use of the address property for + "54321 Oak St, Reston, CA 20190, USA". Additional examples are shown + in Section 2.5.1.3. + + "addresses": { + "k23": { + "contexts": { + "work": true + }, + "components": [ + { "kind": "number", "value": "54321" }, + { "kind": "separator", "value": " " }, + { "kind": "name", "value": "Oak St" }, + { "kind": "locality", "value": "Reston" }, + { "kind": "region", "value": "VA" }, + { "kind": "separator", "value": " " }, + { "kind": "postcode", "value": "20190" }, + { "kind": "country", "value": "USA" } + ], + "countryCode": "US", + "defaultSeparator": ", ", + "isOrdered": true + } + } + + Figure 31: Example of an Address in the USA + +2.5.1.2. AddressComponent Object + + An AddressComponent object has the following properties: + + @type: String. The JSContact type of the object. The value MUST be + "AddressComponent", if set. + + value: String (mandatory). The value of the address component. + + kind: String (mandatory). The kind of the address component. The + enumerated (Section 1.7.5) values are: + + * room: the room, suite number, or identifier. + * apartment: the extension designation such as the apartment + number, unit, or box number. + * floor: the floor or level the address is located on. + * building: the building, tower, or condominium the address is + located in. + * number: the street number, e.g., "123". This value is not + restricted to numeric values and can include any value such as + number ranges ("112-10"), grid style ("39.2 RD"), alphanumerics + ("N6W23001"), or fractionals ("123 1/2"). + * name: the street name. + * block: the block name or number. + * subdistrict: the subdistrict, ward, or other subunit of a + district. + * district: the district name. + * locality: the municipality, city, town, village, post town, or + other locality. + * region: the administrative area such as province, state, + prefecture, county, or canton. + * postcode: the postal code, post code, ZIP code, or other short + code associated with the address by the relevant country's + postal system. + * country: the country name. + * direction: the cardinal direction or quadrant, e.g., "north". + * landmark: the publicly known prominent feature that can + substitute the street name and number, e.g., "White House" or + "Taj Mahal". + * postOfficeBox: the post office box number or identifier. + * separator: a formatting separator between two ordered address + non-separator components. The value property of the component + includes the verbatim separator, for example, a hyphen + character or even an empty string. This value has higher + precedence than the defaultSeparator property of the Address. + Implementations MUST NOT insert two consecutive separator + components; instead, they SHOULD insert a single separator + component with the combined value. This component kind MUST + NOT be set if the Address isOrdered property value is "false". + + phonetic: String (optional). The pronunciation of the name + component. If this property is set, then at least one of the + Address object phoneticSystem or phoneticScript properties MUST be + set. Also see Section 1.5.4. + +2.5.1.3. Additional Address Examples + + The following example illustrates the use of the address property for + "46, 1 Sukhumvit 51 Alley, Khlong Tan Nuea, Watthana, Bangkok 10110, + Thailand". + + "addresses": { + "k25": { + "components": [ + { "kind": "number", "value": "46" }, + { "kind": "name", "value": "1 Sukhumvit 51 Alley" }, + { "kind": "subdistrict", "value": "Khlong Tan Nuea" }, + { "kind": "district", "value": " Watthana" }, + { "kind": "locality", "value": "Bangkok" }, + { "kind": "country", "value": "Thailand" }, + { "kind": "postcode", "value": "10110" } + ], + "defaultSeparator": ", ", + "isOrdered": true + } + } + + Figure 32: Example of an Address in Thailand + + The following example illustrates the use of the address property for + "2-7-2 Marunouchi, Chiyoda-ku, Tokyo 100-8994" and its Japanese + localization (Section 2.7.1). + + "addresses": { + "k26": { + "components": [ + { "kind": "block", "value": "2-7" }, + { "kind": "separator", "value": "-" }, + { "kind": "number", "value": "2" }, + { "kind": "separator", "value": " " }, + { "kind": "district", "value": "Marunouchi" }, + { "kind": "locality", "value": "Chiyoda-ku" }, + { "kind": "region", "value": "Tokyo" }, + { "kind": "separator", "value": " " }, + { "kind": "postcode", "value": "100-8994" } + ], + "defaultSeparator": ", ", + "full": "2-7-2 Marunouchi, Chiyoda-ku, Tokyo 100-8994", + "isOrdered": true + } + }, + "localizations": { + "jp": { + "addresses/k26": { + "components": [ + { "kind": "region", "value": "東京都" }, + { "kind": "locality", "value": "千代田区" }, + { "kind": "district", "value": "丸ノ内" }, + { "kind": "block", "value": "2-7" }, + { "kind": "separator", "value": "-" }, + { "kind": "number", "value": "2" }, + { "kind": "postcode", "value": "〒100-8994" } + ], + "defaultSeparator": "", + "full": "〒100-8994東京都千代田区丸ノ内2-7-2", + "isOrdered": true + } + } + } + + Figure 33: Example of an Address in Tokyo and Its Localization in + Japanese + +2.6. Resource Properties + + This section defines properties for digital resources associated with + the entity represented by the Card. + +2.6.1. cryptoKeys + + cryptoKeys: Id[CryptoKey] (optional). The cryptographic resources + such as public keys and certificates associated with the entity + represented by the Card. + + A CryptoKey object has all properties of the Resource (Section 1.4.4) + data type, with the following additional definition: + + * The @type property value MUST be "CryptoKey", if set. + + The following example shows how to refer to an external cryptographic + resource. + + "cryptoKeys": { + "mykey1": { + "uri": "https://www.example.com/keys/jdoe.cer" + } + } + + Figure 34: Example of cryptoKeys with External Data + + The following example shows how to embed key data in the CryptoKey. + The key data is depicted in multiple lines only for demonstration + purposes. + + "cryptoKeys": { + "mykey2": { + "uri": "data:application/pgp-keys;base64,LS0tLS1CRUdJTiBSU0EgUFVC + TElDIEtFWS0tLS0tCk1JSUJDZ0tDQVFFQSt4R1ovd2N6OXVnRnBQMDdOc + 3BvNlUxN2wwWWhGaUZweHhVNHBUazNMaWZ6OVIzenNJc3UKRVJ3dGE3K2 + ZXSWZ4T28yMDhldHQvamhza2lWb2RTRXQzUUJHaDRYQmlweVdvcEt3Wjk + zSEhhRFZaQUFMaS8yQQoreFRCdFdkRW83WEdVdWpLRHZDMi9hWkt1a2Zq + cE9pVUk4QWhMQWZqbWxjRC9VWjFRUGgwbUhzZ2xSTkNtcEN3Cm13U1hBO + VZObWh6K1BpQitEbWw0V1duS1cvVkhvMnVqVFh4cTcrZWZNVTRIMmZueT + NTZTNLWU9zRlBGR1oxVE4KUVNZbEZ1U2hXckhQdGlMbVVkUG9QNkNWMm1 + NTDF0aytsN0RJSXFYclFoTFVLREFDZU01cm9NeDBrTGhVV0I4UAorMHVq + MUNObE5ONEpSWmxDN3hGZnFpTWJGUlU5WjRONll3SURBUUFCCi0tLS0tR + U5EIFJTQSBQVUJMSUMgS0VZLS0tLS0K" + } + } + + Figure 35: Example of cryptoKeys with Embedded Data + +2.6.2. directories + + directories: Id[Directory] (optional). The directories containing + information about the entity represented by the Card. + + A Directory object has all properties of the Resource (Section 1.4.4) + data type, with the following additional definitions: + + * The @type property value MUST be "Directory", if set. + + * The kind property is mandatory. Its enumerated (Section 1.7.5) + values are: + + - directory: the resource is a directory service that the entity + represented by the Card is a part of. This typically is an + organizational directory that also contains associated + entities, e.g., co-workers and management in a company + directory. + + - entry: the resource is a directory entry of the entity + represented by the Card. In contrast to the "directory" type, + this is the specific URI for the entity _within_ a directory. + + In addition, the Directory object has the following property: + + listAs: UnsignedInt (optional). The position of the directory + resource in the list of all Directory objects having the same kind + property value in the Card. If set, the listAs value MUST be + higher than zero. Multiple directory resources MAY have the same + listAs property value or none. Sorting such same-valued entries + is implementation-specific. + + "directories": { + "dir1": { + "kind": "entry", + "uri": "https://dir.example.com/addrbook/jdoe/Jean%20Dupont.vcf" + }, + "dir2": { + "kind": "directory", + "uri": "ldap://ldap.example/o=Example%20Tech,ou=Engineering", + "pref": 1 + } + + Figure 36: Example for the directories Property + +2.6.3. links + + links: Id[Link] (optional). The links to resources that do not fit + any of the other use-case-specific resource properties. + + A Link object has all properties of the Resource (Section 1.4.4) data + type, with the following additional definitions: + + * The @type property value MUST be "Link", if set. + + * The kind property is optional. Its enumerated (Section 1.7.5) + values are: + + - contact: the resource is a URI by which the entity represented + by the Card may be contacted; this includes web forms or other + media that require user interaction. + + "links": { + "link3": { + "kind": "contact", + "uri": "mailto:contact@example.com", + "pref": 1 + } + } + + Figure 37: Example for the links Property + +2.6.4. media + + media: Id[Media] (optional). The media resources such as + photographs, avatars, or sounds that are associated with the + entity represented by the Card. + + A Media object has all properties of the Resource (Section 1.4.4) + data type, with the following additional definitions: + + * The @type property value MUST be "Media", if set. + + * The kind property is mandatory. Its enumerated (Section 1.7.5) + values are: + + - photo: the resource is a photograph or avatar. + + - sound: the resource is audio media, e.g., to specify the proper + pronunciation of the name property contents. + + - logo: the resource is a graphic image or logo associated with + the entity represented by the Card. + + "media": { + "res45": { + "kind": "sound", + "uri": "CID:JOHNQ.part8.19960229T080000.xyzMail@example.com" + }, + "res47": { + "kind": "logo", + "uri": "https://www.example.com/pub/logos/abccorp.jpg" + }, + "res1": { + "kind": "photo", + "uri": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAASABIAAD/4..." + } + } + + Figure 38: Example for the media Property + +2.7. Multilingual Properties + + This section defines properties for localizing the content of the + Card in human languages. + +2.7.1. localizations + + localizations: String[PatchObject] (optional). The property values + localized to languages other than the main language + (Section 2.1.5) of the Card. Localizations provide language- + specific alternatives for existing property values and SHOULD NOT + add new properties. The keys in the localizations property value + are language tags [RFC5646]; the values are of type PatchObject + and localize the Card in that language tag. The paths in the + PatchObject are relative to the Card that includes the + localizations property. A patch MUST NOT target the localizations + property. + + Conceptually, a Card is localized as follows: + + * Determine the language tag in which the Card should be localized. + + * If the localizations property includes a key for that language, + obtain the PatchObject value. If there is no such key, stop. + + * Create a copy of the Card, but do not copy the localizations + property. + + * Apply all patches in the PatchObject to the copy of the Card. + + * Optionally, set the language property in the copy of the Card. + + * Use the patched copy of the Card as the localized variant of the + original Card. + + A patch in the PatchObject may contain any value type. Its value + MUST be a valid value according to the definition of the patched + property. + + Figure 39 localizes the name property by completely replacing its + contents in Ukrainian language with Cyrillic script. + + { + "name": { + "components": [ + { "kind": "title", "value": "Mr." }, + { "kind": "given", "value": "Ivan" }, + { "kind": "given2", "value": "Petrovich" }, + { "kind": "surname", "value": "Vasiliev" } + ] + }, + "localizations": { + "uk-Cyrl": { + "name": { + "components": [ + { "kind": "title", "value": "г-н" }, + { "kind": "given", "value": "Иван" }, + { "kind": "given2", "value": "Петрович" }, + { "kind": "surname", "value": "Васильев" } + ] + } + } + } + } + + Figure 39: Example of Localizing a Top-Level Property + + Figure 40 localizes the title name by patching _inside_ the titles + property. All properties, except the name property in the Title + object, are left as is. + + "name": { + "full": "Gabriel García Márquez" + }, + "titles": { + "t1": { + "kind": "title", + "name": "novelist" + } + }, + "localizations": { + "es": { + "titles/t1/name": "escritor" + } + } + + Figure 40: Example of Localizing a Nested Property + +2.8. Additional Properties + + This section defines properties for which none of the previous + sections are appropriate. + +2.8.1. anniversaries + + anniversaries: Id[Anniversary] (optional). The memorable dates and + events for the entity represented by the Card. + + An Anniversary object has the following properties: + + @type: String. The JSContact type of the object. The value MUST be + "Anniversary", if set. + + kind: String (mandatory). The kind of anniversary. The enumerated + (Section 1.7.5) values are: + + * birth: a birthday anniversary + * death: a deathday anniversary + * wedding: a wedding day anniversary + + date: PartialDate|Timestamp (mandatory; defaultType: PartialDate). T + he date of the anniversary in the Gregorian calendar. This MUST + be either a whole or partial calendar date or a complete UTC + timestamp (see the definition of the Timestamp and PartialDate + object types below). + + place: Address (optional). An address associated with this + anniversary, e.g., the place of birth or death. + + A PartialDate object represents a complete or partial calendar date + in the Gregorian calendar. It represents a complete date, a year, a + month in a year, or a day in a month. It has the following + properties: + + @type: String. The JSContact type of the object. The value MUST be + "PartialDate", if set. + + year: UnsignedInt (optional). The calendar year. + + month: UnsignedInt (optional). The calendar month, represented as + the integers 1 <= month <= 12. If this property is set, then + either the year or the day property MUST be set. + + day: UnsignedInt (optional). The calendar month day, represented as + the integers 1 <= day <= 31, depending on the validity within the + month and year. If this property is set, then the month property + MUST be set. + + calendarScale: String (optional). The calendar system in which this + date occurs, in lowercase. This MUST be either a calendar system + name registered as a Common Locale Data Repository (CLDR) + [RFC7529] or a vendor-specific value. The year, month, and day + still MUST be represented in the Gregorian calendar. Note that + the year property might be required to convert the date between + the Gregorian calendar and the respective calendar system. + + A Timestamp object has the following properties: + + @type: String. The JSContact type of the object. The value MUST be + "Timestamp", if set. + + utc: UTCDateTime (mandatory). The point in time in UTC time. + + Figure 41 illustrates anniversaries with partial dates and a + timestamp. Note how the @type property is set for the Timestamp + object value according to the rules defined in Section 1.3.4. + + "anniversaries": { + "k8": { + "kind": "birth", + "date": { + "year": 1953, + "month": 4, + "day": 15 + } + }, + "k9": { + "kind": "death", + "date": { + "@type": "Timestamp", + "utc": "2019-10-15T23:10:00Z" + }, + "place": { + "full": "4445 Tree Street\nNew England, ND 58647\nUSA" + } + } + } + + Figure 41: Example for the anniversaries Property + +2.8.2. keywords + + keywords: String[Boolean] (optional). The set of free-text keywords, + also known as _tags_. Each key in the set is a keyword, and each + boolean value MUST be "true". + + "keywords": { + "internet": true, + "IETF": true + } + + Figure 42: Example for the keywords Property + +2.8.3. notes + + notes: Id[Note] (optional). The free-text notes that are associated + with the Card. + + A Note object has the following properties: + + @type: String. The JSContact type of the object. The value MUST be + "Note", if set. + + note: String (mandatory). The free-text value of this note. + + created: UTCDateTime (optional). The date and time when this note + was created. + + author: Author (optional). The author of this note. + + An Author object has the following properties, of which at least one + property other than @type MUST be set: + + @type: String. The JSContact type of the object. The value MUST be + "Author", if set. + + name: String (optional). The name of this author. + + uri: String (optional). The URI value that identifies the author. + + "notes": { + "n1": { + "note": "Open office hours are 1600 to 1715 EST, Mon-Fri", + "created": "2022-11-23T15:01:32Z", + "author": { + "name": "John" + } + } + } + + Figure 43: Example for the notes Property + +2.8.4. personalInfo + + personalInfo: Id[PersonalInfo] (optional). The personal information + of the entity represented by the Card. + + A PersonalInfo object has the following properties: + + @type: String. The JSContact type of the object. The value MUST be + "PersonalInfo", if set. + + kind: String (mandatory). The kind of personal information. The + enumerated (Section 1.7.5) values are: + + * expertise: a field of expertise or a credential + + * hobby: a hobby + + * interest: an interest + + value: String (mandatory). The actual information. + + level: String (optional). The level of expertise or engagement in + hobby or interest. The enumerated (Section 1.7.5) values are: + + * high + + * medium + + * low + + listAs: UnsignedInt (optional). The position of the personal + information in the list of all PersonalInfo objects that have the + same kind property value in the Card. If set, the listAs value + MUST be higher than zero. Multiple personal information entries + MAY have the same listAs property value or none. Sorting such + same-valued entries is implementation-specific. + + label: String (optional). A custom label. See Section 1.5.2. + + "personalInfo": { + "pi2": { + "kind": "expertise", + "value": "chemistry", + "level": "high" + }, + "pi1": { + "kind": "hobby", + "value": "reading", + "level": "high" + }, + "pi6": { + "kind": "interest", + "value": "r&b music", + "level": "medium" + } + } + + Figure 44: Example for the personalInfo Property + +3. IANA Considerations + +3.1. Media Type Registration + + This document defines a media type for use with JSContact data + formatted in JSON. + + Type name: application + + Subtype name: jscontact+json + + Required parameters: None + + Optional parameters: version + + This parameter conveys the version of the JSContact data in the + body part. It MUST NOT occur more than once. If this parameter + is set, then the values of all JSContact version (Table 2) + properties in the body part MUST match the parameter value. + + Encoding considerations: This is the same as the encoding + considerations of application/json, as specified in Section 11 of + [RFC8259]. + + Security considerations: See Section 4 of RFC 9553. + + Interoperability considerations: While JSContact is designed to + avoid ambiguities as much as possible, when converting objects + from other contact formats to/from JSContact, it is possible that + differing representations for the same logical data or ambiguities + in interpretation might arise. The semantic equivalence of two + JSContact objects may be determined differently by different + applications, for example, where URL values differ in case between + the two objects. + + Published specification: RFC 9553 + + Applications that use this media type: Applications that currently + make use of the text/vcard media type can use this as an + alternative. + + Fragment identifier considerations: A JSON Pointer fragment + identifier may be used, as defined in [RFC6901], Section 6. + + Additional information: + + Magic number(s): N/A + File extensions(s): N/A + Macintosh file type code(s): N/A + + Person & email address to contact for further information: + calsify@ietf.org + + Intended usage: COMMON + + Restrictions on usage: N/A + + Author: See the "Authors' Addresses" section of RFC 9553. + + Change controller: IETF + +3.2. Creation of the JSContact Registry Group + + IANA has created the "JSContact" registry group. The new registry + definitions in the following sections all belong to that group. + +3.3. Registry Policy and Change Procedures + + Registry assignments that introduce backwards-incompatible + (Section 1.9) changes require the JSContact major version to change; + other changes only require a change to the minor version. The + registry policy for assignments that require the JSContact major + version to change is Standards Action ([RFC8126], Section 4.9). The + registry policy for other assignments is Specification Required + ([RFC8126], Section 4.6). + + The designated expert (DE) decides if a major or minor version change + is required and assigns the new version to the "JSContact Version" + registry (Section 3.4). Version numbers increment by one, and a + major version change resets the minor version to zero. An assignment + may apply multiple changes and to more than one registry at once, in + which case a single version change is sufficient. If the registry + policy is Specification Required, then the DE may decide that it is + enough to document the new assignment in the Description item of the + respective registry. + + A registration MUST have an intended usage of "common", "reserved", + or "obsolete". + + * A "common" usage denotes an item with shared semantics and syntax + across systems. Up-to-date systems MUST expect such items to + occur in JSContact data. + + * A "reserved" usage reserves an item in the registry without + assigning semantics to avoid name collisions with future + extensions or protocol use. Implementations MUST NOT expect or + add items with such names outside the protocols or extensions that + use them; otherwise, any such JSContact data is invalid. + + * An "obsolete" usage denotes an item that is no longer expected to + be added by up-to-date systems. A new assignment has probably + been defined, covering the obsolete item's semantics. + Implementations MUST expect such items to occur in JSContact data + up to the "Until Version" registry field, inclusively. They MUST + NOT add such items for any version after which the item was + obsoleted; otherwise, any such JSContact data is invalid. + + The intended usage of registry items may change between versions, but + the DE must carefully consider the impact on existing implementations + and standards before doing so. + + The registration procedure is not a formal standards process but + rather an administrative procedure intended to allow community + comments and to check whether it is coherent without excessive time + delay. It is designed to encourage vendors to document and register + new items they add for use cases not covered by the original + specification, leading to increased interoperability. + +3.3.1. Preliminary Community Review + + Notice of a potential new registration MUST be sent to the Calext WG + mailing list for review. This mailing list is + appropriate for soliciting community feedback on a proposed registry + assignment. + + The intent of the public posting to this list is to solicit comments + and feedback on the choice of the item name or value, the unambiguity + of its description, and a review of any interoperability or security + considerations. The submitter may submit a revised registration + proposal or abandon the registration completely at any time. + +3.3.2. Submit Request to IANA + + Registration requests can be sent to IANA . + +3.3.3. Designated Expert Review + + The primary concern of the DE is preventing name collisions and + encouraging the submitter to document security and privacy + considerations. + + A new type name, property name, or enumerated value MUST NOT differ + only in case from an already-registered name or value. + + For a common-use registration, the DE is expected to confirm that + suitable documentation is available to ensure interoperability. The + DE should also verify that the new assignment does not conflict with + work that is active or already published within the IETF. + + The DE will either approve or deny the registration request and + publish a notice of the decision to the Calext WG mailing list or its + successor, as well as inform IANA. A denial notice must be justified + by an explanation, and in the cases where it is possible, concrete + suggestions on how the request can be modified to become acceptable + should be provided. + +3.3.4. Change Procedures + + Once a JSContact registry group item has been published by IANA, the + Change Controller may request a change to its definition. The same + procedure that would be appropriate for the original registration + request is used to process a change request. + + JSContact registrations do not get deleted; instead, items that are + no longer believed appropriate for use are declared obsolete by a + change to their "Intended Usage" field; such items will be clearly + marked in the IANA registry. + + Significant changes to a JSContact registry item's definition should + be requested only when there are serious omissions or errors in the + published specification, as such changes may cause interoperability + issues. When review is required, a change request may be denied if + it renders entities that were valid under the previous definition + invalid under the new definition. + +3.4. Creation of the JSContact Version Registry + + IANA has created the "JSContact Version" registry. The purpose of + this new registry is to define the allowed value range of JSContact + major and minor version numbers. + + The registry entries sort numerically in ascending order by the + "Major Version" column, and entries with equal "Major Version" sort + numerically in ascending order by the "Minor Version" column. + + The registry process is outlined in Section 3.3. + +3.4.1. JSContact Version Registry Template + + Major Version: The numeric value of a JSContact major version + number. It MUST be a positive integer. + + Highest Minor Version: The maximum numeric value of a JSContact + minor version for the given major version. It MUST be zero or a + positive integer. All numbers less than or equal to this value + are valid minor version values for the given major version. + +3.4.2. Initial Contents of the JSContact Version Registry + + The following table lists the initial valid major and minor version + number ranges. + + +===============+=======================+===========+ + | Major Version | Highest Minor Version | Reference | + +===============+=======================+===========+ + | 1 | 0 | RFC 9553 | + +---------------+-----------------------+-----------+ + + Table 1: JSContact Version Registry + +3.5. Creation of the JSContact Properties Registry + + IANA has created the "JSContact Properties" registry. The purpose of + this new registry is to allow interoperability of extensions to + JSContact objects. + + The registry entries sort alphabetically in ascending order by the + following columns: "Property Name" first, "Property Context" second, + and "Since Version" third. Equal entries sort in any order. + + The registry process for a new property is outlined in Section 3.3. + +3.5.1. JSContact Properties Registry Template + + Property Name: The name of the property. The property name MUST NOT + already be registered for any of the object types listed in the + "Property Context" field of this registration. Other object types + MAY have already registered a different property with the same + name; however, the same name MUST only be used when the semantics + are analogous. + + Property Type: For properties with intended usage other than + "reserved", this is the type of this property, using type + signatures as specified in Section 1.3.2. The property type MUST + be registered in the "JSContact Types" registry. For reserved + property names, the value MUST be the verbatim string "not + applicable". + + Property Context: A comma-separated list of JSContact object types + (Section 3.6.2) that contain the property. For reserved property + names, the value MAY be the verbatim string "not applicable". + + Intended Usage: May be "common", "reserved", or "obsolete". + + Since Version: The JSContact version on which the property + definition is based. The version MUST be one of the allowed + values of the version property in the "JSContact Version" registry + (see Table 1). + + Until Version: The JSContact version after which the property was + obsoleted; therefore, it MUST NOT be used in later versions. The + Until Version value either MUST NOT be set or MUST be one of the + allowed values of the version property in the "JSContact Version" + registry (see Table 1). + + Change Controller: Person or entity responsible for requesting a + change to the entry's definition ("IETF" for RFCs from the IETF + stream). + + Reference or Description: A brief description or RFC number and + section reference where the property is specified. This must + include references to all RFC documents where this property is + introduced or updated. For reserved property names, the reference + or description MAY be omitted. + +3.5.2. Initial Contents of the JSContact Properties Registry + + The following table lists the initial "common" usage entries of the + "JSContact Properties" registry. For all properties, the Since + Version is "1.0", the Until Version is not set, the Change Controller + is "IETF", and RFC section references are for RFC 9553. + + +=====================+=======================+====================+ + | Property Name | Property Type | Property Context | + +=====================+=======================+====================+ + | @type | String | Address | + | | | (Section 2.5.1.1), | + | | | AddressComponent | + | | | (Section 2.5.1.2), | + | | | Anniversary | + | | | (Section 2.8.1), | + | | | Author | + | | | (Section 2.8.3), | + | | | Card | + | | | (Section 2.1.1), | + | | | Calendar | + | | | (Section 2.4.1), | + | | | CryptoKey | + | | | (Section 2.6.1), | + | | | Directory | + | | | (Section 2.6.2), | + | | | EmailAddress | + | | | (Section 2.3.1), | + | | | LanguagePref | + | | | (Section 2.3.4), | + | | | Link | + | | | Section 2.6.3), | + | | | Media | + | | | (Section 2.6.4), | + | | | Name | + | | | (Section 2.2.1.1), | + | | | NameComponent | + | | | (Section 2.2.1.2), | + | | | Nickname | + | | | (Section 2.2.2), | + | | | Note | + | | | (Section 2.8.3), | + | | | OnlineService | + | | | (Section 2.3.2), | + | | | Organization | + | | | (Section 2.2.3), | + | | | OrgUnit | + | | | (Section 2.2.3), | + | | | PartialDate | + | | | (Section 2.8.1), | + | | | PersonalInfo | + | | | (Section 2.8.4), | + | | | Phone | + | | | (Section 2.3.3), | + | | | Pronouns | + | | | (Section 2.2.4), | + | | | Relation | + | | | (Section 2.1.8), | + | | | SchedulingAddress | + | | | (Section 2.4.2), | + | | | SpeakToAs | + | | | (Section 2.2.4), | + | | | Timestamp | + | | | (Section 2.8.1), | + | | | Title | + | | | (Section 2.2.5) | + +---------------------+-----------------------+--------------------+ + | address | String | EmailAddress | + | | | (Section 2.3.1) | + +---------------------+-----------------------+--------------------+ + | addresses | Id[Address] | Card | + | | | (Section 2.5.1.1) | + +---------------------+-----------------------+--------------------+ + | anniversaries | Id[Anniversary] | Card | + | | | (Section 2.8.1) | + +---------------------+-----------------------+--------------------+ + | author | Author | Note | + | | | (Section 2.8.3) | + +---------------------+-----------------------+--------------------+ + | calendars | Id[Calendar] | Card | + | | | (Section 2.4.1) | + +---------------------+-----------------------+--------------------+ + | calendarScale | String | PartialDate | + | | | (Section 2.8.1) | + +---------------------+-----------------------+--------------------+ + | components | AddressComponent[] | Address | + | | | (Section 2.5.1.1) | + +---------------------+-----------------------+--------------------+ + | components | NameComponent[] | Name | + | | | (Section 2.2.1.2) | + +---------------------+-----------------------+--------------------+ + | contexts | String[Boolean] | Address | + | | | (Section 2.5.1.1), | + | | | Calendar | + | | | (Section 2.4.1), | + | | | CryptoKey | + | | | (Section 2.6.1), | + | | | Directory | + | | | (Section 2.6.2), | + | | | EmailAddress | + | | | (Section 2.3.1), | + | | | LanguagePref | + | | | (Section 2.3.4), | + | | | Link | + | | | (Section 2.6.3), | + | | | Media | + | | | (Section 2.6.4), | + | | | Nickname | + | | | (Section 2.2.2), | + | | | OnlineService | + | | | (Section 2.3.2), | + | | | Organization | + | | | (Section 2.2.3), | + | | | Phone | + | | | (Section 2.3.3), | + | | | Pronouns | + | | | (Section 2.2.4), | + | | | SchedulingAddress | + | | | (Section 2.4.2). | + | | | Also see Sections | + | | | 1.4.4 and 1.5.1. | + +---------------------+-----------------------+--------------------+ + | coordinates | String | Address | + | | | (Section 2.5.1.1) | + +---------------------+-----------------------+--------------------+ + | countryCode | String | Address | + | | | (Section 2.5.1.1) | + +---------------------+-----------------------+--------------------+ + | created | UTCDateTime | Card | + | | | (Section 2.1.3), | + | | | Note | + | | | (Section 2.8.3) | + +---------------------+-----------------------+--------------------+ + | date | PartialDate|Timestamp | Anniversary | + | | | (Section 2.8.1) | + +---------------------+-----------------------+--------------------+ + | day | UnsignedInt | PartialDate | + | | | (Section 2.8.1) | + +---------------------+-----------------------+--------------------+ + | defaultSeparator | String | Address | + | | | (Section 2.5.1.1), | + | | | Name | + | | | (Section 2.2.1.1) | + +---------------------+-----------------------+--------------------+ + | directories | Id[Directory] | Card | + | | | (Section 2.6.2) | + +---------------------+-----------------------+--------------------+ + | emails | Id[EmailAddress] | Card | + | | | (Section 2.3.1) | + +---------------------+-----------------------+--------------------+ + | features | String[Boolean] | Phone | + | | | (Section 2.3.3) | + +---------------------+-----------------------+--------------------+ + | full | String | Address | + | | | (Section 2.5.1.1), | + | | | Name | + | | | (Section 2.2.1.1) | + +---------------------+-----------------------+--------------------+ + | grammaticalGender | String | SpeakToAs | + | | | (Section 2.2.4) | + +---------------------+-----------------------+--------------------+ + | isOrdered | Boolean | Address | + | | | (Section 2.5.1.1), | + | | | Name | + | | | (Section 2.2.1.1) | + +---------------------+-----------------------+--------------------+ + | keywords | String[Boolean] | Card | + | | | (Section 2.8.2) | + +---------------------+-----------------------+--------------------+ + | kind | String | AddressComponent | + | | | (Section 2.5.1.2), | + | | | Anniversary | + | | | (Section 2.8.1), | + | | | Calendar | + | | | (Section 2.4.1), | + | | | Card | + | | | (Section 2.1.4), | + | | | CryptoKey | + | | | (Section 2.6.1), | + | | | Directory | + | | | (Section 2.6.2), | + | | | Link | + | | | (Section 2.6.3), | + | | | Media | + | | | (Section 2.6.4), | + | | | NameComponent | + | | | (Section 2.2.1.2), | + | | | PersonalInfo | + | | | (Section 2.8.4), | + | | | Title | + | | | (Section 2.2.5) | + +---------------------+-----------------------+--------------------+ + | label | String | Calendar | + | | | (Section 2.4.1), | + | | | CryptoKey | + | | | (Section 2.6.1), | + | | | Directory | + | | | (Section 2.6.2), | + | | | EmailAddress | + | | | (Section 2.3.1), | + | | | Link | + | | | (Section 2.6.3), | + | | | Media | + | | | (Section 2.6.4), | + | | | OnlineService | + | | | (Section 2.3.2), | + | | | PersonalInfo | + | | | (Section 2.8.4), | + | | | Phone | + | | | (Section 2.3.3), | + | | | SchedulingAddress | + | | | (Section 2.4.2). | + | | | Also see Sections | + | | | 1.4.4 and 1.5.2. | + +---------------------+-----------------------+--------------------+ + | language | String | Card | + | | | (Section 2.1.5), | + | | | LanguagePref | + | | | (Section 2.3.4) | + +---------------------+-----------------------+--------------------+ + | level | String | PersonalInfo | + | | | (Section 2.8.4) | + +---------------------+-----------------------+--------------------+ + | links | Id[Link] | Card | + | | | (Section 2.6.3) | + +---------------------+-----------------------+--------------------+ + | listAs | UnsignedInt | Directory | + | | | (Section 2.6.2), | + | | | PersonalInfo | + | | | (Section 2.8.4) | + +---------------------+-----------------------+--------------------+ + | localizations | String[PatchObject] | Card | + | | | (Section 2.7.1) | + +---------------------+-----------------------+--------------------+ + | media | Id[Media] | Card | + | | | (Section 2.6.4) | + +---------------------+-----------------------+--------------------+ + | mediaType | String | Calendar | + | | | (Section 2.4.1), | + | | | CryptoKey | + | | | (Section 2.6.1), | + | | | Directory | + | | | (Section 2.6.2), | + | | | Link | + | | | (Section 2.6.3), | + | | | Media | + | | | (Section 2.6.4). | + | | | Also see | + | | | Section 1.4.4. | + +---------------------+-----------------------+--------------------+ + | members | String[Boolean] | Card | + | | | (Section 2.1.6) | + +---------------------+-----------------------+--------------------+ + | month | UnsignedInt | PartialDate | + | | | (Section 2.8.1) | + +---------------------+-----------------------+--------------------+ + | name | Name | Card | + | | | (Section 2.2.1.1) | + +---------------------+-----------------------+--------------------+ + | name | String | Author | + | | | (Section 2.8.3), | + | | | Nickname | + | | | (Section 2.2.2), | + | | | Organization | + | | | (Section 2.2.3), | + | | | OrgUnit | + | | | (Section 2.2.3), | + | | | Title | + | | | (Section 2.2.5) | + +---------------------+-----------------------+--------------------+ + | nicknames | Id[Nickname] | Card | + | | | (Section 2.2.2) | + +---------------------+-----------------------+--------------------+ + | note | String | Note | + | | | (Section 2.8.3) | + +---------------------+-----------------------+--------------------+ + | notes | Id[Note] | Card | + | | | (Section 2.8.3) | + +---------------------+-----------------------+--------------------+ + | number | String | Phone | + | | | (Section 2.3.3) | + +---------------------+-----------------------+--------------------+ + | onlineServices | Id[OnlineService] | Card | + | | | (Section 2.3.2) | + +---------------------+-----------------------+--------------------+ + | organizationId | String | Title | + | | | (Section 2.2.5) | + +---------------------+-----------------------+--------------------+ + | organizations | Id[Organization] | Card | + | | | (Section 2.2.3) | + +---------------------+-----------------------+--------------------+ + | personalInfo | Id[PersonalInfo] | Card | + | | | (Section 2.8.4) | + +---------------------+-----------------------+--------------------+ + | phones | Id[Phone] | Card | + | | | (Section 2.3.3) | + +---------------------+-----------------------+--------------------+ + | phonetic | String | AddressComponent | + | | | (Section 2.5.1.2), | + | | | NameComponent | + | | | (Section 2.2.1.2) | + +---------------------+-----------------------+--------------------+ + | phoneticScript | String | Address | + | | | (Section 2.5.1.1), | + | | | Name | + | | | (Section 2.2.1.1) | + +---------------------+-----------------------+--------------------+ + | phoneticSystem | String | Address (2.5.1.1), | + | | | Name | + | | | (Section 2.2.1.1) | + +---------------------+-----------------------+--------------------+ + | place | Address | Anniversary | + | | | (Section 2.8.1) | + +---------------------+-----------------------+--------------------+ + | pref | UnsignedInt | Address | + | | | (Section 2.5.1.1), | + | | | Calendar | + | | | (Section 2.4.1), | + | | | CryptoKey | + | | | (Section 2.6.1), | + | | | Directory | + | | | (Section 2.6.2), | + | | | EmailAddress | + | | | (Section 2.3.1), | + | | | LanguagePref | + | | | (Section 2.3.4), | + | | | Link | + | | | (Section 2.6.3), | + | | | Media | + | | | (Section 2.6.4), | + | | | Nickname | + | | | (Section 2.2.2), | + | | | OnlineService | + | | | (Section 2.3.2), | + | | | Phone | + | | | (Section 2.3.3), | + | | | Pronouns | + | | | (Section 2.2.4), | + | | | SchedulingAddress | + | | | (Section 2.4.2). | + | | | Also see Sections | + | | | 1.4.4 and 1.5.3. | + +---------------------+-----------------------+--------------------+ + | preferredLanguages | String[LanguagePref] | Card | + | | | (Section 2.3.4) | + +---------------------+-----------------------+--------------------+ + | prodId | String | Card | + | | | (Section 2.1.7) | + +---------------------+-----------------------+--------------------+ + | pronouns | Id[Pronouns] | SpeakToAs | + | | | (Section 2.2.4) | + +---------------------+-----------------------+--------------------+ + | relatedTo | String[Relation] | Card | + | | | (Section 2.1.8) | + +---------------------+-----------------------+--------------------+ + | relation | String[Boolean] | Relation | + | | | (Section 2.1.8) | + +---------------------+-----------------------+--------------------+ + | schedulingAddresses | Id[SchedulingAddress] | Card | + | | | (Section 2.4.2) | + +---------------------+-----------------------+--------------------+ + | service | String | OnlineService | + | | | (Section 2.3.2) | + +---------------------+-----------------------+--------------------+ + | sortAs | String[String] | Name | + | | | (Section 2.2.1.1) | + +---------------------+-----------------------+--------------------+ + | sortAs | String | Organization | + | | | (Section 2.2.3), | + | | | OrgUnit | + | | | (Section 2.2.3) | + +---------------------+-----------------------+--------------------+ + | speakToAs | SpeakToAs | Card | + | | | (Section 2.2.4) | + +---------------------+-----------------------+--------------------+ + | timeZone | String | Address | + | | | (Section 2.5.1.1) | + +---------------------+-----------------------+--------------------+ + | titles | Id[Title] | Card | + | | | (Section 2.2.5) | + +---------------------+-----------------------+--------------------+ + | uid | String | Card | + | | | (Section 2.1.9) | + +---------------------+-----------------------+--------------------+ + | units | OrgUnit[] | Organization | + | | | (Section 2.2.3) | + +---------------------+-----------------------+--------------------+ + | updated | UTCDateTime | Card | + | | | (Section 2.1.10) | + +---------------------+-----------------------+--------------------+ + | uri | String | Author | + | | | (Section 2.8.3), | + | | | Calendar | + | | | (Section 2.4.1), | + | | | CryptoKey | + | | | (Section 2.6.1), | + | | | Directory | + | | | (Section 2.6.2), | + | | | Link | + | | | (Section 2.6.3), | + | | | Media | + | | | (Section 2.6.4), | + | | | OnlineService | + | | | (Section 2.3.2), | + | | | SchedulingAddress | + | | | (Section 2.4.2). | + | | | Also see | + | | | Section 1.4.4. | + +---------------------+-----------------------+--------------------+ + | user | String | OnlineService | + | | | (Section 2.3.2) | + +---------------------+-----------------------+--------------------+ + | utc | UTCDateTime | Timestamp | + | | | (Section 2.8.1) | + +---------------------+-----------------------+--------------------+ + | value | String | AddressComponent | + | | | (Section 2.5.1.2), | + | | | NameComponent | + | | | (Section 2.2.1.2), | + | | | PersonalInfo | + | | | (Section 2.8.4) | + +---------------------+-----------------------+--------------------+ + | version | String | Card | + | | | (Section 2.1.2) | + +---------------------+-----------------------+--------------------+ + | year | UnsignedInt | PartialDate | + | | | (Section 2.8.1) | + +---------------------+-----------------------+--------------------+ + + Table 2: JSContact Properties with "common" Usage + + The following table lists the initial "reserved" usage entries of the + "JSContact Properties" registry. For this property, the Change + Controller is "IETF", and the RFC section reference is for RFC 9553. + + +===============+============+============+==========+=============+ + | Property Name | Property | Property | Intended | Reference/ | + | | Type | Context | Usage | Description | + +===============+============+============+==========+=============+ + | extra | not | not | reserved | Section | + | | applicable | applicable | | 1.7.3.1 | + +---------------+------------+------------+----------+-------------+ + + Table 3: JSContact Properties with "reserved" Usage + +3.6. Creation of the JSContact Types Registry + + IANA has created the "JSContact Types" registry. The purpose of this + new registry is to avoid name collisions for JSContact type names and + provide a complete reference for all data types used for JSContact + property values. + + The registry entries sort alphabetically in ascending order by the + "Type Name" column. Equal entries sort in any order. + + The registry process for a new type is outlined in Section 3.3. + +3.6.1. JSContact Types Registry Template + + Type Name: The name of the type. + + Intended Usage: May be "common", "reserved", or "obsolete". + + Since Version: The JSContact version on which this type definition + is based. The version MUST be one of the allowed values of the + version property in the "JSContact Version" registry (see + Table 1). + + Until Version: The JSContact version after which the type definition + was obsoleted; therefore, it MUST NOT be used in later versions. + The Until Version value either MUST NOT be set or MUST be one of + the allowed values of the version property in the "JSContact + Version" registry (see Table 1). + + Change Controller: Person or entity responsible for requesting a + change to the entry's definition ("IETF" for RFCs from the IETF + stream). + + Reference or Description: A brief description or RFC number and + section reference where the Type is specified. For reserved type + names, the reference or description MAY be omitted. + +3.6.2. Initial Contents of the JSContact Types Registry + + The following table lists the initial "common" usage entries in the + "JSContact Types" registry. For all of these types, the Since + Version is "1.0", the Until Version is not set, the Change Controller + is "IETF", and RFC section references are for RFC 9553. + + +===================+=======================+ + | Type Name | Reference/Description | + +===================+=======================+ + | Address | Section 2.5.1.1 | + +-------------------+-----------------------+ + | AddressComponent | Section 2.5.1.2 | + +-------------------+-----------------------+ + | Anniversary | Section 2.8.1 | + +-------------------+-----------------------+ + | Author | Section 2.8.3 | + +-------------------+-----------------------+ + | Boolean | Section 1.3.2 | + +-------------------+-----------------------+ + | Calendar | Section 2.4.1 | + +-------------------+-----------------------+ + | Card | Section 2 | + +-------------------+-----------------------+ + | CryptoKey | Section 2.6.1 | + +-------------------+-----------------------+ + | Directory | Section 2.6.2 | + +-------------------+-----------------------+ + | EmailAddress | Section 2.3.1 | + +-------------------+-----------------------+ + | Id | Section 1.4.1 | + +-------------------+-----------------------+ + | Int | Section 1.4.2 | + +-------------------+-----------------------+ + | LanguagePref | Section 2.3.4 | + +-------------------+-----------------------+ + | Link | Section 2.6.3 | + +-------------------+-----------------------+ + | Media | Section 2.6.4 | + +-------------------+-----------------------+ + | Name | Section 2.2.1.1 | + +-------------------+-----------------------+ + | NameComponent | Section 2.2.1.2 | + +-------------------+-----------------------+ + | Nickname | Section 2.2.2 | + +-------------------+-----------------------+ + | Note | Section 2.8.3 | + +-------------------+-----------------------+ + | Number | Section 1.3.2 | + +-------------------+-----------------------+ + | OnlineService | Section 2.3.2 | + +-------------------+-----------------------+ + | Organization | Section 2.2.3 | + +-------------------+-----------------------+ + | OrgUnit | Section 2.2.3 | + +-------------------+-----------------------+ + | PartialDate | Section 2.8.1 | + +-------------------+-----------------------+ + | PatchObject | Section 1.4.3 | + +-------------------+-----------------------+ + | PersonalInfo | Section 2.8.4 | + +-------------------+-----------------------+ + | Phone | Section 2.3.3 | + +-------------------+-----------------------+ + | Pronouns | Section 2.2.4 | + +-------------------+-----------------------+ + | Relation | Section 2.1.8 | + +-------------------+-----------------------+ + | SchedulingAddress | Section 2.4.2 | + +-------------------+-----------------------+ + | SpeakToAs | Section 2.2.4 | + +-------------------+-----------------------+ + | String | Section 1.3.2 | + +-------------------+-----------------------+ + | Timestamp | Section 2.8.1 | + +-------------------+-----------------------+ + | Title | Section 2.2.5 | + +-------------------+-----------------------+ + | UnsignedInt | Section 1.4.2 | + +-------------------+-----------------------+ + | UTCDateTime | Section 1.4.5 | + +-------------------+-----------------------+ + + Table 4: JSContact Types with "common" Usage + + The following table lists the initial "reserved" usage entry of the + "JSContact Types" registry. For this type, the version is "1.0", the + Change Controller is "IETF", and the RFC section reference is for RFC + 9553. + + +===========+=======================+ + | Type Name | Reference/Description | + +===========+=======================+ + | Resource | Section 1.4.4 | + +-----------+-----------------------+ + + Table 5: JSContact Types with + "reserved" Usage + +3.7. Creation of the JSContact Enum Values Registry + + IANA has created the "JSContact Enum Values" registry. The purpose + of the new registry is to allow interoperable extension of semantics + for JSContact properties with enumerable values. Each such property + will have a subregistry of allowed values. + + The registry entries sort alphabetically in ascending order by the + following columns: "Property Name" first, "Property Context" second, + and "Since Version" third. The enum values sort alphabetically in + ascending order. Equal entries sort in any order. + + The registry process for a new enum value or adding a new enumerable + property is outlined in Section 3.3. + +3.7.1. JSContact Enum Values Registry Property Template + + This template is for adding a subregistry for a new enumerable + property to the "JSContact Enum Values" registry. + + Property Name: The name(s) of the property or properties where these + values may be used. This MUST be registered in the "JSContact + Properties" registry. + + Context: The list of allowed object types where the property or + properties may appear, as registered in the "JSContact Properties" + registry. This disambiguates where there may be two distinct + properties with the same name in different contexts. + + Since Version: The JSContact version on which the enum value + definition is based. The version MUST be one of the allowed + values of the version property in the "JSContact Version" registry + (see Table 1). + + Until Version: The JSContact version after which the enum value + definition was obsoleted; therefore, the enum value definition + MUST NOT be used in later versions. The Until Version value + either MUST NOT be set or MUST be one of the allowed values of the + version property in the "JSContact Version" registry (see + Table 1). + + Change Controller: Person or entity responsible for requesting a + change to the entry's definition ("IETF" for RFCs from the IETF + stream). + + Reference or Description: A brief description or RFC number and + section reference for the semantics of the value. + + Note that the initial contents will be the initial list of defined + values for the enum, using the template defined in Section 3.7.2. A + subregistry will be created with these values for this property name/ + context tuple. + +3.7.2. JSContact Enum Values Registry Value Template + + This template is for adding a new enum value to a subregistry in the + "JSContact Enum Values" registry. + + Enum Value: The verbatim value of the enum. + + Since Version: The JSContact version on which the enum value + definition is based. The version MUST be one of the allowed + values of the version property in the "JSContact Version" registry + (see Table 1). + + Until Version: The JSContact version after which the enum value was + obsoleted; therefore, the enum value MUST NOT be used in later + versions. The Until Version value either MUST NOT be set or MUST + be one of the allowed values of the version property in the + "JSContact Version" registry (see Table 1). + + Change Controller: Person or entity responsible for requesting a + change to the entry's definition ("IETF" for RFCs from the IETF + stream). + + Reference or Description: A brief description or RFC number and + section reference for the semantics of the value. + +3.7.3. Initial Contents of the JSContact Enum Values Registry + + For all entries in each subregistry created in this section, the + Since Version is "1.0", the Until Version is not set, the Change + Controller is "IETF", and RFC section references are for RFC 9553. + + Property Name: contexts + Context: Address + + Initial Contents: + +============+=======================+ + | Enum Value | Reference/Description | + +============+=======================+ + | billing | Section 2.5.1.1 | + +------------+-----------------------+ + | delivery | Section 2.5.1.1 | + +------------+-----------------------+ + | private | Section 1.5.1 | + +------------+-----------------------+ + | work | Section 1.5.1 | + +------------+-----------------------+ + + Table 6: JSContact Enum Values for + contexts (Context: Address) + + Property Name: contexts + Context: Calendar, CryptoKey, Directory, EmailAddress, + LanguagePref, Link, Media, Nickname, + OnlineService, Organization, Phone, Pronouns, + SchedulingAddress + + Initial Contents: + +============+=======================+ + | Enum Value | Reference/Description | + +============+=======================+ + | private | Section 1.5.1 | + +------------+-----------------------+ + | work | Section 1.5.1 | + +------------+-----------------------+ + + Table 7: JSContact Enum Values for + contexts (Context: Calendar, + CryptoKey, Directory, + EmailAddress, LanguagePref, Link, + Media, Nickname, OnlineService, + Organization, Phone, Pronouns, + SchedulingAddress) + + Property Name: features + Context: Phone + + Initial Contents: + +=============+=======================+ + | Enum Value | Reference/Description | + +=============+=======================+ + | fax | Section 2.3.3 | + +-------------+-----------------------+ + | main-number | Section 2.3.3 | + +-------------+-----------------------+ + | mobile | Section 2.3.3 | + +-------------+-----------------------+ + | pager | Section 2.3.3 | + +-------------+-----------------------+ + | text | Section 2.3.3 | + +-------------+-----------------------+ + | textphone | Section 2.3.3 | + +-------------+-----------------------+ + | video | Section 2.3.3 | + +-------------+-----------------------+ + | voice | Section 2.3.3 | + +-------------+-----------------------+ + + Table 8: JSContact Enum Values for + features (Context: Phone) + + Property Name: grammaticalGender + Context: SpeakToAs + + Initial Contents: + +============+=======================+ + | Enum Value | Reference/Description | + +============+=======================+ + | animate | Section 2.2.4 | + +------------+-----------------------+ + | common | Section 2.2.4 | + +------------+-----------------------+ + | feminine | Section 2.2.4 | + +------------+-----------------------+ + | inanimate | Section 2.2.4 | + +------------+-----------------------+ + | masculine | Section 2.2.4 | + +------------+-----------------------+ + | neuter | Section 2.2.4 | + +------------+-----------------------+ + + Table 9: JSContact Enum Values for + grammaticalGender (Context: + SpeakToAs) + + Property Name: kind + Context: AddressComponent + + Initial Contents: + +===============+=======================+ + | Enum Value | Reference/Description | + +===============+=======================+ + | apartment | Section 2.5.1.2 | + +---------------+-----------------------+ + | block | Section 2.5.1.2 | + +---------------+-----------------------+ + | building | Section 2.5.1.2 | + +---------------+-----------------------+ + | country | Section 2.5.1.2 | + +---------------+-----------------------+ + | direction | Section 2.5.1.2 | + +---------------+-----------------------+ + | district | Section 2.5.1.2 | + +---------------+-----------------------+ + | floor | Section 2.5.1.2 | + +---------------+-----------------------+ + | landmark | Section 2.5.1.2 | + +---------------+-----------------------+ + | locality | Section 2.5.1.2 | + +---------------+-----------------------+ + | name | Section 2.5.1.2 | + +---------------+-----------------------+ + | number | Section 2.5.1.2 | + +---------------+-----------------------+ + | postcode | Section 2.5.1.2 | + +---------------+-----------------------+ + | postOfficeBox | Section 2.5.1.2 | + +---------------+-----------------------+ + | region | Section 2.5.1.2 | + +---------------+-----------------------+ + | room | Section 2.5.1.2 | + +---------------+-----------------------+ + | separator | Section 2.5.1.2 | + +---------------+-----------------------+ + | subdistrict | Section 2.5.1.2 | + +---------------+-----------------------+ + + Table 10: JSContact Enum Values for + kind (Context: AddressComponent) + + Property Name: kind + Context: Anniversary + + Initial Contents: + +============+=======================+ + | Enum Value | Reference/Description | + +============+=======================+ + | birth | Section 2.8.1 | + +------------+-----------------------+ + | death | Section 2.8.1 | + +------------+-----------------------+ + | wedding | Section 2.8.1 | + +------------+-----------------------+ + + Table 11: JSContact Enum Values + for kind (Context: Anniversary) + + Property Name: kind + Context: Calendar + + Initial Contents: + +============+=======================+ + | Enum Value | Reference/Description | + +============+=======================+ + | calendar | Section 2.4.1 | + +------------+-----------------------+ + | freeBusy | Section 2.4.1 | + +------------+-----------------------+ + + Table 12: JSContact Enum Values + for kind (Context: Calendar) + + Property Name: kind + Context: Card + + Initial Contents: + +=============+=======================+ + | Enum Value | Reference/Description | + +=============+=======================+ + | application | Section 2.1.4 | + +-------------+-----------------------+ + | device | Section 2.1.4 | + +-------------+-----------------------+ + | group | Section 2.1.4 | + +-------------+-----------------------+ + | individual | Section 2.1.4 | + +-------------+-----------------------+ + | location | Section 2.1.4 | + +-------------+-----------------------+ + | org | Section 2.1.4 | + +-------------+-----------------------+ + + Table 13: JSContact Enum Values for + kind (Context: Card) + + Property Name: kind + Context: Directory + + Initial Contents: + +============+=======================+ + | Enum Value | Reference/Description | + +============+=======================+ + | directory | Section 2.6.2 | + +------------+-----------------------+ + | entry | Section 2.6.2 | + +------------+-----------------------+ + + Table 14: JSContact Enum Values + for kind (Context: Directory) + + Property Name: kind + Context: Link + + Initial Contents: + +============+=======================+ + | Enum Value | Reference/Description | + +============+=======================+ + | contact | Section 2.6.3 | + +------------+-----------------------+ + + Table 15: JSContact Enum Values + for kind (Context: Link) + + Property Name: kind + Context: Media + + Initial Contents: + +============+=======================+ + | Enum Value | Reference/Description | + +============+=======================+ + | logo | Section 2.6.4 | + +------------+-----------------------+ + | photo | Section 2.6.4 | + +------------+-----------------------+ + | sound | Section 2.6.4 | + +------------+-----------------------+ + + Table 16: JSContact Enum Values + for kind (Context: Media) + + Property Name: kind + Context: NameComponent + + Initial Contents: + +============+=======================+ + | Enum Value | Reference/Description | + +============+=======================+ + | credential | Section 2.2.1.2 | + +------------+-----------------------+ + | generation | Section 2.2.1.2 | + +------------+-----------------------+ + | given | Section 2.2.1.2 | + +------------+-----------------------+ + | given2 | Section 2.2.1.2 | + +------------+-----------------------+ + | separator | Section 2.2.1.2 | + +------------+-----------------------+ + | surname | Section 2.2.1.2 | + +------------+-----------------------+ + | surname2 | Section 2.2.1.2 | + +------------+-----------------------+ + | title | Section 2.2.1.2 | + +------------+-----------------------+ + + Table 17: JSContact Enum Values + for kind (Context: NameComponent) + + Property Name: kind + Context: PersonalInfo + + Initial Contents: + +============+=======================+ + | Enum Value | Reference/Description | + +============+=======================+ + | expertise | Section 2.8.4 | + +------------+-----------------------+ + | hobby | Section 2.8.4 | + +------------+-----------------------+ + | interest | Section 2.8.4 | + +------------+-----------------------+ + + Table 18: JSContact Enum Values + for kind (Context: PersonalInfo) + + Property Name: kind + Context: Title + + Initial Contents: + +============+=======================+ + | Enum Value | Reference/Description | + +============+=======================+ + | role | Section 2.2.5 | + +------------+-----------------------+ + | title | Section 2.2.5 | + +------------+-----------------------+ + + Table 19: JSContact Enum Values + for kind (Context: Title) + + Property Name: level + Context: PersonalInfo + + Initial Contents: + +============+=======================+ + | Enum Value | Reference/Description | + +============+=======================+ + | high | Section 2.8.4 | + +------------+-----------------------+ + | low | Section 2.8.4 | + +------------+-----------------------+ + | medium | Section 2.8.4 | + +------------+-----------------------+ + + Table 20: JSContact Enum Values + for level (Context: PersonalInfo) + + Property Name: phoneticSystem + Context: Address, Name + + Initial Contents: + +============+=======================+ + | Enum Value | Reference/Description | + +============+=======================+ + | ipa | Section 1.5.4 | + +------------+-----------------------+ + | jyut | Section 1.5.4 | + +------------+-----------------------+ + | piny | Section 1.5.4 | + +------------+-----------------------+ + + Table 21: JSContact Enum Values + for phoneticSystem (Context: + Address, Name) + + Property Name: relation + Context: Relation + + Initial Contents: + +==============+=======================+ + | Enum Value | Reference/Description | + +==============+=======================+ + | acquaintance | Section 2.1.8 | + +--------------+-----------------------+ + | agent | Section 2.1.8 | + +--------------+-----------------------+ + | child | Section 2.1.8 | + +--------------+-----------------------+ + | colleague | Section 2.1.8 | + +--------------+-----------------------+ + | contact | Section 2.1.8 | + +--------------+-----------------------+ + | co-resident | Section 2.1.8 | + +--------------+-----------------------+ + | co-worker | Section 2.1.8 | + +--------------+-----------------------+ + | crush | Section 2.1.8 | + +--------------+-----------------------+ + | date | Section 2.1.8 | + +--------------+-----------------------+ + | emergency | Section 2.1.8 | + +--------------+-----------------------+ + | friend | Section 2.1.8 | + +--------------+-----------------------+ + | kin | Section 2.1.8 | + +--------------+-----------------------+ + | me | Section 2.1.8 | + +--------------+-----------------------+ + | met | Section 2.1.8 | + +--------------+-----------------------+ + | muse | Section 2.1.8 | + +--------------+-----------------------+ + | neighbor | Section 2.1.8 | + +--------------+-----------------------+ + | parent | Section 2.1.8 | + +--------------+-----------------------+ + | sibling | Section 2.1.8 | + +--------------+-----------------------+ + | spouse | Section 2.1.8 | + +--------------+-----------------------+ + | sweetheart | Section 2.1.8 | + +--------------+-----------------------+ + + Table 22: JSContact Enum Values for + relation (Context: Relation) + +4. Security Considerations + + Contact information is very privacy sensitive. It can reveal the + identity, location, credentials information, employment status, + interests and hobbies, and social network of a user. Its + transmission and storage must be done carefully to protect it from + possible threats such as eavesdropping, replay, message insertion, + deletion, modification, and on-path attacks. + + The data being stored and transmitted may be used in systems with + real-world consequences. For example, a malicious actor might + provide JSContact data that uses the name of another person but + insert their contact details to impersonate the unknown victim. Such + systems must be careful to authenticate all data they receive to + prevent them from being subverted and ensure the change comes from an + authorized entity. + + This document only defines the data format; such considerations are + primarily the concern of the API or method of storage and + transmission of such files. + +4.1. JSON Parsing + + The security considerations of [RFC8259] apply to the use of JSON as + the data interchange format. + + As for any serialization format, parsers need to thoroughly check the + syntax of the supplied data. JSON uses opening and closing brackets + for several types and structures, and it is possible that the end of + the supplied data will be reached when scanning for a matching + closing bracket; this is an error condition, and implementations need + to stop scanning at the end of the supplied data. + + JSON also uses a string encoding with some escape sequences to encode + special characters within a string. Care is needed when processing + these escape sequences to ensure that they are fully formed before + the special processing is triggered, with special care taken when the + escape sequences appear adjacent to other (non-escaped) special + characters or adjacent to the end of data (as in the previous + paragraph). + + If parsing JSON into a non-textual structured data format, + implementations may need to allocate storage to hold JSON string + elements. Since JSON does not use explicit string lengths, the risk + of denial of service due to resource exhaustion is small, but + implementations may still wish to place limits on the size of + allocations they are willing to make in any given context, to avoid + untrusted data causing excessive memory allocation. + +4.2. URI Values + + Several JSContact properties contain URIs as values, and processing + these properties requires extra care. Section 7 of [RFC3986] + discusses security risks related to URIs. + + Fetching remote resources carries inherent risks. Connections must + only be allowed on well-known ports, using allowed protocols + (generally, just HTTP/HTTPS on their default ports). The URL must be + resolved externally and not allowed to access internal resources. + Connecting to an external source reveals IP (and therefore often + location) information. + + A maliciously constructed JSContact object may contain a very large + number of URIs. In the case of published address books with a large + number of subscribers, such objects could be widely distributed. + Implementations should be careful to limit the automatic fetching of + linked resources to reduce the risk of this being an amplification + vector for a denial-of-service attack. + +5. References + +5.1. Normative References + + [IANA-TZ] IANA, "Time Zone Database", + . + + [IANA-vCard] + IANA, "vCard Elements", + . + + [ISO.3166-1] + International Organization for Standardization, "Codes for + the representation of names of countries and their + subdivisions -- Part 1: Country codes", ISO 3166-1:2020, + August 2020. + + [RFC1034] Mockapetris, P., "Domain names - concepts and facilities", + STD 13, RFC 1034, DOI 10.17487/RFC1034, November 1987, + . + + [RFC1035] Mockapetris, P., "Domain names - implementation and + specification", STD 13, RFC 1035, DOI 10.17487/RFC1035, + November 1987, . + + [RFC2046] Freed, N. and N. Borenstein, "Multipurpose Internet Mail + Extensions (MIME) Part Two: Media Types", RFC 2046, + DOI 10.17487/RFC2046, November 1996, + . + + [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate + Requirement Levels", BCP 14, RFC 2119, + DOI 10.17487/RFC2119, March 1997, + . + + [RFC2426] Dawson, F. and T. Howes, "vCard MIME Directory Profile", + RFC 2426, DOI 10.17487/RFC2426, September 1998, + . + + [RFC3339] Klyne, G. and C. Newman, "Date and Time on the Internet: + Timestamps", RFC 3339, DOI 10.17487/RFC3339, July 2002, + . + + [RFC4648] Josefsson, S., "The Base16, Base32, and Base64 Data + Encodings", RFC 4648, DOI 10.17487/RFC4648, October 2006, + . + + [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax + Specifications: ABNF", STD 68, RFC 5234, + DOI 10.17487/RFC5234, January 2008, + . + + [RFC5322] Resnick, P., Ed., "Internet Message Format", RFC 5322, + DOI 10.17487/RFC5322, October 2008, + . + + [RFC5646] Phillips, A., Ed. and M. Davis, Ed., "Tags for Identifying + Languages", BCP 47, RFC 5646, DOI 10.17487/RFC5646, + September 2009, . + + [RFC5870] Mayrhofer, A. and C. Spanring, "A Uniform Resource + Identifier for Geographic Locations ('geo' URI)", + RFC 5870, DOI 10.17487/RFC5870, June 2010, + . + + [RFC6350] Perreault, S., "vCard Format Specification", RFC 6350, + DOI 10.17487/RFC6350, August 2011, + . + + [RFC6901] Bryan, P., Ed., Zyp, K., and M. Nottingham, Ed., + "JavaScript Object Notation (JSON) Pointer", RFC 6901, + DOI 10.17487/RFC6901, April 2013, + . + + [RFC7493] Bray, T., Ed., "The I-JSON Message Format", RFC 7493, + DOI 10.17487/RFC7493, March 2015, + . + + [RFC7529] Daboo, C. and G. Yakushev, "Non-Gregorian Recurrence Rules + in the Internet Calendaring and Scheduling Core Object + Specification (iCalendar)", RFC 7529, + DOI 10.17487/RFC7529, May 2015, + . + + [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for + Writing an IANA Considerations Section in RFCs", BCP 26, + RFC 8126, DOI 10.17487/RFC8126, June 2017, + . + + [RFC8141] Saint-Andre, P. and J. Klensin, "Uniform Resource Names + (URNs)", RFC 8141, DOI 10.17487/RFC8141, April 2017, + . + + [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC + 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, + May 2017, . + + [RFC8259] Bray, T., Ed., "The JavaScript Object Notation (JSON) Data + Interchange Format", STD 90, RFC 8259, + DOI 10.17487/RFC8259, December 2017, + . + +5.2. Informative References + + [IPA] IPA, "International Phonetic Alphabet", + . + + [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, + A., Peterson, J., Sparks, R., Handley, M., and E. + Schooler, "SIP: Session Initiation Protocol", RFC 3261, + DOI 10.17487/RFC3261, June 2002, + . + + [RFC3966] Schulzrinne, H., "The tel URI for Telephone Numbers", + RFC 3966, DOI 10.17487/RFC3966, December 2004, + . + + [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform + Resource Identifier (URI): Generic Syntax", STD 66, + RFC 3986, DOI 10.17487/RFC3986, January 2005, + . + + [RFC3987] Duerst, M. and M. Suignard, "Internationalized Resource + Identifiers (IRIs)", RFC 3987, DOI 10.17487/RFC3987, + January 2005, . + + [RFC6351] Perreault, S., "xCard: vCard XML Representation", + RFC 6351, DOI 10.17487/RFC6351, August 2011, + . + + [RFC6473] Saint-Andre, P., "vCard KIND:application", RFC 6473, + DOI 10.17487/RFC6473, December 2011, + . + + [RFC6474] Li, K. and B. Leiba, "vCard Format Extensions: Place of + Birth, Place and Date of Death", RFC 6474, + DOI 10.17487/RFC6474, December 2011, + . + + [RFC6715] Cauchie, D., Leiba, B., and K. Li, "vCard Format + Extensions: Representing vCard Extensions Defined by the + Open Mobile Alliance (OMA) Converged Address Book (CAB) + Group", RFC 6715, DOI 10.17487/RFC6715, August 2012, + . + + [RFC6869] Salgueiro, G., Clarke, J., and P. Saint-Andre, "vCard + KIND:device", RFC 6869, DOI 10.17487/RFC6869, February + 2013, . + + [RFC7095] Kewisch, P., "jCard: The JSON Format for vCard", RFC 7095, + DOI 10.17487/RFC7095, January 2014, + . + + [RFC8605] Hollenbeck, S. and R. Carney, "vCard Format Extensions: + ICANN Extensions for the Registration Data Access Protocol + (RDAP)", RFC 8605, DOI 10.17487/RFC8605, May 2019, + . + + [RFC9499] Hoffman, P. and K. Fujiwara, "DNS Terminology", BCP 219, + RFC 9499, DOI 10.17487/RFC9499, March 2024, + . + + [RFC9554] Stepanek, R. and M. Loffredo, "vCard Format Extensions for + JSContact", RFC 9554, DOI 10.17487/RFC9554, May 2024, + . + + [RFC9555] Stepanek, R. and M. Loffredo, "JSContact: Converting from + and to vCard", RFC 9555, DOI 10.17487/RFC9555, May 2024, + . + + [RFC9562] Davis, K., Peabody, B., and P. Leach, "Universally Unique + IDentifiers (UUIDs)", RFC 9562, DOI 10.17487/RFC9562, May + 2024, . + + [UBiDi] The Unicode Consortium, "Unicode Standard Annex #9: + Unicode Bidirectional Algorithm", Revision 48, + Unicode 15.1.0, August 2023, + . + + [WHATWG-URL] + WHATWG, "URL Living Standard", January 2024, + . + +Authors' Addresses + + Robert Stepanek + Fastmail + PO Box 234 + Collins St. West + Melbourne VIC 8007 + Australia + Email: rsto@fastmailteam.com + + + Mario Loffredo + IIT-CNR + Via Moruzzi, 1 + 56124 Pisa + Italy + Email: mario.loffredo@iit.cnr.it diff --git a/specifications/contacts/rfc9610.pdf b/specifications/contacts/rfc9610.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f1d6e3ab3b0ce01b626aa51fb7981521a7e4b7f3 GIT binary patch literal 163718 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

|f7AMz|8KN@CeHtn z`WZQx|D*J?{hx&XtJq1HAO<8+zhhs)=_3Oaq23ju zMT2yAcXtU03s}ISyHUEkQ=~*vknRovr6i=KOG;7%{tMlEtNZMIzW2QGzrHwJUb1** z<~R3!&s{UmteGyW1mOoUT65=>Ya-U5OQE4{gM*?FHoI}9rjQ!4=8q4zw69j5GGBwX zAEneo-GfpM2IBseTsZ#&a^c|P_(Lw-oOj1RaB}^fUHvjbhty6iOu*WL+$|i}~Y2sd46$3i=boU7dZJ>t$}BL8KIe!zOlA z!cs$h;v@-VqLavKc=|E6*%nrgG9Cc4z0W5t4Zg6&BtKNej7BU(#>d7o=VipD5O1P| z#VTGHBF0i$&_~5G?I8Avz(&txVt(upab&>GWIk8Vhn#szp9ItC$%iQ0sV@#>@Jb%}E3THuZ+1`FF zb2#QbS7Sr~JK1{LpYxQQo;?t{lIo#zS@)vGjC=aDTjTW&$d;_x!@Vz}uI81>)F)r9 z+wtd#y?J#?pEsncou*$>5W=yvjyYdZvVNch_>YYgahOqc+M^$se4qY>HUq#LT1$ zIv4MJvd5jgnx`+3SHm!-fX3brZ__Ri^h}Ur<($aB) zXpRNkcx+6zLsY|AieI;lB|?HP@s3XR@m@i?;$DI*d;5B{DSDl9oHA`ZXEV}}?xRbu z5riRyv>kQ{9k;d$6hwk$%ZOlKJ`+kRI$n=7xsI^-mz7~8{N$fh>egEMqu4`0G;XTL zn>2ph`#HmO{UtN)(a` zD`Vb_=nX>u)>z9UArkYsBT-GKWmBA8aVbe&tr@o`2VuPW__pz>hAZv!{%A0x#JJ)K zdq?y3ulu`?b~?Q$Cpf0=Ns&ES!zgu(3y<@KiEwQcDo`!RTo5eh zwS&Xh>WQ66rUDj`!SY9V#7$ScO+0zk)F{i|>35vP9|#=B>cLzNIszkRn^oFBC?F+4 z8KZU=SF;LT&uKWuh>NIjwkoY~_1q6ZNqfd@*Y@EOR|*4wr`{!3=`3e%8346XSCQHu zY-=B@kA zo?Ms^!%S0S-F=~jfFZV3?pE(pZvWMA%sa?%V)oi!pJ|xm?YQ-1XQ|-RRPR-q9(p}C z2bp}2KF5_ZQodCeT@#DZH`BcfzPs}*8)ulXU4|?1l0J`O0Ene~c$IB-^J>n%Mx0xT zzAvRk9hy>IDmdOw5bY{mHa}!@ss6+k%(b>U*~2PLhP;ppsS<` zkg#_G0l1jCnM~O@*#W#f%xv83+aCt4m7%)*a+8Aqqa#RKR7X~g=MjU0aB>X$~40!Sl{zib5Q zNlEFS_hoDQmo1%Lq}(8E|0c#?I{ckV=Wi!nse_#DU7bupQf?5QDgTOH2!X&mo%v}< zfMBrgH*wvSvDi7YfX)7rio0Sd4;PS~Gh{gaIRfbSYJUr)VQLAo1^#ms=WliXmJL-W zdk2t{i|0QFarmv)56yxoj-Z(-zq!4WEzm_6=-^-jHU-|P7z>0$L6#pyKeX(wzA5DJ zFc*8LZ%Y1$?tRmC4UprnPw#rTQ&$_Xurdg21CR&VS%dAI1zCQ3_yhQ^=C`N6Vtk|G zA3MAw!|aDi{MzZa9>r{2etr6blskjuw*lH&2vK-2nSsoKt~M?d!Zef~VgkRhqiG3t z2AJ8Ky53m~z}W$03N{CWoB=?UT4}k+9L+D~}YHtIelUEW`rDq2G zLC!yu)vru`lht2K6(EuQK`1NlIN>0>H=3#>)R6&6B)*I0pN{-raPw!H z1tG43U*fy|Y1-S{2t$UF-O1b(z`@MU#mp+m^5^m&3ihq3lD!$&+*1;AXr3@TWPcbF z8#@yluO=HeKL-y#8ygcVFF)&VAV1ao6UMjhL4Sh*2?jqfeyaH=jNgOW-=O?T$!`Jh zTiu^3T%<)2Fbp|v*1>CRI_h+_M_$&W|> zP+J!44DoKBe_<)Vx~A{G;y3s9Ehswxot!~;;YWz#_xSTi6#vb$eETK%EsXI)Tm^(G zVTjj&cnBAenIOwA&wmj1N88^TLOkf7rF=Jf=6{y5DGw{p4=H~K|EcZYcK~4o2uX<` zV*5cIz{MT_Igye@jETebcS?V%_xE7V_U10`Kqrux1;m*O-^ETSm zCCKid8SQuWzSa6O$Uk$TzmDne>hX^{Ab3YO#8MzEy9j@`uRs3$(cka2AY=M1szOXb zSnHcH-c|nj>7UyCkxuY`kM+)fp?=~(i(j8Y^x{9Ies`>VPdoVSAmi)|$)-VC>T<$= zl~zIOe#_&&Gx1lgesJK(DIoSbi zzVq{s<$uA`-$4Ex_Qe2qqk4BzEC`Z}fFYjqE~|s&ClKR+WFSs}yENpF?8Xx444FrP z?C!FfyDZ1-&d|YjrZ%o-Ab^V#BrCjY3jVIocMj`M#Qxm#f1KVs3WYWA(C_@-ox1$N z{kNk3IFcLC#`T-i71o3#+ke9PQTVrjf9)K8i1{y)(w_={QS|S_`wtrSw>|ui8}ILP zBFJp&yI}tF_WLbw_yy!&vf#U^v=Yb+3_H704e{j@*wtrTE|Foz4AIV?;kBW(qRl?t=%>Wya8)T97e{ke}nvMU- zPX6~A!T+&f_Z|4xRfX@8_}kTp?@c8CwDSJ_Ddbfblo=za)Wwsq(+I>)+z~mn85nRsOej{kMq=`Nu{bNFpvo;eNLb z2lC1J+wEg_pYBff;N;@^v8&Y-2w)TbR_R+2&rgSbD1gnJ^*MR&whgHp{#@thjYMEu zu#2-k9psJh-3w}F$lGE1U;Z#;QNEjH|5}5S=Wbu^ub@Bev=x(92SKh`yIYO11Us;3 zeA`#TA|a-zVf4Mg4WtTmv81DCk&?cCC+xcS)FIoQ~^@7@4H z-b&N5veMGCKwfMA^9mYZFA#u-kAs~PLjUiZv0NZ4>y+%$5OIFzLCV$yWM&33yW{1@ zzAV}B7M%sVxd!aEr6Pb!BL2&-rG19oW6$1$@tHF?Ed#1IQ&KE5qp5b{G_iAvK3II9 z72tRuOWmJhDy3u$yAnr?-kyGG&U?8^k2-KKF(PtnuV86A8x!BNYjf;)k7^9%YT^yq zzCBLkA!1q7`-|`#J%;jC$NH;_iy2R1w;%&Igx1IHS2=oXaN#3m;<;Qkh_UPGg`hl6 z#xJcrm0>I`)&8BDXwe>2&R?5bF?&pH>F57X_+Wk)(t^@sbao*9^)H z6ZXl^km(CU!QaKBSig}TpjsXi(vz!`Rnvyzm=UclSQJVm=^2DVCvda=n8?Um-7$(# z+N^V=(SLvbB^lqR5fYbiVuP+}f#^lX}yU*x``LBXeFB8W8T+(!GB0Mts0z zq`(^2d=M`&t5~lFlZyT0>8cZQu54fso>~EQJ`i7M!G=uf1UX6mkOekoq&99#qJj^t z12|0*C7fRJbuiDHls=L%0U#?i9fd%ZTJ%ti-cO$Lru_unikh@tCKa&<&2WS5<74$g ziNQd*`j#eDF<&G0!ecgBlUzDSB)V`mfhdzj4(?)kkwhWiP5Tu!AFf&sm7vV^DpS; z+`V^OMwkrVu`_{M=@PniL=ZS)z!OIHY)_&HH&lEj=gy(LdGLWqvMth|Z+j!ZoDXrw z*ZDD4-z4Olgo;8+CdR70f>Fo<_wB?LALNCfq{GFxS{E*CcV~g&uoA%*Tc9PF`+fC^D^#@iXPiT z2@U?&6ZP`BA&rWfag11`B1|fD)jaT)e(beftz6<1_&v+sa9wiuQ&TzjT~&JFn{D83 z2!jvvvC^dm3KS)1CI*Veb=J^#ML&)x(@&lp$zZsV81^8~LM1C-AoW1c;|e|2J)wSd z90vVSoNivtRfReDL|1A~fa=3JiMTmY7Hl%2RjIbLlA0w-Yb7q^C`zbL6%#@XB@e$) zeI|HnEF7N52m2t3jMp1B%f~=|BTDRjk1^yf#xUjSLNPug9hXn7L*?&;Z+Zm#1?F$U z-5V6C_TurVi62IzYFwKX)nj%cEHm(jmh@9PWx}099T<+mjVVayWZf_b@y{P`m6=h% zRZP==4NnR|i=dkVjXZ@?EOlU`_eT&e(2bNCU_p&S*yng{Je*^y*o9<}7+2AWGs*-; zPWuwH6Oo5hz?>z$p0KS%7VsY3H#B?d@kA`3F7vUOT@%^fGYTxAQ56mioeMpk_nRJ^ zqesW<^7Vt1f%lJO9qUMt-U`v(P8f(+L>CYSqCR6AkUkJN5b9)4-IyjhTkZ=bfMu)M ziVF!^Me5TPS8~&K!Ly0O*PJBZ6cdedlVUB*rMh^9JlhE*3Rt|Q-Rr5m5^VJsq-U;b zoDQd0nn{4iQ{o{gxG+~;LqMrqeVm6~y-OkRT%P^FP3EO%8*3f7-Cx(QBQ4soiBfpU zw63}rraa_ALPH6M0zY|T5VbZtn8XQ(wM6%w^YeS~H_D|#mX9jQ4WAD9G|&il-$y7| zA>wbD2O>V;RZ_6~`dksTM4@Mch5BB9N-T#HCiiKWcHtZmZ`dTuK0}A z)R%5fRO*B6^O1VlM_)!OVHG&iGVI!i*GzzT;m@r1O&u>c51!sEmb>P^7ZkMCB3k2X z2~$LXi)3`yCQ@qh2+#)(PdOq4)qSXizkRoyj`8g3*5s6X2a( z1LY5Jy&p~A$*WzR- zFo(DtM$Jb_OXipkcU4KIa`|l{b}B)dki+NP5aIYMbDzlW-Df<930gxAUh}50!2oRn z2EE;<$agrU-h&C%cDnVcxE3Jynx0uIZVEyXa_(<_Fq@?o)2T_DmQ}KCi zzeNm;P5iF%lhz!=nWz2SbZD!V#seblkh)!%wFiPi?+wDdLD;A=IgTgXzT*{EE%$Hl zpUOdKyT}8#p*|W(Nf5D#(>54~6B9@_JIrIYJb1@XmD%UIOQJ$3XD^jcT?+5PgHso} z^%4E9Nb-T3K;Tq!HhZ3x0QaP0)rX|OdN$!Gd$c;Vc-sflWhm5SHAP6#@ zv)|erxA8^o*clNAS}|3(1nAFN+@~(!PFs9I*1q4X8{0gQ=A6Y}mi)0juvK*=}yEh=@5 z%dA~o#G`T0v+tgsNp|yg_}nJ=w!Urd;af3W;e3+Hdzu|IQ4{Mhdq9zPrVW+(mJ$+q zZE~!TNu+3Ksx=jvMd#7&d83!;lznMGa(<%BI$NUCeT}KrYEn0X&xur{`6@L4`F^mpjApyq>JCrIt0(y{ChgyQon8@+&wSI?4%SqgH_6=0Rr8QLz^(&a za7_lZ_>SNM)l^&_QXQ@s#)JqU;5E&evZf7Z=+IWMxugv zrwDATk)((YJ1An3;k|?2z;xKA^iX+94tqzl9cTd;ts^`SZbLnr;kSxYHp8B8W@dbO zuEWWbnjP{9&CUmIR0_8kacv2Y-{031>o!Ou4%YZ#XG>nXPq3uw3^K{dBRO@Cm~(Wh z(7v~7EvF5SqpaP8;5zjjKJ{#h!fy(Ye;KY7YUd13l^J*fy+oCA-0S0OuZepKfd>iM z2|6)?Gr@Df0&%QDb}q?@9%S4rD_RaB?d_yh1g&;4)l(y4&1(swE;fI@57m zY{pPWM(JBVUhOHh>y2d1+pStn`K*FWyuzwE*(mf?eN6@-jHSVh;-wa=9kN!t3@@t) zgWmR4X`gc1{Y$M&JdiNqnvdfQLZH(g!dnM2VnSzLNl6L^*u%@YGk3zX{>cL|f3GAH zqr4BUKB~o&fiL8Rc$<_FIH4`fTAXsCUU%PkKBniO8$0ky)80CJUTlRCQ}Ka44KI&> zF`B2Rwm72YX=A z1T&0gV9`*Evq2B2GkS!l=p*J>x^g1E+fC0ZQTCkr?jbPW%p~}SCp8yz;-jS8;2P}F zsN*3SmG|&ooNd1CpNjG(>RX1N-|$e-F}tpu$R=+~0o(JXa?sCvU(6mex{_5|pK}Rz z!_DEyxBAAM3o^rASsy!$><4|^<3|ZIf4L z_+p$RxMHYT;DZmhi8{x-4GKRzbd*GfkE$>u#I@G06pXimi)*Y zs5uup;=_7ZSOCL4f8Me1HYX`8@i$kcIU^}G1cn(^4^=ir37fLLZFxQ5`i)CZO-wA* zt@s)h>_XosMO9}mc%&RAW4gbq?+hNkCFiy&r_iaMa@Yylyr17(^k(&t@n(VlEo${u zXkM{>&dnv~&DnOHvDNYAm!Z_xM+vJmIb_e;aLGb&3Z>@-=NEjN+L>zZomF<>!S&5+E{FY{TnV(k5sS`1wAa z_qjfJ`i|x7w7~nxO96VX!xZe-e)&L?U`78%fv%L-K@>G4NAO# zFl+ffuBK&}FKknfL)As-66{u1K846IdsnBJ`;UUFf*Iu= z9^dybQVDx%hGS;9!*PVLVp#UH(S~FhU@3C;9CE0SAXrViigb---&(_P7QRH9fqsf* z)A1F4Y-9!L!ivEDOXVk(fg>MXF+6=qDy{p~6hupzHBi|5s~R6=^C=Uk$*^>*N`-jA zW*){HY@hju_(AWbhT-PJBVHt#7iK)U|6Zy5K6VE4&IG3T{WGs;)KILn&Y}^0P2Ck7 zH7{@|pp$dqt36-maL^gm1gH{zA<^lLJb74mh4WfeLLrvBqZ4J1*0k)>L zjT2SpKL1Z&PlWkolW9>%feH<=@0*75>p^xw*Rxhj$ z?LzX+Uc&51cjWc7VSbLB((K8-xD;G=c3_VxI`VwxA$}|*D6JI9^#buAEHAGT57cE&!klw>o?PFzUF z-QPRLD2w55d(Ez0VuIim;&L20DW>5^{oL6ep*KXx_rYc!OE8j1 z&=Q+UHM-DO1O1BRIhf7Q4Wba|opSA|0g8!csa_62D^m7&!q()SA&5S*vLvVeLgyXe zO$pb|Gt?E<+&G0E!3Pb9mXAnHpLQ@!m6U#+GsJkPu-|bcN-4N-?_ESKf@8cYH*}E> ztTIctvfwCgxi~&XZ8)GX+UJHNySFU@5e$t?qGIF^ISh<`)Cs+b1ATa@bNq9M9S6~~ zMw+MD`X1S*ga*{th4%TF*{N-fFSAyUzT$3X7Pf@rg)t`sVcYI8=OCN$w;~m0a-gMo zr;F3)O8M(?>yj`QJvPTrc|fa;82K{P4Sv~~a>H-N-ud%KN`WF|)CJKXWZcgMES;(s zVZ7#>8hKWN^1kC4_MFklqV{iW!JaT|+fAow?-e+}&NxVMG4CPAq;|&9dK@Z#G3Ytz zj0i@?5496B9`8!w)HuUZe5XtgrL}Ck6=?pEtZ!@)<>Q>fdU7iawLsi0Bb||Yi?80) zww-CyYv~UQJo3%lnJR<5wV5Z{V96n`NCN?ANyS)IytF||$4T9MtBThZ3RBdY3?{nR zuTUzS@&r-=KPM|1xcB ze@(MV?lP6BdZLHDLS7Y*V9@u-d^ zm@f?3&Fss*8pX3uAFc?P)F9iYM_z*-Xdo#VKJqio>h>FFKtd_z#u7mjA|hh(6gxx`wL0jP=^|qxf2GgxG&@u)ocP#DqXojs@Fr*iDRqd;1usdUfJNoJpu9TQzK< zqt&4k+G5)#Rf&g<6 zT7y-OxcvhSZ618J8mwn-|^i%xJJ=W~D~9kSbap~>h4gjS#gHp3t3lkOsUZ~@Po6HE+p&uD=P79!G_rAe z6FkF%UQ9`WZk>4RDI59q@;E9VW*Qf~@niOTc6<12nB}gbHxxG4oM;1K-Mnq{tY?|1 z)97Y#0|ii?BvZVQ$}3_GSV&o+{IIq)7tV1C-T0+A)UGb8q{3+y$x?!0)YQ|@1SScT z8{Ufaa)v}i(crDux?zgv?EWtXJ}!#z+dAX|4Uw|&O$wM@K6&AnYx zQmjvpu~NQ@C#-krzeGplcHf)Q-G>XN-QNz;nttJex33@ANyk~(^T;NdkV}HuX?#;2 zEJf+v->u@|Urp*?k`51pld)u^>d;wfH{C&2Jo(0nCq=qdbuqG#*taQn-34ER53eXN zcG{0}7^c!nE{nQcD65SD8;8&&96PI&sS&`_rpg23&}J~sbi5dybp>#%M^{4cc`=*J zf+3{;=F>%#|Dr?NQ;+&v#H!-GoY*7PP}b+K9NP2P8#7= zi-hTqj6BOzunYctNQW9E_D-VS`D*pm{*@0QOh94d*pWcuwJYgk9WCG{0>V1GSDvZH z`Z^LJp8v z7Oa~d48j#Qvh|3RJmFXlbjC#Uw#bEc8ha+2lUoe;h3|8mYXz8sw5!j#BG&=&pXie|}) zCOj4wv)-X>$5?Rmo`V|2%5cp@zxjdkg#h@rEmT!y=9v4OxH0aEdf>j%q59kr=vfCY zPAxeP9?>)PxyF8bmKCbX;E2N>&or##gg7&Du_j&&ImWIt)&6dY?2z-?4VR5@Zq*aD z(*CVe`t3Jb8W!T~>N@CruX;OLLg=eL8Q3#iUg*VoTU;At$cyY$(gt=%yjBLuPHW_$ z1?iSyJb)ea+=Blqp0Q+^Vj6%aEMQdo*-*vX9VG7Y-f#roJy`&GwI+ao8__@@<-_HS zig*8$e4Oh6QlSS~0vpskjqOfn7DF>l)Z~bV3+tXQ*B0OwePIUs1t+(~C3rIYA9A@K zQ{2nU3Ehhocj4s65PK#^vfG(8M(le2Jc?kZ0CF`)dp|8I^UbYUL-`0c!o^B2w9rO* zO}3qRs0zBFe7+*~46<7^@l%hE`|_@?+10lQA-&-^mOMfGA3ns}^M_&eY1&C3xmS|Z zNLdSb1Y*5ibLPw-%$Ny*M%OD+>ho`_I!v4}SI>S>MhZDzSQfrHV0Kwy43uO-X*TV38SW4Z)9xoG%pjpb+FQ71?5m}zboaj;6F{ zWgx#|?N*O`ZL{Dbo3KR|>jmhtbK&B!4Onet+ARD?E&Nrrp7P4LL_Rx=R(;lr_2G6P z%u$DkU)!j^#b%&`$YT-tbW(ucihbYT};odRj?MojW zc4z`rEh3QsW(6hg>PT@h4vLyleNd)%aA#q~jaJH*gF{u8D%U#a;`r-VRZ2~VvF|_0 zOh)t`r$tPK(XY&8%rwFiXNns#q~S1@4^wS8c4Wwrnjzz5ez%HtO0!gUPW()T~N-069*QflB=VxW;uH;d}4w;T}Ey=?P3lubq;#aQHJe&PAo{!6olknBPA zi_jwu#F9tH&oVe;1;IM$@Z6h*it}zk!rUt3=Wx%s-I-Pb4vQS>L|CJrF?ffe#x}Ou zsZjdGM@8-uUP^IRT;eTqap3`8gZ>>nGpMR;k4ZjaBUJM_3Gv$%cBwe9fN> z;2^3SSlZC*qDggw_Mku11uj@q$Fn15QX#UKYEMrxUig%A++UYftuN#Q;=EIhAGA~r zD`kD&f~w+k=pC+~4)bWQY0?+V^y?ON^7H3MO?;R!GzUD+E8??8Z`I~)#21faju2Qz z0(9;z424_Pxi!&(#Sl?h6r=JW7uQH=yz5HMX&9wLacIEQk@6_6-lr_pz^Jvv{GwUQ z#dG%BlYf7ZS+7q`)j4117R*8w>RxU>X>-Pz7mlS(E__r6uO$J3Nr=G9pQsH?A9+M! zqKzc2$nT10js8&Lu(jk|6R<$Y@2itsV)*do6dVV~#vDBv0DqXr3(1RVM2O%9R!aeUNmib;eM%hLN;!yLaM(|iY>9L zVqEg6GgLxA0$(^1q*Czd1_gfTH!ozSw;hpdy?*QkA`Dvi6u0Vf^3c+2i)oDe9lcaX zW_r|K$xGrTAF(s}v6mgtibtxCL_se&_g4g~N{iP}ERi$hZ95*6vcHN1xNE26u+Mfe z>0rOV@!dwpamZO9*9`qym2~#?*&3d<89kpFLG>qDehc@^&I|OYDS5xgyd~$K;`NJU@nf*N5CAOP{DF z`j|9o{nZjSm&J!7`UEkHMBV~2d=%iVl_2ui(XY54| z!&JK;;CEfQBVOim`#c?=pbJQS6%xe_6SAtd(iZj!p7o{!V|j6JBp#P1BnU?g#*T1vu!5p>O6ixJ{NhB8X!EkqCIQ2yDP?0r$vm*kl6L$Q!YLYxuJ2di<*1;5oWR^ zqKrJQG9#Ya%RW!7@($&v;MehjogbE^U#IBmj<1|~ZU&Lq+a5jU9BVZ{?b#%qlD?vg zO~}1POVfNSY^PJPOv;xM8oGi?a@8r(sXxzwD@)Vkv|#2Azu8>1`lfZyW2JhP;?4d0 z`UJ=1Uvn^V+6KcAk7D$WGKq* zSg7-TV5Dgn6Z2kztdf3` zC-RLLW)@}y*`IOqzT%1Ktlb-Z!tLPp_4r!~Bk)Qj z--#FTPKGz0!~*9Y$9<~1=d!nj^X^HD3U6~Pc2V|%c68EIP=9;=Cb069Xv4?Piu#u967nk^XDWoMR z@|5|E>p*fY+}KgV3RAN$!6Nr+P2W;=2D7Y)nv)w*DytJPe8fz2m}bw6Oke)!Ehsj= zY;S)(J0!1uUgfY@H1d$vwrFQHaSEmLMq5s{24cl)?^QZfiyjL0+-mVX$Z2TvzfGJXigYf6ymZxl&cpE9{HJ;n+++g%>5L`T23I~`RTS`^4{gI3bq0AFlqb#Kdo;d!IJcQ>CfXV$9WN1G0e zt~q0S!2_szqH5ugg`M%CrHGteU0(#I{$iY0X?P2Khh&{ywCkg3kyZ>;FQMOJ(IwuKy%TD(6MTfH*O0C-mUW>1Vs z*5x_)OGJPkFYQXW^~I~P1BK~#W!O#V<@24ER#PKr4@P>g6K6_^w~)dz!XJ?5De7PQ z^(!9eq490&XRN5Fi6 zDGB6UzAbcO5nrO1S=FkH|9VhXb3n0Hghpf_cq7*00tf!tZrIdP5x!A^Sn)BM#hf zg{JzTg^%P^EG~l-=#(EPWGz3-A^S9u*5fTL2}0L885B-K#fW`#=%^TB$5sn;t}JWu zacbt}`v7Ih&hdb;j#fDEDY|e7=PJ|iKp1&BF~>aT0-YYCM5|muwi^j2r#{xn7`ioxmnu{bR)q{C z)GbP?y+~ZcKz7qAoMckY^HCemad=glL!A$CMr4l4w)}Nr>$9~sDlz~v1(t=4NTqFQ zEL;1cSI}`J*p(4`{z#1YO9Z~7aF*SM>nbEQ7M4Z%V-z~iXC(qHUhxum;E^XXkJ|G?+v~us z_Um!3mmoFAnkgb>aFt7pqCa-*4%9Y~dPP+gw8~?!5dQqZq1z!us~ z#y;;d*J?dNxwMod&->7vSI~@uSo^(#vR(FaQ>lmEwklL=^`?9j{>*yHBv502fidy* z>#tiWMF1gT!OIv7`8K={IJ7Skk4Zi;yF0AP=dS<@RgOjpWnZDI)V+G9T<4KeYcY5- zN_sMGkH|T@aXNg}r==bwx9szxp-6)?EM3$C`~JJ7AWj2Aydx2(D#nkzIq=(WwvHDz zGgUTy&*w~?-jLSxztM&_R$L*3D;1h2B!5DY?6cb{v$*z2-{(bi|G1{G>f!W$kEe!R z?8!3}kBHJXbC`Oy;MGFqLRR=U7U$FxEQcgV9S`C}Ukyhdi|S%(v@LAtQ+NOtvQfw- zQq30Et{>Q&2YwubMt$A}h515hK9^DWqwbRtievYxra8?o)X0ZyR8d?_t@PqRV7Ac3|>Xf>R)#_|Rsd zNRc9sv7;2_Jw7|>9xt5v{hKJcXo@v8E7HLt3aIWEP|r`NJw+p4yb{$<&ADi$AK%>& zAro%*)u165b>{*`rsdXf9fa$C*1b0>;Ps&20Gfo}t=T?qDKv|<%ou?glVDva$NWXZ zL2wZkLIDd53C#!G_BQh#o;fD2h1yS_b(Q~<$o3Gdf*M6TSk|T z$KBA=k090L^VWlSX0c9DGtBU-aGahlRnxm9`PVbTiE4Hik!ekn{fid!^696k_SHKB zLSGr4KL1*e^0YBaLYdb)EmTl^Q0}U!$=$ScE*w8y-R6K!hKcvxI=-%7mav(0mFP9gexXQRR~`eq2m#nFH}>MmR?90#|X;%o0lZI zC?eN~`#dy|y3%&6!83o8F9ir=%6ii~nRv@RDJl+p%#8iUJBff!Ia+YA#&z+KE{|;F z^5|&8h#DX-!9hrXse%1;q=O&CC||msNwF!xR99 z>PB0-gCp3LuBFG0>+8{1j*CU>3rIer0*1A{^P*7%PBNVKO*;n49US-HL6LDBy_ZEuns`NrHZj(2%JvI`v|CF}pA~<|l z%~?ibBz)lIBZSh9v02H$ThB2bi{Mg&^PCceZvE*~^tzbH=c%6)^BLhtr15I_#K)$R z2cN*-h(#Xd=K9^=>US^N&w{4Rgq|YhWOw)I$H&{Os{}WgPZ*2jKTFPY&QuFjDs7V} z&P3To&2%Rx^6?r)-yzqn^iZxI)1a@>Lun!!=+H5Rj3ZJWsq``91UqulxFoqMaA}7-vil^BD#^M;?!|p6LmE zNu3o)oJTF*r*g;PFTeY?Q+SEhZf!61MddZo=-hY(Vk7( z+n!2r75-#coi8!HXQ{Gd_|%|3d8wK%S;fAp6uy~c=(u9Y=(CaQULB={J}t$r5?(vb z#z({^e2G_+4CvJisC8b2g~+*|5oGM)uGjLW@t3S7$P6UDjtG4(YKYT@!`>kmhcZvv#ZH{jnO{ZU7ouq#x9~wXLPLv`0N>KG>1v(XI7%Z@*o9J zb)OZoq9Bm0ZKf}qyGh?uDi~>#WE2_#!-&E&f;7nC{9K-wa=icpM9cBY-tJ7FtdM9xSRIzWu18+`fnIm3d_1t0^mABfi>YjK%h0A>cW=kPU z_#`+=kV*5_4u0X?b1*9b?zO0bW}bA4V4mhQ-RpMW5o&t9*X5cq6Zn>@3b>wRg6H$j z-p2B!-EH*u@TXHfw)Oir*bi^ox}l0yNNQ{4cRtmjm#K^h`!C49DoqSk2J7QCzsDJ* zDPs}PIz6yPeG@b;f1fnieMQc0?!$K7M8L}up2v%B!F_d$4Uc`B7|4Wo1_ivxkwGEu zWbK49Wvag8WCHW&Fm@PUD3?fMq@M|$_W646sq}|V9K~`I5wF??uf=fJtOK&3@r>H(Zly(;5%atNVRiJgh>QACU7 zBfv+wGz7|@8RLnO!4{mTb$PidQ&SEv2`^6@ugwP0?{&c; zCqzAATok)0v7NdN3H<0lru?L#jv;tR$H#H|Rbe3>+|~t;s12(s-&+Oq=R&H&dY8KN zG4{hvC|VSZ88aq5AfW1y7R?it4)^oyPdN&*7_T)J4*BKn>_l76*HcuIhmZ;bbi>oo z+Iyoy$Gk|V=mToPE}B9pYT5fGI}}w|v^=O}p(B=tf3EvJOPBXKEY>&Iq53x|5 zDYpvTj2!g$2l{^wLtiktX<0u)1M4EP&JAnSg%8nusB2Gin?);l8)MAP6)8_cL<4*w z!wz%Jd^|hWZB_idniE&P`QiN1)HHG3advM$O*wqQWND2;$Rxv)8 zRO5XMMg#Ajv?aJ^B$e4n`O5hudy}3Sgzvo`mz+I)jdv;>{layMlc~sGYR6G=!3AM5 z-v1qPnYIiO)BPM+s-in`iCCtK z)iT|F&Cn~F(3;`(xzpizX`o)6rv25m+ zNF^Ldtf1Alfy5k73>=}$UOwbS6YnEl5Jw3Dd-B-iMr%F zTUSBtc<7ks4>z#RlK>f2aDA+9*K@tSy?owc%@OSEMq_xd&e}CuQyUP=i#P}ARg3*3 zo@+NNmXZ=?jjm5tJ-OaL-i!UrqyM}GZhsewi5o|>S7*g+kot>s5buY`-K8(r zH`_z#mGKnbJY55r)lN6+6X@fXi^Q#vqrM}kc#&2L_zF=Lk~v(K;zl8NW3!9sIFMVt zb_^5R1W3(i1<9LD5L@<(_i%?~EC^%3jRTvDZi-7e4OevnY zBo+-tV+V!bdbV&P4_Qd}#97i#@T-5kpAubyVH%BE$RK~(YbJi;b3c&>1v!T(gimh_ zFJ@6(-L%Mvym%}YK%Yh@XZ2oEeND!G98?s){oF`ZFx%>J{Yl_RV*%+IVdyUESf!uZQHhO+qP}@>3!qq-n(PRu7_C>HQ%Z-DraPl{Dwq{ zv?v&mX2-l9Bqiy~lOuvk5w=8|#b(8bK!q;09BbjqDR%mAS)Oa`gEVa7VJPy{sW6(m zL7INwHN=u7_&CM8AB??5VKl07g)Y^qpfY7{NW*N6tcr8EY)EH0zDf^?F8NZjm6Byq zs_&KIyuiV3vh!Z~0DUn08x7|{g9Leh>m3JL|P=ldL&4b%*|Lh{UH=+2%G`4qg5 zby!KrhqAMy`Z*S7ilHn@1-*!XWV1}()I04|ACa6|r)7v51en{+EAmJhn1l)x;ZDM)Z1mPE_6 z`&0n)vYB$(E|DZFCE?v7vcU_Hi%;gn#hmn(PNTH*EX^?p8XKY#rRzIO2R95G2kiE8 z4}unDvnZAVb-M(rXmzY0O z`tL}Vs(Fyo0+R_Gv7IH%1C8NiG*PE8l01=qP(E+n)w;3e{k8K{(jHVyvRgUXb4(2&Ffk^ViN?DDjeGEi-k$ zj90z(CAvdJPeH=+*LK;iHCh!r_cYP6M&bI;EBK_zVf3JJW4$VfN#k$`QR6zk*@w0S zJ>2P&2ZVHJ#~L-0#xlpOI%(UKI`So=jIhZ4#9fFKyR>>3Qc{Vg%Dp5k1mgKaH}I#1 z25gztaEF!PfgjW!q? zDNi}i&#xWwJ4nUHvWw8ROwavEo9NVXF8qy1p4-o!vjRRiY-{*X3DpQpD?ieh1-x@G z2;RYEC2L#e2setKcC-aNnn8YSTnju1IA_ZmK zQ$7?=QuLG&G^>SKOzfxHAij}cJ-79f%}RNUwK^em1`4tYi z+b6i{$J)@ooZZagZ^J#B(im)1$n9C5$%nqrA^j41JpX?^XhB`n$qz#}5DiDbD?#(e}u(mEX*@ zd!@=oF+Ei-CdocE+meO8EDpX@y&9VNmZqJ#!Spvjor_2=*fuG&Qrj{(%3|-2+)hl4 zRNc`q;oWy=w^I8M!jciTfV~drO_YzkRs1AA+-MTSRc@g(w!|*n0hF&cjUN*j45$3L zqPj5DC;)ZtUK94OU8lSgz|5d~btM+OCB{-2l2ZvOTv4Di*9eTs$`a$dIs+r!e|{mc24TIth!aH#Wiu@@&)hg@(6va1M5QUi13-r)v7j2jj>0S%mb3b_fq z)Y!!jKG}pu0e1Bv=dk;4-hA3fod)bP4B$#-rWq&9_!2dz;QBNj_$U$!&hzh&c5Tp?l!DRA73g%)e63=uCP(= zI$AB1d0hu^9b1~L(Cqem5fh-yA(GvRgVJ9(ARYPBOmHw)L zlT1X>t-7r=@ZPMQom>P|UftY}_Z%ec>dS7LsUrsP9urraY6}mjl7fk)**VV9dQ{HQ zQ_qE9+HtZM#IVr{7KC58|1>3{IeOy@@6J)KQ~uejU5owvq(>O+e}gILk5+;<+y4+? z?y2)Eo@)&C^P2%fs9XIT37QtMi6Xq*EX(jz@3{pl{O{eu&QF0O+wt~v8nXj0vDZZt zsz5#Q)8+(TX7+!FW~8-SH(Da`j0>PCIBJQ=zIcPcEO&=kyHKap84p*73|BAA&Jx{m z-A5vJt)T>PUoT=C8QE*=VV^>Y?BTNfdGx}lMA?K6$bB?~hSSoI> zOKz_Vb`6t$+-!QWk{#!a-2*#LrnM1m_Xu$E%aY<8#aYqr;GhcETFxNwBZ-oJmR-6(TV1wd^vdhWdyxr@ zm|>x5&HNJS@W2&g#4=NlF_x$$JtuNojxTa&1>Xrl?72pf_0wo8T0A6&0piMn>?Xa< zHk^=Qy4;EGhFy6zs=e4Czk0r}N|&yKv8czGuA0_m#RbNh-9rf+RpSokD01AKT)u-7 zJ!pr+FyPBid9q$JtvtY($PE)*x7^&XViUxvAJDVRu=J>6`^-249UC723<_ON%oQ^O z8B>v*>^}pLLv)xf`=D5*0J1Pw>E)Zv;y(OM^48apDH9vCW>m1{URJzA1$#=;{=IiY z;-}X(`4gY0nN7T*T>v9be@6*UK%`$?)Mvkvh7fWquMsB}69zim7ran8n0b&?#~dj` zUG!SZGN?-8@r>ZO2SOIsIbRq%tsz7J6&OK2DX;_OAIgW9A+2F5Onkvju#uFASPq>k z-t!B>3}|_>YjmdFmj=8-6nwAo$$VyTK%4U?VHYQ|O<`xHt%H_AK=7wXx?h8rYFHnh zFo-<0cwKg4z)LjYqWKe62-ryr#Nh~x<=o~O6RmvccM)nmBtOUHgn@FB98!s9@X=md zx03C4?Ze*2TFwYR$j2hPvuzXZ@DeM9Q1^jTJ;q&HZ&(Q+_)CVz9^w?M_d*lX$I)c` zX;BGZ=tFZCw_M~{$ix;=(s~M*-NAaDq$5KwF?uiyy`mCempnEo5714=^J`9X+~D4p zFyv5>_ljPePiov5U3|3^3TJz@7NWMi+-M_cE!^KerQZxDlx!3S#2Ggq28JcwEXfC0 z-Fis%y%_~q{Yj6OA{Re$=2(&7;dyd=>K1h7U`JpwP++)l?N@{LjisaFb)sAZmFZC*yU%o>|^?-xh< zXiM^kzLeaf;Lc*T7Uo7o?kS8aJk&G;_ygoF`PA49d75pITk45=E zv!Psb>3lB}v%9{oeSu+rQ3u~e{Qub~tW0eGNFx7%Leb)2=lFjhCI1VX!pg+{Kezsa zIbv@04(m#QLe4LkDZ2nOH0qBZ#4N)Y9VX z)3xVpdu#Sx(7p%aPS(K^r){*9kNc+2Zi(tBedFuf{wLe-f#-eM&;8k~hNJ0QYp+;> zLel0a4O0|TT9pX*;zWermeFfhV_~{YZ|&R7luj$ZRbrewHXc6Lznf1vv)i-$?62={ zd{#=SGQJUMviNa1Aj%=HK1emPe>PC@$!Gf`UUM;L{$d<6eMv{$K9Un;H=Ab8a+;`0 znWx&Fl*Q@p^_tplB0%ut@%TKD_P^SLkGILq&~4V<#1n*(C&IT2_YmtP=r}}wt+{)< zEb(zjzc%1Q+m^R#Q|qA(%R1n3*s%BoU`+(EijfZ3PeiMYBo){NCGz$m9?_+5O%|@9 z`rE}|pBFt1Z@W3Mc+LBE!S<^xM39>%Vw#kr4m2K+N<(M~?mt)rl8I5)R{Pfm+ zq#qd^yVaBn6mj)B@lb#~1U!u~JNT^n`G&HB@=&gE0d zv7>QO6(Eck2xeHOKZ3!wQ#8{PK3YpJ*Dq?)ftMU(-rfO2>t6Y#k??5vYrc5lVP4B6b5IXYCgx?+Wc{w!TM1KGhko76ab69Mp#`M*gfh9oUiQ% z-rV87ym(7JgH0K!+ca^9h5RkMLaZA`B+@O*wA1r<{aJ}X~kyi67xgXpy zPrr{{Or&+p`T=*9D$Zq*6#JKBq=eO9!Vn>h-qN=tW}aCF-Gp&68#vApkioVg5{KfO z2w1fw7@K2oYANH2LLo34|3gBm}6lb zbtyj-UpAL~dAQlX*9UD(#ZN9*{coihy# z6>ku%)A(uFvvANkht#mD7w^DWqB390qCHq?wY@5zNnAK&MqD^f-%rVSTzSPGa3~yA z-jIKSdsY}^EOkkjHb}b4NN5L9qHv+Ri!yaWy$3uF6aI;3`@NEl{K)_YGb;994q!_q zAcDJs=6`_IT*vBAz8Yeo3q$+<_3}{t*@{Q;2W))Vhzn%E3PuYR;3&kQb!fZ!aU`vgSR<4 z2BPUWYRYP)A`NFITps9a}d+SYsZ& z_U8qpg{i_#p9nyD-nT93qyYrwx2VO9OBK&decR#L$9N~@)M6~c;)P8Tz7Il*SLr_u;=4*d*bhsZqI;b5V?oEvB zrNH>ha@j8*>rp&!t*MKwkSHfUe8CiS*Qnl;%LXkL%p|3LZUluK9zm>p4)OrNhw=80 zIIxgfDXssNWn;59g8trP_>0>_x6v-}31=kV+E`W;ArJo74UcMb_lCU@2bh-TX=UKu z{aXhZUT=tHtHy6o^Vfv>29Ss-G9ggoZmG4JZ{n=<>5G5?g$$2DUgmn_r95g~qKZ!{ zRvx0=f|+qJ*Q3ih8*5RWa@sHVTx&lhT5a%iRg@g)=z5b4V9__FAQ!Qe;w`Ro+K%hQ zwn~6}XpI5=Z3*nJNak85Q|AI+75puFYrag88gJ>@Hy8BTrWKqx%}^Tqj8yCic=pB* z<|Ma$8ZSY=_`2*PJDYKFJ$%6&>>q^~a$Dn@Iz)BE~;un;|%!}_@=zM{n zKW(E|Zl#A?!-00VNfJZl5B)}ev#M+OFRv8VZv7}qo&hku))tTk5UCTyM)h3lH)kW!B^^uPk?t)`Rv>{mcWSX7)>Uvur zKpWaB8KOmrhV158TG`j){AoB^34;{m`3~W(B-Mh>-aOw`bR#vEed{K;hIynt)ex23 z$+T;_2qCVTNj^JV`b5j%M@nW;-fGYc#T@~!1DvrfSHYzX8y#Z&4=((5SBl}a3tPuL zM_NU!3Sp?p5|^gLf=xug1$c^6;V&@@vSCR>B2e?#a;`Pd1RYzCwZ~`Q)1MT5zs3y-@&B_!66b#>68>?} z{+D4iBOw#hKmV!!J20+PJ*|{hvG`AQdk=WX2oQk%tH|#`g}`VT za+x`p>OZ$K8&unJ1;RXCicDSQU0|Atnojf>Y}Yy*2mFXfHPPB%ARxq2b|6|`!BTf( zU!tDQ^{5p@Z|~dp*4{+kP#uVyZd3+VyGHhL<=hT*+9*Cek?x~~%z|#PZslk@L(M)& z1{}$T?L(s25sWZGZ9^AD*fc>c$&9W^LOp;u%Ydyl`#6TKcsioYwL@L^Vcz(Xg`5>f z%k^l4)94Dt&kdhy&pV%VkmxNiuEDaTonBl{%X1#6QaO!U(GQY&PyCA)FlyN16e(nxMgo+jdxt5F~f zA&KMK|9_URT|3f{Twk)UV_#vZ2Vc=c!+MnXz<|UMB``HyEKxJ|C~A3Zo_G=v0|k75 zsLzt$Na zi8)DDTfff$eg_yvno7t`9EzJhZ3n(aWKtcVjRC=tY#)z9B2pe8WRNIH32FR zWVXAzT3XVu6%`W;e$`*D#`wKk2AJLC-rjoH+TmdchrKfqf0~BvmxdB0Pt=gF#7Z7Q z^oG*qKbzeA)RumH+Ua_zz$w-165XkU^bO$?8I>pQ8byxmO6+>Vo7vxs3JzwP$(e0< zcZsPI-Tz(_@D@vAmdg1_{M%i6ZjFEt_}A*+my!7fsxl39U?a|EKmvrXYrr~ir~=3A zP1O*E8n#s$j-BJ)*fmy7W)F^cnv9OjIJwM3MNd1abTM$cKl~d4fEg-4qa(U_r34|; z-SZbGink+dY+E}%Km)MOGV@w%XpqO!B`&jadRdJdRC~aJHB-#Yz$Cb1adb>d4hENzET-i4uObI zwpP&tkhnIkhdJ>VLzcCT7X_?cqkr(~^8G0hab_fFNcus;XAZ(XwMBe~ET*hj78LPB zt$eZ1TDaRSQuBkXq1>pwkJ5GaPbj(kR4P#a5V-7Q?0*aNF%qCe)(t)yxxQ8x6(a3 z_A96ovrw)-5!89JwC zIi7Q>9?s0KxPd%}FF0+v`^&0z6H8)ZSE$n)A@5!x9+QSO;IE%pPD>A4L^kcCMA-5w)qSQ!;7&KMir!KQ@r(I-eu486_f$Np>b zJ!TKI11;n`<*5OAG{%K1i&_2Sv_&S1FZCzK4AHkJBq1G}NE$6tuE1h6tERlGzO?eQ zD&JmPeVM4$#E&nYRy$d`{hqd1xk<)whU{S@Y3*V0wVq!YVe0K~SzqK0(=(ZXZWgVo z%_}2q+P(!;?Jcp27C$43!#gSDNkiy3@Ws+4h#5P@(q8SMMz|n%BmH6LZ4QY-qp~?& zMPatcx-P8w>FBUV3&}vjn=I9L?U^QGf6#1}vwAg9we+c|wHZ3h-C1`r8jAdMaGs5+ z)%vtf5aoZ$_LUbqmVN>0K6+(r$@2@QGm46K+x6mxzScC8L4EQT`9@(fAVtF} zcS%i9tB_2`G3=bNIw^`*A7IW1T?iVJ5|vzUH&;W@mYbfILC|3+wIF4AEmtL7q^#0N z1$9rM`6HT;SFaT9$lr1SN|Y@*5%=6eft9E%1*A1oXUQo{4S}`d_iftebAk*OK-_Q| zJ^#f-8gnNbmO@gR_BVfA>GDYie}4%op=d&L=p9T?@Bzea*!M4Y^5bIr-?^NlT6 zTqSK4Z;eCsj9!_tO6ypM*>I3KvjSQ+SS zZ-p<%vmOlDBu-jmxX)@Ox5H7q^aXjP*MBP#44v+2yn?-7ASrR?m)wtZ7Hl{p>Uu)w znc6t!WqV}G6M%Y0-_S|D%FxP9_(}4Nh6ls3PjfCV+H@cx=A>8scjP*5P~XN?tA^&} zR!b43R-2=moIjLZhh5fX%v!KZce%ONdNf~4nTkQWT~>*`CQU}bxJyIh67|qGnJLhS zY+O_YklpzBBgM^RUav3vc^v!k$&Q^q)khriHx2hoHa!-thh?JCcQXz`4?_4IfOhs? zeLuqE9^3Q# zzW2&KAhF;=oTCEwOGft%A=L6RWyg0$d>I$|<1_Ojqsk3w`iC_&W;8-01~V(^{R37w zgg~kOHG-^J&zg`nVt2UB-sI?e5Ob^bkR)noXlELt3S_3lh6`VXLAf*hZgHjGT7RpU zb|BZk(RQA~*Lhn-bF^rrjI6KmmwspM-{%-e>c=6ot%6N2pc#o4cp4iQ%<%_oRrz%A z{B3Yz9_I`L?Fk+EYG%*Z1l<=4mr*GV=5Jt4r2$vz4>AmUNwvsWA|Wf#p`vHQa!#8l z>)~tr;{Z@@iy2MA&k#U0NnrcB`6B zOLbkAP^xiI@+*rR*$c)MCY{8Z$F}uM^82+MbbpK)qxz-Bm?b&=%ZMCdvvD92@&Ca+~D_SxVN-4yx5PWwly57tTtc) ze>n;dn|{3Bs)3ro`P1u89#k!#KnfNF-|)}tHPI} zp?*1D)6L-Mwsf4P3LS#VsVY{nae_hzW#j8z_Qp0RZX|e$SH~=JB+7g2g+KrY&R-ix zmW8XsmD`<8#x9;-`5e70Ep!Xqz|3RIGN8^)s%5dZi{yr7DtOqOOPZ|fY^pBqYzSmPt(G*LvJ#Z>*DZX(OoHsZc86FsZ7Y(tx+)&CTQz)dh7?U0(u8L z9?yXiACCxjULC3>r?Z=xLUu;L0J9J#AAh2{)Z%}`(MY)oJE5kQ znetCIiUB5;%(A$=T%B92XFUb=Eo=ADZ~-Ks*E285J_iov z?skimXK#u^$5Y~;#yKD3g(!3JzqdMWWW6mx+B%lp!>Ey4?Ijo?L-X3&)$-}>%Fk1A(mT3YEdZz^O+6O(kL=MUwD zQJT&Gc7-)o>Kl5ezQklZ_057T#blbu2jVajB8WKFbG#{&%PHz1*x5x`SIo9)FE~j2 z(f2Ko6^#f7>GQM;^SreP$wZ%tCs3|cJS-fOG5FHJlR`lvULvw3%95sqggfhuYJe#d7Bs>a z-PtJ`dF?6OYg<}H5G3cXusdGFYv}gJ^J=tvC=nB&TX%wz=DJBwWMs6kZmjxKaY6|W z0Yl#fYETy=X<7?urqlBJpoh#0C#Wzh!8TRm_1i~_z&~%zvZ(?@cjI&?VI2OgJ=-@t z&%Qu6B1?U%06)U6?OqZWT7BnOW5NQ}HWySlo{fCC@JO81THP&my>U@P&bRrkjjgS< zwXLpYcbE64bmr33S!mnyKZUr0SQ-LtyJ2`8!b_~;YXns|!_PJ|)=!BQyDekY zf$i_b!|C4Ns%Vf%PRkW?A%o#AG5_EIsbL#$iiGxuJKN4PreUHPp22eeW=00S9v-$1 zy2=p5o}2{^QMy8f9`Nfn1z^^!>&Kw4R93uxEu=Y?1;;YCAxe}ub--qJ5>F2n{hU<2i+RC0KZf{*BX+>1lK7?ll zTGuu62WvnS;tW%8Kv_gFF`X{VQs?Nx88FbDKKjnZs zNX?AAt}|0*jv0H>m*8A04>OgvQC8;T*+ID;hhEDk{atT(y3xZw%)7bd#wxB{(GeJG zQg_9hE$*pWa*{1i{I_OaED7et$?6K03Y1Y5_`wSn#Qe?b+9jQ1^b*XoN?clt;>xkx zD}Ua*cZ?Y>`cp@!VVI8A(XH|e5ouMTTPDFuFZg(u^~02$bARkqE{Pb2N?kkA(taBz z8A1p8gU1l3QaZT39TUAXpy;`U+Zl)%~_M zNNhQ`?A+Yl?#`30XS62xVCbE0Kb^|rG@Z%vyt#_fyt{asVtfg=mvMc+<{Py%_V(%3 zoe3Dfow$Jco{xBZ7d$k>-O9=`@E*q*3j}d@!-{9kd`_1T!H1f?lr<{u-+B?oG)Gk% zGRcA9iOFifcJ}Gv%9zb4vWs`M%+|Y?;y(hVZU(`KAP#;Xuce`V{~4*t>LPq85qS3` zID=%GMf0ktAL?a9NROEEt$B0iJ(6FV+2`@?nKZtN46p`^zNwv#YvC0YVFzcnp$#3m%R;e zX)x*TGkjg=s|;)Bwf|&qw~&jEJm*>jBqs9Cp5qT0qMq4?mClV}Xth&$sB<~nZ;GLF z-aa2|YCWtyAGNNk4BJ?@DA&g>N$oCY9NCFRyDYBJ-}{b~x-oZAu73)R@i2-XocK?m zi~#fgQT4HRAH|_>QiX$szo}W#!RD?&KeNrn)4h_W!R2Ez^a{PxfX*eefteSg{N_~&B)H|{PDCjwIxM|K-}SQc+x0Grxpt+TeU0EEOvUw z9{+b>xnY2ro=&n-eQCGHD_dvXBM2{O)Z<00tX|3naQn+3IIFNGo#?_*d1zcW!&E4l zE{khk#AO0c?f9*OR65o!1*N~r_{@m$1XrU8j(5nO2u`|G7AZG%Y$HXPO!_C#uGUyn zL6N=|GY4m+7LI$mtrX!G*^IHKZ(k5yy}Dz-)ikA9J?z?N=z*w8;a%xifSUWxtH|RB z)7KU%%Cl0!Dhj;kNy*bvLMy`IMJlXn5>W5;CQR*yUNe!oL3=^57%s8BbaPN$;hIrB z6Y{>`DHdrFvX>zqp345PT6r+8A|F3Mi0MYdrv2DvFzV%hlhe;;_+r-gNYdRDaox$f z5jbBVqdj2S`=o1I!8Wl!qvTGGE$BED?oLxM_#j>K!r(x(ug4ZOL>~Fqq{R}y@Rswx zT^{X?(YRvm_W1qRSKnWlFKG9Mjm^f*zu;C^y^qhNd%22V1e-U$59;n1Xow^YyQSNt z#hq(hgH|lSw26*{u>nj>B517f84V)OP7_JSisyz(Epvh$h7+oa>b%Z#GR5GX=gGL067?jQG;Ax#GNc3#&N!yY?LD%bKIx0oKLNTn~Be?w&n znlU-0>H7_EU1U!(P~6x`R(C-015J>-kdhHgtLI`0Z*PgGy7;AN2X{T<-X(v)c7X3& z-|(AUO*n9hJyv3LZBA7qgB{(i(VSjiU76u3xyZy5U-u{{CRC}%MsNMhjnwCJ|4AM= z!eW{JlWIOQ!+)om&%(m-f0yr_68mj78DK+heV}g;33-iFkA|#6hy)U?{2*wqFJ9^j zN#@gmw3v)O<63hmH)I)UAhh1gbC1NO)4e@rFk&}y?Bc!9?*g*%vId5KOy|WK*ZV8- z1s4gBSTD?5KY?dwDsVm1ZX1P7Dt=}%nF}uj505^2%|lNov}uQZP!)JkBnH6a!35xOS6;u@K>9|g~oA*A0mV4EIiK&fdsPA^9+ zhjrrCV+Qe2Z0EinDg`?Jcnw~Mmj+hC_UsO=v?QV7_Y5uihWwL|oYnpU`PCPVs`;Nq z0pous3fP#L8ULr!69CdTGKHSdkz8>DOe7VzY zdA$pcWxd42F|=v{-?aAExG zl2OVNLZhl!6Ow`1_NF&a&wp+DZe-`~PW8N=c)z~lkVGLS)Y|L9)Iw(V&*Gip55K8UCo_oj9RDVii9D>`uX9S=HTV` zLDbpeV&&#=zFSj)J@yhFAxD*(loWL;unQUH4)QU#d1nZIvE~eJhn9ql5@h|h-eh{- z^CD*L5#2>eFgTYFDSOg(Gr6yvAXL2#7&F&TOnBYb*LyConPgV`1$ z9j`9rAG?OxdVG+s>^i4kdNVYg$1KZNpv z)+37&iAW>z5mYonYtO+Y$t6OFg8)q;Bu_)hLiGY9L3a;W4=4@rL)}Ik6fn*sh~&x> zS70+pcZ=(cQ%y^rcwyK<-8s*!wg*d}&G06D)~l1gM1&6IN|;HCFp<57A9XF!T&MEU ze;3P;M~=CS$BfgB!5n=*5KR7!FP$Qer1^=gGmRHT*D(6u%NK&ahZ+jSn^;Mf_P;()#5mFVoe};f1dslFPOVU3VIj` zRx030(Os9k=_JXO())tU__%<`*?aW7BNLKlPp+pwqS~et=na7k)%L?f!)vHd`~q3b zP?*MGxEsE-v%gL5lZCpi7Saq-&+Sjdq8UaA_9p<(^)L8C^5+JJEp`@ju%x>r?p*7z z#QJxp@JYAHs_x>BV?RP5K|ffmL@K4sxovkm+;$~cm{H9qxo-QYAP4yKA=c~x!t2r$L=HPOdOr)&T0GbsbjXbNl(OQ7U16M=td1oG6CB=FCNJ0K95{lX_p-!6q>%qu#g(Bdez6hU zw>>yq-X4F?_sri8tyYUd=QNsN9H6+m@Y!w2E)@fir~MSGS(44IX+x_w^mTi>)KyBV z8&;wnPNn9Yt44HZOmoFcDfalSaL(}Ei<$-$MlQW2X$$FFujp4~s{epO zHohP*&RL`cxwv%_MQ(kj5x{VSsnEUWEhn^$0BtNInbT@?2#&43VO_26k!3pP^g zA8^a9h6!A=?YWJ*&QIRVjyn!B$RgWAt-StjWXZbO<701jw-jIA0woc13DNkhH;X#8 z+L(|@!<8jNSfzC{XYiEe-&&bg#?C&4)y~} zYOE0jFhb$oy+nLhr*A~C9k)VN%ULfn-OGqxB5+v8JI8M|s078z21-_>Q%i7S+=;7Tf2U|4jl*kJ0jwkeeML1n0w0a!|Q4th1CX%IG$+S z@IY4=_nI*aq%NOO>*C}Df4)Wz@M006L3@2O*ZMo;%5R+=XsiNz`t(hy>;Rs<%wE)R z1Ic&r7H7)Qq7FaYk8G3o^eE|Wh-09nmIGzcz`u&=FIlD*}d-!LzAO1Cj z1aIGXG2!@_Z+lE+v^Kg#6u_K*7_*NJ6ZrAZkkWLMoAm=JuVg!)-y}oh_Ya_V4*bYO zMojK9(D{hF+E+uP7{B*o!Ye~8>s{pnULZRHY!9f@Z?WON06|Fpt$VUxgZg)c`geac z_z)ye2B`4}&)!6?j=1YB!Re^upV%Cjm(+MKJjxp04MM8aVZRLBHNc#X_b!df9|3F=)LX#b89_-haj#Vvfveo_% z%D4HXI+kY#s0pT^|3I5+1<5Rrucs z$i)Ry9eiEUeJH|5%vN(p0a-OYe~&ms-F0A+hjWK4+A|fGGC+NtzFWS ztd3XweVKKu>t(Y|*G_S{U9#4OT&@y_QV$(t4maWg;YqzR9G}Ig#*e131kA$oC_AXRFb&>&N>>cF>;#gOV!wBPsGkHFFvOU z9CC5!RDAWvU9+Cr#qWtL*f2&N&Kk`;)25IPQpbV8-&S zu!OO~VS_mIGA;4PI?1|QWi&uBh1>Cbq3b}FlurIjBG6TCom7n@OYVEftk=}ymNOL_ zO#Sum7+N}7RIFlZk(XfKmotT+e1#=n;f__#HN)5U-NI!0mk;u%jlV~_g-*lIGMV!f zCTH*G-?h$8-$ou5zmrRwQvU8A?Pz!=r?8Xz!z7L9IkNEn?s*aSSAY7$O6kyPMBNiIswJblkJ9C(z&{C zXy9=U17gTmPH`)k6@k_m9+?9~LtkayO!S)D;bVH zjLp93e44iGS2%c?AB0{q#B+yNF8zqkgxAIWJL_=O^Ja=;1{Yua0n#XuZcN6IOo{qU-XVAZ8SJ|8_w@~gFH$_yE}|U! zkLWW07A%ok;t!lIee96!{eH^R<6HdGD)FcS-YZb*c>i!wDddbnh?T|mkjud3>z#>? z30tJx`R}^Tg|(W!a2e$@w3@OI$0wMt!@q-@zkg3PH)UmDW?Ncj;%sJ0$zJ2(qIP=& zn)j~h_0YSz%M_9aVAqmarMMnMYLt`lc`>;e8Zt`H&nJ{uH)ti>{kpj?T*zt$1p72S zLfBp%xD+Bi+GA$ z0h_?VzE2+CT(O_Ey~0>BPA)DKe}s_iD)juJgVAlk;I&2UJag)PN#r;0!pF8_ZK>ke z=-S%W;K(dTRoxJrXq)WlW!6zxeun%u<5uII_^$3R33*V@8{%y#FA0?f&tg%zw5hrq zX-8gtffF7ZM3w%W>6imK3XOM6epV^_qLF<34Tec3L5(l`F#+l-f{AP~#96c`(X^N= zMPY_kcd#mCibRo8K1qybT--+vpOrLw_tLTxjSLoR;fgm9BVGD3x6;x>`qJ=Z^Y^TA zpc=Sw3u+eC?n2mOx^+*W^0k_nrkX(sy{~s{RrxXQpIv?l$=|| z31gR*J8AYEl zGjp~06MFMV*)0i+5OUMcMPKo1!$TX&m7_a2i9SYW!6v4fD`+K+Q$du~{1Yor!VhB7 zo9Eep&scB;5+T zGaPinL!CE9xlA$I>JDPs`?G`{&BNQKc4qdTcix%`N4QJAh|#k$3a&bwR(4}1diye2 zq?`JtNtB9v(5_@AUuNU>?scPWVI)QbA>XPDMi18hi zK7Js6gH1Z;J^-95PKw-U@l_|G?R356sqky!FS;*QaIW>O^Fbc(k z`U8S?E5YOo2`nxHu$#-Uca%2d8<4D1K<=0jE2Q!kDac@u{*YH+qP}HV|Q%Zw%KuV^87gOd*7#?{_6be@2c9n z_OH~awPwb(=A2`!X_B3>*=a!O0DNUyWy(|zy`klTcl~e!c0t9L?(w`Wb)1GcDS_cM zK!{~=f+ZvH$$wFs0g~OQm75u4k-IEZkJ+l6CrlM8Ps!5ovz}qUu9f4cOc8M~igiqi zeU)!NuhRLu`F%~La|-XaLXuWO-d$5C5GdGeA|BtvokXlhEsLRs1s!0Qc%`=0NA;;U z*XOx{y|lOH*BgpC&qu;B5LO}@qV6Fexnnk2Tw z?3Hg%ZlVk!EIkDea%O)s-27ZQZY&1N`9Qx%KC>~uu=s>PBhv?~n_=Lm<{$r>*9)xP zD9i_v8bQjeCCE4~qNjn();+ZyVg+N-SQkm-g+p@;);$UnYHj>+;~BTxM>aSK1qZhO zgW|V_xk@DrXw1VBE!gK3=Dy=k?9i3>x8u7Tz`Pg?1iowZWNOSGD+LSr17#>_}rehyP|^! z;hq+{9L=qroiFDlQRh5@a?DU9!B-K3RcZBxsuDX(kt;>2`w~HkZiQX6sAy0N`y_Be z;FQJA4hYjrRZz6#!!D$YOJeDq=qxdmfTSASQ-_ln=Q5pa+WgVy`1Ws);5{N)c_;%*&kDH z{hQ~N`?2e&ap_>?2C#p$FYaAWcl?lntzihMN!6fmjjz7mM$*ZR00Z({n}PTh^k8x6 zm_f7^@sOP{E*4_5S}o5C8l?)a{|DM+U#;ELczlcM=H=AwLIH_NTt$}C3pv64ZlNe}@|#jQ=Vc}?6iqn0 z)6%X4)76}=JwDx6$9zQH+_j){&Zbj8lyy)KQ`S)ds1N24Df4Rhg1Dz)>uqBAX|@)_ z*+U0ob6sJB)iE0yDmhsDPcF7H&zcsVMd(SnGgJFA!nXD_Ek*Qc^|w48JPPu&Yi`x< zn~xhY25tnxeQZ}b660{A4;Cw_tcFm+?oql0c4=x|! zY%3}S>&A7g2+8{@NBxC7Vkg6Ozu@9v+CWILF`YUZAJB z^#NV=e+P8wQ$GtwTx|bLyW`CUtzjd36@6Wu&2;66z$@tz30N3mn8K5~+c$B~jIlRv zj5;j4PIBy-C)#wjt($Um%QvJMFL@%DHnf*2DMBaj!7jbeD~?FiH7I`)Mtjh5jNz_? zytthCcBnXZN+2%ARS2pd)ZgeyRfvbAhqnp`8OFd!G^j)?_=&WaS!B)&i+@R!6#ye> ztsqEIWFE|&p{{nAQ*xH*61N%hCOF}#Da?A$7t#U0Co9kJ8GZZwg8?|PVi8xZwZ?mo zTH4%fVRdRB5vtFb@D=TI^@`?}_mWo(r8G~U7(aaqP=J*ymi4F`GImx&=D$Svq7bm1w z7f8G)%{?$nMxT0eDWp+&QKQeR@JfwmY}N_ zZ<*J$ReGOAosXF_^eM7=`2Doni>W7eINQ?frehB0L_Co{(ZCo|zX}|hp zUmpfW23l4&HUb7(daeJH5155c!N|eJ$=<-oft#C`mrl`1-_gz1h)&eT-il7?KfhFE z_05e89RJx?Qy^D@*aw232LN^gg#B-*nEr%{frXZpf#WZsV*V2;%pk@2=nExGA|M0f|3l-B>Sh4-JX#a=f@L#AHnAvGr znHm4mTK&WQ_Wwb}M9V?{m!h5dA6@)^pNQQ^*=r_NGOb@IyvuG7D+JF+#kp2gv{;u ztO{?!54n2cs9zoeX-BknhfI5(ykFHnetp}w7fqFH@v}JM6#CvH<+65c?b}*` z&M99{y8%&keU97m@{p(OY?1qDDL-#K+v<5v&eSVNw8tSvVp*ldORUX2hwN+<-NtO_Ov(m>A0=_H0q-(53ffkT%5wt+ zmvrXWD(G@1G8Ur@uo~}DxUJKDUGs3D?ZP<9>gG?;x7w2A9L90d^~-XbZzTUP35lhAI6us{RbBVV#DB}19?;ER@ylc4g{*?pCYv-`|w zl>=mZJPv)JpqNVf0I$rCkSw9ce#~+KAkCh}{|IlGBQ-+d2L2x4EY(X+32Wf_W7^xr z{>J*vJjv*CzdO=?o_#2(^08iF6PTxYT%A~24H@uua5zhun7Aiwl8bB!(jdKTKb-iM zlrG*S(P1a40-8zc1oYb#%Qt2Olw(4R^X=*JbpD#E^uSxC3{Xa^QuJO|t&t_E=&RCZ zL8!E!E2Da1sR;~4_NN*Y=R60>DUjHx9V)8T5`m5RgZ5Qlb5|;~dbDHlMhEznao@$3mZcrYJ{G|fF?5mM< z*uk$#AJbvc0b)GikEHjmt``9arTwikurSi&QY)@jXIzvPCMCwWt<8T5{KH4?&TXnR z^I52e04b+=u;&Q#&a-n0I#LLl?o78qnd73ZL;5VE>hq;@%6nJN-&GG5z%A$&i@ zbHWbx5z*c&RT5h97$c0dmpO^j4ft6# zn!;#yd_SRoLl**Cp?(IT@f(#fi}4Rqn$dtbhe-Ea4gCJzf>?+r=z}D|iK!%`VlfO< zfRH$qd(DWjkbS#Vb>iBc^%<0ly;_WB1FW4R{{Cy!9WP^WCC;U)!36yP;&#Xr(D0hW z4r@7%@zX%Sn|81Q*v39m-mL9AIyM?0MY&!OFuh!TT6NnCf@d%luCQTeqI8N_X#^}A z;=$~n6#In5<;3Y|feS7f_trLiu129Ft*O#+0(f6wrV@zu8y<1F|NNLrP~j3?D<7%s|bl zx!Svq!M8H7eh29Sxf)kV$U<1TwqN8UsT6Fu`GGqJJIfszJu>BbiHTmWJSKQr zj39``0aq5t{WyEm%2wp8Vxl? zQohM-IAaLLqxyS;n%QA`td%mV+CMYV-CIvkqVqNwIlg~)p2@hil?GCL0(Nt-jx8m& zRwj2HqwMKILhNVVWA+(qerIc7;15K>ERVTES+=y;#5uhnQ>zTg4M)LQUCMwjRf0q1 zR9b9z!nL(UBDIuQ3>LD&DsDQcdd@bcn!XhfWpQ57Bo>m)DB+R}yV?5CfqiJUBC}SG z{cP@ey8Y}Eg&0Sf4SI3r{8d{~=H=M0f!`)68&603M3+*5;RZM+S8&sq_AZLtdavNo zSM%XCFJRmnfuh_)OzNK$cvAg!;C`4Nc>SGQ-PnH1V0Q-D1oT1O1o7AM2X1o%;)5LN zS)%xAWYVb5!c(m$CC4|LY==w z_lE>v&9(dROLWI2Z%Ko_;H_hZs*Uuxu7IL_#6C3TcbUO@Hl93zMi4*<=`R~6Wq?{1 z{Nn42!1kFO(}J+56WAjJS@*_;#D8}E`i)6?0{Q7)w1aZRDD&Vb5a;0~SD3eGU+u<` zNVA{06t~bsB#S4Kyteg&+7lg02G$g~n;Qk2&QTbN|RFStOFo;RnXvXpkgOuC|G0$jS-R zcs&*KSyHh3Hp;@OH_Y`B4+y(C&_$&4^Nh8k?-eJ;5f#WKV0UJJU6J~pjBW_Rj>*F8 zBmJzxw!h2IkClLa*%dbNxCXJiCn}2i4>XnFI|Yk7^+1IyJtG3gZMAes}&6|GK5 zD(-!GjklxJ^PRVpi%V3bOP9#iORtR8OPl@AU6JGC9=gVKWwEU5E2sWOWR@fRp9~!& z>&e(Q;X>*HjdIk6p>XWHKm6!^Dx>o=hh}`6t2Of9|Jm`%SoQk_Y@z9d`I0-ZstNEJ zd6j8c(*B_fesu^*buhwH3yf(m9j}wBb8I%ZwJmSe;8~@z&DY(dr#LY@g%ouWvkPa_ zX|YpXP7kxWO>?5kVC!C85%Be!=;>tFz{`u_);W^X+>U_iRrWyVi-FvAma2rcR98IY zX%b8`ctl?9a7U?a&E_Ya^&W2A$RK-W{|i^V4MTL*aLXNWgx6CyN*6Y}OIn0eX47-@ zz0@r-{M6}FVGM6oh9z(A;z;(4ED6~jg>Wyt#y2YLC)Om)cv1ND0m9(KK<$>N<8Itnk?{DErWJ=ul>=9Yj z*u<8Itb?6;+N+7DB0Lz`AU5MBO=^Dg=@N8t;_9dqR9%sNP7$0+4jY_6eEILdLMMZ*3kcNra=+)=Ve*0@=f)<__A?(whNu1`KFi=(aoC9P)uQ(Dc!M$5{|@|Vuef6l5|X<1qR z7OFpG)qgcpWd37T{Wmj3=Km|RYUckdv+A!Z(f=f6|JP)SEPqO>|7x(a{4uHio59ZV zkF5IN8~C5aV*N|yHkLmz`(G`Ku>6VI+39In+3EjM5%BAk^56dj8JTDq8Cm~Q35n%T z)Xv02%ka0VxGaBU_AgNEf9u4+@+W5h3M(dd2KK*mj$!!|v;SuU|Jquy{)5{854X9p z(=-3G2sogw;V>tPvRO6~p@R{OCYa&R2~4!sgKgFUN@ta`)GLr}~;)he$olPP1xe2?>uIS!5x7O926al2}8rEmRzCYdjl7 z$(dPk2Dgch5M=H9q|selAMg9M?Jn^XCn9kW;++TT&sZcG^n3s?un^#`us2w-?+_Pw zZUWK6c$kf_GLWNb@uHOwlYoK%jsWaJ=dhT2qwLvhB)P;Zo(oSqfSZ-mpvrKI{ zLD2tG{lhY}1Moax(A%etOC5Z*6LhgltccnkCj{c`E!t_))wn6o-K zz-!umfmq|w+~%-j`y3Jg}yM~eSu)-(9TM=CO!}0ur=%OsPOIKd57?cjPp;h zSdhmUsM(K#?JJTACIZJ&d5+c0}P_@L{Sog}fLE;H$OW93z4*oU6pPnOiuoqGiXL{!332ikr%HjbujgXz%b& zU8ffc)T5)~oTRg#fbW{6tSo(d^n1#5OQCF37WM4>d8~-pgiQ^rg6WU5&lHPfbq)F3 z4g4p>^p!H#E0t2WVVg1Uoxof*M7TUrq^u{v3qhFS7QTCI%X|~hKXabte`HJI=qTl` z;i-AB(9D(7lLN2hXDKMBQcq*tpT~R>4R3sV3{_nX(^SfMB=bn$v?o^Hyw?gcG0~Kxap&AUcGJCli#pSFw$yeC?C>Q zE8a!id|m0(S(bv=7!*RkhrROF>f~qMQnYTmb4DU94ckCv9XYS$`sD_{D_CY1dObH9 zh^OpJ-Z6#TH1r0&;7-WSqWFZbA4E-;9_ywCzZrcos($?`eF4mmpRTWvb>aV04$v?B zS1Hi~s~8SpAWiKicPQkiSEny9DV{F_kV?^xOu)KkL-I8}(xhRRA}bxs`}7ilMPiJE zzJ_ymq#<#3WFMH)22|102W?kEE+%Y?GqH@ zjfOSNW8>!fSX!)=e!UmrS!AJ< zukWc89r@>&nw?X0z@FOs>J^ai+(1q;p_^=--@MdbDyUyDxN2}_dt5MM2NJbW`e zz1QAyf6UJyk(2ipe%uD-R3n2lafO}ZnKMnGZMmmi!H7O)d|ff0e6=EgH( zqIuXT6)qRvhWP{>kNOw^_ifQj6UJzLd|9gWflWx(w9Yh2i+96wup4pdgj<;lb(3N* zCFyeAX5XUp+cQe5y>2`7aA?BE1lpF|$?AD$1l%iA9BilG@na71t^P|DR6^3%hd3!|V zP*6a55XcqfYUkoor|rtBxl}&QT)*ZrK|j5phO&2|Q`@6P^PmY%SNfD75ucp71m|j2 z*DN#nB4i&0qfh2|SqY_p!n6mUS*8t%2N4FZWqTi9Yd&u+$7+v@F4Lk7cx3vw$GRHP zO=2iywI4>f9w>*!g90O2)e|^bd#(u>hZDEq3M0-6{q_Y@c5l8T3inJ6A*J7CEk7PM zACz*G^3))*ani%aQe7~0+PXUHN#}VO#DgF^8sk?LHt=M*nQDaQlnhCjtbfJD|HgTZ z=~$}#cF2RZdQE-tzKH-GdnA-I9pCm1dEWR`bW(P*^_Sk>&t&Ym{hXFxg6i6#TWYW9 zJloh23K9AJL_S9Hnd&I$x|h@v?9+e{KYD2p%0WDGVIY3QqOHc1$Lbx&9DmcoP zEMr0ZM3u7z5e&f?RR;MsjWrH&7gfEy+>_4K8atlt>4u?-6%%*XhwZq7L7?78w7hNb z0pb3JfM2phUrwhhZx{o@A|xlMihV1N7MQwa;(YHQ)IZ&{2ektGaJWE@>SgUwfSq83 zubKF4j&<+s`0=G)A-blZ`ELR8j}-CG0m8~k&+!zAeB29WYMpYfkk~SYkPcw^;S81WG>hh`A!>dmInv3m#d`# zxMZLv3#2dbofDdvp6BK-9OI2w@vVyI%Jz&;LypyMLeIlW_}WaaHh5g7I*&51G99jn z{$n!k3>ALh>G?ewD7=Fe`G%O@?y}VMdw$B$M*yNk@XqSY;;N?Yd5I%1^s4(YrrqOv zJLQ=UPc%ZA5c!@eJT(CoK|A8CR>+l-?AEl{&PFD1w-1zq=*#N&ml;q;5JCeU&n2rh zCXl=Sv1Pj7TJIZPGoGK9x<1Um>O1LDAB=PLUb%d^>a;CsQCnEwq}|JF(HXv(!4r z{t3SaV;8b_+3$r*7cmuO6S@U|@AlUD zGxFzKm7@+CRYhXf3%;X>vq6}(4|WxvMm`tfd8o*~Jmo$6Z6d)iwjn>KD{(Fx0rIH8 z^KgKK9A>%TLn&lqE{*T=BTRS@C_^@4n&mz~8c}SSuv00bA#0v9^S4oIPdEd>*hGIE z^(Wi3?RTxf4`!5^4h->|Szg37BX6oxQLAGDPC(^2T@9Gk0BwP(0>pcv+5_fDRss?Z zB&G=c8Oq@{6f|sxjNYQc*q)wN+slz!CvW!0L%M6zCvb*(_|uzX5{BC+fJzq7yH(w6 zEVUll{?iTX$qUv4hHt?PtwbwP{U=JM`mndUGt(AVE%l zj+9>QYA&Ry6AwQ4boI6{-rymO&*U-ZVaBGIt+6%1nS7;IvRKLxY@J2+`5jwG<*iHoEt+2U=W0DhTfh<6 z#xG}hdrfd@6OQ^iXJ{TpUK`)Wl|f3%Z&)dmW?ETK%LY*3?{S?-aCto$c%~^AX{;?t%E(BR%?EDLp)1Y3 zeKI@tFs;h*e6r`zKk=QeQ!+AV@H5?2PBya7gc-I@Jyx2ZTm-NV%FA$&*&0fR@U`#g zCOLIwB;@;4cG7t|$^jRF@~BucA$3f25(6bvX68D7DtX&?@>8(4;m6$y&&>#}9x87i zQbeX#@}A}~b0>9asTej_-mN{V2RAzKkym|On~;Y!LUdCl8uee1TTH;T#ZOS#RA%+@ zS7T-cN)oGf>TPX)M=@6Gu8Bw3vkPVzxAdKHM=`Wfg(aN<$jW2~7-d!i1Gp%phwy`S zg$r=ur{wB5YFT3E?Q$MX<)x5v9*+5Sw>b&k zq+u=P_U#P32hpU%ut+QB#V>wcPmnfu!oE1;op~@i7eB6U6|q&XU9q5U+P1dkM$5N# zrN6RQRTZ+le#_j-qS%btp#j};8F9X-UqvBIK>CWeIryssFM*rkW*eVjM1KJX2nHl} z6v2g^kyAyS7&9uM@R%lEm%OdHqa!9?T9r|9n=!}6-D9d@O9!y14<%;Vfql~&pW@pU zuYTJm5|D)jP;VpcG!TU3H-6|+!<}KdqFM@3Mr9>JXL#P0ON3g|6+ zw(^Bjsj3ItwRx;;hQ{ijQEfL%8F0&1teeJLTDsR2N?29uif5LilTDo+d4|jBNflD! zBMTUB#OV!3664A{904EjZ9uWe7P??>P+~hSGTZ|<5|cD;q->*VmnT`I49VDS2~A2>RpEfvH!dVHxK2cNwFZKG!7@*t#=(pGN9=brDRIT56*aYE|~E* z0g>%7TwBgu0#9+Vu5{}?tLkT37M;`3p*(06I#{ezajj0AIn&6D`mX7=`S4?**;&=Y zM)^k#-LO-%%Cb2#CMTi=!yb!oqXajiV%JQyKH!m2h0@kCmCoQ(Y|PQrTgnY3to1H; z--|OTJ_hy3>}Wi-8EKXEieO#Q#)6S}7pab}ZLd+RO}8%gIHD;K{fPT`J4f2HiDl8jfm~e+ww? z-6jtfzk=hed2dWl2m72lu@6#0XAD^?bJakUVzkKKpT!=Dk{_YSp)vc8@t~W-JNtHnd#lQ^IRDzI zdNmDVT9=ZvW>#%cDR?PCU2F8{2In*~s?~|v8w}f%s9W-$w^coWTw)7X+C^VcgU+oJ zFVzyHul^J-bDrV_0Y_P_$)@+f6Ruv(2|mhx=w_)^GKYz}Pl80!(!9|tOqd!*Q|3rk zYTG2PmFnF@8IlZ@<>7}5q3>^#2x7tU98b zp(Qs+Vf|JFDH8qhW(jeceZB1Rs^Jl0X>FS;jD`qc+1`;Z;>_Fk{YYg?Pv`J0#5Hn- zb&~zH@t-?@))v@IC$M6)sB02Gns$*e!(Vgq1tz{Wq$-$2rBjEHVV zWCmo8`z9xacP|M=UfKKl^6fm)H;9DU@0NgCD}G;S70gCbuSKN zSPMDx+-Q(sBC^ER)MEX(H#nC$u#ei5Yj`S&h;Yl^On0%RbG@{rHFCSe`F8LWY&q2_ zOG_MrESaF3A)6W==)V+_paSHVno~^oyYb%KNg_+8o%2|yVktvGFFEV@jB}`NfiReN zZh?_M-dwm`i!nZ)D#_~OMP(y9cWh^QL5WMZkv>qBE(9kYFi5aUrNW|Y@TygFQ=-J7 zvbbr>GS5iAUT`O1I9kxqS)SP;BG1(>&NyWu{RcZf-;bYNn3pwTdk(F?SvYi>)GZ_y z6mp^?PtWb5L}Ml$yzeE=UUxY6K9pE@)&L)MczGL+C&Gu@1)cpl}%_aeeK)2fmhw_q;KtXPacJ? zds&PV^VmKfXGx3~4;yTwD15HaTr3=EnqPo0830Tp^u9-x^M3%k|+yT4dJ|9IpJ=w?&J>b5OyOv1MdP(kNpULQw$8bWv9Ka{;mXIC;G&gfsxt@Z%#~4t$+SQj1G0e~3ILE72N;PBaI%VogH<~ z_0*3e0sfyKzjStD07am$nCqs}O&&jIBCh-s1^GVY-%~e~^;puth~fkiM$*GoRAfm# zipwjoC0JHrqk1Om7@e3AT4v`yo#`<${3hB0c3|BDX7m~1S+=ti+ynBOtGl*LnNwkc zA3pZQYf`{!?Co;xyALE1%hR)>S)xDcI(5nT-pdTF6 z#p`u;g{?ubG#_%-cCrmnB%QYl9SR!?%A+7*pO7+MO_TCwJ~2#BcAm9clk#yKd{Eb+fnay)Vt%gW=e)Nuih+)LID7R3fV3r7FRIAUO z*qVuD+kOZiL&Jd^-MNkD0h}Nbq@=4QydfWfYGx*@8t#bPwOU4$b+ewf$q_N2pm^!^ z*uP!Aq*yfBgRU}?Y0OWB>H}&Po8rn}2dvb4KuZYmeW7V~&4o2xeWnU?>0^O$W0!_b z3kOf#mNV;Hg_C!;y>P+90n{ju2VYC-4eA42=2a^MD-}4C2?)ZtZ@vHx5ztQ$q`P zFsMaEci-2xY}q@X8CL)k3ZnE-ykk7_D(;5xT%zLR@a^c~!bU#S_53K0Z;>(%E7ulE z6i_J%G%V{^;F;`O=;^DRJu))oZ^F3*m8sM|@EHrK-_pR!AIq%irqZ|p*Mi?Vf>{HMPh36T7? zL7~V2L|Gz{HDDbQQf>bjUbAYi)f}1#_H~O~%Zt-P;II5%I|o8 z49YBg*4mB8ObR(l_tC6QtVZ5?sUqID-xHTF5iM?hUZ?mET>-FNqd5I`bNS*u{6~vP1|dr#+pfbF znbmzNO`kgtpDAS@j!5`7V&1YQ2gOO$%XV$JA1&S%oEkr{J`K%;yjC^?q~jop0IX4M zP|D;>K=VlE!>Aqkme+AdrF;aufRYDRaNY+vrPGcMb00mpIaq*;hskIp5Uq-g4{siy z>xE4ENU(>rxH&d@8n2dhw~;PCcPgH^vwLfHO`d9Cq(Y8vAfCyv=z@L3*FcYSJsGh` zh(@JW@$mZS-qSvtTfsj#dY}VQfs%;^kp%PsFCjy^-jJpsCMS3@GbLXD*e#!+yi~S{ z?0`~)9aykU_J8`KOS*}@)S%cc0ZfkjP}#GIIn>>3FE7ibtInUJKWHyvMrdcIxy|IV zX~XGY7ImQAnLYL@Hp33CB}7y+q1C5g6=8Rr3-;}vGu1!6jX^)y{7_;YIMEFe33cy{ z>ak)lQNVHGKqbwbDxK@8EIq56$pwD=DEwuoNgH=u^&&Y`|1PaRgAAq!SFwWwL}NAHSZk!Kp)NO z2cWs$$nE_?dMdi%?!;vr0!~|6y}i_PeOkb(T!_(+J!X^%_c>k4CN<8Mp2y&qK->e% zI<6rak*tE)4u3@TT4_C6&^*uW7t9UZmbh1jfGe&e;l zKXbcd2a%`<3aJkgETJT(BV|ciJZP$0K<4Zu7Kx=me4T)5mZ}^PLn?`ofc_1708_u2 zN}VzS)O4@Kwcz^wQbt_7OR3f1J0p$z#a2}nE-?>TpHJ&Yfo)-D=hq)2m1WPSm6j1- z`Bii1LO1?VU-U8ERbDPTwV274mQ{AbRTcCk;1}iOv5C!TyJ<>2IXSwVK)g^G(NDws zH9=*sUNqoGEXrmM<&O&#ldI7Lme^F?UKQ6RQ&7gfkZ-4jpj+#*`n1wWIeP;%*jK9# zt@>e-X;-o0QmyIgQHQyHxbvn?ax~5qq$2sADViD;@@yC@0#(Z2-&rKJlBf)9-QCj_ z#!*a+Ag$cr4MmF6C*m$8WW=cwDRLR1iI!1_R`d3&AGU<%UtsD0S+3B^#GfXFpu_V3 zYe8I*t~t#DAL&>_<-EbC8%46`b5^%|URia4V=vZc|bszZ}cQf$QYzuY6=wj3YL0Dx? zecplJ0d(GYZJH$RuC2{vv0w7^e!_Xt0SN*mZ~M$4^8l?&R~FoM1$4NKHHX#ryD8vGr;ds`=c-_4~oI)%rJsJ-<14hjFOna*Ehmb*sD}ciz)xQ+7&Gq z=1 z9k_l08n0-EXzWFR_v?&ZY`x&sw@ZqEbtV8=mc(6Bw*7kz5`4BLVP$B~IF9W7)wIAH z4C_gO?I?%NOn^m#W?uDW115T0fV1Q@ZW(+|bFetYQt&)0UT7Ey>KCK<$LpHgD*k0$ zueo0W0+gd-EBi<%(q|QLAmuv|@}c?O46PBA`Uu`k0MyzP{qi7K4twt^zJLIl4X9K9 ztwHoBwI0Kl^O~OhFG-$R|D@LYy8@;^sr8uYX*pQFhFAX;Bk`Bc^M884|5AZ6Gt#m% zeaYtj4yr%N^%yufXc_*NFpl+4a=pK*O=bO)T#w}|t{A`cw0~s>+5REd`&V2sFtXFK zbNr=fXZwfZ;a{l!Dl@SCqs{&=RDYEj*#5-rf0Y^7{>1GJtc1Hnl^NLn z#O;jiY_xxk82&`7#5$Zn@qlrhI9tQ*zqB zUt#8T=6ucty!PejSY2G|_e}8np zc+>gFT$nt&TBxSe0kqQh_$V2vm%&tE32wT1Egz|dv`p{Dqt31kI?_qS{UnrX@##Et z$y$#=-`h)3>o5R$&yHFz}r-Mp93Y~w*q*5PuK_j)Pv+v+#LS;yPS zZiBk7U!t^Pk7yRhK6_}WBwo3EWj&&waTHVjnJfHD%=#8%; z5-dh*^!c}$R1ub+u5B%u+4rdg(n==NYTo+UA{+9><(A3a@mBN6xZ)+&OpCtxQ{L;V?W_=9_)%BGaqiAN!QN+-a$R_ z_a5%}T|i}j`4LYIVQ@sOlE>ni{*(r0B@?wZH=T5wegoRV0y8UFF>|ijck^>Z^JDU9 z4shJe8~5^@bJ(q78!AaTs5kJ0+wA4RvxpA z@b$aY-i*<_-e}G4_Pd+4ef^{rxHNY_j0=|RHV!HW7})D@uF3|+0S6pX!$}|&(7j_d zQkGJ*I^-vq3f*+*j1jnLF@|}7?kNyxPOd_=e?^QuMG|Fo?2tUYzT=`%>mmj!7Yr0< z7l5HcCgLCnTis9^i6|7nL$;EzVqWU3<^u*9*5`rp;5uMzGIq7049D4qC&aSz*nrJV zx~%eRuVt2;etp5m^L9;yp2T3mLcuw?M;5N}5?%ck+nbbyekv=gO?4CIE9a8WCta!` zkSN7;LKKrxhK)F+g1m^;HO+Qk>k@>f3E1}|-(_UsN+Mw=ztC+WGfnswFf`*wu5tAA*GjlK3pD4tpq1hddT^e^c9P2l>bCA@^GxxdDa$-%COX?&1 z9|+nSM4VH=4NtmJJ$o3f{RnEHg*k+3SHI)3D3O&SQ89$6xUoXoc~J~}U(Ow)rP@tA zvrA2fD(y9mX+w$SNPOXs&b^;NaZOU5Ek=Xj68uz9pz7bB`v9xfwsW)Zuvi%{R5v zt3qls(U3h&v*C&SYYE@{xtbr9S|T-OY=8ufhpc=!OGG3_$Y@#_95NdijXb@cpq#31 zGPXcIDb1wOH$BAMF#28}D!hkDkMenK*xh|0D)4W$os7Ih+YX1RQ zNjlA5LFmNxkJ-B?1xI~He^#=<^?sIXT)^V4RYiP+O_6dWF8|e1YM3L^RM?v|UVD1q zDRzQ>#(DDNg+AZ@&Gv-bEAQ>~Ry#hFxh#MhDn~AKxC(&t2wN8@S5_GSjAZMCRS6>d zJlAkWr?_w=b{!LxNWyr=3Or(pT=%r{*-=z=2H>RyCg|Fe3U{)@rP5(N%q3nVvZsAB zH#jO~RXzxc14l^)S_-mo3qs;~VI0h$L~bYxy2UpOrL&;?eqhHHh@!nZ;JeTpr(th! zQte5ho|8tFF?~M!;8dp{O~9L-`aUTTDivznOB2V)9Ac({(>x;-Gn6Jqe%q0*p|M&v zmUO_QUE^i&)7Td)rT!qK$`oZQoJlgj(Kd`R`@ONZ%c`3u2CL&Um~10RgMzYy4vYkB z5!SaJkA<%1oW?jMO&dlYpaYSPqT$QcKNbB$8B=2YSxWL}(2|gY*>!wdT+R4Be8MHA z`%DXPUu>vbL0d|dB2SF{TEBz2!W4fP%f6upBQ0^0H*#&Lf_}JtDv|NGa;EsRQT;}< zA5G$zs=FfS;~BxbqR2_)KvXif_>FK)rvckmkMQ<_Mi9gwIFf?YO8+bc6497~ zc`KMBW+P1-lUSBO0`Jm7fiQ2Z7t7Yf-vtgaCBb2`l2tmtIb_AFcxcvKzwk%8RVp6e z3M-F{3VD`QP~+*W3VAa=GVnL#32Fn+2vWG8ly`3J0$$THo%geK{gTg!gFsEDDG3VJ z(>-2%$;{>p%(V~(vp+3jPU|J8MPuU#S%DfcJu(;r3Bc4v@G7D%;#t^D7j1u#hPS1s zkml0)%Jvr0Zva7<|ujT_mMuRLQjTx7$GItDQ#Uh%V-!Lca z_oH748+kHMgkrZlV%J4}(tp*n{kZ&jtnSyfaJ5`HyLY%&FKCmy_pcJMeH;=|af=65 z`WasftXox%`bxA)^|VG!rdB)5x9GmHkE+qP|VI_M-Fqhs5)(Xnk?9osm0_da8f=N;$C9_PROKEPUI zt*W}`ea%^Q&B~;VDyMM3J`nF&l|xyS%IQzyQbf(vJoui~F5SH?i6o7)$RL=xm4|Iv zwQg0?JB4aT{)W(;+Knq&nM~k{*5_b{F5a!x(yN`W4>jAL=C9%0xe-l`?)9XuY_+;> zh|%7r8tM&#*wC?>E^zU%I2pF1^sC9TB)XVV4f!WIfA(mcTCu0hxONkP*0|%|NXR zqgiZV5y<;2xjXq0CDz$~zvre8Z!<|pvFxCr4;oS5s7HdCSA@g!)f@HWSI8V$ zmrE7Zg;Z&N1-YwoOQs12;rh38u5$~Rv6Yv6+JX)aM_ zqB7|qAmgy1tn5jIezKPs_;fULT)Sv;A4vEVu>~1Eid{f;sevZctRN*+>kEYie-=3i z`vTq4`v!((=WlQ+hH?R2Z~ag5PTt=vU^a&!djUavG)@5rRR!z<@`WW?YbeV>W-|*Y zEy3Wg>JiI_74yd|$ng(7!BjBIQS{}eh$)t7B% zL@?3;Ayl;J%HSx^6QZ+&H`%1{+WkpVewp;$e zTyCj%wKf$jM(e+IgL~Ud@qX=&KKI|$fTb^BcOKKsiPn|ns^FSAWKaBKxPJsE+jX$My8{M~fot(YmLny;BaE~S-P+1{Egf3yemB3kX@Nf*u3jYBd`In1(O zYfIUnF%M|MA_fxCh)FByhwZx?t*(M6`ff|ZI;NULaHG-h>F-(E)!s{gdB0b$a;-=; z=0*kdlp4JW@An%!IK^<2EbmbMT}QD>;wDhsIULQnZ3uK~a+)!t4J(rCJyd5>PAX-& zQLtb$xnx-ce-XUo`5PsjJ;_TTJF(V{eKO#U^=wQg37-QmhEE+4F|kUl=~lk2LmEb- zx1Y?XNlt&q zxW8#C2s1)0KcM#OOHuGss-+6nwP%43zAr?;Y|T;5=2nL2|$C>B^_Ee+BfQH}N0`+E3DlEUD(R>dUI$3llR z1ivQ^4R56%(mxyZlo;|8uM|vA^CighSVdKQ$B&}H;BqC+xXj<3bK}*Q`PlMaP`Rf; zHjT)lWuaVi8YB(}sYUBX^@|AK(x0_tJ0LA!mDs*6&*whEB=y&Qojl+>Lv{f5A=yE1 zyd)>X(QbNATk%DhfTduEBih;YRC(EXwA$|S#)8@!Va9g8qJ@YNjg#UwP$~TNJBS9 z62o1FhHl=cQjWbOg3?Ay-UdUI#M1sxi7pJYetza<3%A;-u_|N|e!L^Wtz>y)gvr8* zr>pnTB=Lf&OL;}q_<-`tY#6`VarUN|?J!uS5n@vpr@#}yA@)2qWKnQHKK^{AYeDf6 z!&A|S&;%x>@sW{~oo^jB7o4YB(L^=)TAtlzx*ehC>37$&;gt86ef$x%z2sKvNY3XyHr?iG`s zeAmS0M6nW8@5H4SN^1xL;3pu3Q2LLcs!e5>kwdzXGt$kHs|?vCRyz)b_l#f)^)+#W zxDHO1@MFLkLZ~#L4a~=g#GNXYI|Vz9yq5boZ2bP}MH&K4h7zCg`$(@7L9ZD!-cipR z+6uM_y6X%s7EYJp3UeZ(U;2@qr#{Pw1eQR{Wf+tCPj>j@ ze8x)485lKoe|sxE`X^#r1cxfESg)UUh4Z_=ICxA^X1ktPRFg*jYL_^FH!h}?u{FB% zeuNg{TMf@HUjUjDUtL$HlxaN>T+O(388F;<1*^9oFm%Wo+kOp07`Wc-Tq+*>erKA? zZ!_L>jehtVW&+f~X+pR1f|(O_v@ek$#*E^0rOv~&uJMFL;vk@^L_ar$zJtEpbB>g5 z4x=Ra?qiYas`+3oxPoe!X+hnB2w${aH-X{srB17`aX(wCUv2>?^#O9!TFVjfH^&IG z*=pwiO}gv0BkT*_(GO}Cl`XdiM}Fk?1mCJTm_1*jt;Dc-I2`M*)UM;Mp*aw#u5pcz8 zSJ%=;cP$G5%^Skr%bU$pP%%1{{-TApnQJnD-m&LUM`2+?!1~pZK5efoEFj9Bv9Cw4 zXBd_no^0EU#Bbdtq^<+3>CTPP>8uMH=tqB z=YW6FBi_e4{?D29;}<3i^FQ8~V!{3~!!q3r2*P&{A^P$~Gy>_g@L3WQAYT=rE%-_m zJrsyYU3S<*UwP`uDIv3}3s(%+kDBnfVru4B{%ku0dO09=p>Zuz2fR9H*RB~=N0-{l z9l#Qa@|L@>ofne~%Xd2^l`+ZxbtE1GEAfcPIkcVRIiw~6xl-u z1+*d&ZxXhYQQP75dBWU^NnS!stpCYn0t8I+s$lvMNO8yw4o9-(Ji9TN;`Z%EZ)V?f zdCtsF@L*5Qjx8BQq=6F4f5Qp1bSZcpj#fbGG^m`q*FbWqGd(pwP9Cqhe5h2HH|AS;R8KL&rAL3%QL|9w$ZT^R& zg*pbRXxOnU#s-|9C{O zva$SE1;naoS}pIPzKTn<4rUu4nW#sThD3|Wt4hXG3`YHk!sT)~CW+Wya{eK?)g!ar zJKD;Upf4E%r}oo8EddoHgm)*aquGXU@4u1h5FJ$&lGyoeLcRK3tg(isc4Q zbMiZy-h2gU_oo=%<-B+MRT?&800L7sbP%5h`rdxTkLxEkonPeMzjXI{2D=>#Mhego zyJ#}s4$r4nm@bG{)hFJ79*_EEQhC0c9{PnsZc;-gIYCzf*ZDUP&$vOXJ)y^|j9njA z31AkFP%*F4#+GIMhwjOx}N=J}y06 znB9%h)h^N!5%({>n|ZlCjwFwKv)+Rc0AO7ci`~GA9=vebnB;r)7X%T^I3LJrT^D|D zd&*{3Oe#+d;sS#^5_3K=415Tl3QrgOBT|y$TgOdQL$E%-(I`JUSym`1eQPzWicnB< zr`ut;q*BzitLH6QpRr`Kk;T=j(`L#SYXi;ewdpSHN(gniT-A)!B)f-C!rXfieM!hbmu<#t?@T%zqMnz+VFvWqe( z-HL!ck@hxsD~E%U^e$+OudoCDwnsG7`PxqP&L|(sK<Lx0Ua4yBq zVnj&%7dy-HP6__PYHb;#qTB-PV3)FhL!jwhe}C~TAECIYS=&8w z!+V0Ksb9hP?F?FCkH)5^EId`uS}t31WBp5M9EitCr+yXt9jaM-luCT8#%>aY#^ZB# z>gL250GdORil|PNHf#3I;R^I``rm?)qEiZtJ;0vS-W%nxz-e4+?W^BonBAl-SVvT) z7Emj91Rx#cl!_mkX44~cA){AzVOSjc_}b`+XLbE?fCNDduk#i|BTVssKNiZ2pPh8? zvr@m`lz-ni>bv>|OZyk@IQ_mApOQJg*jn59XGMD-n88c%FUIfFR*X>`}mMgCpqXHG4=lBfOM2V-o zlGP0%1E}?Lw1D9&mgdDoLibae$Hw69`FE4lzME08ETAiw%!ec!*p{Tp54(!D2mf6Vms*83aMj9*bvv zLUUu~aA`8G7WUvsL7^Faap$Ee?7Z@AW->vs#Q~$bIq2zkki$`0F(jF_%Rwy;+%6cy z315gxjRi4UjIfqGK;e}yBc&{}CNM3N7G zy<{5H+Kwsm)ACmT-fa&pndpPIAI_%24MfAFaYPW>8Y9aR;Z0b;x{XyBT$t>AXcAUm z+C7!jOS&jyF{pk{mKR6kX)ZXqef-3)6&6S5-QkTr7?Gdic5u~s{5mZ!L7*b$*k6kA z^t^%Nc_>;p`O7?igJiBOaajO=>A3f1+Wxz78q>n*0;hw8%0QDM4x_QyahkC3-08Ho zO4YQuup_g(a&am^#*@UVwpiY-#yo2#3C<9?fK45&-7ObPEw}&Xf0ni}$Ei9Z@THyC z8O$1~b0Y^V(>^!d6m!YkOxY?lW~a2%$u75snns-)xM<96s5-gy}8Xk*143rSg`aL zVkq5i+2qTuXUk~9xgBtYON8qQDp8qZJMPaeKZU^5yXmk$gUI%CXOPg{Jk^6c@hP-` zqBRX!4}(` zdKT`tHta$WMzE74`A-Vw+%qX=uap$3x-lN4No;Hg)S5d_Xmdf0Ob)YUDo9Js%%-q& zgRMNe3T??KJ84+}bv27(Rt5_g5de)IwKq9Q@XdZ&I-cCWv)8pvEe$C4wQLzK#>Y@C z%Sdup)sXIgyWhSrbJnhgsSF>zBikSs9Q>KpB?NgM!|0)quPbI!hIMSaHQTFm!7wqW zcDCt>mP+m3ReZ?}glU_WmuZ_CP4v(>T_qlbmj53FM?6(j*1G!}_z9nxqDMD+j}bG$asb4e6EVxF7E?zuWPFwh zMZL_MSgQ!syI0)^eX7*~5EwL)7}nEPW^gaB?6*7bvCzDNaAIz*qc43B#~6R`@2xA^ zj`|;e;aYX*jZh=-L&5{Y62WCoVW1YE7NICxI1W-u&~xmdUn>yS1;+~Jt~nfJ1=cI% zsT9u`YQ~AQ*#X_9tkwl9PSvi?p8mKR{lUCGayJ%vUBbHPFgQadaro1%k4q@xYxtJ! zmepYjHq#5+!SWxadey`?QE5xVig5Z#@1xGAznOgqq_l~=jLw`3Ox9cJ-s*14Y)x!w z?a3@6{eXKRj;WLoh%ZF-!K>Nb|N9BWjXq@ zwlDR-*_>6z$X;=Oh>c7GkUTZkCmprD3Cj)0axAF@jt?gnWDc`)DZCrG$8lV+4HM$g zS9@zWsy6Q05DMfjQ?XIfSemHOoQT1(@vt~=tfHU;eM{%8r29b*`4o{)nGK^dr-$!} zl6G-l8B1+|J>EdBV=Nb2l#mf^@qVX{t4q*=0cE{eS@dqqU_3BnM4Hs(o$MYLrd%BO z;?c#4nFd;>ftsgipWvPg8|thX(89yeE~v*0n@cw#d%>I5hwYQA3_c8X@Z)+56idbg z_7JwQLDP{@g0-t)Kp47RMhK`RstD6@<;;PO^7EJ1YQmJt?BkrYIuqs>Xk~Ru;_t|K z*V}0X)=BQNE$H3g9Jqt0$ct3}k&-O8b`PnAN3=>w$Vm@W!*X39Ak0zSI|vhR@8|k0ZIJ0y{P# zdKlt70P^ayY$}dMKnC0af{UQ&Kn@@kmb3~0I{%$xo-ew6A~_Pd8-`!;WL`bN9II$oD#_Y=I5}+7FzM z^x`K_C%je4P;7!0wFw6$;TFgNF)vHW4b)xto0zBHuD%H{^)V+t!nPaaL@f42x*=96 z;h<{%=$Qn2AvA!(Lzf4GXN$1M+4BayY8OGXfREFsnXhlJuc8yvht<*0+QR|Fnt_W@ zCVkZ-!bi-PqrVoyAcp;}>T6!EYitJ-{r}?*`6cobhvg z&v{yB*aZ}Gg=1zow~CPTs&J@x98lxiic#Yh7rzR34#Ej}#8<^u9+9QTR%{?W& zFXe1txX}9ll0yK)N3Auc|8)!Gb4CFG3?H@DnAz#xFRgt}YYp(;D*iv>$$zyW894xS z?C)*n&uI7o7(QyPeQvBiYOOIb{%57*=Zx#W+hBf>!Ot8q0Wf^nTl>^!@E^Uk|El)S zt*ifE0wyCX`#(HR-BM@Oy=`Xz7yzf~+~W*spT1nnl&;`-!JEa1lX;t;7D2j#$k~dL ztl{PY(~aNYeh=ls@pkd{v>)Mdxmweqle<<*Xs(h~#kBr;zIT7gZyEt#a$)D7ZE{R6 z9rN~x!8J{lYUSYR@7$K!%WA_m?oNmf{c$ZC@N{3-yg>rSF@%daui<8W>H5c1baA;{ zRLA(qtRGXH&9eiW)pJAIt!>I%`_?#5*Rz7ji^a$0^zyR7rY4PbKndos+EtD%fy`v8 zhZ{13k@|LgF|}qdh-*p!i(Ko}*@n~}?049xw*1WAUXIQtFgeN9W7FY`0uj2GTS(j@ zI!anr9^Ikyo|bdZNO)=+Pa28thN%0c`_*n(2J2syWaeq*-s@h^)D20D(^yi48aS1H zKM#^?^Yxj>H_-WOUq=X49MBMIozgbzyTbRz7#U2FXy%pp zc>heql)o1NKeErBC#W8`A@q4suq%Q^2f+d?vk>UJC%~9iI$|6A>9Xh1(2=OOCIXfg zAN=hf{ECy^6$W;cAH(Z!_wxd+GuchQdx(*j^(j?5Aa-^-u~cB|aSO|;(JHvl83T82 zPB{oKTlK3<4(fAfkyuYQ3KoM%M>e?16%<^z8lL>&q>FuBV3bcUV&B;Y&V)GMp?275 zAL+Vz$khs{90o`Mt0pt>30mvSF_O|vJfseAr9>3uTIzL){r7+ZYC~c=h_!NHJ>_=N zWM(Y7jIlW+ECCrHj&7(Tba|xTt(Zm5GSV8s^?Hx-e4b)|EWll*pK)|89bx$VH8lwG zNDD2f$K3Igwm4Td(|o9aDB=vZWCfzp#2P6Ttc52*s-xyO8-smozA!!NPf2S(^ zcpMy<#A-=Esmqto`H2O!RoZr)WyqWs7$`K1(~vf7SrN*S1Lp@Md3tvWEKG`Y&#%z=Vz@OF$(!FZb_XC z*>ct?hYX?tr}8{NluwEnqXFkUoxm>$HAT1!29Z?Rde%P2w5?93dTo*^CA*aD!N^Qb z0?I|kEXB(nw4PBw`-2l*{>PyqeiHYw)o&?2O-5$8Gaim-^S39h;=w>3&ZvfTc5 z;lnm1<(aZfh5$qQt*~Py6obVt{pEbikyaVFRZqu+5#tHd7!GZS3n0!d^@DhV-G;Ye zJRKJZ$rXB%PQN^BQv1%~@rlZP1c;H#c>)Aw7vb6I{>tbJ@b5sDv za6A*bxG4sgVGI^X_Cve=?1>2tfi^c1kxSgb51R7Aj}-6O{3~uy}9Q!{^$E*R-QG6aKHae20o?E36ULLEhRt~0Sm5qw~#)=|Y zZJx6$KM0$GbY2#F*k8*cnvlEP(cSkO=ZGfBzCU>|Tel~%?Hbnvx-2?Pp(7*Zgg{kv zUrs&YFSgLMCCtY?PQ#w>@eaKnF)bJK<&#WsyR#i`HET&FgnrpVtvYx?4rR8{>f59* zULU5x&tMTvIm5k^fi`bFk3vZ=VVCa{C9gPN8+yQs4PYk-IInh&W3dRnW1p?zJ$D6tU-HdfEBkeds8K`H4 z0=*v)J#@K1xhX`WJONy})T`!wk=9z%nsIb*`Hyc zwHI&8I*Dc8c$~o_Y46rdW+*_=XE+FN_neCuk+Z4msi#r*3sIaewg)s@yoMuj?VWu@ z_Rqh#^|H-FxssEd6LXBGeu&*uUJoB2oyTGQ=E%Us<(*5$=?V19#@%L~8a z1TryoR7~i?H^(|P$<^jy=3pyVI&T7tj;R`{aoRQ%h#m>dXu75a-P<)+>I6}q0h zVM@{6sxtMUc7z39iovTVtKS}|B-`=Bv@;o^@8lbLfGPC%v;;07*-h zp;Bsj4OEbQnjM`^In^TkFaVT&25EQD>zq&G!MvV^In|)5^9HO=fSf*GAW2^4M%bP) zI4(=MpJdu6J;9`q5N*JWN?b0;gsL^(%J|XwZ}kQDXmP8-5fzhwYpS1B(qMTFl!qn^cnX6kTQZ?kLr+RZbtXmY;^`!4 zW_xOzZSp4=BX;zWleE{y-%k*i0gT5x@~sx6vj+8=dZZq>EKe)0^o zXSc8*X{xV3SJ}^uI6Ga&1TqNvsPH3rlXTAH6)Y5eIY&u($m33xk6%zU4yu&9VnDj7 zXud#2sC?nV$~4WOnlt3CqlRL4>;#0@`Q%A{AC&eSDNQjQMr(oEZWRpu8kat;*ffM! zQWfR?2s6WpGgRudm<3Y^t+jbyBMofAm)pSi7{oIemt0kDhUm=t{i)o-~+{mVJK-413-J#TTkRZ_OBHRLcjmlqwKx!pOcx}N0q{Ip-zY(so zol1)Ze4gWFz8D8FU3^Eu$@8}7Ap-~>1gu!?j z&x= z4V>=Rc8rw%2rj>cZgquL%gW|qSza2t-?deoR~q7(^nj+Y?Nv3tFFoMZ`Z~C&J69rx zJy<3URtUaqiCgb|+I@?{*{!?fY~yieQLjj(@7ID=5R!U>xy0qt$!qF5iB}b5UkkC! zr)l_BeKuJWe6gQ+H}6!<9{IJ*AR~4lz~v{#1MU(84Gdn@V1RAMo^RVgKTYYWs0(8n zgOzp>h=a_%ZS)>UDE)%R?T<5c>dx)E{0&|WlVH??~EFk8@LI4UGn%yE~3%J3MlK+WMue@%EO#!V2g zySGVhMaGO-;3Q|eFZCEB0BAV*nY};E?uvY&GKT9fdwvn4cr~DHW3=mV^~c#W>d6G4 zNtBbv?xOi48y4i7@s zk3v@Xm#q{4#*aj$PZdfS|3`{Sj30_hOe}PapQI@Ba8yh1XBQx{o zOhyA3Kh%^yamOQo@gq&?GY9Sg@Adre8T`zFd%(L})xZBLMg}%ImQPv>4Pg8S>G&`G z?NgsYrjMZgQ|pT9BWVBBx?=hVw0}H!_kQQ{AM3l`wMxySNaR68{N77+V(>jmbuq~4!;Y8Cy{ zH|4s@&hUnS{PXVz>!n6L8m6^4ZzrP%CqWqRGjwNe7bijCFGu_MqLJ-}{t@2K^N{U< ze>A=tP_WL0l`#rQ9Oh!ZJ$IWiKkm0{>O`WQf9GNv*<)kxy~19*-;Eo8gUnFhb#&I= zecYqokUnOAE*maY{HY|I>3Qj;j6N^KD2)OiL~gLT4;rf24vG9a-uS9x{BZM7XxGl# zgC(9+JrjXh=MUW z^xi8VgKZIKZQjlqB*Wyqz0WqH=3)2lEkHNl&OC{BW1q|;fK3apGa32*V1B)uzQC?m z@$%1l>B{%ko0E-$<*R}`0SU@%*an5U8Q`imG4jO{D~F!He#e(cd8x+q7nk7AD+H0! z^-|{fB3sFj-9=fx7h-Op4!Rvn%axo9dnmjanPH~qyhk>~71yiBh^-)1tTdMm8HD`5 zJ%N72S2oWAbkOe~*bh;2ag5l`(}AD08qBFk<&`w3vy*F%aUe%>I!!wC6f4zow9-pW z+XvEBz%+e<#^u{OoDk>T5KR}$lFj8BthIgX&@gxl&X+^6Ql<~qVtRPuY#!wJneHY@ zE*8>)#o5_nRE-@H^T^K%SK+Id%*7B6as^DRdU_M|`61cLo+>>NRX`~ue=Arj)r$AS zi#LM;cc;5l&G2x%+jb@ZU4t5P+d5*CyZ;#~R^W7muo^@lti#f=NTdu9=F75QENyov-@0 zPOau&^K*ssoJ51e1}7k+?U#wGG&L&z=0~9?a7n~s?lGg#_z;XH1E=a>Vb}zh;N@b! zASN&}jn*8<5vf!$&?Rd<8u$2JgEwo|id_gY9TeEBXf081O&MSF&4~P`O!8>KIE?ct zQcMYK@OqBa%1qRnT8Y~C+*wj~P{FrNqA5}edW$ItODLr30>HmI3vu@+*ZEL)^0qg( zcPUQ~3|FxCedU$56vzq5#ETLrwt&5hYVQ(oLZp_>jMe-z5}LXAm1+X3uA!3(RR|61 zJBukR#q~dc(}X5olZ|%mcPl zf{9~!GKn7%&#Fobh$Tc;aV```5k;<@gw`tJ;G)_|3({ACai(J2B8^{g6!d3C3IF86 zMQI^Gb!P$;DrI;Fk6clccoYI7vaOV5ig^{gkUEWN^*}bI(Nm59~plh1^a?Ve`w5ob@%|BQW3hz~XCtkZ4gUbl>NNYf= z{EX0kAl&j)oZe3H-~>`RgP!a_L~B@@LN9QacowtM_5-IdQ{B?$Hj!8YTi(i0%8rff z#C$m)h_Dk)fFeDT0H?)$y-}80`Y&BITa~&e+U6|uH>hx{wjPi#lq}1grETFE*|>Xg zUb8hfR>g*<9WUr^#%Om6LlIB4D+q!nqXBYoA~3We+F^${zi+Qvaw$CP>dfncY2Tz{ zHw-+8VmE{eit-&aLmbxk?W?8%p^oeM_8C@+QkcuE_T$%jFq>mlKN`zV;p+OLYI@Ah ztvG?_aTGKBDWjxLwANUl=tIR90@siV1~hv|c2uPq+&odVP_FiY8ZcgXJIw8OAx!!d z?-RzIQVj0P9@{JJgQKw!*jy7?g&6ZuI*`fdBIEl63hx33(|bHRB$K?GyI3w>+<WVneBX~8g=iR zqa)3q{P-CB?S1t&;At;-7Ga}!#&>UQDq{5!aF*cUMoo-xU=>xK>ndW@XZmFX&kqD_ z46t+WBkNyz5;ep-7T_4@%d*aRU@ZyU7g%Q6Uv_4iIhU=eS9qB8{J!ZV7+15>=bahl z8c>4R5I>LuwY{#V;Y$D7@VB=~ERE{+QSU<*DcqzL1)CBhs$KD3u*70}`qDf3mxiNs z2)k_ac5tooyN<%QFSnw93hL_ZF(X%~0ukya;l7*dmx7b$Qz>(j{AoCXm+>>EO0!7u z#OVoUW?3aJU#Qy9Flbr1lTIl3uhHXq7+4g?_Ch< zC~HqqY;zE+8bjxHYowk&Mhv=WH1C3gt@-4Sfbh8s6U|;xI5m=ZY#N*;`jDLGVrYlH z?$Xy*P#G_M9QFPb-Jb0M{Td4eBv|FC9c0-=^?*Vt?YjDoK#>$Va*_ltD-<}d;%sjO zfQ1Ug5c_^Iv?7IKBGa(!Qh=sK-D1C-aP9Ukns|-p=`+6C0MN5Wx!MIozcP(efkDpE zb%Q`4mjAX<*+BalFLjxu_G76aRIE}is4QNvslv0@S+{7&7QTa`MDtX>cQdGV6QQqVzHvAZ&EhJRCkno^ntNhPU`tK=<+w)1By)ssO5(y( zVsxkW!6j6l_{uqSKXyzbE4x(`NYym)E(CC6^Ouu9H{q6U8%6J~K=o(v?X_4&sH{c& z&C4D}@B%bA{rd9Q8> zkq@T9G;x=o67N*=)gp*#D%myOX5g~9DUXDF#+J4?Ip~a{0gPQo&Bi> z6FD*T2f3?p`}_c{IR^~Rkh!a~%lr^6X_&VRvV-Nav#NB(N*PKpztP@QB0vz{sR}kzh|LCs?sL_VC>&jQ;l-Xcv~R z(Ie({s$9T38C$U`(2?hl^b6Sbr2o>$VETyHf9~o1BVPZxr}vL|{eOmiI9NZ&_yfT7 z5wHJTR`?OG|J=Izh}VB^U46vs83C+x?C+fMQ>Mt6KjQVDT35^;@p@)9ItEt2XT|Ct zy#BwGna}j71~C5v+y5_W12ZejKbzFETC27=4T!pY=fgLIX2=DU$v}Z!b|*mj;&6fZ z^uj4a@y8VLq(`}p@_19(W0G1Oe=XncUk6%ZZntkEhPAa3(#9G*T2e8`Mr=*kCEd&S zkSfS8y0J-H;m496{;ZAjj`(jo*}o*UKQky^-9J9`FHYmf{=UM03E!e852i#D{C!~#?#Z^UKT@b+mon~f+04`A9`CBT_cNY4lBQF<9>U6-P)z4%u}z7j*v>3 zP^Cw=9oMlUx)yf+9mL%d^eU{uj!)9vrvf%!8tbTUqoyWax?ll;u0Jh%ZgOIn=wg>F z{aa&{4d39kcPA8r4%efQ!=hA!ll#ZZvu$V&SxO$*_*o_=4b7lgRiJ@(sFb5XF0exAx%}?`nN%Uw5zQ; zhK)C1cxZU0M2t_zbsrvA#YYw&S*8}|VJpMiUpU{8MX~oiQ6X}cAT~F+aNyu>jDeqe z`qhA+isg=#2*0g_BhrN5p^!&Fttof{Z^~R8W^t+oJ?_{l-(%wl|H4)7pMQJSP2QPI z{w`@z@aq~SHH8{lF{b9Hs)FvHqbd=_=|9%fRs!4vV$q6YJN&JW+BZnP?cpxw!4_q| z`ME5Yg&a3e?fm>w{CpAw+?jI8Ks_)oeD#0vRWMpu*pf`t!T4H3ilP1?8EWu*!Vg}W zXa622hd|nRw?II*!l}vK(jYKM`pP45jXeH3Xc@>|qzy?uatvG@b}3{biPL;c{#T(K5_mK8fg_ZbR>EV6^JFyocvo6-*}21<0OrEvp)tCYvTd5 zjBt#sf4$`wTzV2A>Ul+6jo=%Q>&f-5ipjf~1UOE6vC4%R*t#{qv*bE|0_97o-C`%x zbjKsUe_^7&WmxhOHk67V#Rkn$Wyw+!T&c8_l@<`&v)Oh?jeGwtn%j-6w&l}!`O0J~^N66^^`D07O?Zz`RYhqGNnEs9?O(mA!NXg*sUm#<*7KTxo(Ekommh*Jq z6?nR}dDXg99P&Tb%a}8p+2S}*OC^bmorqVY?0WDWlBG}kpc1ZFHdshl10P`{$Uq0i z>xg|dr;rO&0;r`Clx_RLxF|4?7;@pNh5je^;77FY3F`A@1ru^Hzq@B4C!4V4-&6GGvUxS2#;CXxf?`_Vf(^iRi%*z^3x~~?cumi3-NJy$Mppu)FReAcIxRIh ztp0w#-a=<9Pe>s$lceeUrYL8B!HLTk`Zpn*rp(dSopqKSDSwWsi?hWTxSl*wXYK`j zA3x95uzNq(#ihyjLR8SF^l8N*xWJ3Y4T%p3&ETYcvN-XSxW&4Y3+Y(JP}opVE}vQl z{kTohQ2`1U1#>o8!$!)Eu^ZyAt-@P;T1HUccU~XcW;TJ} zNNDKC?utrVE0S+4?H}w;9HwhKnpDhkPE~%?nzOpP?}%WF4)PTW7s76RvZ|A;-bN$zI@l1XFl7LXN(bezu_jqI7*XruuE0Ft^$$Li z-P+eEq~+B>@308`>v4M$Zl!s@&I`8yc+gHPJjt{?7GCbUr*Dg~G;8i86BtHRCOAj=u_ zg*h+^bgcN;ahq8E#g59QKGTXtm;#1UewQud^~|OmBi#U4MlK2KWo*mSzVfOwslq7p z4yXRbS#d<}JZ;M+81i~c$KlS`ljKovtQM1+l%ewX&sUa2tloAo9=^X0&=;HwrJ+c( zt~5$+L9bh?C{^?X%u&WTGgc{5utjc-G`a~!(}_{ux#SE6^G$ZaQKqD0AQj#qYs0-t6cD2)^Ldsr=a>2AsrdJ z@u4TLquEd{W%LKu^#A*F$SG6UA#qttG}3NBa^R#Zq%P!T4yTQ-@D!Q!UkW+cZy%0D z7Ez8UX@>JcA}Jg(W%Ly-V>bxevQ-S(=JSyUun6 z6t!P30ciB9#g5v>5}Wsew0B?Fi_&#d;)wTJuk`hO^R%qLg@6eBh9>l5G?C(OWBTwO zPgmiR`zB8RH?{#2wxRrciQoJ8YzvDp*Z}QiWwH=Yvane>1TwzJsyL;Bij-;g4xv|{ zyt97m{>3q$MBx>O9t-ju^0-nwB`_KI7)LGTz(HlYK>J#f?Q|YuSJ{*CLCi>7mo6dK zXNJc4X=V4;L4DBRXOy!k-*|| zmXGHdQAqW9WuN6q3Ju=Ols$iI+k=8x#>r;?xdcKE+HHCZ|67#LYT z=?V?=NA&e`WAzbzWn!dzAL{%hM)nbVWoDrRumC=3+JX5a_WG#_Wci4_ermC^e8gTq zH&!39*UydBKiKPkaq7>F)ko0&xv}~P+CMi|A3^))#_A(z|J+!8gzcXjtN)SM&iWCy z1K8*o8CX8)J@{^<`|roAPpvD~kFfo7WA#50+gU%t_Ro#g|43|S{RrDXH&*|^_WzsW z4PgJL;ytRV?zqy2m`1;RmKt81>QZut zilgH7;=u$6A#}0Vz-|JKpYAsKH2w7T5rlo;F<@JtoujwNaSe<0?QVIo1+$LROD%0X z<;>&lhO=B|M~Uh$?;_GdL-UAZ{B?quLqOc>G>T% zleo?1*+%C#x{Mi;#!98H-J3kpAZnMWO$7T!(r7yvk-D3$B;-5eJ5U^?M`TI)BoNgS z^iG6>uCnpp(!W8tW4RJvlqrx&rbn9^3BwKbgTJaoZE|3s9>WcUhmfY@{;s({rWE1| zrtWG+Zf)@WEjhu_brmCa!M$1%K-kFEbs;1aUtTa|6*QYL*w+YaNZ;^8;pdTvDff;!^@P-*m%$yPr?IK87Wsfy? zL~V1xlnG_h`-NrR27ryVt|>dOFL8JzI9s zEcoTFL5NSME(=d@WiVFeDIaSJb#oK!ELLXOh%hm`(1iqjEb)iD9~WNKJ}CyAfeq{c zoY=SC2S#4+;BDVls%yWy_COYNHy8zQbpe=ria!6VFTS3*AR@cF6$Z6Xlw4rHg!6RIursV6OEKXBGGGavybF4KzC~nLodvz-)c0o;iH%XC@I)6AV0P5%40*yy~ zvDZztVR~;9*tkuJ00i_>{BvHP-6?(&q(xnuw-hVe+6!t9bo*D=Fg7c1G!%k zy@ZLhMD^W$)00tAShhl8ldSH%EMyI9|DeN7h28O2$%tMZnv zi<&!#?vSDaG_TpK&agRhzLnaGRilK03oneEN+%JUF}unWJfz>^;x>ngeCdXWY;eaX zwe4Oj%SUwHj@U}AX@|m0V%=@hWP9M*Jr&tKp90E6y(ZOk%L}Wj*58~n3F80~B*>Z8 z#;8p}`p~9`Rl`C!C=(2Ni7{4+qrX5OzY$h?|BN4;Ajqza>D0%#03L?u$}*`f>xc@P z5Fk#}j4jDQtO|M=P(Oh%US6jWBqICn_RY0LxUB7)Sf$N+rUHsFEl&kChR9&Y6?Ehizt)k-kmbTyE?(V_e zp&JRoHMm1?cXtaCAh^3jfZ*;9!QI{62_Z1-*5w?SzR^PvsOK` zX8owC8`SBOM|2HKrpN0qml+tS%8FMc8x{e|bCm*ei?^CI^jI57`$8-~FGT15M2}2{ z4B*Pe$|4*>jye7`qeqX$$jdYDE6hPQ==+AI2|zdCE)erJhAo9+3J+h8w zpzg)czMzp(a2jswNd3TZuribKMPZ2`bSSShZlu$)?@lBCY}_WAfn1l}MD~X{El`d* zH;`tHqMElqIDVG8>3_as`kK|h_GSjMIV}!i8Jt<(iJwtRyskSGBPY={Cdrswgz^un zzBg{Z7sbjD#YUjqt1TK5*R(bg&5F1$my_Y)uSq*0g$~UPp-^Q2>KYM=`E=Ljg;kin z?Zjw0@Q!2b1y8m{Z3{qXs2pT(agaLdeYV@^`+m?aIycq+`+AuV5ONG3%E)E@D>~+@ z;;o{nq8+zPXiHF^=V%h{EDAU5zw&>iSn#jU8_EkgbkOm2{cP}}Sa4lDYqHmPt_H!D zVZpd=440(gI6ph!p1#{G6PVFp9@+8*;>ET;wstV->&;7W-}TO2N9W=_3N~xj?6Il8 zb!%u3rxmf}udK<+_Rww8mY`j?$!CIGArI0u_6);20b~MzI7vybnC`)3@2ZVg(_PlL zbf=!QQ}$3Y<5>se;<%pR+U2M^dLy1X8Hemi2h5DXG}Yd8Qqd(qhTqI$(GU0OQlyj# z^{U~bUL{Kyq>GGEyF|GLtU3O?<`HwAFga$pb)HWn*=UW+^>^8Q)S6sDbeeUZF*PM9 z%ql-lr@9ZFiQ&}lF-j{OqS!OGf0~VF%jgDa)p;tIE!ae>q;Y3#bD4>&a|6V-&H^Me zwCw+Mk>V3YQlC*+GjeKJLIfxZ3m3Oztor}naiB&_{sRNYV* zi7c|^i>Q!AIJ4G38Mkl(tJlf2<4Fhmkt84fr`Ru;{AUU(XdiN($)xt?Z~lY-{niTg z-&hKPDrNz1_9+_|m=4wfKozrKEgJ!#idpc+3RE!*-dKSuX2ELR06-P9;EffiVivry z0#(d{H&*{BX8+9q2XCzYE4BS?OYT2EaljfY;D4pI13_s!cw+@p+qqcSIJm$x9uNph z+riq{3H-0rb|6S?XJg^z;N}F+ra2IlwzIQyv#`GrM#0it4Fsj_U~R4j{#R-{5Tv$) zb6xR((suT@5uF@ws}3yd3M5?^tm_IST^OwIS0L%aU_A`N14`R@fp48hU|Ln6lpVaQ z>L1Dudb5X<9mx65&7O|WTK1m@aXR1S;q41^&rrE;H8X8dJMEk;(U0v$?F_Ka82I#i_3?%-}$he+v@(# zJyek7Kz+7vC&TW=Whiv}{vou_eDilE%9r~^^6cFlC61;@E%VTc6`i;39@3Ymn7;n) znA4CoQhCQG7mF4~SP$lKh|Av7hSM(t)_QG~T^em&9*`?7L<3)Jv*i-Vb&V}Zx)fH< zR(=-Aof%%kes*~dShghPP1)`;d~B1y%~%XAgyPBIFT-DqZXsXfFrU$~46WKE`PlY% zboilZ6SZZ`5;aVzZ?P$K(>E=umXo;7CUe~J!&s$5`&ei1v*#`R;jB%7`L?s))8gVJ zqm#(vnhb5Z71ray!`b+a4?zv9MR>yE9`obypbpD-yp;-a%R0QRFR@vo$w3flL&G7cK+#3Q?A{t(Guu7#ob<7>}slKshr-Wwy7?egP(0owvTt%l2e&RYPGIde4 zDn1{3?;<@&re(3d={a_0cIaW+P zEQ8SvQ4HNA&oG}3Vb7%D!KjxmOPAsOzG2aN?M^rpX8_&J!Dk@LX0ncNETwiSefc<( zet>E-vt!GJcDaddmOkyWo(jvzMt*`@PS{DBg+C9Y=Z2Q2O}-MCi=VL_b#+5G?h@AK zFuEr<|L6b4P%Zyq>}D6O}JnVVY~&9lHo8 zTPZKxA@3<--|JdiCH+JC;YH=$CzaPAZB+mck2WlaaHuU%2w*DjWgXgEqJys~PGs^z zH|DQsC(Oj+h0d1$`n~=Wd@DrBHiOo8^s@+3U72lXv#)>rqVVKf;rpC>*b^)iW)j30 zgoN0GKIFEWN}y81DU6AtOv$t0!|9PDp|uR5JRfE;j1U-nYl5^GfF@%Rgh@T)c|fgN zzevP5{rYxZK{xxw(`|tYtHJ%Z@$G6d%GWV=A*qHI6xd}+wgc*DYo`+|8L>NhuE53i zyh;6OoWN^0Q@uDL!i$FO{3J+PdY%bu(sp8V(IFgrk|}RE5;6%EE11|o)8@wRYZf%9 zA%hhHR1hw+WkTD z+zk%QD^J?tk3_1W#dJCE45W%I-1TL|XB|xJm{~4}5)GLXlgiw!+8Hg4GM8=ZX!8^o zx2#O#c+BDY@>F?xTb<^Swf7Dk=gbU3~ajcdyuYuOw-ysiSIa>aGbAbbM3{~nk^Fv*cFow-Y zk0O|>kiMWcwZ^}6fy1!DDRGp01it?>#tQ8%-8>VXDu9WOI#N0{Mj2cFX!yH22D26= zjMOLid39f(;?EgTqd0N_@BZ+e{1Azqhb(x? zYZfiQb2l`prD+GV$TVbHB6aDvd1WUTnqc?_7krc*&Zm8eP5BNn74$RL zrZUvjDO}4Y#}THK2C9g-0lR_CsR`t)7M`C|*&R4!ve?m&*wZmsnkGJ}loNb}+%KD< zrJ<+Ce8el6Tp^mtFk^Cy**DyW*G*9ERp3=+p~7g#Un3$_lYf5MN552pO$N=x!R zWK%7z*9ZZfhwFQtwDO+#dSgU1J^v>D7TU&2JIBz5vV2SP53nths!b?Dt!6rQRH z0V1!zXLv=OYnMJ~DjsLu2vUBxYNXSkci1@5*TJmJHmMZnH@3?PafiV9a@>PlNP{M(x)dc}za`DE38UIdG<5b(+xj{bTv`VRh z6T=(FwPQh)fhKsQitj~q#6wttRcb-XU7mpe7#`m0E^%o`*QB7%bdEprPD4zWGNsBs zAyR7K{UiM_c3!1LlIq9hRJXaKRBWTE0=z`?f&JX(sS;p!es;w94_@i#@M`m#Fxx(k zZp({^p-&9u^JB!~B_?@LrWF$%dx*s%)jE#5&mY%gvx+wU7Lt_h6Q+ekdzG3d3!qfQ zTtdu?s#}M7Ufjc$&qFoH%K!$8?1-uelU9oiuf*K~cQ zUXr*+ZHcd7NrckgMNIg{@hgHe1*(-R8zg zbKB)jDnK|leU4$IwxMg0AEgZYs(;A_bH5gn zjM}n`;WTLP;L}=Y)l$p*&5^M&|Do8In^AX(u+K=h3Gg^#mP^NZ9Au1?`Pk=urJsiq zt~Xe2ZJTGi+b)! zZOY&gX6J2MmT})e=DtIgmyfFp9ryvi( z-jcC#Qa`jQs~T4}E`eoOp8+0Op?1J-!?!;@ty^xk=33*Q zwp9FqD0WnL_N&tb#$QnzYsG9_;v)2CUNwSwA!=8*O{1!y1*ScKnb5YJWafU|7K!Fv zB|vu6?ewD0AN}qd5e;=pM#3u6SLo#5>7$B}Z%5jEr^=hG-U%{(Rr-AN$2ZB$@J^YX zEPPAB%F1m3$rV|hdAx*35M7;*Wsnd~VLrbx8PW!X= z4ksdEMHjGB8@l&{gSNwe5u_?awcu_SF}(;KSQ4@>u6+2zVS}k~o5L&c&e_F<<|WbC zuh`!L6>W5%^Tp=gm3%6*3Z1!LYDa!1c}Hrz+RI&i)Kv`G(ne-HUdt+Usdn5oy<<%| zCi-xLD2T%o#Zb%URh@gF{=*BJX1H0)f7lUyL&5xKe;T|MFetwVtWGcwD8C1+vEl{g z_kcB4yr8^%@Wu+Hm;dJ2alg5YVDZLyL3#P$%^)bh2fP^s<@kU%R{wB({%uDTys-kQ z?HnvToZMjQEBPna{oi86`vyz{f@?G~FDPy20OM$6;6IUfpq)ex0Pr6ObdSsi?N81` zgBTkOxV}QD^_Zh!jBYS+;@CLeA1*@~lVph7rG#-IFy7&ChW^BPz-*D3;O-*t;uR3! zY^y^$V}Vx;lzP|3KRdgw|7BgEkDN%^!*~DxjAebfvb*vVitNoeCSmO)tIqrK{It7u z`h`s-RPe?8-Q9Lqav;7;6t}1~a$G!LNr>R9bv41$+}+S>52W5DT*&f`zsd)Js|mEp z&R2dP^W{4q9XH?K#3oq$$gdgJ3x8lrY=nJJeK&L}!$!FrJ=r{MweFvxSc|YM|X{* z9dULB_5QP+OQ6PlyDYuYSL_uo^XFTuKW2_C)(foRSeYh1yFEoPd6CxEq4HSfNk(J% zK-EA827<^LpCO*<`$?^|cW?lQ5XNIV^S*Vm9(*{3FH_zA*N=Z`u;#0`kG!r^=IdE# zmae{gpjQ1h()7_=)8+CJDX8O)oD;*BN5P4_Ywq_CHD~)}TN84J<1?~$*~JuL$%?zZ85E&=(T8Cilq;N0e{j!bdGR8QMdlB#DhT_6czET3&cL8UqHL8Nd zv1sW}{)VA}&6ui98^7KI3_K8tov8wglMXrGH5p$*=d}+grBGw`%tuHKNXD_j!7Kp~ zPJfIVqu&n$o(OO>S8%{)lvPKN&kv75*u7~G?h zdW8*BE_DAk*wTNC7*>}?5jLLn$cjKs=_fv|ez!^0*1m9^807E2vO@KExEGO%Q<&LV z-RqJaijFTR%>xbj;ye4T8JN}v1bb0c;vf35CteoN3_R}rLU!jS)De2aH~7>eR+4qqPl zXkd@lOjH{da? zD<8G!SnLV-WCc-(pFSra( zJ&v4 z)E2W|K~5H+AE_u;{Md@Wbl>QHRPnJ$*jp%c>Vq$sXzD^q^S(u1^XD!9)sd5keBzAY z${9TOC}i8W{hJJMU41~Fq6XYG91lWQS_!=@#`+ybTb&Y1P9D?abWNhGHlGj?bvz(q-|D>H>13D&CQo}B5KE5yTj`%5Qk@#dM^zhX*z35{uxUsqjKAm` zWL2MQy|a#c{R{Qqvql^0mHE`(KLiZb{t6j%=QtmI)gXVE#hLCMs1)j z=kw2sEQJkdjr5*ddvM77vC*8uuBQ#Nzt$D{FT-CS_~HVMCsx_b4VXM6N=e|k=NRU82ZlGVv>_0w+wU~0;TZe5I(E5+S*P~LY5M zPrLEHxkb5Y(M!9F_JrQCo%6&^`(|hM`t$Fu{=1FS^AV9Mp_V#zF}dGVM=D#ASHIyM z=X%1mwcr7AqkHL2dX+ux$uKM!eh`yA5x-Yb+o9~EQ8KOvwcBiCpsiPSzLLM>I~ors8>3O}Ef{1mc;o-emMP@75<56)~?aX`K`9S2@BU-Ej9-k3y!44u!S<_R}SueCP;x|5Uy- zzjH`+<(L)%DY_|Pr}duBe)@UV?ub`7Gf*R$s5I-zn~ZKj-m{&T!ewB82Iy+_2~Lb& zAOyCjtEH zN9zGT$YjXs^It$ITN2h~Ly0PouAG}G%rh_Z|CJsV&@Gku1ntA1P`a}6Y+9;JXfw*3 z8g9ilzo5$dSbw)pDom~tQ)81#!H4D5_;|`<8cCTvS}I+ybtP*QaPi=+vuYwc<`!{Q z@7rXf>3uDV+dv)*dYTv-y4ZwjOS_|$b?B?IbcWs-Q(-ZDK6oP zT6+}^W;i5cPv)LkM9ouRLH_n+%)${?$fKWuJ{0xB`sqDk)?`AX{f+Qk?v#A0Il86l6Sb-}2!5b@3r9V3x+uN8K zuy{8>&_HBf7H*z57YrPZ5|9mK}Jdb&BCV}wID(X+UcwBub!^%u4PtzGj&sS zceTa2_p?*h`>WT!_M=7vX4s?(&k;%GwF?By=3jgTpV=xRd&y=Q{T>WQ%wB%=xzC#0 zYl)k0J{u!;_31N&}~66d73AGhsi=WiZuQ`$4Kdw2Wh*fLlg!i$kM9`~0I zyFw?K9y6;(JM{%1Hj=V}yKK{3>0?KrS72&Ux#+MV!{z#%@_Q} zwfvkvRsc8CNB##sG=blMgBQ)n&;LcxxAA^vGkN+xHL_4995WuRXP9B-B_fJKUMP#^AwG zXBhOg?Gbp&kj9n`?tQw}e-#-+(a8@X`vddKCRZ>!`>uI zD08nkFP^Rua;X$Xl1KTI3_&Aw2Eml+KRY)8B^I-tVeIpo=>uznyQN2awJu@aHy?V{ zPQki$hv0dYs&bhM=aALqC+&x%!8BCnG0yTq!QdIj=Z??bj7P4~YHU8bPikK!wO%WQ)@&2i5p=qH z1)RRm6M16i;JZgn(|_LIJZcynV@x2DyTTzU2{8vU5$R+~7))RgKt#fEV`HWGqW`6P zK~?`X%KX4kdxr;i14z}|DOS^*DWNK^R9@kgst_I)(5!|WK2YMQijn;DaRhFNvPfc= zI@gi)=raeph{lX1S<526tiv!>;1eCg(}(m5)xVJAO%d#l(U05^#i^zehiSu?eO=y# z@6%^xI2pb}3yaZ6oinuGcC=L#il`@wR!lGC4UXEmuM$|vGI049NkRA;KBCy2AaSWl zq1an(S|xrA?`-~o;_bhg)f2A!-Om+=#0u?M5N2iFy5Ody!wUrisMe z**yd_4eyxI3SEo5qqJ(7G>n-sK8n!Qo9gt0Ye*UBiCP7e-?8KC>;QX0A%F8G;%`VE zTs;iIH9XrTOl%})n&*oY-t zT;}%_qBO>F-9>!f-#F;47Gx?c6C}%Or%sC7acxgYx8Ea0tP^UhJ07OSyINRbis~7U z7jPD0V~W~Z35j&CNgCn~eJoj~^>K<#Oj3591uQXm?wa8pEllu!>lm{nX&5yT6be(= z_6&aT#KW=iT%)LzBH(FAY7?jQBs_Qd3M)0hLti^$XPd2v^!FLI`qSSZ?}ia@Nu8aL z2uLeei&Qj*k+HRACNXE^y@D={oU|kmox{8>ig8 z)gc@r=|8E3aF-Ftxb`im%dh9~%P!#C!h`1jsaVZ){Te$!MU++%z$%C27SUX5*H_Kp zAa(td(9mH-V@!R4UR*^%c`pcC@R56j(mp#Fh)CAS+cP=%UdJ5`Sww9L@{~{GOYp~e z%?~jfz8A4JPT01q$m|6TpD?KKk^lo9-y6l@k69&Nn4g_FE47*eC;iNi5+3Om9QCL3 z>tVz`X%+v8Sc;seA=8tXzm8`Z^9rYGZ1%d#@j}BD@K%veS83|7>A&JgB7e<}%**9) zOh2hO&L8MEMhW~vGLnCrJFiY0t~0S}0*9upwlA5239tF(`g=vA;%SBq=f3rGMx>Tx zZ0Bu$4dp_JoMqDmG{k(b@3q1;mPe;Twn+AmEsWX$Q71UbsxI=$t+p?&+1UmvT^nTLWPx+>VQ70pwiH|-4z6BMkyshaV5Vi z{p*vkC~QcIukB6f#%AbHUr;Xn;9PH1^gjs(#@^$8K-us?-TbS+!~VN!t6#q{NaF+f zhfG}oTVeRx;+(u|ZqL7g2OnWub;l+KkGg8g1lOz#Mah5BQJy-d_-8nc0wg1B=@^a0 zznEJ>yZn(EM37L(a)<|La~n44(oBsoR z&L4QwfEPt_46u=Da}_nT_MJ+J?K z<#iZwf@kPtn?woWSjo75phb>UNnV?b72dv3LgZA{L4RW|bH z9-WATEk%g!bObB^cg2c5oE6U=hr1+DQH6qb`%6R9R}AAGy9kNFB>4;16`{grDAnRh z4&R1YofrFzc%Imz?MFHHG7OgqKWkaHs)7Agb+hw6-E?*FO zcjCeft(rwPuJAv)@T4mdrexWX;Z0Y6nmEfNMRb|>z;>>#QWkWmrz_y*FkjL7%JU8C z{kQZ7E%Bqkk0Bbs@^9PiaG(O*#qA0Rc(g` ze`U03f^9cb6C8$412-_E@>4T7OnWDP)U)P~s4R0A5w=30M&|Ul45Oqn^fSn1O`R8P zeU$5YioA*`;1)t^#npFgh(Y!fs|YsqlVEH%)oGw<1n!(ZA-O9GxYZm;h!{dYH(APs zcx_b~ODCT6drL=?b|ATu*EyASR0eq#$=uy#wIk{xxp`=mHB6wG7yEpAMDN{a9bz5M zvOa->5L`2~H4qH_{nQuLBN|NB=5duMTJ}oj@ve4+o>`kRm$X9C<_9k7%1-W~A^^Ce zcy6+PDQINJ(`N)s5T;i?vQV|HES?%=m+rYQ1s=RU*mLIf%Ih?)*;Ry6)8R=2d?Pe@I7yZXqvSaKe)+=#$tUzu-Q+`^H($(L1T!$zKT9Ud+)8|n=ck-R)_z= zcl@v92m?WKguz=ggR)|{z}OlB{3k~kbREd?MvVSv9oV2P?YugKBat+Mcko^z>U@}K zf=wmbwC&98a+EqrwmyP1EKzKQ^da{9PRmb~{o()VcF<>iKgA3IP5(I-8eQn_^Izso z?{Rh_6=K$>VHt^XSBcSIf`XABqrWL_8~UOG1*4ai$hw|6ydK;oj_y-lBd>`6ZvgFW z)wI#gX{p9WOcBq=Xym#-Nbx;GbQ-SGy;u_K8nn$4=SeISvSOWev}UK$y+$4i4w zs`>i4t2VYyFkfkTy2gt~d1tn?cq%C*1xfWg(?|o55tI?ylRUgt<=B4}6lZ=cxpf>X zU2LxF?$}gwM(1T}!Ii;?1deD9An~PMo(P0=!hDH1f!1)Ab&ocNt$hA2xoySxp?@x5 zi%Y7NESrpJ|D*NrdOLTIXEgt1AgP%zAzL(CUkL^zV)U5!iutxrGxp=V(AN)xzi2;X zs0nT_m#>uRZC4&z>)FDU$P0ZD9O6dM@%UJL|0U!O6*H%pXXl6X*2<*IoCER4L!A#3 zE?4-6pT+=puu!PpR4&zI3>7%i?HROIoTmucw1#N2ZPW!X9lyKJKCErZ2WD+w*m0vU zw6%JjI9$i z_!-^khAXy)dNvjmOrrO^+lB9x>cYv)tkYXWfVDPsiv66fBY^Nzo-f4?sc08vQIH>1 z49{}A*s!NZJtt8F-Smg{Kp^=oqV;ixGNVVyLaE!=L&J_k`qZBdq&tnQ=+UHVkQ#)S zo|d%21Ij^T=;jSu@E9k2u3h+5Sbsbng4a#d!bXED`!;NEZcw@r`jJo+-?FWO&H?EfL+ zi2qG{5qT;rGv;W-J;>jO<ab^B9BU2Tv}FqHEU14^L#SOEsh(~ zZNXqd04+GF-KzyL2W@P|(^8+jsn#|4%Ruho`;6E-H%nmV)=7g71Ys~FF}F6I26R7Z zJ`tS?T?8_w|GojoCsRLN-?~O)DcPZNb)ohkgbnR9tynxAbeY1bcC3Ie^AX*@5k9c# zNt{TJMj265O_wR$lVYE5KUl(=cm$DpD<{OFCKq${{z;(&8@af|1FFszViV z%*MpG-?!C?#5CS_lt_MX@8uNDUj-TdVNfkv^H89Zss*hJb6TH6;QbG-018&5Lny1e z&XX32OI;Y{pq3zoY+Coq(DRVv_DhA{2zIZBrJHsIkK?#bjM2b*CW|{N7fg!iDyZWO zbaK67r*hQ51Z+~@VL}Y=aQp=9CyoAL{*o9c=fuugZcpY`)-c~R602iUUWkt{Fz9Nd zof25tj}#R*7}|a4T8uMx<zub{6Dr*-qiBMeew2k6F`fv-&OqCfVl<;!d zViyrReMn-I+stqgyEK;`oZB3yOuB20E=C6$NZgacY&8&fu>X23(Pk@)J)UTn!^`RU z=XiU=QdFn3bI=Yqz*eO=Fj~gI~w@@$?>NzzdF?UNlkpbRM^TCgd=-?2^K6h zHZ9*1594VOFu##gM_Q7XXwxU`s$+W28ZDgU*0oM5L$tm?q*K4ki3`xc(1Ae2(;fX!DpdAE?=!yLdUt%S+Dm zTF!Po%N=VshPbVHhY9xbMa-jJ&P4R0)(^)a8!TjQ$>$D4FPNhkAF70Z;S)u=Bict?8cdbXp%#H`|jcuSMvZB{fCbwj#}$jYZp3N zQEQ@EdCFQE&g#V(w_~m${Ng8C0KvnGwfattgO&=Z(aWm7S*8*T!#GZ*hPHX>LbE$Z z1Ipey`GxTEo#_ur#BoizJX~dTONsmN%f?YVB(Mhbkr32~Nyx^EotqR@Hh>4%KEN0= zvq;NrtMjP(ALK#Qu~+`Rc)K>W5XFm=m*Ep8<-5y>i)X)48Y}&?GAzP^3IU4EubJIf zO`rWoB=ctpsRks+x1_IgNBvE@EY8ek#4JF-I(VJN@i7*}AKW63sW+pL>of2T<`zGmm%1v#_!mhb?FrXxSlX^ioGI zF&}a^wK$B=) z#ov*q__y=y7)jsNkvz02K+=me<00Mx1JR2N^F+d3_i7U*=R@j=Y=OEJMLFP;s&?_H z^oZWMoA;!i1FQOPeHSBjXG8TR^Kh3!KWrs~j=86L!ML*p;yMS-26)j2w`>Z};cC*gs+h$uP6Nu<~y#QL_Qg zD;M3w<$Uv!PpbeFHx}2}hWN~#qvCAKoS5}0%VbkvWADLrhZ&~@e!!KlC~dhBBLcVY z198guV!@B#*YwaNmj(-dh;PJ=41XTyQ|=$F1j1iNTL#{15QvqbPPaq6Vt2hZS3=So zc5c(CV@wMh&sOuQ>}uB8_?^){0d!(;r{*nf|1k7Y_^MbjYUsS3g^5B#DEkiu1P7>- z6zpsqEZhL_^h*OdK%JxjYiIHs{1e2vA#fHDprOHFy(&=c6ztqwESztcT(I;AaQtJ_ z?ce(F!8t(+2of3$)^eExWIqL1*A=KDo`a2-g#%0{DS#ZH`YFJ=#S9V}4Ayl85*iHN ztNO3h_J2Zy|4pyJ8!J%S4$kvv|2jqWpP$a`oNO$>x2acPdE$U1>Va1o{-N#vo9W2$ ze@$!p?2ILed%=LiIs&z?jrD#{7!BItt!JB6t)!x&+;&)^2QYw%erUL?eO>!K{LGs4 zw)k?XRNp!Mm;-PV*xp&+iHP ze~r-fzdS8`c|eQ%)nos9yvz4euAa8L<_Wx-FxCE@JH8e3lkKMKHMfeM&d3Yhs&_bZ3-&}=%fa$fj)e4oo)r2k9M3I2{SEFPiA z(@mp(N%0l~T+Kb=hhWd!pr)Kh)-QZro?l!6=nMrD*n9Zx&vUQ)1dkyk)m1TmzTO*x zp8PRd#1Ko}aU578(#5lms7sQ!j`Z@zHYjw|oclVl93&?&yJzew<%8L^#(@5|LE^R! z(?y%FRj@gSHe)o+F3waBoUN8)8`X?D0)4+=2l>wsvckp{emy`B5&=xyEs&AuHE6Kp zy(kNOU>fe4avP^N{YvD5)0Mm*kzLlXO~gw>a$RSN@XDL+G4pmtN5&i&+e>~2-)*;M zTIM{UbJ^duz)i>weVt!Rb@^ee$O(-TmyPg#wT#9iSmI(MmXomGiZj=4C$J>a zMEHEJ(WIQG$F{2NEMTFnTGMQ2e?|1E+54dpA(K8M(MNBY)TY>G{Nr7z&9I^|KxZPL zl4yz$?yhl5=yLgGkw+?6yL~HrS0~i38D`+Iho-Y;AZoP^qRKG=(Y2SQdqCQxU|5{; zqtY4|_x^M`6Ldn)1pN4+_bL?H(I)h^k5p*5`d;Li3|B|7l14J2K9|kOK!M!Zz}P+D zakcE1TnOggFe}pMznzGQ@w~OnkAE$&+LU*PE|wb?cw~aTP;n;!+a)cHffiP?#!g0; zQ`?LuPq*&j1=q9OpVU#WONWdBQs_2YTCr>8SaM_&JCP*h#jqJ|lJY3aZZVmJ(C5Uw zyiQ93PNiKRP0-vUGfz<5qchLGy#3DV*!}H?AlfpJU&1bRhB?lh#gg2nFU0zg6OO)x zatruHkoWPyoatIt-5;)e5fy-eZxzNSZn=Jv=fI*e;udlRQ*0_TyDf#x)QljUuGV_6 zrJ0`-j*$Gd_>w$~497KYP^z*L11lOri#2F3Y!UlXrJdE`pp4<6>v@heL;ZvE2BM|5 zGDL@Di+0S^#IUG@0>LjYA-jUa{S;~0+k8%6@g^N5T4UnLHvBjmXT(;+@_Cr2YC4GZ zLitUl7=e)v@4bOR|ER^CD^{s?ay2g+7XaQteO%IkhWxi)w0mLFi5crP>>111!14k8+xfq-$R==j_K<@44FrNpH{n}Ggis!R?uaDbb%H{f*?fJ8; z-=Y)-g+*CAZoky#yck{bM%*{{?ViR)S*;8L^Emz@qPVU~GGj(sbmI&IQNBpSCdo5| z+R)H5(#O&ChoFJKXd4X2hs;WF2b*puL`=jr$Qva^_SM{z)kFMJp^<4t-OCf5jIu7%qNb1J#w6K%y09MLl~l~YW2+x=Ab&aPwFn5OXE;41Hk@m6>Y4Y z7jn$dVyyY0LUbQ%Ie}BIs|{7*yQYMoM+;y>Y|XD|VyOv;8YzUyp>)%NBJYm>)4LSl znu^D$3$Kep#i82FVOQ8xVw;GR#w|eu{Kg3Dp3zL+&@5~@bO2wMCbow&D7eXXhbSOp z>1-@OMfO^GEg;}j8(eiXv*J%pf-Dk|{~ODS%b9O+ZoK{~V-QBO{;?R_EE8M9DWJ2j zR_TmVee1aeAJ(vZYl>I^jquMajyAa@2{8r`IzReAA4I zu1ouL!%6*mT0VtiNhZDHg*u4U!&XTe49tSlRIy)e|Z4I=_Wa&~M@6=J{k%PZAT%()LI1 zS!mJC!Rv;Uxeg#P39yK0xz=H0%=2vKa)eCHycZCTpE>K~>{`iPGKX=3#p@8_m{^a3 zHSsn3&|7xz-_1v<-F9lTd^EV<*b|H7zN&v$m2fb%o2ZT}75A?;y?|%P;`8Cs{1B#;K9A9eRwX3#o8 zhvTPE>)jwt7-_^O=%9U%bqS2@3$emNRINzjW@%C`Te5RWLL8m?kzZOoTb1bF>INlI zA)lN75ITQw)={KbMWM$C<4;Y{jQ44O-jP_)r}v`t+jLZdTIR(g#ZcyxRhnytJM(75#iHi(DP$v%a^HFwj zx1srv9yUh&{p5X=Qbm0}R4c*c-Sx?I>vV=&8nOvqf@8#yZ31tSyovgQW`IJ-YUxSw z_i+QyT^0CY|Ie)G(vur>OA9x#9#|agx#${QGNH@SvH>Q;8AcX42va#JyI3QISfz1$I2GcWpJvi( zI~`SQrjsTY-OlWM#MdKNur*CAC8lX~R6O7bn$Ajnc}6N*L!#LT{xZvIg=qs(KF=`k zV9-V(|Eb92(?`njD#_l=P*cGbOeOJr5HhXRz-dS@G9y%NWVABAwSLB!$t>f*%R&*@ zoNX=1{-dSV0{tZoIAlLUVZ^&S9GsH`Ggo#p(cZ51!ADi=@+mBT*lBKF>$lZp(e97m zxj@fxCMRpO#d=lt3@1JD--(fJ!JqpwA%g&Q@!O5HKaT{ROV`F^25j(mowRvfTWw%5 zka{wX4S45=PM${(q`b~PNA5cSlDXdD6jbK6V=xAo!B)479A^8SN_;h+K)y?_B3)6L z>Bqobkglm@*YMcXM`M4nXWZk*oS6MaEgHdi=h~^aNR2*%7o^^R_!Bq8KvT0HVZLni za8F_Rl-pAb89lIJqY_g6=p~bBe9;!A{p1x5dQukdKX{LvplW&WRyUw(d9b$DgG49; zfh-&VF!54=AQ8%7t!}tL*7D#y3B(0z;te||3joLqrn6jcv;09-&HuV8@Zej4Z`j!X z?W({PtN+G{H^8@h|3AkHyn6LtsqI{#v>mKZ9FPcQcCI&R0GFo?5}^!MZ3l@^25$yI zX*(|`3m4}bw*)NSBS?fYSa(smL25fY3p4AZ3s_|Rt*z=mzp{h(76c{jZ~Ldb+;13J z@Wcv~v~#e(A$Y)~>>yc!U`-%MmLQP(?G}9NUIR-4fuNKftO*3E?BLW;kSIZ37EVqc zPH-)DP|6P01cDNF@ZNzSh5fDTk^Rjr1W z1mi;xBuEgv2?VL^8~_#|7nt5dL4pLqdJFP^Qg-lW5R|lYaQv(D7)(|SNN5OnGx!f_ z2i?fW&du|0r-wVV<(yXm=>3s2cpEEHZo3PdAHFvxIpX`jhu=yci7sDpG&${)UK5?Q zbSmNBy?LEEVY)h`g4p|4!qao<%L2pH%KsPgzQw(q)vJg+W`K6SzxYhFMN z&s{?@@9e|49~=fhf5Ck$uhxIk-M)XqF_2`?c}iK$Y(>EghPAc2EOT-;U64)VMvLSh zuYF_&(&{HhCd$%bg_kPQ8jhGiL(9a4g#VtY)A}RT#NprR@sLV6Fs`q;f&2N&4fDf& z5mYxaQcbdINJ87z_`E%>IUXMQtP-(&Cu~m4w=-uiG1$GYI`QPkv5Zczr%+4L!^F|4 zf68A6O|Ua%OXa4`pbi==<$Nhkh!Idai)<)2qKn7|&B=G;8hW=&%h}hpbDy#!=(NQ? zBs1lG&U+H-jAdQj#4Lb3<1FDKJz2U2!T>hoh@22NCsFEf+YM4#hh(;UEG&e|#cYs? zByt;8YkPNijF7)c%iL;jeI3L|Q66L`4TpeozG{v{x_5inawOx7`J9OViZ0m)xh< zI^O5CLBZOC6ZCY8?{-G3RWC)Qb!P7L>PV*=78yQS{BUI&Fa5Yjr$Aw}7}2;tphUW; zT{aRF!snp6bmOdIU==ku6pwq!r9!f(*GBsGN#nyb{TTJ%2l>ab2j4z{)8Yr8nS&Lj zhjfB_dP$UZm2OD2qARl8dwvcAcT=AD;xG!+`6(||kA2I0>$-U^3>4SZCas&bYr_z$ z0xy}w%7M9pol>DNui7yJl%&8#+4CRyBNC*7^q=!OP$Z1szSb@rN&~Oo)_Vz?8Ixe* z*E#?4z2QB46gA0(@cN>mNFDM%Rzfz)9NCa*#XltTI4z9`hFagU+7(1-_IV~7l@9iN zD;v~*f8?4w$9S-T+h1&q*CmsTPf^~I#9?u=cRX)6VYc|O>L*y!-`6s3QjVAq%`C}k zCGh_=_nl!)ZC$q%sR|;BC;|p40#Xu6NRVEoN)x5mP^1J&5J5qaCIV8VDOHdry;tcS zr1y?=P>|l`+n)11_j>MY-sk??CqE#Bz4NTS=U#J-G1r`9`X}0GD`liAhHbl)=nyZB z+C*}4Y4KDkMMMbZOFxLOExR^W;;bD|A>1A^RNm6p?^I&PIutXmP{>n+@w@;aqB z%7|+1OXio%h}lz&*rX$-}Xl`_7bo7Tal({r&T+}T$axZ7NbA2jqZpYyKHjhhn% zE-5NHRu8?(1}>73!b#bXnmC?Yhx1i*XtKL;j*fW3Xx#ITMhc3Z_iEFxa=7;OXfH~P zv@|VON*R#!cbRW6Y<9$P43x}RaTm>7cYL-u@o_D;Ru<4wwG(4zrAQwt-m0O_SSo)x zSup=OpuqX^;8b7R9==A_^a5gTdf#Q0p{w+PhUjeKqORMl=}mrT(OJ_}QsD2K{m+1R zNxyzPHGI<4sQU3qlk8oU{ieptCwn5Zre{~hj~Znovw*YwYpWjR(P)d83iQHgQuYJ6 z%^tU6s#})wKRh?LrRWsrD{dP2(uWprS^63Re3IM*eDb4bCv0b~W%#A!kmmE_7Xggs zNAgW??w>Fx8GYJ$6YyoB!X?WlhMPE6H`+-;!)vq@)!vO%HvECQ#ruGrKZufi@Y2Z8{>Jy&q875P3fnsHz!m zPq1L@Zr(ieIiKW>=PCYokDAdx*bf@IROqMBo(uhry9N0wC>&BXA1;gKI&Y zz8yp_ih$zu?QkI=Ck&iOG6JXaKbS}cfm8V(+&TDLXyzaO3JC`?YlXnctVR46<$v(9 zkP$eg|3S4NZs~tG4-5g)hByMZ^goCx4G7%Q|6qDioYMaYfK0$Z%5F!%aQb!-*#rWo zlqk4!5EpJ265v7b0Z$zmj2;2Q<=a7B2Y;6m{l|&}ss(W?OaY1H0w8V30gnz2J_xD> zaVkuKYe8Hw8GZpC0XUE(3CbMg!-d;HOiMxF6qo{);`}#(DS&B!lLd*uDKG`90daYD za1DqnB7;BzWDum92?S1kDNubVPJJm*Ey#~E+72}G18HO8S1!e$gQDOX5SL>I*MPV{ zJCIxpM*>6xltmDyycD<=#0A>HwID9n4(I2A3IQuOI2Od^+CjZnIOPVw9ThInE`;FW zM*{Q*6bs^%8vu0<;*=Wz*MhiwI}F&~1t&KX@vjscKmf$}&ucTd_QU1bg#h(cpoR~e z35d(FgF6BLm5v>!)&LyXl@I`HUkRty0H_Z;POSlOM}-r#3kU$cn?Z`k;MN)duR;NV zQ)&QQ1LE@RFgQ>u3zFnMLJ*f{2i1uJn{5BWRS-y^`17cKp%_4j9GqqFUnw_$z$rHX z>Kw!=HvoqM`7t0B>LLD>dIJbJF3b+D1#!h=ekG~#LBXk3N8r>O0M(1))EfZTg1CJ9 zuQ><@S}K4-CICr+Kl^r2?-g#r0idc836j7R;&;J;|5AO1KqCLqyHckeGbVFo>gv?E zG)LI7nsJkFFFY1ok>R#NzQLS6*6^4sISYv=U8-h5exLGq`FOW4n;V%QqoLX8n)$eT zas6qga4@0AtV`(=?y|kI0@okyM?ZbVoP7*aZc(@|wM!y?9%r3?z1iA0T~dAcBuG4i z##sunPCSXsE@~;ddVFA0{p~al-RAV%XI6SjA)alHP3hvK?|jkXREDL_)9jp#z{swe z=p)IU67B*!a`T4--{0R(3tVQ8_zl z%@jym^>bnGyO85niev_y@m}7H(VNKcB~CQgMEGV)Hz%)&=Jq~9482Pb@A_CL{%&3} zXN(K>h1Hx~mHA<=TbBRU3F>*^3ETD5vQSPTcZY+jQ`4XIKeh)l@H4|n=-v%Jba0t? zz87}2SlBd3C&;b7%5-mpR$kmN?t4PI*8(3#Cywa-gQFOo2$)~vOO*$$st$XvxE*2& zIIhifCH?DtFC}cfFg>j2xxPE1Gc#A& zF>$gJjCoAAB+OmH{8DLZc^u2W4!UwEe5Rd>=bq|NCDC}qS5cRFXD}~PE#pO|na1L4 z1Bnv|=6urG@t|Ss&el{Z*;`esuL^}-L=gcS3zaF3wc58buY0V87M|}~SI4TS&5SF?KadM%=&@XeHP>vI8wn|+KkNw#Zx2cm2Rs?&LR zptU`JI&-CFZtc~N%?7dLMH#JPqO(Q zWCQbwC5MchsG{99p6f-C6+&%&j~wq#pwPh~9(hvojP8>D{m$n_i0H^!x@z*Fn_7vy z4zc-LcjqTFZP?_8*3aF@=d=Ub+j-Z7uAt7t9xIY6?-)?MUoa@@duq>rGbW_0%xMZ5 z7%0h}AhcCCnP#;tvgXuc#aAo)rfEnn%vliH=hT&-&?eS2_Gu$6K>CYJ#;~t~w&Q$UakLmk0*)ZakW&Bq3lKiVvjADaATXql`Ws^*f zDb=*_K&zH(1WeGGmALTg_?=m?#Foop#YT+{VWvB`haWWBV*9ke!wpU(&lq*@Zg>@H zuLkp)s&cXqsjv%06a^7(36JnlaO*OB|5BbSHqv_wTH42wP&qg1b@!Q24S}1ayMn0Zl`up5W(!VHx+XeX?%!S4=(CH zdcA>HGb}MaQ3svxfT`16kjXgqn?c_5Beu7ZNQ3J1j;V;Q_70y793FHu5EGgTCh+vz`6({N6Q1 zWhx$)i50I~_HXz9ym^TsjL3|4n7MYcaa_F+VOCk-`~*+hmg-%w?%hX6%&>#EHNDAk z5&Gry49(>u8AF>AHxBrVuA%*`HfsXj59?XI+b)egp;S**cPMSce7jtdUoYRk>}a>s z-8-HH<(`RDaT7zgoalTSayocR`I2Rf)qek!Zt;ml3}3#}*@@xL=xb@wrBWxsgSV4* zVPzBYZ}s?#@AM!Oo5$P&Xj(&z$wN913(vOya&K9f5u!e zpyFQ;EIy4>jR%JK)xr)Ocnai=vz_{a=Ut$EOPBD0{56g*D2NUD^qQMcZ-kYM?BwF<3_zRTDcD zI|r{Oue_F~k(!L0B#c+f#R2ud->YDc1{K*Vj^6$G@UOuKS#I51&8O>n^EY!$R!RIv^5D~ zIHOLgK#ET-b!V7JQikY~tc=&EaK1r1tlVAMSe|UNEXqN*m0rRf=*kkJ@bb``SXzX9 ztg2;7-}?3SJ>;JA`ufDw=e^i1yo8&{pNa;cXYm3D6S@=w8ZXmaGW|$~M@SAKxPZs! zlEuS)n~7vPv`Hyfcbx3lKhBUO*!uGg<+d8=k5fPHp=Am@iK_?__OK$ynA?xCKM5@< z?_P~@Ne*Z8QNOslapqC6K;FZ+&x_9%kfROcf!ZDg9G0YV_@xZ>wukr<%WM^r9K6jV=Pk>{ZYsUpBEW0G4&2s1q`VeJLEM+j zGEgq}S@)iO&G{04v98Mi{XtRGKX(Y?&tNqi)h$>udN?)mt%$lu^?sA)c}y zYHOvQU+=l?eV7wnt(G#`+4r`iEKc(HEZR`cOCw3~jtZ8$q zdGR@F_^yEXP-&@I4t~xsNiNSO-e$>Jy!l={jY5hkkI8NB@K6%IAA(aelgHy-WQTj2 zGh%&7+F9@Y-{Wz4FFGbDI7MS>{WdX|~dfh9u`}lYWTpL!S|d zoj3BlIph0-i-3x*PM-b((+xS6JHi^T!kAn?(k#mnhp3y2JDx-O>r1kQ$hVvgd*!Hp zjwW%&iu%2OTMu0!&39Sf9)l&5Z2?!JSSicyp))|+muXp2<~wBmq?}TsAN-+rh86Z- zIrumPLRFq9vQQt$;KRJ4WVj&ORMCE)8?qV*8)h4n8Y&uesQt`kH*d%W_bTv(di2YV zN{z}N24LR_sJN=8gfO)HoIB&lq@%P3IUl+gEY51gHpN_>n9H6W22~W6m9+l2t=`1m z%udVE7j|C@eorDWVL|Oy+V_5@759~^D|Rav=>ivI&L*RJ`wQm_nMT*G;`>spc$etQ zZyHGPCSF@!UAo>I)K{G-ZUVhxA7CZNRA2L;dH4&WasU0sc!14<8JnPHRMES@CS~Exi85o`+6mHBQk{l3uUhYL<+E&_w6p@xpiaM4zfezS&+Dbwo;_0$Q%=*}Mv*r= z{sYbKmyVRF*>u>DjJ^%5O-{`!4VbT(S>M@eRR={i)^93N3g;AURYl@t?kFmZ24kfk z-V9fARtFPXhR)>YQUdKdW5(xP=m3@&N)-^05387tI>VwAEXwYg6|M(J?f z64R1mZ{;1)-1Ou!fOAFzk6_h(Vdlsdq4w*Xi8O?-N!mzJ)tiPoGCI#k-0pcjOj?n2 z(K;|bU@npo&HPz>Bi;0AV?o}q9?UHw~MQ%>gJFKyh*-An> z7qtu0E#%@8r*zH^@T7~HPS1#I(gv(Gg*T;_x0HvJFYdVP_|gqijQX4nj0?1(TNh*% zI7zu`7am{4Zr$1$M43UpEcD_wTmtiaYH)Z96}!zVW;< zPqm_RKGyj@TlV-EYA|`dJdg9)!0y1(!<`jBL42FyOqYqQrJsq-IhMJLzJ@OAv^KIf zzJotYvu!72j2xzlcN%s^cZP&y?1l%r*3c`}6)?Nm8GPG>r_)C&jnSPH#FX|^$`iKZ zBFM1AyLcb*^?pW`zGHb8{OxAJC z@*j#5*%Bj?h?5>CEqv7e*qn?=PEVmr@lQEPwNIT+(@1Mb7fMh6ME@x$gCN5xV>wel zvpY*Bt2CQC`$Nv<9RFOrT&LWXJmb8Vx7-Xqde z)hpgx+b7f4)UVLrKA<|#Gk9-scu0R}df0q;X~cG9WAyRp(b$V|qVd-gR1*=C^plBG z98)>d@afMpGBX`tHNTF{n$51xVdjqKy%s1IA{MVNrZ4d=RW8ddcdzKJ%&$7E9)0uq ze&Kt}8v9z|y2N_Nj|V^IHyk%kHv_h=Zl!JuY}f6m?M&|4?H=vD-oLt^c7Ql&KD>Xp zc;tLcavXKSaZ>(M>F4;V-RUX8IlMiut)oBi)Zb+oC7rNVXh(Kcl(j8H5oK>eo$^_%0=4fq?h5X_&0CILReTXu{vg_MJ{(fm$Sz{pP zXfr1}06If34k)u<$QuJOftZ_MO(1q?bCfN_0__OFxY(OnIil^YG1m5$5Hqwr*2E0^ z_d(9qSS#QJ49f8_$`Ru9*8x~76hu+;t|~+Y1$>R9gM+QL*4O`2Y6{{u&=ZDt?U!!|@yb|6L(a24x0Zi<*g} z9R^?n(r8;JJ9`X7kXOwSWo~VT1+EarCnokMnxG(~CxYaM3G&1F;79=}DJg(_K_#L8 zc!`Ms6}6K5Kr?ilM;QFYiXe!;9u5s&Wt6=oaNFQ8K3)wp8VmUqM9|>Xv~~qp6axM? zt$Cnmg?c%Zh7aijH;fHKT!yd|$j#uIp<=Sg$j?{T2?G4#rrTX_CU6}hsNl5Z{3C=7hMx%=D0f(zV~SQKT|GUQsNznGy9h_--zk?|Id;w`F;8;g zII*qNB+6G$j@7_SE_x1&oSPmO?rlB2Y78fYQ%6brvwc_`ucFW0*E+YMoV$PS+=f8z zzU{Yp2_x#@FQsuFej&96K_1KE^_`-|W31{Ez=fThE94Gw6(^Vo-lCuL;Rr3Q_i_vk zVTvT{(8hoJ!8o7NeBJzU2F*(~v4GVwh{&SWcDx=f-;1k~u z)FX3f<4{81cgl#4gTQ)L@miL%J!_IQr(L;K*E=GJy~%DP!lFtgKJFu-(G)U@WG|#` z>0X(~_yh&YKIVKiM@`_bEUQ`ns?jT5X3SffRUSG#|Jpe6R_MINF=wi2n%)wc>>Na)=N`o3Ys+J!4rtGuRlzE7!>s}?dFJ~(pTlMa2dSEv~*Wd-q{9!?Y2q2 z-AuRX)S_NZNY~ojx%7=Q?n1v!xEgAhQHv$D$Gl_UQjF+pv} literal 0 HcmV?d00001 diff --git a/specifications/contacts/rfc9610.txt b/specifications/contacts/rfc9610.txt new file mode 100644 index 00000000..8975e5ba --- /dev/null +++ b/specifications/contacts/rfc9610.txt @@ -0,0 +1,844 @@ + + + + +Internet Engineering Task Force (IETF) N. Jenkins, Ed. +Request for Comments: 9610 Fastmail +Category: Standards Track December 2024 +ISSN: 2070-1721 + + + JSON Meta Application Protocol (JMAP) for Contacts + +Abstract + + This document specifies a data model for synchronising contact data + with a server using the JSON Meta Application Protocol (JMAP). + +Status of This Memo + + This is an Internet Standards Track document. + + This document is a product of the Internet Engineering Task Force + (IETF). It represents the consensus of the IETF community. It has + received public review and has been approved for publication by the + Internet Engineering Steering Group (IESG). Further information on + Internet Standards is available in Section 2 of RFC 7841. + + Information about the current status of this document, any errata, + and how to provide feedback on it may be obtained at + https://www.rfc-editor.org/info/rfc9610. + +Copyright Notice + + Copyright (c) 2024 IETF Trust and the persons identified as the + document authors. All rights reserved. + + This document is subject to BCP 78 and the IETF Trust's Legal + Provisions Relating to IETF Documents + (https://trustee.ietf.org/license-info) in effect on the date of + publication of this document. Please review these documents + carefully, as they describe your rights and restrictions with respect + to this document. Code Components extracted from this document must + include Revised BSD License text as described in Section 4.e of the + Trust Legal Provisions and are provided without warranty as described + in the Revised BSD License. + +Table of Contents + + 1. Introduction + 1.1. Notational Conventions + 1.2. Terminology + 1.3. Data Model Overview + 1.4. Addition to the Capabilities Object + 1.4.1. urn:ietf:params:jmap:contacts + 2. AddressBooks + 2.1. AddressBook/get + 2.2. AddressBook/changes + 2.3. AddressBook/set + 3. ContactCards + 3.1. ContactCard/get + 3.2. ContactCard/changes + 3.3. ContactCard/query + 3.3.1. Filtering + 3.3.2. Sorting + 3.4. ContactCard/queryChanges + 3.5. ContactCard/set + 3.6. ContactCard/copy + 4. Examples + 4.1. Fetching Initial Data + 4.2. Changing the Default Address Book + 5. Internationalisation Considerations + 6. Security Considerations + 7. IANA Considerations + 7.1. JMAP Capability Registration for "contacts" + 7.2. JMAP Data Type Registration for "AddressBook" + 7.3. JMAP Data Type Registration for "ContactCard" + 7.4. JMAP Error Codes Registry + 7.4.1. addressBookHasContents + 7.5. JSContact Property Registrations + 7.5.1. id + 7.5.2. addressBookIds + 7.5.3. blobId + 8. References + 8.1. Normative References + 8.2. Informative References + Author's Address + +1. Introduction + + The JSON Meta Application Protocol (JMAP) [RFC8620] is a generic + protocol for synchronising data, such as mail, calendars, or + contacts, between a client and a server. It is optimised for mobile + and web environments and aims to provide a consistent interface to + different data types. + + This specification defines a data model for synchronising contacts + between a client and a server using JMAP. + +1.1. Notational Conventions + + The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", + "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and + "OPTIONAL" in this document are to be interpreted as described in + BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all + capitals, as shown here. + + Type signatures, examples, and property descriptions in this document + follow the conventions established in Section 1.1 of [RFC8620]. The + Id, UnsignedInt, and UTCDate data types defined in Sections 1.2, 1.3, + and 1.4 of [RFC8620] are also used in this document. + +1.2. Terminology + + The same terminology used in the core JMAP specification (see + Section 1.6 of [RFC8620]) is also used in this document. + + The terms AddressBook and ContactCard (with these specific + capitalizations) are used to refer to the data types defined in this + document and instances of those data types. + +1.3. Data Model Overview + + An Account (see Section 1.6.2 of [RFC8620]) with support for the + contact data model contains zero or more AddressBook objects, which + is a named collection of zero or more ContactCards. A ContactCard is + a representation of a person, company, entity, or a group of such + entities in JSContact Card format, as defined in Section 2 of + [RFC9553]. Each ContactCard belongs to one or more AddressBooks. + + In servers with support for JMAP Sharing [RFC9670], users may see and + configure sharing of contact data with others. Sharing permissions + are managed per AddressBook. + +1.4. Addition to the Capabilities Object + + The capabilities object is returned as part of the JMAP Session + object; see Section 2 of [RFC8620]. This document defines one + additional capability URI. + +1.4.1. urn:ietf:params:jmap:contacts + + This represents support for the AddressBook and ContactCard data + types and associated API methods. The value of this property in the + JMAP Session "capabilities" property is an empty object. + + The value of this property in an account's "accountCapabilities" + property is an object that MUST contain the following information on + server capabilities and permissions for that account: + + *maxAddressBooksPerCard*: UnsignedInt|null + The maximum number of AddressBooks (see Section 2) that can be + assigned to a single ContactCard object (see Section 3). This + MUST be an integer >= 1, or null for no limit (or rather, the + limit is always the number of AddressBooks in the account). + + *mayCreateAddressBook*: Boolean + The user may create an AddressBook in this account if, and only + if, this is true. + +2. AddressBooks + + An AddressBook is a named collection of ContactCards. All + ContactCards are associated with one or more AddressBooks. + + An *AddressBook* object has the following properties: + + *id*: Id (immutable; server-set) + The id of the AddressBook. + + *name*: String + The user-visible name of the AddressBook. This MUST NOT be the + empty string and MUST NOT be greater than 255 octets in size when + encoded as UTF-8. + + *description*: String|null (default: null) + An optional long-form description of the AddressBook that provides + context in shared environments where users need more than just the + name. + + *sortOrder*: UnsignedInt (default: 0) + Defines the sort order of AddressBooks when presented in the + client's UI so it is consistent between devices. The number MUST + be an integer in the range 0 <= sortOrder < 2^31. + + An AddressBook with a lower order is to be displayed before a + AddressBook with a higher order in any list of AddressBooks in the + client's UI. AddressBooks with equal order should be sorted in + alphabetical order by name. The sorting should take into account + locale-specific character order convention. + + *isDefault*: Boolean (server-set) + This SHOULD be true for exactly one AddressBook in any account and + MUST NOT be true for more than one AddressBook within an account. + The default AddressBook should be used by clients whenever they + need to choose an AddressBook for the user within this account and + they do not have any other information on which to make a choice. + For example, if the user creates a new contact card, the client + may automatically set the card as belonging to the default + AddressBook from the user's primary account. + + *isSubscribed*: Boolean + True if the user has indicated they wish to see this AddressBook + in their client. This SHOULD default to false for AddressBooks in + shared accounts that the user has access to and true for any new + AddressBooks created by the user themself. + + If false, the AddressBook and its contents SHOULD only be + displayed when the user explicitly requests it. The UI may offer + to the user the option of subscribing to it. + + *shareWith*: Id[AddressBookRights]|null (default: null) + A map of the Principal id (Section 2 of [RFC9670]) to rights for + Principals this AddressBook is shared with. The Principal to + which this AddressBook belongs MUST NOT be in this set. This is + null if the AddressBook is not shared with anyone or if the server + does not support [RFC9670]. The value may be modified only if the + user has the "mayShare" right. The account id for the Principals + may be found in the urn:ietf:params:jmap:principals:owner + capability of the Account to which the AddressBook belongs. + + *myRights*: AddressBookRights (server-set) + The set of access rights the user has in relation to this + AddressBook. + + An *AddressBookRights* object has the following properties: + + *mayRead*: Boolean + The user may fetch the ContactCards in this AddressBook. + + *mayWrite*: Boolean + The user may create, modify, or destroy all ContactCards in this + AddressBook, or move them to or from this AddressBook. + + *mayShare*: Boolean + The user may modify the "shareWith" property for this AddressBook. + + *mayDelete*: Boolean + The user may delete the AddressBook itself. + +2.1. AddressBook/get + + This is a standard "/get" method as described in Section 5.1 of + [RFC8620]. The "ids" argument may be null to fetch all at once. + +2.2. AddressBook/changes + + This is a standard "/changes" method as described in Section 5.2 of + [RFC8620]. + +2.3. AddressBook/set + + This is a standard "/set" method as described in Section 5.3 of + [RFC8620], but with the following additional request arguments: + + *onDestroyRemoveContents*: Boolean (default: false) + If false, any attempt to destroy an AddressBook that still has a + ContactCard in it will be rejected with an + "addressBookHasContents" SetError. If true, any ContactCard that + is in the AddressBook will be removed from it, and if such a + ContactCard does not belong to any other AddressBook, it will be + destroyed. + + *onSuccessSetIsDefault*: Id|null + If an id is given, and all creates, updates, and destroys (if any) + succeed without error, the server will try to set this AddressBook + as the default. (For references to AddressBook creations, this is + equivalent to a creation-reference, so the id will be the creation + id prefixed with a "#".) + + If the id is not found or if the change is not permitted by the + server for policy reasons, it MUST be ignored and the current default + AddressBook (if any) will remain as such. No error is returned to + the client in this case. + + As per Section 5.3 of [RFC8620], if the default AddressBook is + successfully changed, any changed objects MUST be reported in either + the "created" or "updated" argument in the response as appropriate, + with the server-set value included. + + The "shareWith" property may only be set by users that have the + "mayShare" right. When modifying the "shareWith" property, the user + cannot give a right to a Principal if the Principal did not already + have that right and the user making the change also does not have + that right. Any attempt to do so MUST be rejected with a "forbidden" + SetError. + + Users can subscribe or unsubscribe to an AddressBook by setting the + "isSubscribed" property. The server MAY forbid users from + subscribing to certain AddressBooks even though they have permission + to see them, rejecting the update with a "forbidden" SetError. + + The following extra SetError type is defined for "destroy": + + *addressBookHasContents*: The AddressBook has at least one + ContactCard assigned to it and the "onDestroyRemoveContents" + argument was false. + +3. ContactCards + + A *ContactCard* object contains information about a person, company, + or other entity, or represents a group of such entities. It is a + JSContact Card object as defined in Section 2 of [RFC9553] with the + following additional properties: + + *id*: Id (immutable; server-set) + The id of the ContactCard. The "id" property MAY be different to + the ContactCard's "uid" property (as defined in Section 2.1.9 of + [RFC9553]). However, there MUST NOT be more than one ContactCard + with the same uid in an Account. + + *addressBookIds*: Id[Boolean] + The set of AddressBook ids that this ContactCard belongs to. A + card MUST belong to at least one AddressBook at all times (until + it is destroyed). The set is represented as an object, with each + key being an AddressBook id. The value for each key in the object + MUST be true. + + For any Media object in the card (see Section 2.6.4 of [RFC9553]), a + new property is defined: + + *blobId*: Id + An id for the Blob representing the binary contents of the + resource. + + When returning ContactCards, any Media with a URI that uses the + "data:" URL scheme [RFC2397] SHOULD return a "blobId" property and + omit the "uri" property, as this lets clients load the (potentially + large) image file only when needed and avoids the overhead of Base64 + encoding. The "mediaType" property MUST also be set. Similarly, + when creating or updating a ContactCard, clients MAY send a "blobId" + instead of the "uri" property for a Media object. + + A contact card with a "kind" property equal to "group" represents a + group of contacts. Clients often present these separately from other + contact cards. The "members" property, as defined in Section 2.1.6 + of [RFC9553], contains a set of uids (as defined in Section 2.1.9 of + [RFC9553]) for other contacts that are the members of this group. + Clients should consider the group to contain any ContactCard with a + matching uid from any account they have access to that has support + for the urn:ietf:params:jmap:contacts capability. Any uid that + cannot be found SHOULD be ignored but preserved. For example, + suppose a user adds contacts from a shared address book to their + private group, then temporarily loses access to this address book. + The uids cannot be resolved, so the contacts will disappear from the + group. However, if they are given permission to access the data + again, the uids will be found and the contacts will reappear. + +3.1. ContactCard/get + + This is a standard "/get" method as described in Section 5.1 of + [RFC8620]. + +3.2. ContactCard/changes + + This is a standard "/changes" method as described in Section 5.2 of + [RFC8620]. + +3.3. ContactCard/query + + This is a standard "/query" method as described in Section 5.5 of + [RFC8620]. + +3.3.1. Filtering + + A *FilterCondition* object has the following properties, any of which + may be omitted: + + *inAddressBook*: Id + An AddressBook id. A card must be in this address book to match + the condition. + + *uid*: String + A card must have this string exactly as its uid (as defined in + Section 2.1.9 of [RFC9553]) to match. + + *hasMember*: String + A card must have a "members" property (as defined in Section 2.1.6 + of [RFC9553]) that contains this string as one of the uids in the + set to match. + + *kind*: String + A card must have a "kind" property (as defined in Section 2.1.4 of + [RFC9553]) that equals this string exactly to match. + + *createdBefore*: UTCDate + The "created" date-time of the ContactCard (as defined in + Section 2.1.3 of [RFC9553]) must be before this date-time to match + the condition. + + *createdAfter*: UTCDate + The "created" date-time of the ContactCard (as defined in + Section 2.1.3 of [RFC9553]) must be the same or after this date- + time to match the condition. + + *updatedBefore*: UTCDate + The "updated" date-time of the ContactCard (as defined in + Section 2.1.10 of [RFC9553]) must be before this date-time to + match the condition. + + *updatedAfter*: UTCDate + The "updated" date-time of the ContactCard (as defined in + Section 2.1.10 of [RFC9553]) must be the same or after this date- + time to match the condition. + + *text*: String + A card matches this condition if the text matches with text in the + card. + + *name*: String + A card matches this condition if the value of any NameComponent in + the "name" property or the "full" property in the "name" property + of the card (as defined in Section 2.2.1.2 of [RFC9553]) matches + the value. + + *name/given*: String + A card matches this condition if the value of a NameComponent with + kind "given" inside the "name" property of the card (as defined in + Section 2.2.1.2 of [RFC9553]) matches the value. + + *name/surname*: String + A card matches this condition if the value of a NameComponent with + kind "surname" inside the "name" property of the card (as defined + in Section 2.2.1.2 of [RFC9553]) matches the value. + + *name/surname2*: String + A card matches this condition if the value of a NameComponent with + kind "surname2" inside the "name" property of the card (as defined + in Section 2.2.1.2 of [RFC9553]) matches the value. + + *nickname*: String + A card matches this condition if the "name" of any Nickname in the + "nicknames" property of the card (as defined in Section 2.2.2 of + [RFC9553]) matches the value. + + *organization*: String + A card matches this condition if the "name" of any Organization in + the "organizations" property of the card (as defined in + Section 2.2.3 of [RFC9553]) matches the value. + + *email*: String + A card matches this condition if the "address" or "label" of any + EmailAddress in the "emails" property of the card (as defined in + Section 2.3.1 of [RFC9553]) matches the value. + + *phone*: String + A card matches this condition if the "number" or "label" of any + Phone in the "phones" property of the card (as defined in + Section 2.3.3 of [RFC9553]) matches the value. + + *onlineService*: String + A card matches this condition if the "service", "uri", "user", or + "label" of any OnlineService in the "onlineServices" property of + the card (as defined in Section 2.3.2 of [RFC9553]) matches the + value. + + *address*: String + A card matches this condition if the value of any AddressComponent + in the "addresses" property or the "full" property in the + "addresses" property of the card (as defined in Section 2.5.1 of + [RFC9553]) matches the value. + + *note*: String + A card matches this condition if the "note" of any Note in the + "notes" property of the card (as defined in Section 2.8.3 of + [RFC9553]) matches the value. + + If zero properties are specified on the FilterCondition, the + condition MUST always evaluate to true. If multiple properties are + specified, ALL must apply for the condition to be true (it is + equivalent to splitting the object into one-property conditions and + making them all the child of an AND filter operator). + + The exact semantics for matching String fields is deliberately not + defined to allow for flexibility in indexing implementation, subject + to the following: + + * Text SHOULD be matched in a case-insensitive manner. + + * Text contained in either (but matched) single or double quotes + SHOULD be treated as a phrase search. That is, a match is + required for that exact sequence of words, excluding the + surrounding quotation marks. Use \", \', and \\ to match a + literal ", ', and \ respectively in a phrase. + + * Outside of a phrase, whitespace SHOULD be treated as dividing + separate tokens that may be searched for separately in the + contact, but MUST all be present for the contact to match the + filter. + + * Tokens MAY be matched on a whole-word basis using stemming (e.g., + a text search for bus would match "buses", but not "business"). + +3.3.2. Sorting + + The following values for the "property" field on the Comparator + object MUST be supported for sorting: + + * "created" - The "created" date on the ContactCard. + + * "updated" - The "updated" date on the ContactCard. + + The following values for the "property" field on the Comparator + object SHOULD be supported for sorting: + + * "name/given" - The value of the first NameComponent in the "name" + property whose "kind" is "given". + + * "name/surname" - The value of the first NameComponent in the + "name" property whose "kind" is "surname". + + * "name/surname2" - The value of the first NameComponent in the + "name" property whose "kind" is "surname2". + +3.4. ContactCard/queryChanges + + This is a standard "/queryChanges" method as described in Section 5.6 + of [RFC8620]. + +3.5. ContactCard/set + + This is a standard "/set" method as described in Section 5.3 of + [RFC8620]. + + To set a new photo, the file must first be uploaded using the upload + mechanism as described in Section 6.1 of [RFC8620]. This will give + the client a valid blobId, size, and type to use. The server MUST + reject attempts to set a file that is not a recognised image type as + the photo for a card. + +3.6. ContactCard/copy + + This is a standard "/copy" method as described in Section 5.4 of + [RFC8620]. + +4. Examples + + For brevity, only the "methodCalls" property of the Request object + and the "methodResponses" property of the Response object is shown in + the following examples. + +4.1. Fetching Initial Data + + A user has authenticated and the client has fetched the JMAP Session + object. It finds a single Account with the + "urn:ietf:params:jmap:contacts" capability with id "a0x9" and wants + to fetch all the address books and contacts. It might make the + following request: + + [ + ["AddressBook/get", { + "accountId": "a0x9" + }, "0"], + ["ContactCard/get", { + "accountId": "a0x9" + }, "1"] + ] + + Figure 1: "methodCalls" Property of a JMAP Request + + The server might respond with something like: + + [ + ["AddressBook/get", { + "accountId": "a0x9", + "list": [{ + "id": "062adcfa-105d-455c-bc60-6db68b69c3f3", + "name": "Personal", + "description": null, + "sortOrder": 0, + "isDefault": true, + "isSubscribed": true, + "shareWith": { + "3f1502e0-63fe-4335-9ff3-e739c188f5dd": { + "mayRead": true, + "mayWrite": false, + "mayShare": false, + "mayDelete": false + } + }, + "myRights": { + "mayRead": true, + "mayWrite": true, + "mayShare": true, + "mayDelete": false + } + }, { + "id": "cd40089d-35f9-4fd7-980b-ba3a9f1d74fe", + "name": "Autosaved", + "description": null, + "sortOrder": 1, + "isDefault": false, + "isSubscribed": true, + "shareWith": null, + "myRights": { + "mayRead": true, + "mayWrite": true, + "mayShare": true, + "mayDelete": false + } + }], + "notFound": [], + "state": "~4144" + }, "0"], + ["ContactCard/get", { + "accountId": "a0x9", + "list": [{ + "id": "3", + "addressBookIds": { + "062adcfa-105d-455c-bc60-6db68b69c3f3": true + }, + "name": { + "components": [ + { "kind": "given", "value": "Joe" }, + { "kind": "surname", "value": "Bloggs" } + ], + "isOrdered": true + }, + "emails": { + "0": { + "contexts": { + "private": true + }, + "address": "joe.bloggs@example.com" + } + } + }], + "notFound": [], + "state": "ewarbckaqJ::112" + }, "1"] + ] + + Figure 2: "methodResponses" Property of a JMAP Response + +4.2. Changing the Default Address Book + + The client tries to change the default address book from "Personal" + to "Autosaved" (and makes no other change): + + [ + ["AddressBook/set", { + "accountId": "a0x9", + "onSuccessSetIsDefault": "cd40089d-35f9-4fd7-980b-ba3a9f1d74fe" + }, "0"] + ] + + Figure 3: "methodCalls" Property of a JMAP Request + + The server allows the change, returning the following response: + + [ + ["AddressBook/set", { + "accountId": "a0x9", + "updated": { + "cd40089d-35f9-4fd7-980b-ba3a9f1d74fe": { + "isDefault": true + }, + "062adcfa-105d-455c-bc60-6db68b69c3f3": { + "isDefault": false + }, + "oldState": "~4144", + "newState": "~4148" + } + }, "0"] + ] + + Figure 4: "methodResponses" Property of a JMAP Response + +5. Internationalisation Considerations + + Experience has shown that unrestricted use of Unicode can lead to + problems such as inconsistent rendering, users reading text and + interpreting it differently than intended, and unexpected results + when copying text from one location to another. Servers MAY choose + to mitigate this by restricting the set of characters allowed in + otherwise unconstrained String fields. The FreeformClass, as + documented in Section 4.3 of [RFC8264], might be a good starting + point for this. + + Attempts to set a value containing code points outside of the + permissible set can be handled in a few ways by the server. The + server could choose to strip the forbidden characters or replace them + with U+FFFD (the Unicode replacement character) and store the + resulting string. This is likely to be appropriate for non-printable + characters -- such as the "Control Codes" defined in Section 23.1 + (https://www.unicode.org/versions/latest/core-spec/chapter- + 23/#G20365) of [UNICODE], excluding newline (U+000A), carriage return + (U+000D), and tab (U+0009) -- that can end up in data accidentally + due to copy-and-paste issues but are invisible to the end user. JMAP + allows the server to transform data on create/update as long as any + changed properties are returned to the client in the "/set" response + so it knows what has changed, as per Section 5.3 of [RFC8620]. + Alternatively, the server MAY just reject the create/update with an + "invalidProperties" SetError. + +6. Security Considerations + + All security considerations of JMAP [RFC8620] apply to this + specification. Additional considerations specific to the data types + and functionality introduced by this document are described in the + following subsection. + + Contacts consist almost entirely of private, personally identifiable + information, and represent the social connections of users. Privacy + leaks can have real world consequences, and contact servers and + clients MUST be mindful of the need to keep all data secure. + + Servers MUST enforce the Access Control Lists (ACLs) set on address + books to ensure only authorised data is shared. + +7. IANA Considerations + +7.1. JMAP Capability Registration for "contacts" + + IANA has registered "contacts" in the "JMAP Capabilities" registry as + follows: + + Capability Name: urn:ietf:params:jmap:contacts + Intended Use: common + Change Controller: IETF + Security and Privacy Considerations: this document, Section 6 + Reference: this document + +7.2. JMAP Data Type Registration for "AddressBook" + + IANA has registered "AddressBook" in the "JMAP Data Types" registry + as follows: + + Type Name: AddressBook + Can Reference Blobs: No + Can Use for State Change: Yes + Capability: urn:ietf:params:jmap:contacts + Reference: this document + +7.3. JMAP Data Type Registration for "ContactCard" + + IANA has registered "ContactCard" in the "JMAP Data Types" registry + as follows: + + Type Name: ContactCard + Can Reference Blobs: Yes + Can Use for State Change: Yes + Capability: urn:ietf:params:jmap:contacts + Reference: this document + +7.4. JMAP Error Codes Registry + + The following subsection has registered a new error code in the "JMAP + Error Codes" registry, as defined in Section 9 of [RFC8620]. + +7.4.1. addressBookHasContents + + JMAP Error Code: addressBookHasContents + Intended Use: common + Change Controller: IETF + Description: The AddressBook has at least one ContactCard assigned + to it, and the "onDestroyRemoveContents" argument was false. + Reference: This document, Section 2.3 + +7.5. JSContact Property Registrations + + IANA has registered the following additional properties in the + "JSContact Properties" registry, as defined in Section 3 of + [RFC9553]. + +7.5.1. id + + Property Name: id + Property Type: not applicable + Property Context: Card + Intended Usage: reserved + Since Version: 1.0 + Change Controller: IETF + Reference: this document + +7.5.2. addressBookIds + + Property Name: addressBookIds + Property Type: not applicable + Property Context: Card + Intended Usage: reserved + Since Version: 1.0 + Change Controller: IETF + Reference: this document + +7.5.3. blobId + + Property Name: blobId + Property Type: not applicable + Property Context: Media + Intended Usage: reserved + Since Version: 1.0 + Change Controller: IETF + Reference: this document + +8. References + +8.1. Normative References + + [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate + Requirement Levels", BCP 14, RFC 2119, + DOI 10.17487/RFC2119, March 1997, + . + + [RFC2397] Masinter, L., "The "data" URL scheme", RFC 2397, + DOI 10.17487/RFC2397, August 1998, + . + + [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC + 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, + May 2017, . + + [RFC8620] Jenkins, N. and C. Newman, "The JSON Meta Application + Protocol (JMAP)", RFC 8620, DOI 10.17487/RFC8620, July + 2019, . + + [RFC9553] Stepanek, R. and M. Loffredo, "JSContact: A JSON + Representation of Contact Data", RFC 9553, + DOI 10.17487/RFC9553, May 2024, + . + + [RFC9670] Jenkins, N., Ed., "JSON Meta Application Protocol (JMAP) + Sharing", RFC 9670, DOI 10.17487/RFC9670, November 2024, + . + +8.2. Informative References + + [RFC8264] Saint-Andre, P. and M. Blanchet, "PRECIS Framework: + Preparation, Enforcement, and Comparison of + Internationalized Strings in Application Protocols", + RFC 8264, DOI 10.17487/RFC8264, October 2017, + . + + [UNICODE] The Unicode Consortium, "The Unicode Standard", + . + +Author's Address + + Neil Jenkins (editor) + Fastmail + PO Box 234, Collins St West + Melbourne VIC 8007 + Australia + Email: neilj@fastmailteam.com + URI: https://www.fastmail.com diff --git a/specifications/core/rfc8620.pdf b/specifications/core/rfc8620.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8b0363134dff9bdcb05092812633b91a89ce706c GIT binary patch literal 134336 zcma%?Q+Ob07j9$Qwr$(CZL4G3wv ZpzUZ6_V$%*;9eoQuAhtE#82>s{~qcI_fn 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

Hello ..." + }, + "2": { + "isEncodingProblem": false, + "isTruncated": false, + "value": "-- Sent by your friendly mailing list ..." + } + } + } + ], + "notFound": [ "f123u456" ] + }, "#1" ]] + +4.3. Email/changes + + This is a standard "/changes" method as described in [RFC8620], + Section 5.2. If generating intermediate states for a large set of + changes, it is recommended that newer changes be returned first, as + these are generally of more interest to users. + +4.4. Email/query + + This is a standard "/query" method as described in [RFC8620], + Section 5.5 but with the following additional request arguments: + + o collapseThreads: "Boolean" (default: false) + + If true, Emails in the same Thread as a previous Email in the list + (given the filter and sort order) will be removed from the list. + This means only one Email at most will be included in the list for + any given Thread. + + In quality implementations, the query "total" property is expected to + be fast to calculate when the filter consists solely of a single + "inMailbox" property, as it is the same as the totalEmails or + totalThreads properties (depending on whether collapseThreads is + true) of the associated Mailbox object. + + + + +Jenkins & Newman Standards Track [Page 45] + +RFC 8621 JMAP Mail August 2019 + + +4.4.1. Filtering + + A *FilterCondition* object has the following properties, any of which + may be omitted: + + o inMailbox: "Id" + + A Mailbox id. An Email must be in this Mailbox to match the + condition. + + o inMailboxOtherThan: "Id[]" + + A list of Mailbox ids. An Email must be in at least one Mailbox + not in this list to match the condition. This is to allow + messages solely in trash/spam to be easily excluded from a search. + + o before: "UTCDate" + + The "receivedAt" date-time of the Email must be before this date- + time to match the condition. + + o after: "UTCDate" + + The "receivedAt" date-time of the Email must be the same or after + this date-time to match the condition. + + o minSize: "UnsignedInt" + + The "size" property of the Email must be equal to or greater than + this number to match the condition. + + o maxSize: "UnsignedInt" + + The "size" property of the Email must be less than this number to + match the condition. + + o allInThreadHaveKeyword: "String" + + All Emails (including this one) in the same Thread as this Email + must have the given keyword to match the condition. + + o someInThreadHaveKeyword: "String" + + At least one Email (possibly this one) in the same Thread as this + Email must have the given keyword to match the condition. + + + + + + +Jenkins & Newman Standards Track [Page 46] + +RFC 8621 JMAP Mail August 2019 + + + o noneInThreadHaveKeyword: "String" + + All Emails (including this one) in the same Thread as this Email + must *not* have the given keyword to match the condition. + + o hasKeyword: "String" + + This Email must have the given keyword to match the condition. + + o notKeyword: "String" + + This Email must not have the given keyword to match the condition. + + o hasAttachment: "Boolean" + + The "hasAttachment" property of the Email must be identical to the + value given to match the condition. + + o text: "String" + + Looks for the text in Emails. The server MUST look up text in the + From, To, Cc, Bcc, and Subject header fields of the message and + SHOULD look inside any "text/*" or other body parts that may be + converted to text by the server. The server MAY extend the search + to any additional textual property. + + o from: "String" + + Looks for the text in the From header field of the message. + + o to: "String" + + Looks for the text in the To header field of the message. + + o cc: "String" + + Looks for the text in the Cc header field of the message. + + o bcc: "String" + + Looks for the text in the Bcc header field of the message. + + o subject: "String" + + Looks for the text in the Subject header field of the message. + + + + + + +Jenkins & Newman Standards Track [Page 47] + +RFC 8621 JMAP Mail August 2019 + + + o body: "String" + + Looks for the text in one of the body parts of the message. The + server MAY exclude MIME body parts with content media types other + than "text/*" and "message/*" from consideration in search + matching. Care should be taken to match based on the text content + actually presented to an end user by viewers for that media type + or otherwise identified as appropriate for search indexing. + Matching document metadata uninteresting to an end user (e.g., + markup tag and attribute names) is undesirable. + + o header: "String[]" + + The array MUST contain either one or two elements. The first + element is the name of the header field to match against. The + second (optional) element is the text to look for in the header + field value. If not supplied, the message matches simply if it + has a header field of the given name. + + If zero properties are specified on the FilterCondition, the + condition MUST always evaluate to true. If multiple properties are + specified, ALL must apply for the condition to be true (it is + equivalent to splitting the object into one-property conditions and + making them all the child of an AND filter operator). + + The exact semantics for matching "String" fields is *deliberately not + defined* to allow for flexibility in indexing implementation, subject + to the following: + + o Any syntactically correct encoded sections [RFC2047] of header + fields with a known encoding SHOULD be decoded before attempting + to match text. + + o When searching inside a "text/html" body part, any text considered + markup rather than content SHOULD be ignored, including HTML tags + and most attributes, anything inside the "" tag, Cascading + Style Sheets (CSS), and JavaScript. Attribute content intended + for presentation to the user such as "alt" and "title" SHOULD be + considered in the search. + + o Text SHOULD be matched in a case-insensitive manner. + + o Text contained in either (but matched) single (') or double (") + quotes SHOULD be treated as a *phrase search*; that is, a match is + required for that exact word or sequence of words, excluding the + surrounding quotation marks. + + + + + +Jenkins & Newman Standards Track [Page 48] + +RFC 8621 JMAP Mail August 2019 + + + Within a phrase, to match one of the following characters you MUST + escape it by prefixing it with a backslash (\): + + ' " \ + + o Outside of a phrase, white space SHOULD be treated as dividing + separate tokens that may be searched for separately but MUST all + be present for the Email to match the filter. + + o Tokens (not part of a phrase) MAY be matched on a whole-word basis + using stemming (for example, a text search for "bus" would match + "buses" but not "business"). + +4.4.2. Sorting + + The following value for the "property" field on the Comparator object + MUST be supported for sorting: + + o "receivedAt" - The "receivedAt" date as returned in the Email + object. + + The following values for the "property" field on the Comparator + object SHOULD be supported for sorting. When specifying a + "hasKeyword", "allInThreadHaveKeyword", or "someInThreadHaveKeyword" + sort, the Comparator object MUST also have a "keyword" property. + + o "size" - The "size" as returned in the Email object. + + o "from" - This is taken to be either the "name" property or if + null/empty, the "email" property of the *first* EmailAddress + object in the Email's "from" property. If still none, consider + the value to be the empty string. + + o "to" - This is taken to be either the "name" property or if null/ + empty, the "email" property of the *first* EmailAddress object in + the Email's "to" property. If still none, consider the value to + be the empty string. + + o "subject" - This is taken to be the base subject of the message, + as defined in Section 2.1 of [RFC5256]. + + o "sentAt" - The "sentAt" property on the Email object. + + o "hasKeyword" - This value MUST be considered true if the Email has + the keyword given as an additional "keyword" property on the + Comparator object, or false otherwise. + + + + + +Jenkins & Newman Standards Track [Page 49] + +RFC 8621 JMAP Mail August 2019 + + + o "allInThreadHaveKeyword" - This value MUST be considered true for + the Email if *all* of the Emails in the same Thread have the + keyword given as an additional "keyword" property on the + Comparator object. + + o "someInThreadHaveKeyword" - This value MUST be considered true for + the Email if *any* of the Emails in the same Thread have the + keyword given as an additional "keyword" property on the + Comparator object. + + The server MAY support sorting based on other properties as well. A + client can discover which properties are supported by inspecting the + account's "capabilities" object (see Section 1.3). + + Example sort: + + [{ + "property": "someInThreadHaveKeyword", + "keyword": "$flagged", + "isAscending": false + }, { + "property": "subject", + "collation": "i;ascii-casemap" + }, { + "property": "receivedAt", + "isAscending": false + }] + + This would sort Emails in flagged Threads first (the Thread is + considered flagged if any Email within it is flagged), in subject + order second, and then from newest first for messages with the same + subject. If two Emails have identical values for all three + properties, then the order is server dependent but must be stable. + +4.4.3. Thread Collapsing + + When "collapseThreads" is true, then after filtering and sorting the + Email list, the list is further winnowed by removing any Emails for a + Thread id that has already been seen (when passing through the list + sequentially). A Thread will therefore only appear *once* in the + result, at the position of the first Email in the list that belongs + to the Thread (given the current sort/filter). + + + + + + + + + +Jenkins & Newman Standards Track [Page 50] + +RFC 8621 JMAP Mail August 2019 + + +4.5. Email/queryChanges + + This is a standard "/queryChanges" method as described in [RFC8620], + Section 5.6 with the following additional request argument: + + o collapseThreads: "Boolean" (default: false) + + The "collapseThreads" argument that was used with "Email/query". + +4.6. Email/set + + This is a standard "/set" method as described in [RFC8620], + Section 5.3. The "Email/set" method encompasses: + + o Creating a draft + + o Changing the keywords of an Email (e.g., unread/flagged status) + + o Adding/removing an Email to/from Mailboxes (moving a message) + + o Deleting Emails + + The format of the "keywords"/"mailboxIds" properties means that when + updating an Email, you can either replace the entire set of keywords/ + Mailboxes (by setting the full value of the property) or add/remove + individual ones using the JMAP patch syntax (see [RFC8620], + Section 5.3 for the specification and Section 5.7 for an example). + + Due to the format of the Email object, when creating an Email, there + are a number of ways to specify the same information. To ensure that + the message [RFC5322] to create is unambiguous, the following + constraints apply to Email objects submitted for creation: + + o The "headers" property MUST NOT be given on either the top-level + Email or an EmailBodyPart -- the client must set each header field + as an individual property. + + o There MUST NOT be two properties that represent the same header + field (e.g., "header:from" and "from") within the Email or + particular EmailBodyPart. + + o Header fields MUST NOT be specified in parsed forms that are + forbidden for that particular field. + + o Header fields beginning with "Content-" MUST NOT be specified on + the Email object, only on EmailBodyPart objects. + + + + + +Jenkins & Newman Standards Track [Page 51] + +RFC 8621 JMAP Mail August 2019 + + + o If a "bodyStructure" property is given, there MUST NOT be + "textBody", "htmlBody", or "attachments" properties. + + o If given, the "bodyStructure" EmailBodyPart MUST NOT contain a + property representing a header field that is already defined on + the top-level Email object. + + o If given, textBody MUST contain exactly one body part and it MUST + be of type "text/plain". + + o If given, htmlBody MUST contain exactly one body part and it MUST + be of type "text/html". + + o Within an EmailBodyPart: + + * The client may specify a partId OR a blobId, but not both. If + a partId is given, this partId MUST be present in the + "bodyValues" property. + + * The "charset" property MUST be omitted if a partId is given + (the part's content is included in bodyValues, and the server + may choose any appropriate encoding). + + * The "size" property MUST be omitted if a partId is given. If a + blobId is given, it may be included but is ignored by the + server (the size is actually calculated from the blob content + itself). + + * A Content-Transfer-Encoding header field MUST NOT be given. + + o Within an EmailBodyValue object, isEncodingProblem and isTruncated + MUST be either false or omitted. + + Creation attempts that violate any of this SHOULD be rejected with an + "invalidProperties" error; however, a server MAY choose to modify the + Email (e.g., choose between conflicting headers, use a different + content-encoding, etc.) to comply with its requirements instead. + + The server MAY also choose to set additional headers. If not + included, the server MUST generate and set a Message-ID header field + in conformance with [RFC5322], Section 3.6.4 and a Date header field + in conformance with Section 3.6.1. + + The final message generated may be invalid per RFC 5322. For + example, if it is a half-finished draft, the To header field may have + a value that does not conform to the required syntax for this header. + The message will be checked for strict conformance when submitted for + sending (see the EmailSubmission object description). + + + +Jenkins & Newman Standards Track [Page 52] + +RFC 8621 JMAP Mail August 2019 + + + Destroying an Email removes it from all Mailboxes to which it + belonged. To just delete an Email to trash, simply change the + "mailboxIds" property, so it is now in the Mailbox with a "role" + property equal to "trash", and remove all other Mailbox ids. + + When emptying the trash, clients SHOULD NOT destroy Emails that are + also in a Mailbox other than trash. For those Emails, they SHOULD + just remove the trash Mailbox from the Email. + + For successfully created Email objects, the "created" response + contains the "id", "blobId", "threadId", and "size" properties of the + object. + + The following extra SetError types are defined: + + For "create": + + o "blobNotFound": At least one blob id given for an EmailBodyPart + doesn't exist. An extra "notFound" property of type "Id[]" MUST + be included in the SetError object containing every "blobId" + referenced by an EmailBodyPart that could not be found on the + server. + + For "create" and "update": + + o "tooManyKeywords": The change to the Email's keywords would exceed + a server-defined maximum. + + o "tooManyMailboxes": The change to the set of Mailboxes that this + Email is in would exceed a server-defined maximum. + +4.7. Email/copy + + This is a standard "/copy" method as described in [RFC8620], + Section 5.4, except only the "mailboxIds", "keywords", and + "receivedAt" properties may be set during the copy. This method + cannot modify the message represented by the Email. + + The server MAY forbid two Email objects with identical message + content [RFC5322], or even just with the same Message-ID [RFC5322], + to coexist within an account; if the target account already has the + Email, the copy will be rejected with a standard "alreadyExists" + error. + + For successfully copied Email objects, the "created" response + contains the "id", "blobId", "threadId", and "size" properties of the + new object. + + + + +Jenkins & Newman Standards Track [Page 53] + +RFC 8621 JMAP Mail August 2019 + + +4.8. Email/import + + The "Email/import" method adds messages [RFC5322] to the set of + Emails in an account. The server MUST support messages with Email + Address Internationalization (EAI) headers [RFC6532]. The messages + must first be uploaded as blobs using the standard upload mechanism. + The method takes the following arguments: + + o accountId: "Id" + + The id of the account to use. + + o ifInState: "String|null" + + This is a state string as returned by the "Email/get" method. If + supplied, the string must match the current state of the account + referenced by the accountId; otherwise, the method will be aborted + and a "stateMismatch" error returned. If null, any changes will + be applied to the current state. + + o emails: "Id[EmailImport]" + + A map of creation id (client specified) to EmailImport objects. + + An *EmailImport* object has the following properties: + + o blobId: "Id" + + The id of the blob containing the raw message [RFC5322]. + + o mailboxIds: "Id[Boolean]" + + The ids of the Mailboxes to assign this Email to. At least one + Mailbox MUST be given. + + o keywords: "String[Boolean]" (default: {}) + + The keywords to apply to the Email. + + o receivedAt: "UTCDate" (default: time of most recent Received + header, or time of import on server if none) + + The "receivedAt" date to set on the Email. + + Each Email to import is considered an atomic unit that may succeed or + fail individually. Importing successfully creates a new Email object + from the data referenced by the blobId and applies the given + Mailboxes, keywords, and receivedAt date. + + + +Jenkins & Newman Standards Track [Page 54] + +RFC 8621 JMAP Mail August 2019 + + + The server MAY forbid two Email objects with the same exact content + [RFC5322], or even just with the same Message-ID [RFC5322], to + coexist within an account. In this case, it MUST reject attempts to + import an Email considered to be a duplicate with an "alreadyExists" + SetError. An "existingId" property of type "Id" MUST be included on + the SetError object with the id of the existing Email. If duplicates + are allowed, the newly created Email object MUST have a separate id + and independent mutable properties to the existing object. + + If the "blobId", "mailboxIds", or "keywords" properties are invalid + (e.g., missing, wrong type, id not found), the server MUST reject the + import with an "invalidProperties" SetError. + + If the Email cannot be imported because it would take the account + over quota, the import should be rejected with an "overQuota" + SetError. + + If the blob referenced is not a valid message [RFC5322], the server + MAY modify the message to fix errors (such as removing NUL octets or + fixing invalid headers). If it does this, the "blobId" on the + response MUST represent the new representation and therefore be + different to the "blobId" on the EmailImport object. Alternatively, + the server MAY reject the import with an "invalidEmail" SetError. + + The response has the following arguments: + + o accountId: "Id" + + The id of the account used for this call. + + o oldState: "String|null" + + The state string that would have been returned by "Email/get" on + this account before making the requested changes, or null if the + server doesn't know what the previous state string was. + + o newState: "String" + + The state string that will now be returned by "Email/get" on this + account. + + o created: "Id[Email]|null" + + A map of the creation id to an object containing the "id", + "blobId", "threadId", and "size" properties for each successfully + imported Email, or null if none. + + + + + +Jenkins & Newman Standards Track [Page 55] + +RFC 8621 JMAP Mail August 2019 + + + o notCreated: "Id[SetError]|null" + + A map of the creation id to a SetError object for each Email that + failed to be created, or null if all successful. The possible + errors are defined above. + + The following additional errors may be returned instead of the + "Email/import" response: + + "stateMismatch": An "ifInState" argument was supplied, and it does + not match the current state. + +4.9. Email/parse + + This method allows you to parse blobs as messages [RFC5322] to get + Email objects. The server MUST support messages with EAI headers + [RFC6532]. This can be used to parse and display attached messages + without having to import them as top-level Email objects in the mail + store in their own right. + + The following metadata properties on the Email objects will be null + if requested: + + o id + + o mailboxIds + + o keywords + + o receivedAt + + The "threadId" property of the Email MAY be present if the server can + calculate which Thread the Email would be assigned to were it to be + imported. Otherwise, this too is null if fetched. + + The "Email/parse" method takes the following arguments: + + o accountId: "Id" + + The id of the account to use. + + o blobIds: "Id[]" + + The ids of the blobs to parse. + + + + + + + +Jenkins & Newman Standards Track [Page 56] + +RFC 8621 JMAP Mail August 2019 + + + o properties: "String[]" + + If supplied, only the properties listed in the array are returned + for each Email object. If omitted, defaults to: + + [ "messageId", "inReplyTo", "references", "sender", "from", "to", + "cc", "bcc", "replyTo", "subject", "sentAt", "hasAttachment", + "preview", "bodyValues", "textBody", "htmlBody", "attachments" ] + + o bodyProperties: "String[]" + + A list of properties to fetch for each EmailBodyPart returned. If + omitted, defaults to the same value as the "Email/get" + "bodyProperties" default argument. + + o fetchTextBodyValues: "Boolean" (default: false) + + If true, the "bodyValues" property includes any "text/*" part in + the "textBody" property. + + o fetchHTMLBodyValues: "Boolean" (default: false) + + If true, the "bodyValues" property includes any "text/*" part in + the "htmlBody" property. + + o fetchAllBodyValues: "Boolean" (default: false) + + If true, the "bodyValues" property includes any "text/*" part in + the "bodyStructure" property. + + o maxBodyValueBytes: "UnsignedInt" (default: 0) + + If greater than zero, the "value" property of any EmailBodyValue + object returned in "bodyValues" MUST be truncated if necessary so + it does not exceed this number of octets in size. If 0 (the + default), no truncation occurs. + + The server MUST ensure the truncation results in valid UTF-8 and + does not occur mid-codepoint. If the part is of type "text/html", + the server SHOULD NOT truncate inside an HTML tag, e.g., in the + middle of "". There is no + requirement for the truncated form to be a balanced tree or valid + HTML (indeed, the original source may well be neither of these + things). + + + + + + + +Jenkins & Newman Standards Track [Page 57] + +RFC 8621 JMAP Mail August 2019 + + + The response has the following arguments: + + o accountId: "Id" + + The id of the account used for the call. + + o parsed: "Id[Email]|null" + + A map of blob id to parsed Email representation for each + successfully parsed blob, or null if none. + + o notParsable: "Id[]|null" + + A list of ids given that corresponded to blobs that could not be + parsed as Emails, or null if none. + + o notFound: "Id[]|null" + + A list of blob ids given that could not be found, or null if none. + + As specified above, parsed forms of headers may only be used on + appropriate header fields. Attempting to fetch a form that is + forbidden (e.g., "header:From:asDate") MUST result in the method call + being rejected with an "invalidArguments" error. + + Where a specific header field is requested as a property, the + capitalization of the property name in the response MUST be identical + to that used in the request. + +4.10. Examples + + A client logs in for the first time. It first fetches the set of + Mailboxes. Now it will display the inbox to the user, which we will + presume has Mailbox id "fb666a55". The inbox may be (very!) large, + but the user's screen is only so big, so the client can just load the + Threads it needs to fill the screen and then load in more only when + the user scrolls. The client sends this request: + + [[ "Email/query",{ + "accountId": "ue150411c", + "filter": { + "inMailbox": "fb666a55" + }, + "sort": [{ + "isAscending": false, + "property": "receivedAt" + }], + "collapseThreads": true, + + + +Jenkins & Newman Standards Track [Page 58] + +RFC 8621 JMAP Mail August 2019 + + + "position": 0, + "limit": 30, + "calculateTotal": true + }, "0" ], + [ "Email/get", { + "accountId": "ue150411c", + "#ids": { + "resultOf": "0", + "name": "Email/query", + "path": "/ids" + }, + "properties": [ + "threadId" + ] + }, "1" ], + [ "Thread/get", { + "accountId": "ue150411c", + "#ids": { + "resultOf": "1", + "name": "Email/get", + "path": "/list/*/threadId" + } + }, "2" ], + [ "Email/get", { + "accountId": "ue150411c", + "#ids": { + "resultOf": "2", + "name": "Thread/get", + "path": "/list/*/emailIds" + }, + "properties": [ + "threadId", + "mailboxIds", + "keywords", + "hasAttachment", + "from", + "subject", + "receivedAt", + "size", + "preview" + ] + }, "3" ]] + + + + + + + + + +Jenkins & Newman Standards Track [Page 59] + +RFC 8621 JMAP Mail August 2019 + + + Let's break down the 4 method calls to see what they're doing: + + "0": This asks the server for the ids of the first 30 Email objects + in the inbox, sorted newest first, ignoring Emails from the same + Thread as a newer Email in the Mailbox (i.e., it is the first 30 + unique Threads). + + "1": Now we use a back-reference to fetch the Thread ids for each of + these Email ids. + + "2": Another back-reference fetches the Thread object for each of + these Thread ids. + + "3": Finally, we fetch the information we need to display the Mailbox + listing (but no more!) for every Email in each of these 30 Threads. + The client may aggregate this data for display, for example, by + showing the Thread as "flagged" if any of the Emails in it has the + "$flagged" keyword. + + The response from the server may look something like this: + + [[ "Email/query", { + "accountId": "ue150411c", + "queryState": "09aa9a075588-780599:0", + "canCalculateChanges": true, + "position": 0, + "total": 115, + "ids": [ "Ma783e5cdf5f2deffbc97930a", + "M9bd17497e2a99cb345fc1d0a", ... ] + }, "0" ], + [ "Email/get", { + "accountId": "ue150411c", + "state": "780599", + "list": [{ + "id": "Ma783e5cdf5f2deffbc97930a", + "threadId": "T36703c2cfe9bd5ed" + }, { + "id": "M9bd17497e2a99cb345fc1d0a", + "threadId": "T0a22ad76e9c097a1" + }, ... ], + "notFound": [] + }, "1" ], + [ "Thread/get", { + "accountId": "ue150411c", + "state": "22a8728b", + "list": [{ + "id": "T36703c2cfe9bd5ed", + "emailIds": [ "Ma783e5cdf5f2deffbc97930a" ] + + + +Jenkins & Newman Standards Track [Page 60] + +RFC 8621 JMAP Mail August 2019 + + + }, { + "id": "T0a22ad76e9c097a1", + "emailIds": [ "M3b568670a63e5d100f518fa5", + "M9bd17497e2a99cb345fc1d0a" ] + }, ... ], + "notFound": [] + }, "2" ], + [ "Email/get", { + "accountId": "ue150411c", + "state": "780599", + "list": [{ + "id": "Ma783e5cdf5f2deffbc97930a", + "threadId": "T36703c2cfe9bd5ed", + "mailboxIds": { + "fb666a55": true + }, + "keywords": { + "$seen": true, + "$flagged": true + }, + "hasAttachment": true, + "from": [{ + "email": "jdoe@example.com", + "name": "Jane Doe" + }], + "subject": "The Big Reveal", + "receivedAt": "2018-06-27T00:20:35Z", + "size": 175047, + "preview": "As you may be aware, we are required to prepare a + presentation where we wow a panel of 5 random members of the + public, on or before 30 June each year. We have drafted..." + }, + ... + ], + "notFound": [] + }, "3" ]] + + + + + + + + + + + + + + + +Jenkins & Newman Standards Track [Page 61] + +RFC 8621 JMAP Mail August 2019 + + + Now, on another device, the user marks the first Email as unread, + sending this API request: + + [[ "Email/set", { + "accountId": "ue150411c", + "update": { + "Ma783e5cdf5f2deffbc97930a": { + "keywords/$seen": null + } + } + }, "0" ]] + + The server applies this and sends the success response: + + [[ "Email/set", { + "accountId": "ue150411c", + "oldState": "780605", + "newState": "780606", + "updated": { + "Ma783e5cdf5f2deffbc97930a": null + }, + ... + }, "0" ]] + + The user also deletes a few Emails, and then a new message arrives. + + + + + + + + + + + + + + + + + + + + + + + + + + +Jenkins & Newman Standards Track [Page 62] + +RFC 8621 JMAP Mail August 2019 + + + Back on our original machine, we receive a push update that the state + string for Email is now "780800". As this does not match the + client's current state, it issues a request for the changes: + + [[ "Email/changes", { + "accountId": "ue150411c", + "sinceState": "780605", + "maxChanges": 50 + }, "3" ], + [ "Email/queryChanges", { + "accountId": "ue150411c", + "filter": { + "inMailbox": "fb666a55" + }, + "sort": [{ + "property": "receivedAt", + "isAscending": false + }], + "collapseThreads": true, + "sinceQueryState": "09aa9a075588-780599:0", + "upToId": "Mc2781d5e856a908d8a35a564", + "maxChanges": 25, + "calculateTotal": true + }, "11" ]] + + The response: + + [[ "Email/changes", { + "accountId": "ue150411c", + "oldState": "780605", + "newState": "780800", + "hasMoreChanges": false, + "created": [ "Me8de6c9f6de198239b982ea2" ], + "updated": [ "Ma783e5cdf5f2deffbc97930a" ], + "destroyed": [ "M9bd17497e2a99cb345fc1d0a", ... ] + }, "3" ], + [ "Email/queryChanges", { + "accountId": "ue150411c", + "oldQueryState": "09aa9a075588-780599:0", + "newQueryState": "e35e9facf117-780615:0", + "added": [{ + "id": "Me8de6c9f6de198239b982ea2", + "index": 0 + }], + "removed": [ "M9bd17497e2a99cb345fc1d0a" ], + "total": 115 + }, "11" ]] + + + + +Jenkins & Newman Standards Track [Page 63] + +RFC 8621 JMAP Mail August 2019 + + + The client can update its local cache of the query results by + removing "M9bd17497e2a99cb345fc1d0a" and then splicing in + "Me8de6c9f6de198239b982ea2" at position 0. As it does not have the + data for this new Email, it will then fetch it (it also could have + done this in the same request using back-references). + + It knows something has changed about "Ma783e5cdf5f2deffbc97930a", so + it will refetch the Mailbox ids and keywords (the only mutable + properties) for this Email too. + + The user starts composing a new Email. The email is plaintext and + the client knows the email in English so adds this metadata to the + body part. The user saves a draft while the composition is still in + progress. The client sends: + + [[ "Email/set", { + "accountId": "ue150411c", + "create": { + "k192": { + "mailboxIds": { + "2ea1ca41b38e": true + }, + "keywords": { + "$seen": true, + "$draft": true + }, + "from": [{ + "name": "Joe Bloggs", + "email": "joe@example.com" + }], + "subject": "World domination", + "receivedAt": "2018-07-10T01:03:11Z", + "sentAt": "2018-07-10T11:03:11+10:00", + "bodyStructure": { + "type": "text/plain", + "partId": "bd48", + "header:Content-Language": "en" + }, + "bodyValues": { + "bd48": { + "value": "I have the most brilliant plan. Let me tell + you all about it. What we do is, we", + "isTruncated": false + } + } + } + } + }, "0" ]] + + + +Jenkins & Newman Standards Track [Page 64] + +RFC 8621 JMAP Mail August 2019 + + + The server creates the message and sends the success response: + + [[ "Email/set", { + "accountId": "ue150411c", + "oldState": "780823", + "newState": "780839", + "created": { + "k192": { + "id": "Mf40b5f831efa7233b9eb1c7f", + "blobId": "Gf40b5f831efa7233b9eb1c7f8f97d84eeeee64f7", + "threadId": "Td957e72e89f516dc", + "size": 359 + } + }, + ... + }, "0" ]] + + The message created on the server looks something like this: + + Message-Id: + User-Agent: Cyrus-JMAP/3.1.6-736-gdfb8e44 + Mime-Version: 1.0 + Date: Tue, 10 Jul 2018 11:03:11 +1000 + From: "Joe Bloggs" + Subject: World domination + Content-Language: en + Content-Type: text/plain + + I have the most brilliant plan. Let me tell you all about it. What we + do is, we + + The user adds a recipient and converts the message to HTML so they + can add formatting, then saves an updated draft: + + [[ "Email/set", { + "accountId": "ue150411c", + "create": { + "k1546": { + "mailboxIds": { + "2ea1ca41b38e": true + }, + "keywords": { + "$seen": true, + "$draft": true + }, + "from": [{ + "name": "Joe Bloggs", + "email": "joe@example.com" + + + +Jenkins & Newman Standards Track [Page 65] + +RFC 8621 JMAP Mail August 2019 + + + }], + "to": [{ + "name": "John", + "email": "john@example.com" + }], + "subject": "World domination", + "receivedAt": "2018-07-10T01:05:08Z", + "sentAt": "2018-07-10T11:05:08+10:00", + "bodyStructure": { + "type": "multipart/alternative", + "subParts": [{ + "partId": "a49d", + "type": "text/html", + "header:Content-Language": "en" + }, { + "partId": "bd48", + "type": "text/plain", + "header:Content-Language": "en" + }] + }, + "bodyValues": { + "bd48": { + "value": "I have the most brilliant plan. Let me tell + you all about it. What we do is, we", + "isTruncated": false + }, + "a49d": { + "value": " + +

+ ", + "isTruncated": false + } + } + } + }, + "destroy": [ "Mf40b5f831efa7233b9eb1c7f" ] + }, "0" ]] + + + + + + + + + + + + +Jenkins & Newman Standards Track [Page 66] + +RFC 8621 JMAP Mail August 2019 + + + The server creates the new draft, deletes the old one, and sends the + success response: + + [[ "Email/set", { + "accountId": "ue150411c", + "oldState": "780839", + "newState": "780842", + "created": { + "k1546": { + "id": "Md45b47b4877521042cec0938", + "blobId": "Ge8de6c9f6de198239b982ea214e0f3a704e4af74", + "threadId": "Td957e72e89f516dc", + "size": 11721 + } + }, + "destroyed": [ "Mf40b5f831efa7233b9eb1c7f" ], + ... + }, "0" ]] + + The client moves this draft to a different account. The only way to + do this is via the "Email/copy" method. It MUST set a new + "mailboxIds" property, since the current value will not be valid + Mailbox ids in the destination account: + + [[ "Email/copy", { + "fromAccountId": "ue150411c", + "accountId": "u6c6c41ac", + "create": { + "k45": { + "id": "Md45b47b4877521042cec0938", + "mailboxIds": { + "75a4c956": true + } + } + }, + "onSuccessDestroyOriginal": true + }, "0" ]] + + + + + + + + + + + + + + +Jenkins & Newman Standards Track [Page 67] + +RFC 8621 JMAP Mail August 2019 + + + The server successfully copies the Email and deletes the original. + Due to the implicit call to "Email/set", there are two responses to + the single method call, both with the same method call id: + + [[ "Email/copy", { + "fromAccountId": "ue150411c", + "accountId": "u6c6c41ac", + "oldState": "7ee7e9263a6d", + "newState": "5a0d2447ed26", + "created": { + "k45": { + "id": "M138f9954a5cd2423daeafa55", + "blobId": "G6b9fb047cba722c48c611e79233d057c6b0b74e8", + "threadId": "T2f242ea424a4079a", + "size": 11721 + } + }, + "notCreated": null + }, "0" ], + [ "Email/set", { + "accountId": "ue150411c", + "oldState": "780842", + "newState": "780871", + "destroyed": [ "Md45b47b4877521042cec0938" ], + ... + }, "0" ]] + +5. Search Snippets + + When doing a search on a "String" property, the client may wish to + show the relevant section of the body that matches the search as a + preview and to highlight any matching terms in both this and the + subject of the Email. Search snippets represent this data. + + A *SearchSnippet* object has the following properties: + + o emailId: "Id" + + The Email id the snippet applies to. + + + + + + + + + + + + +Jenkins & Newman Standards Track [Page 68] + +RFC 8621 JMAP Mail August 2019 + + + o subject: "String|null" + + If text from the filter matches the subject, this is the subject + of the Email with the following transformations: + + 1. Any instance of the following three characters MUST be + replaced by an appropriate HTML entity: & (ampersand), < + (less-than sign), and > (greater-than sign) [HTML]. Other + characters MAY also be replaced with an HTML entity form. + + 2. The matching words/phrases from the filter are wrapped in HTML + "" tags. + + If the subject does not match text from the filter, this property + is null. + + o preview: "String|null" + + If text from the filter matches the plaintext or HTML body, this + is the relevant section of the body (converted to plaintext if + originally HTML), with the same transformations as the "subject" + property. It MUST NOT be bigger than 255 octets in size. If the + body does not contain a match for the text from the filter, this + property is null. + + What is a relevant section of the body for preview is server defined. + If the server is unable to determine search snippets, it MUST return + null for both the "subject" and "preview" properties. + + Note that unlike most data types, a SearchSnippet DOES NOT have a + property called "id". + + The following JMAP method is supported. + +5.1. SearchSnippet/get + + To fetch search snippets, make a call to "SearchSnippet/get". It + takes the following arguments: + + o accountId: "Id" + + The id of the account to use. + + o filter: "FilterOperator|FilterCondition|null" + + The same filter as passed to "Email/query"; see the description of + this method in Section 4.4 for details. + + + + +Jenkins & Newman Standards Track [Page 69] + +RFC 8621 JMAP Mail August 2019 + + + o emailIds: "Id[]" + + The ids of the Emails to fetch snippets for. + + The response has the following arguments: + + o accountId: "Id" + + The id of the account used for the call. + + o list: "SearchSnippet[]" + + An array of SearchSnippet objects for the requested Email ids. + This may not be in the same order as the ids that were in the + request. + + o notFound: "Id[]|null" + + An array of Email ids requested that could not be found, or null + if all ids were found. + + As the search snippets are derived from the message content and the + algorithm for doing so could change over time, fetching the same + snippets a second time MAY return a different result. However, the + previous value is not considered incorrect, so there is no state + string or update mechanism needed. + + The following additional errors may be returned instead of the + "SearchSnippet/get" response: + + "requestTooLarge": The number of "emailIds" requested by the client + exceeds the maximum number the server is willing to process in a + single method call. + + "unsupportedFilter": The server is unable to process the given + "filter" for any reason. + + + + + + + + + + + + + + + +Jenkins & Newman Standards Track [Page 70] + +RFC 8621 JMAP Mail August 2019 + + +5.2. Example + + Here, we did an "Email/query" to search for any Email in the account + containing the word "foo"; now, we are fetching the search snippets + for some of the ids that were returned in the results: + + [[ "SearchSnippet/get", { + "accountId": "ue150411c", + "filter": { + "text": "foo" + }, + "emailIds": [ + "M44200ec123de277c0c1ce69c", + "M7bcbcb0b58d7729686e83d99", + "M28d12783a0969584b6deaac0", + ... + ] + }, "0" ]] + + Example response: + + [[ "SearchSnippet/get", { + "accountId": "ue150411c", + "list": [{ + "emailId": "M44200ec123de277c0c1ce69c", + "subject": null, + "preview": null + }, { + "emailId": "M7bcbcb0b58d7729686e83d99", + "subject": "The Foosball competition", + "preview": "...year the foosball competition will + be held in the Stadium de ..." + }, { + "emailId": "M28d12783a0969584b6deaac0", + "subject": null, + "preview": "...the Foo/bar method results often + returns <1 widget rather than the complete..." + }, + ... + ], + "notFound": null + }, "0" ]] + + + + + + + + + +Jenkins & Newman Standards Track [Page 71] + +RFC 8621 JMAP Mail August 2019 + + +6. Identities + + An *Identity* object stores information about an email address or + domain the user may send from. It has the following properties: + + o id: "Id" (immutable; server-set) + + The id of the Identity. + + o name: "String" (default: "") + + The "From" name the client SHOULD use when creating a new Email + from this Identity. + + o email: "String" (immutable) + + The "From" email address the client MUST use when creating a new + Email from this Identity. If the "mailbox" part of the address + (the section before the "@") is the single character "*" (e.g., + "*@example.com"), the client may use any valid address ending in + that domain (e.g., "foo@example.com"). + + o replyTo: "EmailAddress[]|null" (default: null) + + The Reply-To value the client SHOULD set when creating a new Email + from this Identity. + + o bcc: "EmailAddress[]|null" (default: null) + + The Bcc value the client SHOULD set when creating a new Email from + this Identity. + + o textSignature: "String" (default: "") + + A signature the client SHOULD insert into new plaintext messages + that will be sent from this Identity. Clients MAY ignore this + and/or combine this with a client-specific signature preference. + + o htmlSignature: "String" (default: "") + + A signature the client SHOULD insert into new HTML messages that + will be sent from this Identity. This text MUST be an HTML + snippet to be inserted into the "" section of the + HTML. Clients MAY ignore this and/or combine this with a client- + specific signature preference. + + + + + + +Jenkins & Newman Standards Track [Page 72] + +RFC 8621 JMAP Mail August 2019 + + + o mayDelete: "Boolean" (server-set) + + Is the user allowed to delete this Identity? Servers may wish to + set this to false for the user's username or other default + address. Attempts to destroy an Identity with "mayDelete: false" + will be rejected with a standard "forbidden" SetError. + + See the "Addresses" header form description in the Email object + (Section 4.1.2.3) for the definition of EmailAddress. + + Multiple identities with the same email address MAY exist, to allow + for different settings the user wants to pick between (for example, + with different names/signatures). + + The following JMAP methods are supported. + +6.1. Identity/get + + This is a standard "/get" method as described in [RFC8620], + Section 5.1. The "ids" argument may be null to fetch all at once. + +6.2. Identity/changes + + This is a standard "/changes" method as described in [RFC8620], + Section 5.2. + +6.3. Identity/set + + This is a standard "/set" method as described in [RFC8620], + Section 5.3. The following extra SetError types are defined: + + For "create": + + o "forbiddenFrom": The user is not allowed to send from the address + given as the "email" property of the Identity. + +6.4. Example + + Request: + + [ "Identity/get", { + "accountId": "acme" + }, "0" ] + + + + + + + + +Jenkins & Newman Standards Track [Page 73] + +RFC 8621 JMAP Mail August 2019 + + + with response: + + [ "Identity/get", { + "accountId": "acme", + "state": "99401312ae-11-333", + "list": [ + { + "id": "XD-3301-222-11_22AAz", + "name": "Joe Bloggs", + "email": "joe@example.com", + "replyTo": null, + "bcc": [{ + "name": null, + "email": "joe+archive@example.com" + }], + "textSignature": "-- \nJoe Bloggs\nMaster of Email", + "htmlSignature": "
Joe Bloggs
+
Master of Email
", + "mayDelete": false + }, + { + "id": "XD-9911312-11_22AAz", + "name": "Joe B", + "email": "*@example.com", + "replyTo": null, + "bcc": null, + "textSignature": "", + "htmlSignature": "", + "mayDelete": true + } + ], + "notFound": [] + }, "0" ] + +7. Email Submission + + An *EmailSubmission* object represents the submission of an Email for + delivery to one or more recipients. It has the following properties: + + o id: "Id" (immutable; server-set) + + The id of the EmailSubmission. + + o identityId: "Id" (immutable) + + The id of the Identity to associate with this submission. + + + + + +Jenkins & Newman Standards Track [Page 74] + +RFC 8621 JMAP Mail August 2019 + + + o emailId: "Id" (immutable) + + The id of the Email to send. The Email being sent does not have + to be a draft, for example, when "redirecting" an existing Email + to a different address. + + o threadId: "Id" (immutable; server-set) + + The Thread id of the Email to send. This is set by the server to + the "threadId" property of the Email referenced by the "emailId". + + o envelope: "Envelope|null" (immutable) + + Information for use when sending via SMTP. An *Envelope* object + has the following properties: + + * mailFrom: "Address" + + The email address to use as the return address in the SMTP + submission, plus any parameters to pass with the MAIL FROM + address. The JMAP server MAY allow the address to be the empty + string. + + When a JMAP server performs an SMTP message submission, it MAY + use the same id string for the ENVID parameter [RFC3461] and + the EmailSubmission object id. Servers that do this MAY + replace a client-provided value for ENVID with a server- + provided value. + + * rcptTo: "Address[]" + + The email addresses to send the message to, and any RCPT TO + parameters to pass with the recipient. + + An *Address* object has the following properties: + + * email: "String" + + The email address being represented by the object. This is a + "Mailbox" as used in the Reverse-path or Forward-path of the + MAIL FROM or RCPT TO command in [RFC5321]. + + * parameters: "Object|null" + + Any parameters to send with the email address (either mail- + parameter or rcpt-parameter as appropriate, as specified in + [RFC5321]). If supplied, each key in the object is a parameter + name, and the value is either the parameter value (type + + + +Jenkins & Newman Standards Track [Page 75] + +RFC 8621 JMAP Mail August 2019 + + + "String") or null if the parameter does not take a value. For + both name and value, any xtext or unitext encodings are removed + (see [RFC3461] and [RFC6533]) and JSON string encoding is + applied. + + If the "envelope" property is null or omitted on creation, the + server MUST generate this from the referenced Email as follows: + + * "mailFrom": The email address in the Sender header field, if + present; otherwise, it's the email address in the From header + field, if present. In either case, no parameters are added. + + If multiple addresses are present in one of these header + fields, or there is more than one Sender/From header field, the + server SHOULD reject the EmailSubmission as invalid; otherwise, + it MUST take the first address in the last Sender/From header + field. + + If the address found from this is not allowed by the Identity + associated with this submission, the "email" property from the + Identity MUST be used instead. + + * "rcptTo": The deduplicated set of email addresses from the To, + Cc, and Bcc header fields, if present, with no parameters for + any of them. + + o sendAt: "UTCDate" (immutable; server-set) + + The date the submission was/will be released for delivery. If the + client successfully used FUTURERELEASE [RFC4865] with the + submission, this MUST be the time when the server will release the + message; otherwise, it MUST be the time the EmailSubmission was + created. + + o undoStatus: "String" + + This represents whether the submission may be canceled. This is + server set on create and MUST be one of the following values: + + * "pending": It may be possible to cancel this submission. + + * "final": The message has been relayed to at least one recipient + in a manner that cannot be recalled. It is no longer possible + to cancel this submission. + + * "canceled": The submission was canceled and will not be + delivered to any recipient. + + + + +Jenkins & Newman Standards Track [Page 76] + +RFC 8621 JMAP Mail August 2019 + + + On systems that do not support unsending, the value of this + property will always be "final". On systems that do support + canceling submission, it will start as "pending" and MAY + transition to "final" when the server knows it definitely cannot + recall the message, but it MAY just remain "pending". If in + pending state, a client can attempt to cancel the submission by + setting this property to "canceled"; if the update succeeds, the + submission was successfully canceled, and the message has not been + delivered to any of the original recipients. + + o deliveryStatus: "String[DeliveryStatus]|null" (server-set) + + This represents the delivery status for each of the submission's + recipients, if known. This property MAY not be supported by all + servers, in which case it will remain null. Servers that support + it SHOULD update the EmailSubmission object each time the status + of any of the recipients changes, even if some recipients are + still being retried. + + This value is a map from the email address of each recipient to a + DeliveryStatus object. + + A *DeliveryStatus* object has the following properties: + + * smtpReply: "String" + + The SMTP reply string returned for this recipient when the + server last tried to relay the message, or in a later Delivery + Status Notification (DSN, as defined in [RFC3464]) response for + the message. This SHOULD be the response to the RCPT TO stage, + unless this was accepted and the message as a whole was + rejected at the end of the DATA stage, in which case the DATA + stage reply SHOULD be used instead. + + Multi-line SMTP responses should be concatenated to a single + string as follows: + + + The hyphen following the SMTP code on all but the last line + is replaced with a space. + + + Any prefix in common with the first line is stripped from + lines after the first. + + + CRLF is replaced by a space. + + + + + + + +Jenkins & Newman Standards Track [Page 77] + +RFC 8621 JMAP Mail August 2019 + + + For example: + + 550-5.7.1 Our system has detected that this message is + 550 5.7.1 likely spam. + + would become: + + 550 5.7.1 Our system has detected that this message is likely spam. + + For messages relayed via an alternative to SMTP, the server MAY + generate a synthetic string representing the status instead. + If it does this, the string MUST be of the following form: + + + A 3-digit SMTP reply code, as defined in [RFC5321], + Section 4.2.3. + + + Then a single space character. + + + Then an SMTP Enhanced Mail System Status Code as defined in + [RFC3463], with a registry defined in [RFC5248]. + + + Then a single space character. + + + Then an implementation-specific information string with a + human-readable explanation of the response. + + * delivered: "String" + + Represents whether the message has been successfully delivered + to the recipient. This MUST be one of the following values: + + + "queued": The message is in a local mail queue and the + status will change once it exits the local mail queues. The + "smtpReply" property may still change. + + + "yes": The message was successfully delivered to the mail + store of the recipient. The "smtpReply" property is final. + + + "no": Delivery to the recipient permanently failed. The + "smtpReply" property is final. + + + "unknown": The final delivery status is unknown, (e.g., it + was relayed to an external machine and no further + information is available). The "smtpReply" property may + still change if a DSN arrives. + + + + + + +Jenkins & Newman Standards Track [Page 78] + +RFC 8621 JMAP Mail August 2019 + + + Note that successful relaying to an external SMTP server SHOULD + NOT be taken as an indication that the message has successfully + reached the final mail store. In this case though, the server + may receive a DSN response, if requested. + + If a DSN is received for the recipient with Action equal to + "delivered", as per [RFC3464], Section 2.3.3, then the + "delivered" property SHOULD be set to "yes"; if the Action + equals "failed", the property SHOULD be set to "no". Receipt + of any other DSN SHOULD NOT affect this property. + + The server MAY also set this property based on other feedback + channels. + + * displayed: "String" + + Represents whether the message has been displayed to the + recipient. This MUST be one of the following values: + + + "unknown": The display status is unknown. This is the + initial value. + + + "yes": The recipient's system claims the message content has + been displayed to the recipient. Note that there is no + guarantee that the recipient has noticed, read, or + understood the content. + + If a Message Disposition Notification (MDN) is received for + this recipient with Disposition-Type (as per [RFC8098], + Section 3.2.6.2) equal to "displayed", this property SHOULD be + set to "yes". + + The server MAY also set this property based on other feedback + channels. + + o dsnBlobIds: "Id[]" (server-set) + + A list of blob ids for DSNs [RFC3464] received for this + submission, in order of receipt, oldest first. The blob is the + whole MIME message (with a top-level content-type of "multipart/ + report"), as received. + + o mdnBlobIds: "Id[]" (server-set) + + A list of blob ids for MDNs [RFC8098] received for this + submission, in order of receipt, oldest first. The blob is the + whole MIME message (with a top-level content-type of "multipart/ + report"), as received. + + + +Jenkins & Newman Standards Track [Page 79] + +RFC 8621 JMAP Mail August 2019 + + + JMAP servers MAY choose not to expose DSN and MDN responses as Email + objects if they correlate to an EmailSubmission object. It SHOULD + only do this if it exposes them in the "dsnBlobIds" and "mdnblobIds" + fields instead, and it expects the user to be using clients capable + of fetching and displaying delivery status via the EmailSubmission + object. + + For efficiency, a server MAY destroy EmailSubmission objects at any + time after the message is successfully sent or after it has finished + retrying to send the message. For very basic SMTP proxies, this MAY + be immediately after creation, as it has no way to assign a real id + and return the information again if fetched later. + + The following JMAP methods are supported. + +7.1. EmailSubmission/get + + This is a standard "/get" method as described in [RFC8620], + Section 5.1. + +7.2. EmailSubmission/changes + + This is a standard "/changes" method as described in [RFC8620], + Section 5.2. + +7.3. EmailSubmission/query + + This is a standard "/query" method as described in [RFC8620], + Section 5.5. + + A *FilterCondition* object has the following properties, any of which + may be omitted: + + o identityIds: "Id[]" + + The EmailSubmission "identityId" property must be in this list to + match the condition. + + o emailIds: "Id[]" + + The EmailSubmission "emailId" property must be in this list to + match the condition. + + o threadIds: "Id[]" + + The EmailSubmission "threadId" property must be in this list to + match the condition. + + + + +Jenkins & Newman Standards Track [Page 80] + +RFC 8621 JMAP Mail August 2019 + + + o undoStatus: "String" + + The EmailSubmission "undoStatus" property must be identical to the + value given to match the condition. + + o before: "UTCDate" + + The "sendAt" property of the EmailSubmission object must be before + this date-time to match the condition. + + o after: "UTCDate" + + The "sendAt" property of the EmailSubmission object must be the + same as or after this date-time to match the condition. + + An EmailSubmission object matches the FilterCondition if and only if + all of the given conditions match. If zero properties are specified, + it is automatically true for all objects. + + The following EmailSubmission properties MUST be supported for + sorting: + + o "emailId" + + o "threadId" + + o "sentAt" + +7.4. EmailSubmission/queryChanges + + This is a standard "/queryChanges" method as described in [RFC8620], + Section 5.6. + +7.5. EmailSubmission/set + + This is a standard "/set" method as described in [RFC8620], + Section 5.3 with the following two additional request arguments: + + o onSuccessUpdateEmail: "Id[PatchObject]|null" + + A map of EmailSubmission id to an object containing properties to + update on the Email object referenced by the EmailSubmission if + the create/update/destroy succeeds. (For references to + EmailSubmissions created in the same "/set" invocation, this is + equivalent to a creation-reference, so the id will be the creation + id prefixed with a "#".) + + + + + +Jenkins & Newman Standards Track [Page 81] + +RFC 8621 JMAP Mail August 2019 + + + o onSuccessDestroyEmail: "Id[]|null" + + A list of EmailSubmission ids for which the Email with the + corresponding "emailId" should be destroyed if the create/update/ + destroy succeeds. (For references to EmailSubmission creations, + this is equivalent to a creation-reference, so the id will be the + creation id prefixed with a "#".) + + After all create/update/destroy items in the "EmailSubmission/set" + invocation have been processed, a single implicit "Email/set" call + MUST be made to perform any changes requested in these two arguments. + The response to this MUST be returned after the "EmailSubmission/set" + response. + + An Email is sent by creating an EmailSubmission object. When + processing each create, the server must check that the message is + valid, and the user has sufficient authorisation to send it. If the + creation succeeds, the message will be sent to the recipients given + in the envelope "rcptTo" parameter. The server MUST remove any Bcc + header field present on the message during delivery. The server MAY + add or remove other header fields from the submitted message or make + further alterations in accordance with the server's policy during + delivery. + + If the referenced Email is destroyed at any point after the + EmailSubmission object is created, this MUST NOT change the behaviour + of the submission (i.e., it does not cancel a future send). The + "emailId" and "threadId" properties of the EmailSubmission object + remain, but trying to fetch them (with a standard "Email/get" call) + will return a "notFound" error if the corresponding objects have been + destroyed. + + Similarly, destroying an EmailSubmission object MUST NOT affect the + deliveries it represents. It purely removes the record of the + submission. The server MAY automatically destroy EmailSubmission + objects after some time or in response to other triggers, and MAY + forbid the client from manually destroying EmailSubmission objects. + + If the message to be sent is larger than the server supports sending, + a standard "tooLarge" SetError MUST be returned. A "maxSize" + "UnsignedInt" property MUST be present on the SetError specifying the + maximum size of a message that may be sent, in octets. + + If the Email or Identity id given cannot be found, the submission + creation is rejected with a standard "invalidProperties" SetError. + + + + + + +Jenkins & Newman Standards Track [Page 82] + +RFC 8621 JMAP Mail August 2019 + + + The following extra SetError types are defined: + + For "create": + + o "invalidEmail" - The Email to be sent is invalid in some way. The + SetError SHOULD contain a property called "properties" of type + "String[]" that lists *all* the properties of the Email that were + invalid. + + o "tooManyRecipients" - The envelope (supplied or generated) has + more recipients than the server allows. A "maxRecipients" + "UnsignedInt" property MUST also be present on the SetError + specifying the maximum number of allowed recipients. + + o "noRecipients" - The envelope (supplied or generated) does not + have any rcptTo email addresses. + + o "invalidRecipients" - The "rcptTo" property of the envelope + (supplied or generated) contains at least one rcptTo value, which + is not a valid email address for sending to. An + "invalidRecipients" "String[]" property MUST also be present on + the SetError, which is a list of the invalid addresses. + + o "forbiddenMailFrom" - The server does not permit the user to send + a message with the envelope From address [RFC5321]. + + o "forbiddenFrom" - The server does not permit the user to send a + message with the From header field [RFC5322] of the message to be + sent. + + o "forbiddenToSend" - The user does not have permission to send at + all right now for some reason. A "description" "String" property + MAY be present on the SetError object to display to the user why + they are not permitted. + + For "update": + + o "cannotUnsend" - The client attempted to update the "undoStatus" + of a valid EmailSubmission object from "pending" to "canceled", + but the message cannot be unsent. + + + + + + + + + + + +Jenkins & Newman Standards Track [Page 83] + +RFC 8621 JMAP Mail August 2019 + + +7.5.1. Example + + The following example presumes a draft of the Email to be sent has + already been saved, and its Email id is "M7f6ed5bcfd7e2604d1753f6c". + This call then sends the Email immediately, and if successful, + removes the "$draft" flag and moves it from the drafts folder (which + has Mailbox id "7cb4e8ee-df87-4757-b9c4-2ea1ca41b38e") to the sent + folder (which we presume has Mailbox id "73dbcb4b-bffc-48bd-8c2a- + a2e91ca672f6"). + + [[ "EmailSubmission/set", { + "accountId": "ue411d190", + "create": { + "k1490": { + "identityId": "I64588216", + "emailId": "M7f6ed5bcfd7e2604d1753f6c", + "envelope": { + "mailFrom": { + "email": "john@example.com", + "parameters": null + }, + "rcptTo": [{ + "email": "jane@example.com", + "parameters": null + }, + ... + ] + } + } + }, + "onSuccessUpdateEmail": { + "#k1490": { + "mailboxIds/7cb4e8ee-df87-4757-b9c4-2ea1ca41b38e": null, + "mailboxIds/73dbcb4b-bffc-48bd-8c2a-a2e91ca672f6": true, + "keywords/$draft": null + } + } + }, "0" ]] + + + + + + + + + + + + + +Jenkins & Newman Standards Track [Page 84] + +RFC 8621 JMAP Mail August 2019 + + + A successful response might look like this. Note that there are two + responses due to the implicit "Email/set" call, but both have the + same method call id as they are due to the same call in the request: + + [[ "EmailSubmission/set", { + "accountId": "ue411d190", + "oldState": "012421s6-8nrq-4ps4-n0p4-9330r951ns21", + "newState": "355421f6-8aed-4cf4-a0c4-7377e951af36", + "created": { + "k1490": { + "id": "ES-3bab7f9a-623e-4acf-99a5-2e67facb02a0" + } + } + }, "0" ], + [ "Email/set", { + "accountId": "ue411d190", + "oldState": "778193", + "newState": "778197", + "updated": { + "M7f6ed5bcfd7e2604d1753f6c": null + } + }, "0" ]] + + Suppose instead an admin has removed sending rights for the user, so + the submission is rejected with a "forbiddenToSend" error. The + description argument of the error is intended for display to the + user, so it should be localised appropriately. Let's suppose the + request was sent with an Accept-Language header like this: + + Accept-Language: de;q=0.9,en;q=0.8 + + + + + + + + + + + + + + + + + + + + + +Jenkins & Newman Standards Track [Page 85] + +RFC 8621 JMAP Mail August 2019 + + + The server should attempt to choose the best localisation from those + it has available based on the Accept-Language header, as described in + [RFC8620], Section 3.8. If the server has English, French, and + German translations, it would choose German as the preferred language + and return a response like this: + +[[ "EmailSubmission/set", { + "accountId": "ue411d190", + "oldState": "012421s6-8nrq-4ps4-n0p4-9330r951ns21", + "newState": "012421s6-8nrq-4ps4-n0p4-9330r951ns21", + "notCreated": { + "k1490": { + "type": "forbiddenToSend", + "description": "Verzeihung, wegen verdaechtiger Aktivitaeten Ihres + Benutzerkontos haben wir den Versand von Nachrichten gesperrt. + Bitte wenden Sie sich fuer Hilfe an unser Support Team." + } + } +}, "0" ]] + +8. Vacation Response + + A vacation response sends an automatic reply when a message is + delivered to the mail store, informing the original sender that their + message may not be read for some time. + + Automated message sending can produce undesirable behaviour. To + avoid this, implementors MUST follow the recommendations set forth in + [RFC3834]. + + The *VacationResponse* object represents the state of vacation- + response-related settings for an account. It has the following + properties: + + o id: "Id" (immutable; server-set) + + The id of the object. There is only ever one VacationResponse + object, and its id is "singleton". + + o isEnabled: "Boolean" + + Should a vacation response be sent if a message arrives between + the "fromDate" and "toDate"? + + + + + + + + +Jenkins & Newman Standards Track [Page 86] + +RFC 8621 JMAP Mail August 2019 + + + o fromDate: "UTCDate|null" + + If "isEnabled" is true, messages that arrive on or after this + date-time (but before the "toDate" if defined) should receive the + user's vacation response. If null, the vacation response is + effective immediately. + + o toDate: "UTCDate|null" + + If "isEnabled" is true, messages that arrive before this date-time + (but on or after the "fromDate" if defined) should receive the + user's vacation response. If null, the vacation response is + effective indefinitely. + + o subject: "String|null" + + The subject that will be used by the message sent in response to + messages when the vacation response is enabled. If null, an + appropriate subject SHOULD be set by the server. + + o textBody: "String|null" + + The plaintext body to send in response to messages when the + vacation response is enabled. If this is null, the server SHOULD + generate a plaintext body part from the "htmlBody" when sending + vacation responses but MAY choose to send the response as HTML + only. If both "textBody" and "htmlBody" are null, an appropriate + default body SHOULD be generated for responses by the server. + + o htmlBody: "String|null" + + The HTML body to send in response to messages when the vacation + response is enabled. If this is null, the server MAY choose to + generate an HTML body part from the "textBody" when sending + vacation responses or MAY choose to send the response as plaintext + only. + + The following JMAP methods are supported. + +8.1. VacationResponse/get + + This is a standard "/get" method as described in [RFC8620], + Section 5.1. + + There MUST only be exactly one VacationResponse object in an account. + It MUST have the id "singleton". + + + + + +Jenkins & Newman Standards Track [Page 87] + +RFC 8621 JMAP Mail August 2019 + + +8.2. VacationResponse/set + + This is a standard "/set" method as described in [RFC8620], + Section 5.3. + +9. Security Considerations + + All security considerations of JMAP [RFC8620] apply to this + specification. Additional considerations specific to the data types + and functionality introduced by this document are described in the + following subsections. + +9.1. EmailBodyPart Value + + Service providers typically perform security filtering on incoming + messages, and it's important that the detection of content-type and + charset for the security filter aligns with the heuristics performed + by JMAP servers. Servers that apply heuristics to determine the + content-type or charset for an EmailBodyValue SHOULD document the + heuristics and provide a mechanism to turn them off in the event they + are misaligned with the security filter used at a particular mail + host. + + Automatic conversion of charsets that allow hidden channels for ASCII + text, such as UTF-7, have been problematic for security filters in + the past, so server implementations can mitigate this risk by having + such conversions off-by-default and/or separately configurable. + + To allow the client to restrict the volume of data it can receive in + response to a request, a maximum length may be requested for the data + returned for a textual body part. However, truncating the data may + change the semantic meaning, for example, truncating a URL changes + its location. Servers that scan for links to malicious sites should + take care to either ensure truncation is not at a semantically + significant point or rescan the truncated value for malicious content + before returning it. + +9.2. HTML Email Display + + HTML message bodies provide richer formatting for messages but + present a number of security challenges, especially when embedded in + a webmail context in combination with interface HTML. Clients that + render HTML messages should carefully consider the potential risks, + including: + + + + + + + +Jenkins & Newman Standards Track [Page 88] + +RFC 8621 JMAP Mail August 2019 + + + o Embedded JavaScript can rewrite the message to change its content + on subsequent opening, allowing users to be mislead. In webmail + systems, if run in the same origin as the interface, it can access + and exfiltrate all private data accessible to the user, including + all other messages and potentially contacts, calendar events, + settings, and credentials. It can also rewrite the interface to + undetectably phish passwords. A compromise is likely to be + persistent, not just for the duration of page load, due to + exfiltration of session credentials or installation of a service + worker that can intercept all subsequent network requests + (however, this would only be possible if blob downloads are also + available on the same origin, and the service worker script is + attached to the message). + + o HTML documents may load content directly from the Internet rather + than just referencing attached resources. For example, you may + have an "" tag with an external "src" attribute. This may + leak to the sender when a message is opened, as well as the IP + address of the recipient. Cookies may also be sent and set by the + server, allowing tracking between different messages and even + website visits and advertising profiles. + + o In webmail systems, CSS can break the layout or create phishing + vulnerabilities. For example, the use of "position:fixed" can + allow a message to draw content outside of its normal bounds, + potentially clickjacking a real interface element. + + o If in a webmail context and not inside a separate frame, any + styles defined in CSS rules will apply to interface elements as + well if the selector matches, allowing the interface to be + modified. Similarly, any interface styles that match elements in + the message will alter their appearance, potentially breaking the + layout of the message. + + o The link text in HTML has no necessary correlation with the actual + target of the link, which can be used to make phishing attacks + more convincing. + + o Links opened from a message or embedded external content may leak + private info in the Referer header sent by default in most + systems. + + o Forms can be used to mimic login boxes, providing a potent + phishing vector if allowed to submit directly from the message + display. + + + + + + +Jenkins & Newman Standards Track [Page 89] + +RFC 8621 JMAP Mail August 2019 + + + There are a number of ways clients can mitigate these issues, and a + defence-in-depth approach that uses a combination of techniques will + provide the strongest security. + + o HTML can be filtered before rendering, stripping potentially + malicious content. Sanitising HTML correctly is tricky, and + implementors are strongly recommended to use a well-tested library + with a carefully vetted whitelist-only approach. New features + with unexpected security characteristics may be added to HTML + rendering engines in the future; a blacklist approach is likely to + result in security issues. + + Subtle differences in parsing of HTML can introduce security + flaws: to filter with 100% accuracy, you need to use the same + parser that the HTML rendering engine will use. + + o Encapsulating the message in an "

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 B -> C -> D -> E + + And a client asks for changes from state "B". The server might first + get the ids of records created, updated, or destroyed between states + D and E, returning them with: + + state: "B-D-E" + hasMoreChanges: true + + + + + + + +Jenkins & Newman Standards Track [Page 32] + +RFC 8620 JMAP July 2019 + + + The client will then ask for the change from state "B-D-E", and the + server can return the changes between states C and D, returning: + + state: "B-C-E" + hasMoreChanges: true + + Finally, the client will request the changes from "B-C-E", and the + server can return the changes between states B and C, returning: + + state: "E" + hasMoreChanges: false + + Should the state on the server be modified in the middle of all this + (to "F"), the server still does the same, but now when the update to + state "E" is returned, it would indicate that it still has more + changes for the client to fetch. + + Where multiple changes to a record are split across different + intermediate states, the server MUST NOT return a record as created + after a response that deems it as updated or destroyed, and it MUST + NOT return a record as destroyed before a response that deems it as + created or updated. The server may have to coalesce multiple changes + to a record to satisfy this requirement. + + The following additional errors may be returned instead of the "Foo/ + changes" response: + + "cannotCalculateChanges": The server cannot calculate the changes + from the state string given by the client. Usually, this is due to + the client's state being too old or the server being unable to + produce an update to an intermediate state when there are too many + updates. The client MUST invalidate its Foo cache. + + Maintaining state to allow calculation of "Foo/changes" can be + expensive for the server, but always returning + "cannotCalculateChanges" severely increases network traffic and + resource usage for the client. To allow efficient sync, servers + SHOULD be able to calculate changes from any state string that was + given to a client within the last 30 days (but of course may support + calculating updates from states older than this). + + + + + + + + + + + +Jenkins & Newman Standards Track [Page 33] + +RFC 8620 JMAP July 2019 + + +5.3. /set + + Modifying the state of Foo objects on the server is done via the + "Foo/set" method. This encompasses creating, updating, and + destroying Foo records. This allows the server to sort out ordering + and dependencies that may exist if doing multiple operations at once + (for example, to ensure there is always a minimum number of a certain + record type). + + The "Foo/set" method takes the following arguments: + + o accountId: "Id" + + The id of the account to use. + + o ifInState: "String|null" + + This is a state string as returned by the "Foo/get" method + (representing the state of all objects of this type in the + account). If supplied, the string must match the current state; + otherwise, the method will be aborted and a "stateMismatch" error + returned. If null, any changes will be applied to the current + state. + + o create: "Id[Foo]|null" + + A map of a *creation id* (a temporary id set by the client) to Foo + objects, or null if no objects are to be created. + + The Foo object type definition may define default values for + properties. Any such property may be omitted by the client. + + The client MUST omit any properties that may only be set by the + server (for example, the "id" property on most object types). + + o update: "Id[PatchObject]|null" + + A map of an id to a Patch object to apply to the current Foo + object with that id, or null if no objects are to be updated. + + A *PatchObject* is of type "String[*]" and represents an unordered + set of patches. The keys are a path in JSON Pointer format + [RFC6901], with an implicit leading "/" (i.e., prefix each key + with "/" before applying the JSON Pointer evaluation algorithm). + + All paths MUST also conform to the following restrictions; if + there is any violation, the update MUST be rejected with an + "invalidPatch" error: + + + +Jenkins & Newman Standards Track [Page 34] + +RFC 8620 JMAP July 2019 + + + * The pointer MUST NOT reference inside an array (i.e., you MUST + NOT insert/delete from an array; the array MUST be replaced in + its entirety instead). + + * All parts prior to the last (i.e., the value after the final + slash) MUST already exist on the object being patched. + + * There MUST NOT be two patches in the PatchObject where the + pointer of one is the prefix of the pointer of the other, e.g., + "alerts/1/offset" and "alerts". + + The value associated with each pointer determines how to apply + that patch: + + * If null, set to the default value if specified for this + property; otherwise, remove the property from the patched + object. If the key is not present in the parent, this a no-op. + + * Anything else: The value to set for this property (this may be + a replacement or addition to the object being patched). + + Any server-set properties MAY be included in the patch if their + value is identical to the current server value (before applying + the patches to the object). Otherwise, the update MUST be + rejected with an "invalidProperties" SetError. + + This patch definition is designed such that an entire Foo object + is also a valid PatchObject. The client may choose to optimise + network usage by just sending the diff or may send the whole + object; the server processes it the same either way. + + o destroy: "Id[]|null" + + A list of ids for Foo objects to permanently delete, or null if no + objects are to be destroyed. + + Each creation, modification, or destruction of an object is + considered an atomic unit. It is permissible for the server to + commit changes to some objects but not others; however, it MUST NOT + only commit part of an update to a single record (e.g., update a + "name" property but not a "count" property, if both are supplied in + the update object). + + The final state MUST be valid after the "Foo/set" is finished; + however, the server may have to transition through invalid + intermediate states (not exposed to the client) while processing the + individual create/update/destroy requests. For example, suppose + there is a "name" property that must be unique. A single method call + + + +Jenkins & Newman Standards Track [Page 35] + +RFC 8620 JMAP July 2019 + + + could rename an object A => B and simultaneously rename another + object B => A. If the final state is valid, this is allowed. + Otherwise, each creation, modification, or destruction of an object + should be processed sequentially and accepted/rejected based on the + current server state. + + If a create, update, or destroy is rejected, the appropriate error + MUST be added to the notCreated/notUpdated/notDestroyed property of + the response, and the server MUST continue to the next create/update/ + destroy. It does not terminate the method. + + If an id given cannot be found, the update or destroy MUST be + rejected with a "notFound" set error. + + The server MAY skip an update (rejecting it with a "willDestroy" + SetError) if that object is destroyed in the same /set request. + + Some records may hold references to other records (foreign keys). + That reference may be set (via create or update) in the same request + as the referenced record is created. To do this, the client refers + to the new record using its creation id prefixed with a "#". The + order of the method calls in the request by the client MUST be such + that the record being referenced is created in the same or an earlier + call. Thus, the server never has to look ahead. Instead, while + processing a request, the server MUST keep a simple map for the + duration of the request of creation id to record id for each newly + created record, so it can substitute in the correct value if + necessary in later method calls. In the case of records with + references to the same type, the server MUST order the creates and + updates within a single method call so that creates happen before + their creation ids are referenced by another create/update/destroy in + the same call. + + Creation ids are not scoped by type but are a single map for all + types. A client SHOULD NOT reuse a creation id anywhere in the same + API request. If a creation id is reused, the server MUST map the + creation id to the most recently created item with that id. To allow + easy proxying of API requests, an initial set of creation id to real + id values may be passed with a request (see "The Request Object", + Section 3.3) and the final state of the map passed out with the + response (see "The Response Object", Section 3.4). + + The response has the following arguments: + + o accountId: "Id" + + The id of the account used for the call. + + + + +Jenkins & Newman Standards Track [Page 36] + +RFC 8620 JMAP July 2019 + + + o oldState: "String|null" + + The state string that would have been returned by "Foo/get" before + making the requested changes, or null if the server doesn't know + what the previous state string was. + + o newState: "String" + + The state string that will now be returned by "Foo/get". + + o created: "Id[Foo]|null" + + A map of the creation id to an object containing any properties of + the created Foo object that were not sent by the client. This + includes all server-set properties (such as the "id" in most + object types) and any properties that were omitted by the client + and thus set to a default by the server. + + This argument is null if no Foo objects were successfully created. + + o updated: "Id[Foo|null]|null" + + The keys in this map are the ids of all Foos that were + successfully updated. + + The value for each id is a Foo object containing any property that + changed in a way *not* explicitly requested by the PatchObject + sent to the server, or null if none. This lets the client know of + any changes to server-set or computed properties. + + This argument is null if no Foo objects were successfully updated. + + o destroyed: "Id[]|null" + + A list of Foo ids for records that were successfully destroyed, or + null if none. + + o notCreated: "Id[SetError]|null" + + A map of the creation id to a SetError object for each record that + failed to be created, or null if all successful. + + o notUpdated: "Id[SetError]|null" + + A map of the Foo id to a SetError object for each record that + failed to be updated, or null if all successful. + + + + + +Jenkins & Newman Standards Track [Page 37] + +RFC 8620 JMAP July 2019 + + + o notDestroyed: "Id[SetError]|null" + + A map of the Foo id to a SetError object for each record that + failed to be destroyed, or null if all successful. + + A *SetError* object has the following properties: + + o type: "String" + + The type of error. + + o description: "String|null" + + A description of the error to help with debugging that includes an + explanation of what the problem was. This is a non-localised + string and is not intended to be shown directly to end users. + + The following SetError types are defined and may be returned for set + operations on any record type where appropriate: + + o "forbidden": (create; update; destroy). The create/update/destroy + would violate an ACL or other permissions policy. + + o "overQuota": (create; update). The create would exceed a server- + defined limit on the number or total size of objects of this type. + + o "tooLarge": (create; update). The create/update would result in + an object that exceeds a server-defined limit for the maximum size + of a single object of this type. + + o "rateLimit": (create). Too many objects of this type have been + created recently, and a server-defined rate limit has been + reached. It may work if tried again later. + + o "notFound": (update; destroy). The id given to update/destroy + cannot be found. + + o "invalidPatch": (update). The PatchObject given to update the + record was not a valid patch (see the patch description). + + o "willDestroy": (update). The client requested that an object be + both updated and destroyed in the same /set request, and the + server has decided to therefore ignore the update. + + + + + + + + +Jenkins & Newman Standards Track [Page 38] + +RFC 8620 JMAP July 2019 + + + o "invalidProperties": (create; update). The record given is + invalid in some way. For example: + + * It contains properties that are invalid according to the type + specification of this record type. + + * It contains a property that may only be set by the server + (e.g., "id") and is different to the current value. Note, to + allow clients to pass whole objects back, it is not an error to + include a server-set property in an update as long as the value + is identical to the current value on the server. + + * There is a reference to another record (foreign key), and the + given id does not correspond to a valid record. + + The SetError object SHOULD also have a property called + "properties" of type "String[]" that lists *all* the properties + that were invalid. + + Individual methods MAY specify more specific errors for certain + conditions that would otherwise result in an invalidProperties + error. If the condition of one of these is met, it MUST be + returned instead of the invalidProperties error. + + o "singleton": (create; destroy). This is a singleton type, so you + cannot create another one or destroy the existing one. + + Other possible SetError types MAY be given in specific method + descriptions. Other properties MAY also be present on the SetError + object, as described in the relevant methods. + + The following additional errors may be returned instead of the "Foo/ + set" response: + + "requestTooLarge": The total number of objects to create, update, or + destroy exceeds the maximum number the server is willing to process + in a single method call. + + "stateMismatch": An "ifInState" argument was supplied, and it does + not match the current state. + + + + + + + + + + + +Jenkins & Newman Standards Track [Page 39] + +RFC 8620 JMAP July 2019 + + +5.4. /copy + + The only way to move Foo records *between* two different accounts is + to copy them using the "Foo/copy" method; once the copy has + succeeded, delete the original. The "onSuccessDestroyOriginal" + argument allows you to try to do this in one method call; however, + note that the two different actions are not atomic, so it is possible + for the copy to succeed but the original not to be destroyed for some + reason. + + The copy is conceptually in three phases: + + 1. Reading the current values from the "from" account. + + 2. Writing the new copies to the other account. + + 3. Destroying the originals in the "from" account, if requested. + + Data may change in between phases due to concurrent requests. + + The "Foo/copy" method takes the following arguments: + + o fromAccountId: "Id" + + The id of the account to copy records from. + + o ifFromInState: "String|null" + + This is a state string as returned by the "Foo/get" method. If + supplied, the string must match the current state of the account + referenced by the fromAccountId when reading the data to be + copied; otherwise, the method will be aborted and a + "stateMismatch" error returned. If null, the data will be read + from the current state. + + o accountId: "Id" + + The id of the account to copy records to. This MUST be different + to the "fromAccountId". + + o ifInState: "String|null" + + This is a state string as returned by the "Foo/get" method. If + supplied, the string must match the current state of the account + referenced by the accountId; otherwise, the method will be aborted + and a "stateMismatch" error returned. If null, any changes will + be applied to the current state. + + + + +Jenkins & Newman Standards Track [Page 40] + +RFC 8620 JMAP July 2019 + + + o create: "Id[Foo]" + + A map of the *creation id* to a Foo object. The Foo object MUST + contain an "id" property, which is the id (in the fromAccount) of + the record to be copied. When creating the copy, any other + properties included are used instead of the current value for that + property on the original. + + o onSuccessDestroyOriginal: "Boolean" (default: false) + + If true, an attempt will be made to destroy the original records + that were successfully copied: after emitting the "Foo/copy" + response, but before processing the next method, the server MUST + make a single call to "Foo/set" to destroy the original of each + successfully copied record; the output of this is added to the + responses as normal, to be returned to the client. + + o destroyFromIfInState: "String|null" + + This argument is passed on as the "ifInState" argument to the + implicit "Foo/set" call, if made at the end of this request to + destroy the originals that were successfully copied. + + Each record copy is considered an atomic unit that may succeed or + fail individually. + + The response has the following arguments: + + o fromAccountId: "Id" + + The id of the account records were copied from. + + o accountId: "Id" + + The id of the account records were copied to. + + o oldState: "String|null" + + The state string that would have been returned by "Foo/get" on the + account records that were copied to before making the requested + changes, or null if the server doesn't know what the previous + state string was. + + o newState: "String" + + The state string that will now be returned by "Foo/get" on the + account records were copied to. + + + + +Jenkins & Newman Standards Track [Page 41] + +RFC 8620 JMAP July 2019 + + + o created: "Id[Foo]|null" + + A map of the creation id to an object containing any properties of + the copied Foo object that are set by the server (such as the "id" + in most object types; note, the id is likely to be different to + the id of the object in the account it was copied from). + + This argument is null if no Foo objects were successfully copied. + + o notCreated: "Id[SetError]|null" + + A map of the creation id to a SetError object for each record that + failed to be copied, or null if none. + + The SetError may be any of the standard set errors returned for a + create or update. In addition, the following SetError is defined: + + "alreadyExists": The server forbids duplicates, and the record + already exists in the target account. An "existingId" property of + type "Id" MUST be included on the SetError object with the id of the + existing record. + + The following additional errors may be returned instead of the "Foo/ + copy" response: + + "fromAccountNotFound": The "fromAccountId" does not correspond to a + valid account. + + "fromAccountNotSupportedByMethod": The "fromAccountId" given + corresponds to a valid account, but the account does not support this + data type. + + "stateMismatch": An "ifInState" argument was supplied and it does not + match the current state, or an "ifFromInState" argument was supplied + and it does not match the current state in the from account. + +5.5. /query + + For data sets where the total amount of data is expected to be very + small, clients can just fetch the complete set of data and then do + any sorting/filtering locally. However, for large data sets (e.g., + multi-gigabyte mailboxes), the client needs to be able to + search/sort/window the data type on the server. + + A query on the set of Foos in an account is made by calling "Foo/ + query". This takes a number of arguments to determine which records + to include, how they should be sorted, and which part of the result + + + + +Jenkins & Newman Standards Track [Page 42] + +RFC 8620 JMAP July 2019 + + + should be returned (the full list may be *very* long). The result is + returned as a list of Foo ids. + + A call to "Foo/query" takes the following arguments: + + o accountId: "Id" + + The id of the account to use. + + o filter: "FilterOperator|FilterCondition|null" + + Determines the set of Foos returned in the results. If null, all + objects in the account of this type are included in the results. + A *FilterOperator* object has the following properties: + + * operator: "String" + + This MUST be one of the following strings: + + + "AND": All of the conditions must match for the filter to + match. + + + "OR": At least one of the conditions must match for the + filter to match. + + + "NOT": None of the conditions must match for the filter to + match. + + * conditions: "(FilterOperator|FilterCondition)[]" + + The conditions to evaluate against each record. + + A *FilterCondition* is an "object" whose allowed properties and + semantics depend on the data type and is defined in the /query + method specification for that type. It MUST NOT have an + "operator" property. + + o sort: "Comparator[]|null" + + Lists the names of properties to compare between two Foo records, + and how to compare them, to determine which comes first in the + sort. If two Foo records have an identical value for the first + comparator, the next comparator will be considered, and so on. If + all comparators are the same (this includes the case where an + empty array or null is given as the "sort" argument), the sort + order is server dependent, but it MUST be stable between calls to + "Foo/query". A *Comparator* has the following properties: + + + + +Jenkins & Newman Standards Track [Page 43] + +RFC 8620 JMAP July 2019 + + + * property: "String" + + The name of the property on the Foo objects to compare. + + * isAscending: "Boolean" (optional; default: true) + + If true, sort in ascending order. If false, reverse the + comparator's results to sort in descending order. + + * collation: "String" (optional; default is server-dependent) + + The identifier, as registered in the collation registry defined + in [RFC4790], for the algorithm to use when comparing the order + of strings. The algorithms the server supports are advertised + in the capabilities object returned with the Session object + (see Section 2). + + If omitted, the default algorithm is server dependent, but: + + 1. It MUST be unicode-aware. + + 2. It MAY be selected based on an Accept-Language header in + the request (as defined in [RFC7231], Section 5.3.5) or + out-of-band information about the user's language/locale. + + 3. It SHOULD be case insensitive where such a concept makes + sense for a language/locale. Where the user's language is + unknown, it is RECOMMENDED to follow the advice in + Section 5.2.3 of [RFC8264]. + + The "i;unicode-casemap" collation [RFC5051] and the Unicode + Collation Algorithm () + are two examples that fulfil these criterion and provide + reasonable behaviour for a large number of languages. + + When the property being compared is not a string, the + "collation" property is ignored, and the following comparison + rules apply based on the type. In ascending order: + + + "Boolean": false comes before true. + + + "Number": A lower number comes before a higher number. + + + "Date"/"UTCDate": The earlier date comes first. + + The Comparator object may also have additional properties as + required for specific sort operations defined in a type's /query + method. + + + +Jenkins & Newman Standards Track [Page 44] + +RFC 8620 JMAP July 2019 + + + o position: "Int" (default: 0) + + The zero-based index of the first id in the full list of results + to return. + + If a negative value is given, it is an offset from the end of the + list. Specifically, the negative value MUST be added to the total + number of results given the filter, and if still negative, it's + clamped to "0". This is now the zero-based index of the first id + to return. + + If the index is greater than or equal to the total number of + objects in the results list, then the "ids" array in the response + will be empty, but this is not an error. + + o anchor: "Id|null" + + A Foo id. If supplied, the "position" argument is ignored. The + index of this id in the results will be used in combination with + the "anchorOffset" argument to determine the index of the first + result to return (see below for more details). + + o anchorOffset: "Int" (default: 0) + + The index of the first result to return relative to the index of + the anchor, if an anchor is given. This MAY be negative. For + example, "-1" means the Foo immediately preceding the anchor is + the first result in the list returned (see below for more + details). + + o limit: "UnsignedInt|null" + + The maximum number of results to return. If null, no limit + presumed. The server MAY choose to enforce a maximum "limit" + argument. In this case, if a greater value is given (or if it is + null), the limit is clamped to the maximum; the new limit is + returned with the response so the client is aware. If a negative + value is given, the call MUST be rejected with an + "invalidArguments" error. + + o calculateTotal: "Boolean" (default: false) + + Does the client wish to know the total number of results in the + query? This may be slow and expensive for servers to calculate, + particularly with complex filters, so clients should take care to + only request the total when needed. + + + + + +Jenkins & Newman Standards Track [Page 45] + +RFC 8620 JMAP July 2019 + + + If an "anchor" argument is given, the anchor is looked for in the + results after filtering and sorting. If found, the "anchorOffset" is + then added to its index. If the resulting index is now negative, it + is clamped to 0. This index is now used exactly as though it were + supplied as the "position" argument. If the anchor is not found, the + call is rejected with an "anchorNotFound" error. + + If an "anchor" is specified, any position argument supplied by the + client MUST be ignored. If no "anchor" is supplied, any + "anchorOffset" argument MUST be ignored. + + A client can use "anchor" instead of "position" to find the index of + an id within a large set of results. + + The response has the following arguments: + + o accountId: "Id" + + The id of the account used for the call. + + o queryState: "String" + + A string encoding the current state of the query on the server. + This string MUST change if the results of the query (i.e., the + matching ids and their sort order) have changed. The queryState + string MAY change if something has changed on the server, which + means the results may have changed but the server doesn't know for + sure. + + The queryState string only represents the ordered list of ids that + match the particular query (including its sort/filter). There is + no requirement for it to change if a property on an object + matching the query changes but the query results are unaffected + (indeed, it is more efficient if the queryState string does not + change in this case). The queryState string only has meaning when + compared to future responses to a query with the same type/sort/ + filter or when used with /queryChanges to fetch changes. + + Should a client receive back a response with a different + queryState string to a previous call, it MUST either throw away + the currently cached query and fetch it again (note, this does not + require fetching the records again, just the list of ids) or call + "Foo/queryChanges" to get the difference. + + + + + + + + +Jenkins & Newman Standards Track [Page 46] + +RFC 8620 JMAP July 2019 + + + o canCalculateChanges: "Boolean" + + This is true if the server supports calling "Foo/queryChanges" + with these "filter"/"sort" parameters. Note, this does not + guarantee that the "Foo/queryChanges" call will succeed, as it may + only be possible for a limited time afterwards due to server + internal implementation details. + + o position: "UnsignedInt" + + The zero-based index of the first result in the "ids" array within + the complete list of query results. + + o ids: "Id[]" + + The list of ids for each Foo in the query results, starting at the + index given by the "position" argument of this response and + continuing until it hits the end of the results or reaches the + "limit" number of ids. If "position" is >= "total", this MUST be + the empty list. + + o total: "UnsignedInt" (only if requested) + + The total number of Foos in the results (given the "filter"). + This argument MUST be omitted if the "calculateTotal" request + argument is not true. + + o limit: "UnsignedInt" (if set by the server) + + The limit enforced by the server on the maximum number of results + to return. This is only returned if the server set a limit or + used a different limit than that given in the request. + + The following additional errors may be returned instead of the "Foo/ + query" response: + + "anchorNotFound": An anchor argument was supplied, but it cannot be + found in the results of the query. + + "unsupportedSort": The "sort" is syntactically valid, but it includes + a property the server does not support sorting on or a collation + method it does not recognise. + + "unsupportedFilter": The "filter" is syntactically valid, but the + server cannot process it. If the filter was the result of a user's + search input, the client SHOULD suggest that the user simplify their + search. + + + + +Jenkins & Newman Standards Track [Page 47] + +RFC 8620 JMAP July 2019 + + +5.6. /queryChanges + + The "Foo/queryChanges" method allows a client to efficiently update + the state of a cached query to match the new state on the server. It + takes the following arguments: + + o accountId: "Id" + + The id of the account to use. + + o filter: "FilterOperator|FilterCondition|null" + + The filter argument that was used with "Foo/query". + + o sort: "Comparator[]|null" + + The sort argument that was used with "Foo/query". + + o sinceQueryState: "String" + + The current state of the query in the client. This is the string + that was returned as the "queryState" argument in the "Foo/query" + response with the same sort/filter. The server will return the + changes made to the query since this state. + + o maxChanges: "UnsignedInt|null" + + The maximum number of changes to return in the response. See + error descriptions below for more details. + + o upToId: "Id|null" + + The last (highest-index) id the client currently has cached from + the query results. When there are a large number of results, in a + common case, the client may have only downloaded and cached a + small subset from the beginning of the results. If the sort and + filter are both only on immutable properties, this allows the + server to omit changes after this point in the results, which can + significantly increase efficiency. If they are not immutable, + this argument is ignored. + + o calculateTotal: "Boolean" (default: false) + + Does the client wish to know the total number of results now in + the query? This may be slow and expensive for servers to + calculate, particularly with complex filters, so clients should + take care to only request the total when needed. + + + + +Jenkins & Newman Standards Track [Page 48] + +RFC 8620 JMAP July 2019 + + + The response has the following arguments: + + o accountId: "Id" + + The id of the account used for the call. + + o oldQueryState: "String" + + This is the "sinceQueryState" argument echoed back; that is, the + state from which the server is returning changes. + + o newQueryState: "String" + + This is the state the query will be in after applying the set of + changes to the old state. + + o total: "UnsignedInt" (only if requested) + + The total number of Foos in the results (given the "filter"). + This argument MUST be omitted if the "calculateTotal" request + argument is not true. + + o removed: "Id[]" + + The "id" for every Foo that was in the query results in the old + state and that is not in the results in the new state. + + If the server cannot calculate this exactly, the server MAY return + the ids of extra Foos in addition that may have been in the old + results but are not in the new results. + + If the sort and filter are both only on immutable properties and + an "upToId" is supplied and exists in the results, any ids that + were removed but have a higher index than "upToId" SHOULD be + omitted. + + If the "filter" or "sort" includes a mutable property, the server + MUST include all Foos in the current results for which this + property may have changed. The position of these may have moved + in the results, so they must be reinserted by the client to ensure + its query cache is correct. + + + + + + + + + + +Jenkins & Newman Standards Track [Page 49] + +RFC 8620 JMAP July 2019 + + + o added: "AddedItem[]" + + The id and index in the query results (in the new state) for every + Foo that has been added to the results since the old state AND + every Foo in the current results that was included in the + "removed" array (due to a filter or sort based upon a mutable + property). + + If the sort and filter are both only on immutable properties and + an "upToId" is supplied and exists in the results, any ids that + were added but have a higher index than "upToId" SHOULD be + omitted. + + The array MUST be sorted in order of index, with the lowest index + first. + + An *AddedItem* object has the following properties: + + * id: "Id" + + * index: "UnsignedInt" + + The result of this is that if the client has a cached sparse array of + Foo ids corresponding to the results in the old state, then: + + fooIds = [ "id1", "id2", null, null, "id3", "id4", null, null, null ] + + If it *splices out* all ids in the removed array that it has in its + cached results, then: + + removed = [ "id2", "id31", ... ]; + fooIds => [ "id1", null, null, "id3", "id4", null, null, null ] + + and *splices in* (one by one in order, starting with the lowest + index) all of the ids in the added array: + + added = [{ id: "id5", index: 0, ... }]; + fooIds => [ "id5", "id1", null, null, "id3", "id4", null, null, null ] + + and *truncates* or *extends* to the new total length, then the + results will now be in the new state. + + Note: splicing in adds the item at the given index, incrementing the + index of all items previously at that or a higher index. Splicing + out is the inverse, removing the item and decrementing the index of + every item after it in the array. + + + + + +Jenkins & Newman Standards Track [Page 50] + +RFC 8620 JMAP July 2019 + + + The following additional errors may be returned instead of the "Foo/ + queryChanges" response: + + "tooManyChanges": There are more changes than the client's + "maxChanges" argument. Each item in the removed or added array is + considered to be one change. The client may retry with higher max + changes or invalidate its cache of the query results. + + "cannotCalculateChanges": The server cannot calculate the changes + from the queryState string given by the client, usually due to the + client's state being too old. The client MUST invalidate its cache + of the query results. + +5.7. Examples + + Suppose we have a type *Todo* with the following properties: + + o id: "Id" (immutable; server-set) + + The id of the object. + + o title: "String" + + A brief summary of what is to be done. + + o keywords: "String[Boolean]" (default: {}) + + A set of keywords that apply to the Todo. The set is represented + as an object, with the keys being the "keywords". The value for + each key in the object MUST be true. (This format allows you to + update an individual key using patch syntax rather than having to + update the whole set of keywords as one, which a "String[]" + representation would require.) + + o neuralNetworkTimeEstimation: "Number" (server-set) + + The title and keywords are fed into the server's state-of-the-art + neural network to get an estimation of how long this Todo will + take, in seconds. + + o subTodoIds: "Id[]|null" + + The ids of a list of other Todos to complete as part of this Todo. + + Suppose also that all the standard methods are defined for this type + and the FilterCondition object supports a "hasKeyword" property to + match Todos with the given keyword. + + + + +Jenkins & Newman Standards Track [Page 51] + +RFC 8620 JMAP July 2019 + + + A client might want to display the list of Todos with either a + "music" keyword or a "video" keyword, so it makes the following + method call: + + [[ "Todo/query", { + "accountId": "x", + "filter": { + "operator": "OR", + "conditions": [ + { "hasKeyword": "music" }, + { "hasKeyword": "video" } + ] + }, + "sort": [{ "property": "title" }], + "position": 0, + "limit": 10 + }, "0" ], + [ "Todo/get", { + "accountId": "x", + "#ids": { + "resultOf": "0", + "name": "Todo/query", + "path": "/ids" + } + }, "1" ]] + + + + + + + + + + + + + + + + + + + + + + + + + + +Jenkins & Newman Standards Track [Page 52] + +RFC 8620 JMAP July 2019 + + + This would query the server for the set of Todos with a keyword of + either "music" or "video", sorted by title, and limited to the first + 10 results. It fetches the full object for each of these Todos using + back-references to reference the result of the query. The response + might look something like: + + [[ "Todo/query", { + "accountId": "x", + "queryState": "y13213", + "canCalculateChanges": true, + "position": 0, + "ids": [ "a", "b", "c", "d", "e", "f", "g", "h", "i", "j" ] + }, "0" ], + [ "Todo/get", { + "accountId": "x", + "state": "10324", + "list": [{ + "id": "a", + "title": "Practise Piano", + "keywords": { + "music": true, + "beethoven": true, + "mozart": true, + "liszt": true, + "rachmaninov": true + }, + "neuralNetworkTimeEstimation": 3600 + }, { + "id": "b", + "title": "Watch Daft Punk music video", + "keywords": { + "music": true, + "video": true, + "trance": true + }, + "neuralNetworkTimeEstimation": 18000 + }, + ... + ] + }, "1" ]] + + + + + + + + + + + +Jenkins & Newman Standards Track [Page 53] + +RFC 8620 JMAP July 2019 + + + Now, suppose the user adds a keyword "chopin" and removes the keyword + "mozart" from the "Practise Piano" task. The client may send the + whole object to the server, as this is a valid PatchObject: + + [[ "Todo/set", { + "accountId": "x", + "ifInState": "10324", + "update": { + "a": { + "id": "a", + "title": "Practise Piano", + "keywords": { + "music": true, + "beethoven": true, + "chopin": true, + "liszt": true, + "rachmaninov": true + }, + "neuralNetworkTimeEstimation": 360 + } + } + }, "0" ]] + + or it may send a minimal patch: + + [[ "Todo/set", { + "accountId": "x", + "ifInState": "10324", + "update": { + "a": { + "keywords/chopin": true, + "keywords/mozart": null + } + } + }, "0" ]] + + + + + + + + + + + + + + + + +Jenkins & Newman Standards Track [Page 54] + +RFC 8620 JMAP July 2019 + + + The effect is exactly the same on the server in either case, and + presuming the server is still in state "10324", it will probably + return success: + + [[ "Todo/set", { + "accountId": "x", + "oldState": "10324", + "newState": "10329", + "updated": { + "a": { + "neuralNetworkTimeEstimation": 5400 + } + } + }, "0" ]] + + The server changed the "neuralNetworkTimeEstimation" property on the + object as part of this change; as this changed in a way *not* + explicitly requested by the PatchObject sent to the server, it is + returned with the "updated" confirmation. + + Let us now add a sub-Todo to our new "Practise Piano" Todo. In this + example, we can see the use of a reference to a creation id to allow + us to set a foreign key reference to a record created in the same + request: + + [[ "Todo/set", { + "accountId": "x", + "create": { + "k15": { + "title": "Warm up with scales" + } + }, + "update": { + "a": { + "subTodoIds": [ "#k15" ] + } + } + }, "0" ]] + + + + + + + + + + + + + +Jenkins & Newman Standards Track [Page 55] + +RFC 8620 JMAP July 2019 + + + Now, suppose another user deleted the "Listen to Daft Punk" Todo. + The first user will receive a push notification (see Section 7) with + the changed state string for the "Todo" type. Since the new string + does not match its current state, it knows it needs to check for + updates. It may make a request like: + + [[ "Todo/changes", { + "accountId": "x", + "sinceState": "10324", + "maxChanges": 50 + }, "0" ], + [ "Todo/queryChanges", { + "accountId": "x", + "filter": { + "operator": "OR", + "conditions": [ + { "hasKeyword": "music" }, + { "hasKeyword": "video" } + ] + }, + "sort": [{ "property": "title" }], + "sinceQueryState": "y13213", + "maxChanges": 50 + }, "1" ]] + + and receive in response: + + [[ "Todo/changes", { + "accountId": "x", + "oldState": "10324", + "newState": "871903", + "hasMoreChanges": false, + "created": [], + "updated": [], + "destroyed": ["b"] + }, "0" ], + [ "Todo/queryChanges", { + "accountId": "x", + "oldQueryState": "y13213", + "newQueryState": "y13218", + "removed": ["b"], + "added": null + }, "1" ]] + + + + + + + + +Jenkins & Newman Standards Track [Page 56] + +RFC 8620 JMAP July 2019 + + + Suppose the user has access to another account "y", for example, a + team account shared between multiple users. To move an existing Todo + from account "x", the client would call: + + [[ "Todo/copy", { + "fromAccountId": "x", + "accountId": "y", + "create": { + "k5122": { + "id": "a" + } + }, + "onSuccessDestroyOriginal": true + }, "0" ]] + + The server successfully copies the Todo to a new account (where it + receives a new id) and deletes the original. Due to the implicit + call to "Todo/set", there are two responses to the single method + call, both with the same method call id: + + [[ "Todo/copy", { + "fromAccountId": "x", + "accountId": "y", + "created": { + "k5122": { + "id": "DAf97" + } + }, + "oldState": "c1d64ecb038c", + "newState": "33844835152b" + }, "0" ], + [ "Todo/set", { + "accountId": "x", + "oldState": "871903", + "newState": "871909", + "destroyed": [ "a" ], + ... + }, "0" ]] + + + + + + + + + + + + + +Jenkins & Newman Standards Track [Page 57] + +RFC 8620 JMAP July 2019 + + +5.8. Proxy Considerations + + JMAP has been designed to allow an API endpoint to easily proxy + through to one or more JMAP servers. This may be useful for load + balancing, augmenting capabilities, or presenting a single endpoint + to accounts hosted on different JMAP servers (splitting the request + based on each method's "accountId" argument). The proxy need only + understand the general structure of a JMAP Request object; it does + not need to know anything specifically about the methods and + arguments it will pass through to other servers. + + If splitting up the methods in a request to call them on different + backend servers, the proxy must do two things to ensure back- + references and creation-id references resolve the same as if the + entire request were processed on a single server: + + 1. It must pass a "createdIds" property with each subrequest. If + this is not given by the client, an empty object should be used + for the first subrequest. The "createdIds" property of each + subresponse should be passed on in the next subrequest. + + 2. It must resolve back-references to previous method results that + were processed on a different server. This is a relatively + simple syntactic substitution, described in Section 3.7. + + When splitting a request based on accountId, proxy implementors do + need to be aware of "/copy" methods that copy between accounts. If + the accounts are on different servers, the proxy will have to + implement this functionality directly. + +6. Binary Data + + Binary data is referenced by a *blobId* in JMAP and uploaded/ + downloaded separately to the core API. The blobId solely represents + the raw bytes of data, not any associated metadata such as a file + name or content type. Such metadata is stored alongside the blobId + in the object referencing it. The data represented by a blobId is + immutable. + + Any blobId that exists within an account may be used when creating/ + updating another object in that account. For example, an Email type + may have a blobId that represents the object in Internet Message + Format [RFC5322]. A client could create a new Email object with an + attachment and use this blobId, in effect attaching the old message + to the new one. Similarly, it could attach any existing attachment + of an old message without having to download and upload it again. + + + + + +Jenkins & Newman Standards Track [Page 58] + +RFC 8620 JMAP July 2019 + + + When the client uses a blobId in a create/update, the server MAY + assign a new blobId to refer to the same binary data within the new/ + updated object. If it does so, it MUST return any properties that + contain a changed blobId in the created/updated response, so the + client gets the new ids. + + A blob that is not referenced by a JMAP object (e.g., as a message + attachment) MAY be deleted by the server to free up resources. + Uploads (see below) are initially unreferenced blobs. To ensure + interoperability: + + o The server SHOULD use a separate quota for unreferenced blobs to + the account's usual quota. In the case of shared accounts, this + quota SHOULD be separate per user. + + o This quota SHOULD be at least the maximum total size that a single + object can reference on this server. For example, if supporting + JMAP Mail, this should be at least the maximum total attachments + size for a message. + + o When an upload would take the user over quota, the server MUST + delete unreferenced blobs in date order, oldest first, until there + is room for the new blob. + + o Except where quota restrictions force early deletion, an + unreferenced blob MUST NOT be deleted for at least 1 hour from the + time of upload; if reuploaded, the same blobId MAY be returned, + but this SHOULD reset the expiry time. + + o A blob MUST NOT be deleted during the method call that removed the + last reference, so that a client can issue a create and a destroy + that both reference the blob within the same method call. + +6.1. Uploading Binary Data + + There is a single endpoint that handles all file uploads for an + account, regardless of what they are to be used for. The Session + object (see Section 2) has an "uploadUrl" property in URI Template + (level 1) format [RFC6570], which MUST contain a variable called + "accountId". The client may use this template in combination with an + "accountId" to get the URL of the file upload resource. + + To upload a file, the client submits an authenticated POST request to + the file upload resource. + + + + + + + +Jenkins & Newman Standards Track [Page 59] + +RFC 8620 JMAP July 2019 + + + A successful request MUST return a single JSON object with the + following properties as the response: + + o accountId: "Id" + + The id of the account used for the call. + + o blobId: "Id" + + The id representing the binary data uploaded. The data for this + id is immutable. The id *only* refers to the binary data, not any + metadata. + + o type: "String" + + The media type of the file (as specified in [RFC6838], + Section 4.2) as set in the Content-Type header of the upload HTTP + request. + + o size: "UnsignedInt" + + The size of the file in octets. + + If identical binary content to an existing blob in the account is + uploaded, the existing blobId MAY be returned. + + Clients should use the blobId returned in a timely manner. Under + rare circumstances, the server may have deleted the blob before the + client uses it; the client should keep a reference to the local file + so it can upload it again in such a situation. + + When an HTTP error response is returned to the client, the server + SHOULD return a JSON "problem details" object as the response body, + as per [RFC7807]. + + As access controls are often determined by the object holding the + reference to a blob, unreferenced blobs MUST only be accessible to + the uploader, even in shared accounts. + +6.2. Downloading Binary Data + + The Session object (see Section 2) has a "downloadUrl" property, + which is in URI Template (level 1) format [RFC6570]. The URL MUST + contain variables called "accountId", "blobId", "type", and "name". + + + + + + + +Jenkins & Newman Standards Track [Page 60] + +RFC 8620 JMAP July 2019 + + + To download a file, the client makes an authenticated GET request to + the download URL with the appropriate variables substituted in: + + o "accountId": The id of the account to which the record with the + blobId belongs. + + o "blobId": The blobId representing the data of the file to + download. + + o "type": The type for the server to set in the "Content-Type" + header of the response; the blobId only represents the binary data + and does not have a content-type innately associated with it. + + o "name": The name for the file; the server MUST return this as the + filename if it sets a "Content-Disposition" header. + + As the data for a particular blobId is immutable, and thus the + response in the generated download URL is too, implementors are + recommended to set long cache times and use the "immutable" Cache- + Control extension [RFC8246] for successful responses, for example, + "Cache-Control: private, immutable, max-age=31536000". + + When an HTTP error response is returned to the client, the server + SHOULD return a JSON "problem details" object as the response body, + as per [RFC7807]. + +6.3. Blob/copy + + Binary data may be copied *between* two different accounts using the + "Blob/copy" method rather than having to download and then reupload + on the client. + + The "Blob/copy" method takes the following arguments: + + o fromAccountId: "Id" + + The id of the account to copy blobs from. + + o accountId: "Id" + + The id of the account to copy blobs to. + + o blobIds: "Id[]" + + A list of ids of blobs to copy to the other account. + + + + + + +Jenkins & Newman Standards Track [Page 61] + +RFC 8620 JMAP July 2019 + + + The response has the following arguments: + + o fromAccountId: "Id" + + The id of the account blobs were copied from. + + o accountId: "Id" + + The id of the account blobs were copied to. + + o copied: "Id[Id]|null" + + A map of the blobId in the fromAccount to the id for the blob in + the account it was copied to, or null if none were successfully + copied. + + o notCopied: "Id[SetError]|null" + + A map of blobId to a SetError object for each blob that failed to + be copied, or null if none. + + The SetError may be any of the standard set errors that may be + returned for a create, as defined in Section 5.3. In addition, the + "notFound" SetError error may be returned if the blobId to be copied + cannot be found. + + The following additional method-level error may be returned instead + of the "Blob/copy" response: + + "fromAccountNotFound": The "fromAccountId" included with the request + does not correspond to a valid account. + +7. Push + + Push notifications allow clients to efficiently update (almost) + instantly to stay in sync with data changes on the server. The + general model for push is simple and sends minimal data over the push + channel: just enough for the client to know whether it needs to + resync. The format allows multiple changes to be coalesced into a + single push update and the frequency of pushes to be rate limited by + the server. It doesn't matter if some push events are dropped before + they reach the client; the next time it gets/sets any records of a + changed type, it will discover the data has changed and still sync + all changes. + + + + + + + +Jenkins & Newman Standards Track [Page 62] + +RFC 8620 JMAP July 2019 + + + There are two different mechanisms by which a client can receive push + notifications, to allow for the different environments in which a + client may exist. An event source resource (see Section 7.3) allows + clients that can hold transport connections open to receive push + notifications directly from the JMAP server. This is simple and + avoids third parties, but it is often not feasible on constrained + platforms such as mobile devices. Alternatively, clients can make + use of any push service supported by their environment. A URL for + the push service is registered with the JMAP server (see + Section 7.2); the server then POSTs each notification to that URL. + The push service is then responsible for routing these to the client. + +7.1. The StateChange Object + + When something changes on the server, the server pushes a StateChange + object to the client. A *StateChange* object has the following + properties: + + o @type: "String" + + This MUST be the string "StateChange". + + o changed: "Id[TypeState]" + + A map of an "account id" to an object encoding the state of data + types that have changed for that account since the last + StateChange object was pushed, for each of the accounts to which + the user has access and for which something has changed. + + A *TypeState* object is a map. The keys are the type name "Foo" + (e.g., "Mailbox" or "Email"), and the value is the "state" + property that would currently be returned by a call to "Foo/get". + + The client can compare the new state strings with its current + values to see whether it has the current data for these types. If + not, the changes can then be efficiently fetched in a single + standard API request (using the /changes type methods). + + + + + + + + + + + + + + +Jenkins & Newman Standards Track [Page 63] + +RFC 8620 JMAP July 2019 + + +7.1.1. Example + + In this example, the server has amalgamated a few changes together + across two different accounts the user has access to, before pushing + the following StateChange object to the client: + + { + "@type": "StateChange", + "changed": { + "a3123": { + "Email": "d35ecb040aab", + "EmailDelivery": "428d565f2440", + "CalendarEvent": "87accfac587a" + }, + "a43461d": { + "Mailbox": "0af7a512ce70", + "CalendarEvent": "7a4297cecd76" + } + } + } + + The client can compare the state strings with its current state for + the Email, CalendarEvent, etc., object types in the appropriate + accounts to see if it needs to fetch changes. + + If the client is itself making changes, it may receive a StateChange + object while the /set API call is in flight. It can wait until the + call completes and then compare if the new state string after the + /set is the same as was pushed in the StateChange object; if so, and + the old state of the /set response matches the client's previous + state, it does not need to waste a request asking for changes it + already knows. + +7.2. PushSubscription + + Clients may create a PushSubscription to register a URL with the JMAP + server. The JMAP server will then make an HTTP POST request to this + URL for each push notification it wishes to send to the client. + + As a push subscription causes the JMAP server to make a number of + requests to a previously unknown endpoint, it can be used as a vector + for launching a denial-of-service attack. To prevent this, when a + subscription is created, the JMAP server immediately sends a + PushVerification object to that URL (see Section 7.2.2). The JMAP + server MUST NOT make any further requests to the URL until the client + receives the push and updates the subscription with the correct + verification code. + + + + +Jenkins & Newman Standards Track [Page 64] + +RFC 8620 JMAP July 2019 + + + A *PushSubscription* object has the following properties: + + o id: "Id" (immutable; server-set) + + The id of the push subscription. + + o deviceClientId: "String" (immutable) + + An id that uniquely identifies the client + device it is running + on. The purpose of this is to allow clients to identify which + PushSubscription objects they created even if they lose their + local state, so they can revoke or update them. This string MUST + be different on different devices and be different from apps from + other vendors. It SHOULD be easy to regenerate and not depend on + persisted state. It is RECOMMENDED to use a secure hash of a + string that contains: + + 1. A unique identifier associated with the device where the JMAP + client is running, normally supplied by the device's operating + system. + + 2. A custom vendor/app id, including a domain controlled by the + vendor of the JMAP client. + + To protect the privacy of the user, the deviceClientId id MUST NOT + contain an unobfuscated device id. + + o url: "String" (immutable) + + An absolute URL where the JMAP server will POST the data for the + push message. This MUST begin with "https://". + + o keys: "Object|null" (immutable) + + Client-generated encryption keys. If supplied, the server MUST + use them as specified in [RFC8291] to encrypt all data sent to the + push subscription. The object MUST have the following properties: + + * p256dh: "String" + + The P-256 Elliptic Curve Diffie-Hellman (ECDH) public key as + described in [RFC8291], encoded in URL-safe base64 + representation as defined in [RFC4648]. + + * auth: "String" + + The authentication secret as described in [RFC8291], encoded in + URL-safe base64 representation as defined in [RFC4648]. + + + +Jenkins & Newman Standards Track [Page 65] + +RFC 8620 JMAP July 2019 + + + o verificationCode: "String|null" + + This MUST be null (or omitted) when the subscription is created. + The JMAP server then generates a verification code and sends it in + a push message, and the client updates the PushSubscription object + with the code; see Section 7.2.2 for details. + + o expires: "UTCDate|null" + + The time this push subscription expires. If specified, the JMAP + server MUST NOT make further requests to this resource after this + time. It MAY automatically destroy the push subscription at or + after this time. + + The server MAY choose to set an expiry if none is given by the + client or modify the expiry time given by the client to a shorter + duration. + + o types: "String[]|null" + + A list of types the client is interested in (using the same names + as the keys in the TypeState object defined in the previous + section). A StateChange notification will only be sent if the + data for one of these types changes. Other types are omitted from + the TypeState object. If null, changes will be pushed for all + types. + + The POST request MUST have a content type of "application/json" and + contain the UTF-8 JSON-encoded object as the body. The request MUST + have a "TTL" header and MAY have "Urgency" and/or "Topic" headers, as + specified in Section 5 of [RFC8030]. The JMAP server is expected to + understand and handle HTTP status responses in a reasonable manner. + A "429" (Too Many Requests) response MUST cause the JMAP server to + reduce the frequency of pushes; the JMAP push structure allows + multiple changes to be coalesced into a single minimal StateChange + object. See the security considerations in Section 8.6 for a + discussion of the risks in connecting to unknown servers. + + The JMAP server acts as an application server as defined in + [RFC8030]. A client MAY use the rest of [RFC8030] in combination + with its own push service to form a complete end-to-end solution, or + it MAY rely on alternative mechanisms to ensure the delivery of the + pushed data after it leaves the JMAP server. + + The push subscription is tied to the credentials used to authenticate + the API request that created it. Should these credentials expire or + be revoked, the push subscription MUST be destroyed by the JMAP + + + + +Jenkins & Newman Standards Track [Page 66] + +RFC 8620 JMAP July 2019 + + + server. Only subscriptions created by these credentials are returned + when the client fetches existing subscriptions. + + When these credentials have their own expiry (i.e., it is a session + with a timeout), the server SHOULD NOT set or bound the expiry time + for the push subscription given by the client but MUST expire it when + the session expires. + + When these credentials are not time bounded (e.g., Basic + authentication [RFC7617]), the server SHOULD set an expiry time for + the push subscription if none is given and limit the expiry time if + set too far in the future. This maximum expiry time MUST be at least + 48 hours in the future and SHOULD be at least 7 days in the future. + An app running on a mobile device may only be able to refresh the + push subscription lifetime when it is in the foreground, so this + gives a reasonable time frame to allow this to happen. + + In the case of separate access and refresh credentials, as in Oauth + 2.0 [RFC6749], the server SHOULD tie the push subscription to the + validity of the refresh token rather than the access token and behave + according to whether this is time-limited or not. + + When a push subscription is destroyed, the server MUST securely erase + the URL and encryption keys from memory and storage as soon as + possible. + +7.2.1. PushSubscription/get + + Standard /get method as described in Section 5.1, except it does + *not* take or return an "accountId" argument, as push subscriptions + are not tied to specific accounts. It also does *not* return a + "state" argument. The "ids" argument may be null to fetch all at + once. + + The server MUST only return push subscriptions that were created + using the same authentication credentials as for this + "PushSubscription/get" request. + + As the "url" and "keys" properties may contain data that is private + to a particular device, the values for these properties MUST NOT be + returned. If the "properties" argument is null or omitted, the + server MUST default to all properties excluding these two. If one of + them is explicitly requested, the method call MUST be rejected with a + "forbidden" error. + + + + + + + +Jenkins & Newman Standards Track [Page 67] + +RFC 8620 JMAP July 2019 + + +7.2.2. PushSubscription/set + + Standard /set method as described in Section 5.3, except it does + *not* take or return an "accountId" argument, as push subscriptions + are not tied to specific accounts. It also does *not* take an + "ifInState" argument or return "oldState" or "newState" arguments. + + The "url" and "keys" properties are immutable; if the client wishes + to change these, it must destroy the current push subscription and + create a new one. + + When a PushSubscription is created, the server MUST immediately push + a *PushVerification* object to the URL. It has the following + properties: + + o @type: "String" + + This MUST be the string "PushVerification". + + o pushSubscriptionId: "String" + + The id of the push subscription that was created. + + o verificationCode: "String" + + The verification code to add to the push subscription. This MUST + contain sufficient entropy to avoid the client being able to guess + the code via brute force. + + The client MUST update the push subscription with the correct + verification code before the server makes any further requests to the + subscription's URL. Attempts to update the subscription with an + invalid verification code MUST be rejected by the server with an + "invalidProperties" SetError. + + The client may update the "expires" property to extend (or, less + commonly, shorten) the lifetime of a push subscription. The server + MAY modify the proposed new expiry time to enforce server-defined + limits. Extending the lifetime does not require the subscription to + be verified again. + + Clients SHOULD NOT update or destroy a push subscription that they + did not create (i.e., has a "deviceClientId" that they do not + recognise). + + + + + + + +Jenkins & Newman Standards Track [Page 68] + +RFC 8620 JMAP July 2019 + + +7.2.3. Example + + At "2018-07-06T02:14:29Z", a client with deviceClientId "a889-ffea- + 910" fetches the set of push subscriptions currently on the server, + making an API request with: + + [[ "PushSubscription/get", { + "ids": null + }, "0" ]] + + Which returns: + + [[ "PushSubscription/get", { + "list": [{ + "id": "e50b2c1d-9553-41a3-b0a7-a7d26b599ee1", + "deviceClientId": "b37ff8001ca0", + "verificationCode": "b210ef734fe5f439c1ca386421359f7b", + "expires": "2018-07-31T00:13:21Z", + "types": [ "Todo" ] + }, { + "id": "f2d0aab5-e976-4e8b-ad4b-b380a5b987e4", + "deviceClientId": "X8980fc", + "verificationCode": "f3d4618a9ae15c8b7f5582533786d531", + "expires": "2018-07-12T05:55:00Z", + "types": [ "Mailbox", "Email", "EmailDelivery" ] + }], + "notFound": [] + }, "0" ]] + + Since neither of the returned push subscription objects have the + client's deviceClientId, it knows it does not have a current push + subscription active on the server. So it creates one, sending this + request: + +[[ "PushSubscription/set", { + "create": { + "4f29": { + "deviceClientId": "a889-ffea-910", + "url": "https://example.com/push/?device=X8980fc&client=12c6d086", + "types": null + } + } +}, "0" ]] + + + + + + + + +Jenkins & Newman Standards Track [Page 69] + +RFC 8620 JMAP July 2019 + + + The server creates the push subscription but limits the expiry time + to 7 days in the future, returning this response: + + [[ "PushSubscription/set", { + "created": { + "4f29": { + "id": "P43dcfa4-1dd4-41ef-9156-2c89b3b19c60", + "keys": null, + "expires": "2018-07-13T02:14:29Z" + } + } + }, "0" ]] + + The server also immediately makes a POST request to + "https://example.com/push/?device=X8980fc&client=12c6d086" with the + data: + + { + "@type": "PushVerification", + "pushSubscriptionId": "P43dcfa4-1dd4-41ef-9156-2c89b3b19c60", + "verificationCode": "da1f097b11ca17f06424e30bf02bfa67" + } + + The client receives this and updates the subscription with the + verification code (note there is a potential race condition here; the + client MUST be able to handle receiving the push while the request + creating the subscription is still in progress): + + [[ "PushSubscription/set", { + "update": { + "P43dcfa4-1dd4-41ef-9156-2c89b3b19c60": { + "verificationCode": "da1f097b11ca17f06424e30bf02bfa67" + } + } + }, "0" ]] + + The server confirms the update was successful and will now make + requests to the registered URL when the state changes. + + + + + + + + + + + + + +Jenkins & Newman Standards Track [Page 70] + +RFC 8620 JMAP July 2019 + + + Two days later, the client updates the subscription to extend its + lifetime, sending this request: + + [[ "PushSubscription/set", { + "update": { + "P43dcfa4-1dd4-41ef-9156-2c89b3b19c60": { + "expires": "2018-08-13T00:00:00Z" + } + } + }, "0" ]] + + The server extends the expiry time, but only again to its maximum + limit of 7 days in the future, returning this response: + + [[ "PushSubscription/set", { + "updated": { + "P43dcfa4-1dd4-41ef-9156-2c89b3b19c60": { + "expires": "2018-07-15T02:22:50Z" + } + } + }, "0" ]] + +7.3. Event Source + + Clients that can hold transport connections open can connect directly + to the JMAP server to receive push notifications via a "text/event- + stream" resource, as described in [EventSource]. This is a long + running HTTP request, where the server can push data to the client by + appending data without ending the response. + + When a change occurs in the data on the server, it pushes an event + called "state" to any connected clients, with the StateChange object + as the data. + + The server SHOULD also send a new event id that encodes the entire + server state visible to the user immediately after sending a "state" + event. When a new connection is made to the event-source endpoint, a + client following the server-sent events specification will send a + Last-Event-ID HTTP header field with the last id it saw, which the + server can use to work out whether the client has missed some + changes. If so, it SHOULD send these changes immediately on + connection. + + The Session object (see Section 2) has an "eventSourceUrl" property, + which is in URI Template (level 1) format [RFC6570]. The URL MUST + contain variables called "types", "closeafter", and "ping". + + + + + +Jenkins & Newman Standards Track [Page 71] + +RFC 8620 JMAP July 2019 + + + To connect to the resource, the client makes an authenticated GET + request to the event-source URL with the appropriate variables + substituted in: + + o "types": This MUST be either: + + * A comma-separated list of type names, e.g., + "Email,CalendarEvent". The server MUST only push changes for + the types in this list. + + * The single character: "*". Changes to all types are pushed. + + o "closeafter": This MUST be one of the following values: + + * "state": The server MUST end the HTTP response after pushing a + state event. This can be used by clients in environments where + buffering proxies prevent the pushed data from arriving + immediately, or indeed at all, when operating in the usual + mode. + + * "no": The connection is persisted by the server as a standard + event-source resource. + + o "ping": A positive integer value representing a length of time in + seconds, e.g., "300". If non-zero, the server MUST send an event + called "ping" whenever this time elapses since the previous event + was sent. This MUST NOT set a new event id. If the value is "0", + the server MUST NOT send ping events. + + The server MAY modify a requested ping interval to be subject to a + minimum and/or maximum value. For interoperability, servers MUST + NOT have a minimum allowed value higher than 30 or a maximum + allowed value less than 300. + + The data for the ping event MUST be a JSON object containing an + "interval" property, the value (type "UnsignedInt") being the + interval in seconds the server is using to send pings (this may be + different to the requested value if the server clamped it to be + within a min/max value). + + Clients can monitor for the ping event to help determine when the + closeafter mode may be required. + + A client MAY hold open multiple connections to the event-source + resource, although it SHOULD try to use a single connection for + efficiency. + + + + + +Jenkins & Newman Standards Track [Page 72] + +RFC 8620 JMAP July 2019 + + +8. Security Considerations + +8.1. Transport Confidentiality + + To ensure the confidentiality and integrity of data sent and received + via JMAP, all requests MUST use TLS 1.2 [RFC5246] [RFC8446] or later, + following the recommendations in [RFC7525]. Servers SHOULD support + TLS 1.3 [RFC8446] or later. + + Clients MUST validate TLS certificate chains to protect against + man-in-the-middle attacks [RFC5280]. + +8.2. Authentication Scheme + + A number of HTTP authentication schemes have been standardised (see + ). Servers + should take care to assess the security characteristics of different + schemes in relation to their needs when deciding what to implement. + + Use of the Basic authentication scheme is NOT RECOMMENDED. Services + that choose to use it are strongly recommended to require generation + of a unique "app password" via some external mechanism for each + client they wish to connect. This allows connections from different + devices to be differentiated by the server and access to be + individually revoked. + +8.3. Service Autodiscovery + + Unless secured by something like DNSSEC, autodiscovery of server + details using SRV DNS records is vulnerable to a DNS poisoning + attack, which can lead to the client talking to an attacker's server + instead of the real JMAP server. The attacker may then intercept + requests to execute man-in-the-middle attacks and, depending on the + authentication scheme, steal credentials to generate its own + requests. + + Clients that do not support SRV lookups are likely to try just using + the "/.well-known/jmap" path directly against the domain of the + username over HTTPS. Servers SHOULD ensure this path resolves or + redirects to the correct JMAP Session resource to allow this to work. + If this is not feasible, servers MUST ensure this path cannot be + controlled by an attacker, as again it may be used to steal + credentials. + + + + + + + + +Jenkins & Newman Standards Track [Page 73] + +RFC 8620 JMAP July 2019 + + +8.4. JSON Parsing + + The Security Considerations of [RFC8259] apply to the use of JSON as + the data interchange format. + + As for any serialization format, parsers need to thoroughly check the + syntax of the supplied data. JSON uses opening and closing tags for + several types and structures, and it is possible that the end of the + supplied data will be reached when scanning for a matching closing + tag; this is an error condition, and implementations need to stop + scanning at the end of the supplied data. + + JSON also uses a string encoding with some escape sequences to encode + special characters within a string. Care is needed when processing + these escape sequences to ensure that they are fully formed before + the special processing is triggered, with special care taken when the + escape sequences appear adjacent to other (non-escaped) special + characters or adjacent to the end of data (as in the previous + paragraph). + + If parsing JSON into a non-textual structured data format, + implementations may need to allocate storage to hold JSON string + elements. Since JSON does not use explicit string lengths, the risk + of denial of service due to resource exhaustion is small, but + implementations may still wish to place limits on the size of + allocations they are willing to make in any given context, to avoid + untrusted data causing excessive memory allocation. + +8.5. Denial of Service + + A small request may result in a very large response and require + considerable work on the server if resource limits are not enforced. + JMAP provides mechanisms for advertising and enforcing a wide variety + of limits for mitigating this threat, including limits on the number + of objects fetched in a single method call, number of methods in a + single request, number of concurrent requests, etc. + + JMAP servers MUST implement sensible limits to mitigate against + resource exhaustion attacks. + +8.6. Connection to Unknown Push Server + + When a push subscription is registered, the application server will + make POST requests to the given URL. There are a number of security + considerations that MUST be considered when implementing this. + + + + + + +Jenkins & Newman Standards Track [Page 74] + +RFC 8620 JMAP July 2019 + + + The server MUST ensure the URL is externally resolvable to avoid + server-side request forgery, where the server makes a request to a + resource on its internal network. + + A malicious client may use the push subscription to attempt to flood + a third party server with requests, creating a denial-of-service + attack and masking the attacker's true identity. There is no + guarantee that the URL given to the JMAP server is actually a valid + push server. Upon creation of a push subscription, the JMAP server + sends a PushVerification object to the URL and MUST NOT send any + further requests until the client verifies it has received the + initial push. The verification code MUST contain sufficient entropy + to prevent the client from being able to verify the subscription via + brute force. + + The verification code does not guarantee the URL is a valid push + server, only that the client is able to access the data submitted to + it. While the verification step significantly reduces the set of + potential targets, there is still a risk that the server is unrelated + to the client and being targeted for a denial-of-service attack. + + The server MUST limit the number of push subscriptions any one user + may have to ensure the user cannot cause the server to send a large + number of push notifications at once, which could again be used as + part of a denial-of-service attack. The rate of creation MUST also + be limited to minimise the ability to abuse the verification request + as an attack vector. + +8.7. Push Encryption + + When data changes, a small object is pushed with the new state + strings for the types that have changed. While the data here is + minimal, a passive man-in-the-middle attacker may be able to gain + useful information. To ensure confidentiality and integrity, if the + push is sent via a third party outside of the control of the client + and JMAP server, the client MUST specify encryption keys when + establishing the PushSubscription and ignore any push notification + received that is not encrypted with those keys. + + The privacy and security considerations of [RFC8030] and [RFC8291] + also apply to the use of the PushSubscription mechanism. + + As there is no crypto algorithm agility in Web Push Encryption + [RFC8291], a new specification will be needed to provide this if new + algorithms are required in the future. + + + + + + +Jenkins & Newman Standards Track [Page 75] + +RFC 8620 JMAP July 2019 + + +8.8. Traffic Analysis + + While the data is encrypted, a passive observer with the ability to + monitor network traffic may be able to glean information from the + timing of API requests and push notifications. For example, suppose + an email or calendar invitation is sent from User A (hosted on Server + X) to User B (hosted on Server Y). If Server X hosts data for many + users, a passive observer can see that the two servers connected but + does not know who the data was for. However, if a push notification + is immediately sent to User B and the attacker can observe this as + well, they may reasonably conclude that someone on Server X is + connecting to User B. + +9. IANA Considerations + +9.1. Assignment of jmap Service Name + + IANA has assigned the 'jmap' service name in the "Service Name and + Transport Protocol Port Number Registry" [RFC6335]. + + Service Name: jmap + + Transport Protocol(s): tcp + + Assignee: IESG + + Contact: IETF Chair + + Description: JSON Meta Application Protocol + + Reference: RFC 8620 + + Assignment Notes: This service name was previously assigned under the + name "JSON Mail Access Protocol". This has been de-assigned and + re-assigned with the approval of the previous assignee. + +9.2. Registration of Well-Known URI Suffix for JMAP + + IANA has registered the following suffix in the "Well-Known URIs" + registry for JMAP, as described in [RFC8615]: + + URI Suffix: jmap + + Change Controller: IETF + + Specification Document: RFC 8620, Section 2.2. + + + + + +Jenkins & Newman Standards Track [Page 76] + +RFC 8620 JMAP July 2019 + + +9.3. Registration of the jmap URN Sub-namespace + + IANA has registered the following URN sub-namespace in the "IETF URN + Sub-namespace for Registered Protocol Parameter Identifiers" registry + within the "Uniform Resource Name (URN) Namespace for IETF Use" + registry as described in [RFC3553]. + + Registered Parameter Identifier: jmap + + Reference: RFC 8620, Section 9.4 + + IANA Registry Reference: http://www.iana.org/assignments/jmap + +9.4. Creation of "JMAP Capabilities" Registry + + IANA has created the "JMAP Capabilities" registry as described in + Section 2. JMAP capabilities are advertised in the "capabilities" + property of the JMAP Session resource. They are used to extend the + functionality of a JMAP server. A capability is referenced by a URI. + The JMAP capability URI can be a URN starting with + "urn:ietf:params:jmap:" plus a unique suffix that is the index value + in the jmap URN sub-namespace. Registration of a JMAP capability + with another form of URI has no impact on the jmap URN sub-namespace. + + This registry follows the expert review process unless the "intended + use" field is "common" or "placeholder", in which case registration + follows the specification required process. + + A JMAP capability registration can have an intended use of "common", + "placeholder", "limited", or "obsolete". IANA will list common-use + registrations prominently and separately from those with other + intended use values. + + The JMAP capability registration procedure is not a formal standards + process but rather an administrative procedure intended to allow + community comment and sanity checking without excessive time delay. + + A "placeholder" registration reserves part of the jmap URN namespace + for another purpose but is typically not included in the + "capabilities" property of the JMAP Session resource. + +9.4.1. Preliminary Community Review + + Notice of a potential JMAP common-use registration SHOULD be sent to + the JMAP mailing list for review. This mailing list + is appropriate to solicit community feedback on a proposed JMAP + + + + + +Jenkins & Newman Standards Track [Page 77] + +RFC 8620 JMAP July 2019 + + + capability. Registrations that are not intended for common use MAY + be sent to the list for review as well; doing so is entirely + OPTIONAL, but is encouraged. + + The intent of the public posting to this list is to solicit comments + and feedback on the choice of the capability name, the unambiguity of + the specification document, and a review of any interoperability or + security considerations. The submitter may submit a revised + registration proposal or abandon the registration completely at any + time. + +9.4.2. Submit Request to IANA + + Registration requests can be sent to . + +9.4.3. Designated Expert Review + + For a limited-use registration, the primary concern of the designated + expert (DE) is preventing name collisions and encouraging the + submitter to document security and privacy considerations; a + published specification is not required. For a common-use + registration, the DE is expected to confirm that suitable + documentation, as described in Section 4.6 of [RFC8126], is + available. The DE should also verify that the capability does not + conflict with work that is active or already published within the + IETF. + + Before a period of 30 days has passed, the DE will either approve or + deny the registration request and publish a notice of the decision to + the JMAP WG mailing list or its successor, as well as inform IANA. A + denial notice must be justified by an explanation, and, in the cases + where it is possible, concrete suggestions on how the request can be + modified so as to become acceptable should be provided. + + If the DE does not respond within 30 days, the registrant may request + the IESG take action to process the request in a timely manner. + +9.4.4. Change Procedures + + Once a JMAP capability has been published by the IANA, the change + controller may request a change to its definition. The same + procedure that would be appropriate for the original registration + request is used to process a change request. + + JMAP capability registrations may not be deleted; capabilities that + are no longer believed appropriate for use can be declared obsolete + by a change to their "intended use" field; such capabilities will be + clearly marked in the lists published by the IANA. + + + +Jenkins & Newman Standards Track [Page 78] + +RFC 8620 JMAP July 2019 + + + Significant changes to a capability's definition should be requested + only when there are serious omissions or errors in the published + specification. When review is required, a change request may be + denied if it renders entities that were valid under the previous + definition invalid under the new definition. + + The owner of a JMAP capability may pass responsibility to another + person or agency by informing the IANA; this can be done without + discussion or review. + + The IESG may reassign responsibility for a JMAP capability. The most + common case of this will be to enable changes to be made to + capabilities where the author of the registration has died, moved out + of contact, or is otherwise unable to make changes that are important + to the community. + +9.4.5. JMAP Capabilities Registry Template + + Capability name: (see capability property in Section 2) + + Specification document: + + Intended use: (one of common, limited, placeholder, or obsolete) + + Change controller: ("IETF" for Standards Track / BCP RFCs) + + Security and privacy considerations: + +9.4.6. Initial Registration for JMAP Core + + Capability Name: "urn:ietf:params:jmap:core" + + Specification document: RFC 8620, Section 2 + + Intended use: common + + Change Controller: IETF + + Security and privacy considerations: RFC 8620, Section 8. + + + + + + + + + + + + +Jenkins & Newman Standards Track [Page 79] + +RFC 8620 JMAP July 2019 + + +9.4.7. Registration for JMAP Error Placeholder in JMAP Capabilities + Registry + + Capability Name: "urn:ietf:params:jmap:error:" + + Specification document: RFC 8620, Section 9.5 + + Intended use: placeholder + + Change Controller: IETF + + Security and privacy considerations: RFC 8620, Section 8. + +9.5. Creation of "JMAP Error Codes" Registry + + IANA has created the "JMAP Error Codes" registry. JMAP error codes + appear in the "type" member of a JSON problem details object (as + described in Section 3.6.1), the "type" member in a JMAP error object + (as described in Section 3.6.2), or the "type" member of a JMAP + method-specific error object (such as SetError in Section 5.3). When + used in a problem details object, the prefix + "urn:ietf:params:jmap:error:" is always included; when used in JMAP + objects, the prefix is always omitted. + + This registry follows the expert review process. Preliminary + community review for this registry follows the same procedures as the + "JMAP Capabilities" registry, but it is optional. The change + procedures for this registry are the same as the change procedures + for the "JMAP Capabilities" registry. + +9.5.1. Expert Review + + The designated expert should review the following aspects of the + registration: + + 1. Verify the error code does not conflict with existing names. + + 2. Verify the error code follows the syntax limitations (does not + require URI encoding). + + 3. Encourage the submitter to follow the naming convention of + previously registered errors. + + 4. Encourage the submitter to describe client behaviours that are + recommended in response to the error code. These may distinguish + the error code from other error codes. + + + + + +Jenkins & Newman Standards Track [Page 80] + +RFC 8620 JMAP July 2019 + + + 5. Encourage the submitter to describe when the server should issue + the error as opposed to some other error code. + + 6. Encourage the submitter to note any security considerations + associated with the error, if any (e.g., an error code that might + disclose existence of data the authenticated user does not have + permission to know about). + + Steps 3-6 are meant to promote a higher-quality registry. However, + the expert is encouraged to approve any registration that would not + actively harm JMAP interoperability to make this a relatively + lightweight process. + +9.5.2. JMAP Error Codes Registry Template + + JMAP Error Code: + + Intended use: (one of "common", "limited", "obsolete") + + Change Controller: ("IETF" for Standards Track / BCP RFCs) + + Reference: (Optional. Only required if defined in an RFC.) + + Description: + +9.5.3. Initial Contents for the JMAP Error Codes Registry + + o JMAP Error Code: accountNotFound + Intended Use: Common + Change Controller: IETF + Reference: RFC 8620, Section 3.6.2 + Description: The accountId does not correspond to a valid account. + + o JMAP Error Code: accountNotSupportedByMethod + Intended Use: Common + Change Controller: IETF + Reference: RFC 8620, Section 3.6.2 + Description: The accountId given corresponds to a valid account, + but the account does not support this method or data type. + + o JMAP Error Code: accountReadOnly + Intended Use: Common + Change Controller: IETF + Reference: RFC 8620, Section 3.6.2 + Description: This method modifies state, but the account is read- + only (as returned on the corresponding Account object in the JMAP + Session resource). + + + + +Jenkins & Newman Standards Track [Page 81] + +RFC 8620 JMAP July 2019 + + + o JMAP Error Code: anchorNotFound + Intended Use: Common + Change Controller: IETF + Reference: RFC 8620, Section 5.5 + Description: An anchor argument was supplied, but it cannot be + found in the results of the query. + + o JMAP Error Code: alreadyExists + Intended Use: Common + Change Controller: IETF + Reference: RFC 8620, Section 5.4 + Description: The server forbids duplicates, and the record already + exists in the target account. An existingId property of type Id + MUST be included on the SetError object with the id of the + existing record. + + o JMAP Error Code: cannotCalculateChanges + Intended Use: Common + Change Controller: IETF + Reference: RFC 8620, Sections 5.2 and 5.6 + Description: The server cannot calculate the changes from the + state string given by the client. + + o JMAP Error Code: forbidden + Intended Use: Common + Change Controller: IETF + Reference: RFC 8620, Sections 3.6.2, 5.3, and 7.2.1 + Description: The action would violate an ACL or other permissions + policy. + + o JMAP Error Code: fromAccountNotFound + Intended Use: Common + Change Controller: IETF + Reference: RFC 8620, Sections 5.4 and 6.3 + Description: The fromAccountId does not correspond to a valid + account. + + o JMAP Error Code: fromAccountNotSupportedByMethod + Intended Use: Common + Change Controller: IETF + Reference: RFC 8620, Section 5.4 + Description: The fromAccountId given corresponds to a valid + account, but the account does not support this data type. + + + + + + + + +Jenkins & Newman Standards Track [Page 82] + +RFC 8620 JMAP July 2019 + + + o JMAP Error Code: invalidArguments + Intended Use: Common + Change Controller: IETF + Reference: RFC 8620, Section 3.6.2 + Description: One of the arguments is of the wrong type or + otherwise invalid, or a required argument is missing. + + o JMAP Error Code: invalidPatch + Intended Use: Common + Change Controller: IETF + Reference: RFC 8620, Section 5.3 + Description: The PatchObject given to update the record was not a + valid patch. + + o JMAP Error Code: invalidProperties + Intended Use: Common + Change Controller: IETF + Reference: RFC 8620, Section 5.3 + Description: The record given is invalid. + + o JMAP Error Code: notFound + Intended Use: Common + Change Controller: IETF + Reference: RFC 8620, Section 5.3 + Description: The id given cannot be found. + + o JMAP Error Code: notJSON + Intended Use: Common + Change Controller: IETF + Reference: RFC 8620, Section 3.6.1 + Description: The content type of the request was not application/ + json, or the request did not parse as I-JSON. + + o JMAP Error Code: notRequest + Intended Use: Common + Change Controller: IETF + Reference: RFC 8620, Section 3.6.1 + Description: The request parsed as JSON but did not match the type + signature of the Request object. + + o JMAP Error Code: overQuota + Intended Use: Common + Change Controller: IETF + Reference: RFC 8620, Section 5.3 + Description: The create would exceed a server-defined limit on the + number or total size of objects of this type. + + + + + +Jenkins & Newman Standards Track [Page 83] + +RFC 8620 JMAP July 2019 + + + o JMAP Error Code: rateLimit + Intended Use: Common + Change Controller: IETF + Reference: RFC 8620, Section 5.3 + Description: Too many objects of this type have been created + recently, and a server-defined rate limit has been reached. It + may work if tried again later. + + o JMAP Error Code: requestTooLarge + Intended Use: Common + Change Controller: IETF + Reference: RFC 8620, Sections 5.1 and 5.3 + Description: The total number of actions exceeds the maximum + number the server is willing to process in a single method call. + + o JMAP Error Code: invalidResultReference + Intended Use: Common + Change Controller: IETF + Reference: RFC 8620, Section 3.6.2 + Description: The method used a result reference for one of its + arguments, but this failed to resolve. + + o JMAP Error Code: serverFail + Intended Use: Common + Change Controller: IETF + Reference: RFC 8620, Section 3.6.2 + Description: An unexpected or unknown error occurred during the + processing of the call. The method call made no changes to the + server's state. + + o JMAP Error Code: serverPartialFail + Intended Use: Limited + Change Controller: IETF + Reference: RFC 8620, Section 3.6.2 + Description: Some, but not all, expected changes described by the + method occurred. The client MUST resynchronise impacted data to + determine the server state. Use of this error is strongly + discouraged. + + o JMAP Error Code: serverUnavailable + Intended Use: Common + Change Controller: IETF + Reference: RFC 8620, Section 3.6.2 + Description: Some internal server resource was temporarily + unavailable. Attempting the same operation later (perhaps after a + backoff with a random factor) may succeed. + + + + + +Jenkins & Newman Standards Track [Page 84] + +RFC 8620 JMAP July 2019 + + + o JMAP Error Code: singleton + Intended Use: Common + Change Controller: IETF + Reference: RFC 8620, Section 5.3 + Description: This is a singleton type, so you cannot create + another one or destroy the existing one. + + o JMAP Error Code: stateMismatch + Intended Use: Common + Change Controller: IETF + Reference: RFC 8620, Section 5.3 + Description: An ifInState argument was supplied, and it does not + match the current state. + + o JMAP Error Code: tooLarge + Intended Use: Common + Change Controller: IETF + Reference: RFC 8620, Section 5.3 + Description: The action would result in an object that exceeds a + server-defined limit for the maximum size of a single object of + this type. + + o JMAP Error Code: tooManyChanges + Intended Use: Common + Change Controller: IETF + Reference: RFC 8620, Section 5.6 + Description: There are more changes than the client's maxChanges + argument. + + o JMAP Error Code: unknownCapability + Intended Use: Common + Change Controller: IETF + Reference: RFC 8620, Section 3.6.1 + Description: The client included a capability in the "using" + property of the request that the server does not support. + + o JMAP Error Code: unknownMethod + Intended Use: Common + Change Controller: IETF + Reference: RFC 8620, Section 3.6.2 + Description: The server does not recognise this method name. + + o JMAP Error Code: unsupportedFilter + Intended Use: Common + Change Controller: IETF + Reference: RFC 8620, Section 5.5 + Description: The filter is syntactically valid, but the server + cannot process it. + + + +Jenkins & Newman Standards Track [Page 85] + +RFC 8620 JMAP July 2019 + + + o JMAP Error Code: unsupportedSort + Intended Use: Common + Change Controller: IETF + Reference: RFC 8620, Section 5.5 + Description: The sort is syntactically valid but includes a + property the server does not support sorting on or a collation + method it does not recognise. + + o JMAP Error Code: willDestroy + Intended Use: Common + Change Controller: IETF + Reference: RFC 8620, Section 5.3 + Description: The client requested an object be both updated and + destroyed in the same /set request, and the server has decided to + therefore ignore the update. + +10. References + +10.1. Normative References + + [EventSource] + Hickson, I., "Server-Sent Events", World Wide Web + Consortium Recommendation REC-eventsource-20150203, + February 2015, . + + [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate + Requirement Levels", BCP 14, RFC 2119, + DOI 10.17487/RFC2119, March 1997, + . + + [RFC2782] Gulbrandsen, A., Vixie, P., and L. Esibov, "A DNS RR for + specifying the location of services (DNS SRV)", RFC 2782, + DOI 10.17487/RFC2782, February 2000, + . + + [RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818, + DOI 10.17487/RFC2818, May 2000, + . + + [RFC3339] Klyne, G. and C. Newman, "Date and Time on the Internet: + Timestamps", RFC 3339, DOI 10.17487/RFC3339, July 2002, + . + + [RFC3553] Mealling, M., Masinter, L., Hardie, T., and G. Klyne, "An + IETF URN Sub-namespace for Registered Protocol + Parameters", BCP 73, RFC 3553, DOI 10.17487/RFC3553, June + 2003, . + + + + +Jenkins & Newman Standards Track [Page 86] + +RFC 8620 JMAP July 2019 + + + [RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO + 10646", STD 63, RFC 3629, DOI 10.17487/RFC3629, November + 2003, . + + [RFC4648] Josefsson, S., "The Base16, Base32, and Base64 Data + Encodings", RFC 4648, DOI 10.17487/RFC4648, October 2006, + . + + [RFC4790] Newman, C., Duerst, M., and A. Gulbrandsen, "Internet + Application Protocol Collation Registry", RFC 4790, + DOI 10.17487/RFC4790, March 2007, + . + + [RFC5051] Crispin, M., "i;unicode-casemap - Simple Unicode Collation + Algorithm", RFC 5051, DOI 10.17487/RFC5051, October 2007, + . + + [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security + (TLS) Protocol Version 1.2", RFC 5246, + DOI 10.17487/RFC5246, August 2008, + . + + [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., + Housley, R., and W. Polk, "Internet X.509 Public Key + Infrastructure Certificate and Certificate Revocation List + (CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008, + . + + [RFC5322] Resnick, P., Ed., "Internet Message Format", RFC 5322, + DOI 10.17487/RFC5322, October 2008, + . + + [RFC6186] Daboo, C., "Use of SRV Records for Locating Email + Submission/Access Services", RFC 6186, + DOI 10.17487/RFC6186, March 2011, + . + + [RFC6335] Cotton, M., Eggert, L., Touch, J., Westerlund, M., and S. + Cheshire, "Internet Assigned Numbers Authority (IANA) + Procedures for the Management of the Service Name and + Transport Protocol Port Number Registry", BCP 165, + RFC 6335, DOI 10.17487/RFC6335, August 2011, + . + + [RFC6570] Gregorio, J., Fielding, R., Hadley, M., Nottingham, M., + and D. Orchard, "URI Template", RFC 6570, + DOI 10.17487/RFC6570, March 2012, + . + + + +Jenkins & Newman Standards Track [Page 87] + +RFC 8620 JMAP July 2019 + + + [RFC6749] Hardt, D., Ed., "The OAuth 2.0 Authorization Framework", + RFC 6749, DOI 10.17487/RFC6749, October 2012, + . + + [RFC6764] Daboo, C., "Locating Services for Calendaring Extensions + to WebDAV (CalDAV) and vCard Extensions to WebDAV + (CardDAV)", RFC 6764, DOI 10.17487/RFC6764, February 2013, + . + + [RFC6838] Freed, N., Klensin, J., and T. Hansen, "Media Type + Specifications and Registration Procedures", BCP 13, + RFC 6838, DOI 10.17487/RFC6838, January 2013, + . + + [RFC6901] Bryan, P., Ed., Zyp, K., and M. Nottingham, Ed., + "JavaScript Object Notation (JSON) Pointer", RFC 6901, + DOI 10.17487/RFC6901, April 2013, + . + + [RFC7230] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer + Protocol (HTTP/1.1): Message Syntax and Routing", + RFC 7230, DOI 10.17487/RFC7230, June 2014, + . + + [RFC7231] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer + Protocol (HTTP/1.1): Semantics and Content", RFC 7231, + DOI 10.17487/RFC7231, June 2014, + . + + [RFC7493] Bray, T., Ed., "The I-JSON Message Format", RFC 7493, + DOI 10.17487/RFC7493, March 2015, + . + + [RFC7525] Sheffer, Y., Holz, R., and P. Saint-Andre, + "Recommendations for Secure Use of Transport Layer + Security (TLS) and Datagram Transport Layer Security + (DTLS)", BCP 195, RFC 7525, DOI 10.17487/RFC7525, May + 2015, . + + [RFC7617] Reschke, J., "The 'Basic' HTTP Authentication Scheme", + RFC 7617, DOI 10.17487/RFC7617, September 2015, + . + + [RFC7807] Nottingham, M. and E. Wilde, "Problem Details for HTTP + APIs", RFC 7807, DOI 10.17487/RFC7807, March 2016, + . + + + + + +Jenkins & Newman Standards Track [Page 88] + +RFC 8620 JMAP July 2019 + + + [RFC8030] Thomson, M., Damaggio, E., and B. Raymor, Ed., "Generic + Event Delivery Using HTTP Push", RFC 8030, + DOI 10.17487/RFC8030, December 2016, + . + + [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for + Writing an IANA Considerations Section in RFCs", BCP 26, + RFC 8126, DOI 10.17487/RFC8126, June 2017, + . + + [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC + 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, + May 2017, . + + [RFC8259] Bray, T., Ed., "The JavaScript Object Notation (JSON) Data + Interchange Format", STD 90, RFC 8259, + DOI 10.17487/RFC8259, December 2017, + . + + [RFC8264] Saint-Andre, P. and M. Blanchet, "PRECIS Framework: + Preparation, Enforcement, and Comparison of + Internationalized Strings in Application Protocols", + RFC 8264, DOI 10.17487/RFC8264, October 2017, + . + + [RFC8291] Thomson, M., "Message Encryption for Web Push", RFC 8291, + DOI 10.17487/RFC8291, November 2017, + . + + [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol + Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, + . + + [RFC8615] Nottingham, M., "Well-Known Uniform Resource Identifiers + (URIs)", RFC 8615, DOI 10.17487/RFC8615, May 2019, + . + +10.2. Informative References + + [RFC8246] McManus, P., "HTTP Immutable Responses", RFC 8246, + DOI 10.17487/RFC8246, September 2017, + . + + + + + + + + + +Jenkins & Newman Standards Track [Page 89] + +RFC 8620 JMAP July 2019 + + +Authors' Addresses + + Neil Jenkins + Fastmail + PO Box 234, Collins St. West + Melbourne, VIC 8007 + Australia + + Email: neilj@fastmailteam.com + URI: https://www.fastmail.com + + + Chris Newman + Oracle + 440 E. Huntington Dr., Suite 400 + Arcadia, CA 91006 + United States of America + + Email: chris.newman@oracle.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Jenkins & Newman Standards Track [Page 90] + diff --git a/specifications/mail/rfc2369.pdf b/specifications/mail/rfc2369.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3cd84ffd837748fafd8e1b315f5b29bde426cf18 GIT binary patch literal 21006 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 NRXZZuZl7MCH$ORgSv>#% literal 0 HcmV?d00001 diff --git a/specifications/mail/rfc2369.txt b/specifications/mail/rfc2369.txt new file mode 100644 index 00000000..77a1f68f --- /dev/null +++ b/specifications/mail/rfc2369.txt @@ -0,0 +1,843 @@ + + + + + + +Network Working Group G. Neufeld +Request for Comments: 2369 Nisto +Category: Standards Track J. Baer + SkyWeyr Technologies + July 1998 + + + The Use of URLs as Meta-Syntax for Core Mail List Commands + and their Transport through Message Header Fields + +Status of this Memo + + This document specifies an Internet standards track protocol for the + Internet community, and requests discussion and suggestions for + improvements. Please refer to the current edition of the "Internet + Official Protocol Standards" (STD 1) for the standardization state + and status of this protocol. Distribution of this memo is unlimited. + +Copyright Notice + + Copyright (C) The Internet Society (1998). All Rights Reserved. + +Abstract + + The mailing list command specification header fields are a set of + structured fields to be added to email messages sent by email + distribution lists. Each field typically contains a URL (usually + mailto [RFC2368]) locating the relevant information or performing the + command directly. The three core header fields described in this + document are List-Help, List-Subscribe, and List-Unsubscribe. + + There are three other header fields described here which, although + not as widely applicable, will have utility for a sufficient number + of mailing lists to justify their formalization here. These are + List-Post, List-Owner and List-Archive. + + By including these header fields, list servers can make it possible + for mail clients to provide automated tools for users to perform list + functions. This could take the form of a menu item, push button, or + other user interface element. The intent is to simplify the user + experience, providing a common interface to the often cryptic and + varied mailing list manager commands. + + The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", + "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this + document are to be interpreted as described in RFC 2119. + + + + + +Neufeld & Baer Standards Track [Page 1] + +RFC 2369 URLs as Meta-Syntax July 1998 + + +1. Introduction + + This is a proposal for additional header fields to be added to email + messages sent by email distribution lists. The content of each new + field is typically a URL - usually mailto [RFC2368] - which locates + the relevant information or performs the command directly. MTAs + generating the header fields SHOULD usually include a mailto based + command, in addition to any other protocols used, in order to support + users who do not have access to non-mail-based protocols. + + Implementing these fields will be optional. Significant functionality + and convenience can be gained by including them, however. Many list + managers, especially as the proposal first gains acceptance, MAY + choose to implement only one or two of the fields. The List-Help + field is the most useful individual field since it provides an access + point to detailed user support information, and accommodates almost + all existing list managers command sets. The List-Subscribe and + List-Unsubscribe fields are also very useful, but cannot describe + some list manager syntaxes at this time (those which require variable + substitution). See appendix A.5 for an explanation. + + The description of command syntax provided by the fields can be used + by mail client applications to provide simplified and consistent user + access to email distribution list functions. This could take the form + of menu items, push buttons, or other user interface elements. The + intent is to simplify the user experience, providing a common + interface to the often cryptic and varied mailing list manager + commands. + + Consideration has been given to avoiding the creation of too many + fields, while at the same time avoiding the overloading of individual + fields and keeping the syntax clear and simple. + + The use of these fields does not remove the requirement to support + the -Request command address for mailing lists [RFC2142]. + +2. The Command Syntax + + The list header fields are subject to the encoding and character + restrictions for mail headers as described in [RFC822]. Additionally, + the URL content is further restricted to the set of URL safe + characters [RFC1738]. + + The contents of the list header fields mostly consist of angle- + bracket ('<', '>') enclosed URLs, with internal whitespace being + ignored. MTAs MUST NOT insert whitespace within the brackets, but + client applications should treat any whitespace, that might be + inserted by poorly behaved MTAs, as characters to ignore. + + + +Neufeld & Baer Standards Track [Page 2] + +RFC 2369 URLs as Meta-Syntax July 1998 + + + A list of multiple, alternate, URLs MAY be specified by a comma- + separated list of angle-bracket enclosed URLs. The URLs have order of + preference from left to right. The client application should use the + left most protocol that it supports, or knows how to access by a + separate application. By this mechanism, protocols like http may be + specified while still providing the basic mailto support for those + clients who do not have access to non-mail protocols. The client + should only use one of the available URLs for a command, using + another only if the first one used failed. + + The use of URLs allows for the use of the syntax with existing URL + supporting applications. As the standard for URLs is extended, the + list header fields will gain the benefit of those extensions. + Additionally, the use of URLs provides access to multiple transport + protocols (such as ftp and http) although it is expected that the + "mailto" protocol [RFC2368] will be the focus of most use of the list + header fields. Use of non-mailto protocols should be considered in + light of those users who do not have access to the specified + mechanism (those who only have email - with no web access). + + Command syntaxes requiring variable fields to be set by the client + (such as including the user's email address within a command) are not + supported by this implementation. However, systems using such + syntaxes SHOULD still take advantage of the List-Help field to + provide the user with detailed instructions as needed or - perhaps + more usefully - provide access to some form of structured command + interface such as an HTML-based form. + + The additional complications of supporting variable fields within the + command syntax was determined to be too difficult to support by this + protocol and would compromise the likelihood of implementation by + software authors. + + To allow for future extension, client applications MUST follow the + following guidelines for handling the contents of the header fields + described in this document: + + 1) Except where noted for specific fields, if the content of the + field (following any leading whitespace, including comments) + begins with any character other than the opening angle bracket + '<', the field SHOULD be ignored. + + 2) Any characters following an angle bracket enclosed URL SHOULD be + ignored, unless a comma is the first non-whitespace/comment + character after the closing angle bracket. + + + + + + +Neufeld & Baer Standards Track [Page 3] + +RFC 2369 URLs as Meta-Syntax July 1998 + + + 3) If a sub-item (comma-separated item) within the field is not an + angle-bracket enclosed URL, the remainder of the field (the + current, and all subsequent, sub-items) SHOULD be ignored. + +3. The List Header Fields + + This document presents header fields which will provide the + command syntax description for the 'core' and key secondary + functions of most email distribution lists. The fields implemented + on a given list SHOULD be included on all messages distributed by + the list (including command responses to individual users), and on + other messages where the message clearly applies to one distinct + list. There MUST be no more than one of each field present in any + given message. + + These fields MUST only be generated by mailing lists, not end + users. + +3.1. List-Help + + The List-Help field is the most important of the header fields + described in this document. It would be acceptable for a list + manager to include only this field, since by definition it SHOULD + direct the user to complete instructions for all other commands. + Typically, the URL specified would request the help file, perhaps + incorporating an HTML form for list commands, for the list, and + alternatively provide access to an instructive website. + + Examples: + + List-Help: (List Instructions) + List-Help: + List-Help: (Info about the list) + List-Help: , + List-Help: (FTP), + + +3.2. List-Unsubscribe + + The List-Unsubscribe field describes the command (preferably using + mail) to directly unsubscribe the user (removing them from the list). + + Examples: + + List-Unsubscribe: + List-Unsubscribe: (Use this command to get off the list) + + List-Unsubscribe: + + + +Neufeld & Baer Standards Track [Page 4] + +RFC 2369 URLs as Meta-Syntax July 1998 + + + List-Unsubscribe: , + + +3.3. List-Subscribe + + The List-Subscribe field describes the command (preferably using + mail) to directly subscribe the user (request addition to the list). + + Examples: + + List-Subscribe: + List-Subscribe: + List-Subscribe: (Use this command to join the list) + + List-Subscribe: + List-Subscribe: , + + +3.4. List-Post + + The List-Post field describes the method for posting to the list. + This is typically the address of the list, but MAY be a moderator, or + potentially some other form of submission. For the special case of a + list that does not allow posting (e.g., an announcements list), the + List-Post field may contain the special value "NO". + + Examples: + + List-Post: + List-Post: (Postings are Moderated) + List-Post: + List-Post: NO (posting not allowed on this list) + +3.5. List-Owner + + The List-Owner field identifies the path to contact a human + administrator for the list. The URL MAY contain the address of a + administrator for the list, the mail system administrator, or any + other person who can handle user contact for the list. There is no + need to specify List-Owner if it is the same person as the mail + system administrator (postmaster). + + Examples: + + List-Owner: (Contact Person for Help) + List-Owner: (Grant Neufeld) + List-Owner: + + + + +Neufeld & Baer Standards Track [Page 5] + +RFC 2369 URLs as Meta-Syntax July 1998 + + +3.6. List-Archive + + The List-Archive field describes how to access archives for the list. + + Examples: + + List-Archive: + List-Archive: + List-Archive: (Web Archive) + +4. Supporting Nested Lists + + A list that is a sublist for another list in a nested mailing list + hierarchy will need to modify some of the List- header fields, while + leaving others as the parent list set them. + + Sublists SHOULD remove the parent list's List-Help, List-Subscribe, + List-Unsubscribe and List-Owner fields, and SHOULD insert their own + versions of those fields. + + If the sublist provides its own archive, it SHOULD replace the List- + Archive with its own. Otherwise, it MUST leave the List-Archive field + untouched. + + Dependant on how postings to the list are handled, the sublist MAY + replace the List-Post field. The appropriateness of whether to + replace List-Post is left to the determination of the individual list + managers. If the intention is that postings should be distributed to + all members of the primary list, List-Post should not be changed by a + sublist in such a way that postings will be distributed only to + members of the sublist. + +5. Security Considerations + + There are very few new security concerns generated with this + proposal. Message headers are an existing standard, designed to + easily accommodate new types. There may be concern with multiple + fields being inserted or headers being forged, but these are problems + inherent in Internet email, not specific to the protocol described in + this document. Further, the implications are relatively harmless. + + Mail list processors should not allow any user-originated list header + fields to pass through to their lists, lest they confuse the user and + have the potential to create security problems. + + On the client side, there may be some concern with posts or commands + being sent in error. It is required that the user have a chance to + confirm any action before it is executed. In the case of mailto, it + + + +Neufeld & Baer Standards Track [Page 6] + +RFC 2369 URLs as Meta-Syntax July 1998 + + + may be appropriate to create the correctly formatted message without + sending it, allowing the user to see exactly what is happening and + giving the user the opportunity to approve or discard the message + before it is sent. + + All security considerations for the use of URLs [RFC1738] apply + equally to this protocol. Mail client applications should not support + list header field URLs which could compromise the security of the + user's system. This includes the "file://" URL type which could + potentially be used to trigger the execution of a local application + on some user systems. + +6. Acknowledgements + + The numerous participants of the List-Header [5], ListMom-Talk [6], + List-Managers and MIDA-Mail mailing lists contributed much to the + formation and structure of this document. + + Keith Moore and Christopher Allen + provided guidance on the standards + process. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Neufeld & Baer Standards Track [Page 7] + +RFC 2369 URLs as Meta-Syntax July 1998 + + +A. Background Discussion + + This proposal arose from discussions started on the ListMom-Talk + Discussion List [6]. When the discussion reached a sufficient level, + a separate list was formed for discussing this proposal, the List + Headers Mail List [5] for deeper discussion. We have included + summaries of key issues raised, in order to show some of the + alternatives examined and reasons for our decisions. + +A.1. Multiple header fields vs. a single header field + + Use of a single header field for transporting command meta-syntax was + rejected for a number of reasons. + + Such a field would require the creation of a new meta-syntax in order + to describe the list commands (as opposed to the use of the widely + deployed URL syntax which was chosen for this implementation). Every + additional layer of complexity and newness reduces the likelihood of + actual implementation because it will require additional work to + support. Also, by using the existing URL syntax, we can profit from + the end users' knowledge of that syntax and ability to use it even if + their client applications do not support the list header fields. + + Restricting the transport of meta-syntax to the use of a single + header field also introduces complications with header field size + limitations. Most individual commands can easily be described in a + single line, but describing a multitude of commands can take up many + lines in the field and runs a greater risk of being modified by an + existing server on route. + + The client implementation is also easier with multiple fields, since + each command can be supported and implemented individually, + completely independent of the others. Thus, some list managers or + mail clients can choose to implement a subset of the fields based on + the specific needs of their individual lists. + + Finally, the format described in this document is simple and well + recognized, which reduces the chances of errors in implementation and + parsing. + +A.2. URLs vs. parameter lists + + URLs are already an established syntax which is flexible, well- + defined, and in wide spread use. As its definition matures and + expands, the abilities of the list fields will grow as well, without + requiring modification of this proposal. URLs are well prepared to + handle future protocols and developments, and can easily describe the + different existing access protocols such as mailto, http and ftp. + + + +Neufeld & Baer Standards Track [Page 8] + +RFC 2369 URLs as Meta-Syntax July 1998 + + + Many clients already have functionality for recognizing, parsing, and + evaluating URLs, either internally or by passing the request to a + helper application. This makes implementation easier and more + realistic. As an example, this existing support for URL parsing + allowed us to add prototype list header functionality to existing + mail clients (Eudora and Emailer for the Macintosh) without modifying + their source code. + +A.3. Why not just create a standard command language? + + A standard command language, supported by all email list services, + would go a long way to reducing the problems of list access that + currently plague existing services. It would reduce the amount of + learning required by end users and allow for a number of common + support tools to be developed. + + However, such standardization does pose problems in the areas of + multi-lingual support and the custom needs of individual mailing + lists. The development of such a standard is also expected to be met + with a slow adoption rate by software developers and list service + providers. + + These points do not preclude the development of such a standard (in + fact, it would suggest that we should start sooner rather than + later), but we do need a solution that can be widely supported by the + current list services. + + We can support most existing list manager command syntaxes without a + standard command language. By using URLs, we allow alternate access + methods a standard command language probably wouldn't enable, such as + web based control. + + Finally, client support for a standard command language is not at all + clear or necessarily simple to implement. The variety and large + number of commands existing today would require complicated user + interfaces which could be confusing and difficult to implement. By + restricting this proposal to the core functions, the client + + implementation is much simpler, which significantly increases the + likelihood of implementation (as evidenced by the support already + announced by a number of client and server application authors). + +A.4. Internationalization + + Multilingual support is up to the URL standard. If URLs support it, + then the List- header fields support it. This is another advantage of + using URLs as the building blocks for the list header fields. + + + + +Neufeld & Baer Standards Track [Page 9] + +RFC 2369 URLs as Meta-Syntax July 1998 + + +A.5. Variable Substitution + + Variables would allow the List- header fields to accommodate nearly + every existing list manager. However, it would immeasurably increase + the complexity of the entire proposal, and possibly involve + redefining the URL standard, or force us to use something more + complicated (and hence more difficult to implement) than URLs to + describe the command syntax. + + Parameters would either have to be mandatory (i.e. the user agent + doesn't submit the message if it doesn't know what text to + substitute) or you need a way to say "if you know this parameter, add + its text here; otherwise, do this" where "this" is either: (a) + substitute a constant string, or (b) fail. + + The reason you would want a facility like this is because some list + server applications insist on having certain parameters like users' + names, which the user agent might or might not know. e.g. listserv + insists on having a first name and a last name if you supply either + one. + + Which could lead to something like the UNIX shell syntax, where + ${foo-bar} means substitute the value of parameter "foo" if "foo" is + defined, else substitute the string "bar". Perhaps $foo would mean + "substitute the value of parameter foo if it is defined, else + substitute the empty string" + + This all seems far too complicated for the gains involved, especially + since the use of variables can often be avoided. + + The use of variables in the command syntaxes of list services appears + to be lessening and does not, in any case, apply to all commands. + While the unsubscribe and subscribe command header fields may not be + usable by those systems which require the use of variables, the help + field will still provide end users with a consistent point of access + through which they can get support for their use of the list. + +A.6. Why not use a specialized MIME part instead of header fields? + + MIME parts were considered, but because most mail clients currently + either don't support MIME or are not equipped to handle such + specialized parts - such an implementation would result in problems + for end users. It is also not as easy for many list servers to + implement MIME as it is to implement new header fields. + + However, we are looking at the design of a MIME part to more fully + describe list command syntax, as well as trying to find ways to get + it supported by the applicable software. + + + +Neufeld & Baer Standards Track [Page 10] + +RFC 2369 URLs as Meta-Syntax July 1998 + + +A.7. Why include a Subscribe command? + + Subscribe and Unsubscribe are the key commands needed by almost every + list. Other commands, such as digest mode, are not as widely + supported. + + Additionally, users who have unsubscribed (before going on vacation, + or for whatever other reason) may want to resubscribe to a list. Or, + a message may be forwarded/bounced from a subscriber to a non- + subscriber. Or, the user may change addresses and want to subscribe + from their new address. Having the List-Subscribe field available + could certainly help in all these cases. + +A.8. The Dangers of Header Bloat + + At what point are there just too many header fields? It really + varies on a list by list basis. On some lists, the majority of users + will never be aware of a field unless the client software provides + some alternative user interface to it (akin to the Reply-To field). + On others, the users will often see the header fields of messages and + would be able to recognize the function of the URLs contained within. + + The flexibility afforded by the protocol described in this document + (in that the header fields may be individually implemented as deemed + appropriate) provides list administrators with sufficient 'room to + maneuver' to meet their individual needs. + + + + + + + + + + + + + + + + + + + + + + + + + +Neufeld & Baer Standards Track [Page 11] + +RFC 2369 URLs as Meta-Syntax July 1998 + + +B. Client Implementation + +B.1. Guidelines + + For 'mailto' URL based commands, mail client applications may choose + to provide specialized feedback (such as presenting a dialog or + alert), instead of the actual command email message, asking for + command confirmation from the user. The feedback should identify the + message destination and command within a more descriptive + explanation. For example: + + "Do you want to send the unsubscription command 'unsubscribe + somelist' to 'somelist-request@some.host.com'? Sending the command + will result in your removal from the associated list." + + If the user has multiple email addresses supported by the mail + client, the client application should prompt the user for which + address to use when subscribing or performing some other action where + the address to use cannot be specifically determined. When + unsubscribing or such, the address that is subscribed should be used, + unless that is not known by the application and cannot be determined + from the message headers. + +B.2. Implementation Options + + The following implementation possibilities are suggested here to give + some idea as to why these new header fields will be useful, and how + they could be supported. + + In most cases, it may be helpful to disable the interface for the + commands when not applicable to the currently selected message. + +B.2.1. Key combinations and command lines + + On text based systems which utilize command lines or key + combinations, each field could be implemented as a separate command. + Thus one combination would subscribe the user, another would + unsubscribe, a third request help, etc. The commands would only be + available on messages containing the list header fields. + +B.2.2. Menu items + + On graphical systems which have menus, these commands could take the + form of a menu or sub-menu of items. For example, a "Lists" menu + might appear when viewing messages containing the header fields, with + items named "Subscribe", "Unsubscribe", "Get Help", "Post Message to + + + + + +Neufeld & Baer Standards Track [Page 12] + +RFC 2369 URLs as Meta-Syntax July 1998 + + + List", "Contact List Owner" and "Access List Archive". This menu + could be disabled when not applicable to the current message or + disappear entirely. + +B.2.3. Push Buttons and Pallettes + + On graphical window systems, buttons could be placed in the window of + the message, a toolbar, or in a floating pallette of their own. Each + button could correspond to a command, with names "Subscribe", + "Unsubscribe", "Get Help", "Post to List", "List Owner" and + "Archive". These buttons or pallettes could be disabled when not + applicable to the current message or disappear entirely. + +B.2.4 Feedback to the User + + If using a dialog interface (or other feedback element) the client + application MUST include an option for the user to review (and + possibly modify) the message before it is sent. The application may + also find it useful to provide a link to more detailed context- + sensitive assistance about mail list access in general. + +References + + [RFC822] Crocker, D., "Standard for the Format of ARPA + Internet Text Messages", STD 11, RFC 822, August 1982. + + [RFC1738] Berners-Lee, T., Masinter, L., and M. McCahill, + "Uniform Resource Locators (URL)" RFC 1738, December 1994. + + [RFC2142] Crocker, D., "Mailbox Names for Common Services, Roles and + Functions", RFC 2142, May 1997. + + [RFC2368] Hoffman, P., Masinter, L., and J. Zawinski, "The mailto URL + scheme", RFC 2368, July 1998. + + [5] "List-Header" Mail list. list-header@list.nisto.com + + + + [6] "ListMom-Talk" Mail list. listmom-talk@skyweyr.com + + + + + + + + + + + +Neufeld & Baer Standards Track [Page 13] + +RFC 2369 URLs as Meta-Syntax July 1998 + + +Editors' Addresses + + Joshua D. Baer + Box 273 + 4902 Forbes Avenue + Pittsburgh, PA 15213-3799 + USA + + EMail: josh@skyweyr.com + + + Grant Neufeld + Calgary, Alberta + Canada + + EMail: grant@acm.org + Web: http://www.nisto.com/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Neufeld & Baer Standards Track [Page 14] + +RFC 2369 URLs as Meta-Syntax July 1998 + + +Full Copyright Statement + + Copyright (C) The Internet Society (1998). All Rights Reserved. + + This document and translations of it may be copied and furnished to + others, and derivative works that comment on or otherwise explain it + or assist in its implementation may be prepared, copied, published + and distributed, in whole or in part, without restriction of any + kind, provided that the above copyright notice and this paragraph are + included on all such copies and derivative works. However, this + document itself may not be modified in any way, such as by removing + the copyright notice or references to the Internet Society or other + Internet organizations, except as needed for the purpose of + developing Internet standards in which case the procedures for + copyrights defined in the Internet Standards process must be + followed, or as required to translate it into languages other than + English. + + The limited permissions granted above are perpetual and will not be + revoked by the Internet Society or its successors or assigns. + + This document and the information contained herein is provided on an + "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING + TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION + HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF + MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + + + + + + + + + + + + + + + + + + + + + + + + +Neufeld & Baer Standards Track [Page 15] + diff --git a/specifications/mail/rfc5322.pdf b/specifications/mail/rfc5322.pdf new file mode 100644 index 0000000000000000000000000000000000000000..027b85fa223cac256fc04dd591f28cee3bbb5ac2 GIT binary patch literal 76795 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 Q1j%K1J~=r93q!vD0~l#PF#rGn literal 0 HcmV?d00001 diff --git a/specifications/mail/rfc5322.txt b/specifications/mail/rfc5322.txt new file mode 100644 index 00000000..f3306869 --- /dev/null +++ b/specifications/mail/rfc5322.txt @@ -0,0 +1,3195 @@ + + + + + + +Network Working Group P. Resnick, Ed. +Request for Comments: 5322 Qualcomm Incorporated +Obsoletes: 2822 October 2008 +Updates: 4021 +Category: Standards Track + + + Internet Message Format + +Status of This Memo + + This document specifies an Internet standards track protocol for the + Internet community, and requests discussion and suggestions for + improvements. Please refer to the current edition of the "Internet + Official Protocol Standards" (STD 1) for the standardization state + and status of this protocol. Distribution of this memo is unlimited. + +Abstract + + This document specifies the Internet Message Format (IMF), a syntax + for text messages that are sent between computer users, within the + framework of "electronic mail" messages. This specification is a + revision of Request For Comments (RFC) 2822, which itself superseded + Request For Comments (RFC) 822, "Standard for the Format of ARPA + Internet Text Messages", updating it to reflect current practice and + incorporating incremental changes that were specified in other RFCs. + + + + + + + + + + + + + + + + + + + + + + + + + +Resnick Standards Track [Page 1] + +RFC 5322 Internet Message Format October 2008 + + +Table of Contents + + 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 + 1.1. Scope . . . . . . . . . . . . . . . . . . . . . . . . . . 4 + 1.2. Notational Conventions . . . . . . . . . . . . . . . . . . 5 + 1.2.1. Requirements Notation . . . . . . . . . . . . . . . . 5 + 1.2.2. Syntactic Notation . . . . . . . . . . . . . . . . . . 5 + 1.2.3. Structure of This Document . . . . . . . . . . . . . . 5 + 2. Lexical Analysis of Messages . . . . . . . . . . . . . . . . . 6 + 2.1. General Description . . . . . . . . . . . . . . . . . . . 6 + 2.1.1. Line Length Limits . . . . . . . . . . . . . . . . . . 7 + 2.2. Header Fields . . . . . . . . . . . . . . . . . . . . . . 8 + 2.2.1. Unstructured Header Field Bodies . . . . . . . . . . . 8 + 2.2.2. Structured Header Field Bodies . . . . . . . . . . . . 8 + 2.2.3. Long Header Fields . . . . . . . . . . . . . . . . . . 8 + 2.3. Body . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 + 3. Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 + 3.1. Introduction . . . . . . . . . . . . . . . . . . . . . . . 10 + 3.2. Lexical Tokens . . . . . . . . . . . . . . . . . . . . . . 10 + 3.2.1. Quoted characters . . . . . . . . . . . . . . . . . . 10 + 3.2.2. Folding White Space and Comments . . . . . . . . . . . 11 + 3.2.3. Atom . . . . . . . . . . . . . . . . . . . . . . . . . 12 + 3.2.4. Quoted Strings . . . . . . . . . . . . . . . . . . . . 13 + 3.2.5. Miscellaneous Tokens . . . . . . . . . . . . . . . . . 14 + 3.3. Date and Time Specification . . . . . . . . . . . . . . . 14 + 3.4. Address Specification . . . . . . . . . . . . . . . . . . 16 + 3.4.1. Addr-Spec Specification . . . . . . . . . . . . . . . 17 + 3.5. Overall Message Syntax . . . . . . . . . . . . . . . . . . 18 + 3.6. Field Definitions . . . . . . . . . . . . . . . . . . . . 19 + 3.6.1. The Origination Date Field . . . . . . . . . . . . . . 22 + 3.6.2. Originator Fields . . . . . . . . . . . . . . . . . . 22 + 3.6.3. Destination Address Fields . . . . . . . . . . . . . . 23 + 3.6.4. Identification Fields . . . . . . . . . . . . . . . . 25 + 3.6.5. Informational Fields . . . . . . . . . . . . . . . . . 27 + 3.6.6. Resent Fields . . . . . . . . . . . . . . . . . . . . 28 + 3.6.7. Trace Fields . . . . . . . . . . . . . . . . . . . . . 30 + 3.6.8. Optional Fields . . . . . . . . . . . . . . . . . . . 30 + 4. Obsolete Syntax . . . . . . . . . . . . . . . . . . . . . . . 31 + 4.1. Miscellaneous Obsolete Tokens . . . . . . . . . . . . . . 32 + 4.2. Obsolete Folding White Space . . . . . . . . . . . . . . . 33 + 4.3. Obsolete Date and Time . . . . . . . . . . . . . . . . . . 33 + 4.4. Obsolete Addressing . . . . . . . . . . . . . . . . . . . 35 + 4.5. Obsolete Header Fields . . . . . . . . . . . . . . . . . . 35 + 4.5.1. Obsolete Origination Date Field . . . . . . . . . . . 36 + 4.5.2. Obsolete Originator Fields . . . . . . . . . . . . . . 36 + 4.5.3. Obsolete Destination Address Fields . . . . . . . . . 37 + 4.5.4. Obsolete Identification Fields . . . . . . . . . . . . 37 + 4.5.5. Obsolete Informational Fields . . . . . . . . . . . . 37 + + + +Resnick Standards Track [Page 2] + +RFC 5322 Internet Message Format October 2008 + + + 4.5.6. Obsolete Resent Fields . . . . . . . . . . . . . . . . 38 + 4.5.7. Obsolete Trace Fields . . . . . . . . . . . . . . . . 38 + 4.5.8. Obsolete optional fields . . . . . . . . . . . . . . . 38 + 5. Security Considerations . . . . . . . . . . . . . . . . . . . 38 + 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 39 + Appendix A. Example Messages . . . . . . . . . . . . . . . . . 43 + Appendix A.1. Addressing Examples . . . . . . . . . . . . . . . 44 + Appendix A.1.1. A Message from One Person to Another with + Simple Addressing . . . . . . . . . . . . . . . . 44 + Appendix A.1.2. Different Types of Mailboxes . . . . . . . . . . . 45 + Appendix A.1.3. Group Addresses . . . . . . . . . . . . . . . . . 45 + Appendix A.2. Reply Messages . . . . . . . . . . . . . . . . . . 46 + Appendix A.3. Resent Messages . . . . . . . . . . . . . . . . . 47 + Appendix A.4. Messages with Trace Fields . . . . . . . . . . . . 48 + Appendix A.5. White Space, Comments, and Other Oddities . . . . 49 + Appendix A.6. Obsoleted Forms . . . . . . . . . . . . . . . . . 50 + Appendix A.6.1. Obsolete Addressing . . . . . . . . . . . . . . . 50 + Appendix A.6.2. Obsolete Dates . . . . . . . . . . . . . . . . . . 50 + Appendix A.6.3. Obsolete White Space and Comments . . . . . . . . 51 + Appendix B. Differences from Earlier Specifications . . . . . 52 + Appendix C. Acknowledgements . . . . . . . . . . . . . . . . . 53 + 7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 55 + 7.1. Normative References . . . . . . . . . . . . . . . . . . . 55 + 7.2. Informative References . . . . . . . . . . . . . . . . . . 55 + + + + + + + + + + + + + + + + + + + + + + + + + + + +Resnick Standards Track [Page 3] + +RFC 5322 Internet Message Format October 2008 + + +1. Introduction + +1.1. Scope + + This document specifies the Internet Message Format (IMF), a syntax + for text messages that are sent between computer users, within the + framework of "electronic mail" messages. This specification is an + update to [RFC2822], which itself superseded [RFC0822], updating it + to reflect current practice and incorporating incremental changes + that were specified in other RFCs such as [RFC1123]. + + This document specifies a syntax only for text messages. In + particular, it makes no provision for the transmission of images, + audio, or other sorts of structured data in electronic mail messages. + There are several extensions published, such as the MIME document + series ([RFC2045], [RFC2046], [RFC2049]), which describe mechanisms + for the transmission of such data through electronic mail, either by + extending the syntax provided here or by structuring such messages to + conform to this syntax. Those mechanisms are outside of the scope of + this specification. + + In the context of electronic mail, messages are viewed as having an + envelope and contents. The envelope contains whatever information is + needed to accomplish transmission and delivery. (See [RFC5321] for a + discussion of the envelope.) The contents comprise the object to be + delivered to the recipient. This specification applies only to the + format and some of the semantics of message contents. It contains no + specification of the information in the envelope. + + However, some message systems may use information from the contents + to create the envelope. It is intended that this specification + facilitate the acquisition of such information by programs. + + This specification is intended as a definition of what message + content format is to be passed between systems. Though some message + systems locally store messages in this format (which eliminates the + need for translation between formats) and others use formats that + differ from the one specified in this specification, local storage is + outside of the scope of this specification. + + Note: This specification is not intended to dictate the internal + formats used by sites, the specific message system features that + they are expected to support, or any of the characteristics of + user interface programs that create or read messages. In + addition, this document does not specify an encoding of the + characters for either transport or storage; that is, it does not + specify the number of bits used or how those bits are specifically + transferred over the wire or stored on disk. + + + +Resnick Standards Track [Page 4] + +RFC 5322 Internet Message Format October 2008 + + +1.2. Notational Conventions + +1.2.1. Requirements Notation + + This document occasionally uses terms that appear in capital letters. + When the terms "MUST", "SHOULD", "RECOMMENDED", "MUST NOT", "SHOULD + NOT", and "MAY" appear capitalized, they are being used to indicate + particular requirements of this specification. A discussion of the + meanings of these terms appears in [RFC2119]. + +1.2.2. Syntactic Notation + + This specification uses the Augmented Backus-Naur Form (ABNF) + [RFC5234] notation for the formal definitions of the syntax of + messages. Characters will be specified either by a decimal value + (e.g., the value %d65 for uppercase A and %d97 for lowercase A) or by + a case-insensitive literal value enclosed in quotation marks (e.g., + "A" for either uppercase or lowercase A). + +1.2.3. Structure of This Document + + This document is divided into several sections. + + This section, section 1, is a short introduction to the document. + + Section 2 lays out the general description of a message and its + constituent parts. This is an overview to help the reader understand + some of the general principles used in the later portions of this + document. Any examples in this section MUST NOT be taken as + specification of the formal syntax of any part of a message. + + Section 3 specifies formal ABNF rules for the structure of each part + of a message (the syntax) and describes the relationship between + those parts and their meaning in the context of a message (the + semantics). That is, it lays out the actual rules for the structure + of each part of a message (the syntax) as well as a description of + the parts and instructions for their interpretation (the semantics). + This includes analysis of the syntax and semantics of subparts of + messages that have specific structure. The syntax included in + section 3 represents messages as they MUST be created. There are + also notes in section 3 to indicate if any of the options specified + in the syntax SHOULD be used over any of the others. + + Both sections 2 and 3 describe messages that are legal to generate + for purposes of this specification. + + + + + + +Resnick Standards Track [Page 5] + +RFC 5322 Internet Message Format October 2008 + + + Section 4 of this document specifies an "obsolete" syntax. There are + references in section 3 to these obsolete syntactic elements. The + rules of the obsolete syntax are elements that have appeared in + earlier versions of this specification or have previously been widely + used in Internet messages. As such, these elements MUST be + interpreted by parsers of messages in order to be conformant to this + specification. However, since items in this syntax have been + determined to be non-interoperable or to cause significant problems + for recipients of messages, they MUST NOT be generated by creators of + conformant messages. + + Section 5 details security considerations to take into account when + implementing this specification. + + Appendix A lists examples of different sorts of messages. These + examples are not exhaustive of the types of messages that appear on + the Internet, but give a broad overview of certain syntactic forms. + + Appendix B lists the differences between this specification and + earlier specifications for Internet messages. + + Appendix C contains acknowledgements. + +2. Lexical Analysis of Messages + +2.1. General Description + + At the most basic level, a message is a series of characters. A + message that is conformant with this specification is composed of + characters with values in the range of 1 through 127 and interpreted + as US-ASCII [ANSI.X3-4.1986] characters. For brevity, this document + sometimes refers to this range of characters as simply "US-ASCII + characters". + + Note: This document specifies that messages are made up of + characters in the US-ASCII range of 1 through 127. There are + other documents, specifically the MIME document series ([RFC2045], + [RFC2046], [RFC2047], [RFC2049], [RFC4288], [RFC4289]), that + extend this specification to allow for values outside of that + range. Discussion of those mechanisms is not within the scope of + this specification. + + Messages are divided into lines of characters. A line is a series of + characters that is delimited with the two characters carriage-return + and line-feed; that is, the carriage return (CR) character (ASCII + value 13) followed immediately by the line feed (LF) character (ASCII + value 10). (The carriage return/line feed pair is usually written in + this document as "CRLF".) + + + +Resnick Standards Track [Page 6] + +RFC 5322 Internet Message Format October 2008 + + + A message consists of header fields (collectively called "the header + section of the message") followed, optionally, by a body. The header + section is a sequence of lines of characters with special syntax as + defined in this specification. The body is simply a sequence of + characters that follows the header section and is separated from the + header section by an empty line (i.e., a line with nothing preceding + the CRLF). + + Note: Common parlance and earlier versions of this specification + use the term "header" to either refer to the entire header section + or to refer to an individual header field. To avoid ambiguity, + this document does not use the terms "header" or "headers" in + isolation, but instead always uses "header field" to refer to the + individual field and "header section" to refer to the entire + collection. + +2.1.1. Line Length Limits + + There are two limits that this specification places on the number of + characters in a line. Each line of characters MUST be no more than + 998 characters, and SHOULD be no more than 78 characters, excluding + the CRLF. + + The 998 character limit is due to limitations in many implementations + that send, receive, or store IMF messages which simply cannot handle + more than 998 characters on a line. Receiving implementations would + do well to handle an arbitrarily large number of characters in a line + for robustness sake. However, there are so many implementations that + (in compliance with the transport requirements of [RFC5321]) do not + accept messages containing more than 1000 characters including the CR + and LF per line, it is important for implementations not to create + such messages. + + The more conservative 78 character recommendation is to accommodate + the many implementations of user interfaces that display these + messages which may truncate, or disastrously wrap, the display of + more than 78 characters per line, in spite of the fact that such + implementations are non-conformant to the intent of this + specification (and that of [RFC5321] if they actually cause + information to be lost). Again, even though this limitation is put + on messages, it is incumbent upon implementations that display + messages to handle an arbitrarily large number of characters in a + line (certainly at least up to the 998 character limit) for the sake + of robustness. + + + + + + + +Resnick Standards Track [Page 7] + +RFC 5322 Internet Message Format October 2008 + + +2.2. Header Fields + + Header fields are lines beginning with a field name, followed by a + colon (":"), followed by a field body, and terminated by CRLF. A + field name MUST be composed of printable US-ASCII characters (i.e., + characters that have values between 33 and 126, inclusive), except + colon. A field body may be composed of printable US-ASCII characters + as well as the space (SP, ASCII value 32) and horizontal tab (HTAB, + ASCII value 9) characters (together known as the white space + characters, WSP). A field body MUST NOT include CR and LF except + when used in "folding" and "unfolding", as described in section + 2.2.3. All field bodies MUST conform to the syntax described in + sections 3 and 4 of this specification. + +2.2.1. Unstructured Header Field Bodies + + Some field bodies in this specification are defined simply as + "unstructured" (which is specified in section 3.2.5 as any printable + US-ASCII characters plus white space characters) with no further + restrictions. These are referred to as unstructured field bodies. + Semantically, unstructured field bodies are simply to be treated as a + single line of characters with no further processing (except for + "folding" and "unfolding" as described in section 2.2.3). + +2.2.2. Structured Header Field Bodies + + Some field bodies in this specification have a syntax that is more + restrictive than the unstructured field bodies described above. + These are referred to as "structured" field bodies. Structured field + bodies are sequences of specific lexical tokens as described in + sections 3 and 4 of this specification. Many of these tokens are + allowed (according to their syntax) to be introduced or end with + comments (as described in section 3.2.2) as well as the white space + characters, and those white space characters are subject to "folding" + and "unfolding" as described in section 2.2.3. Semantic analysis of + structured field bodies is given along with their syntax. + +2.2.3. Long Header Fields + + Each header field is logically a single line of characters comprising + the field name, the colon, and the field body. For convenience + however, and to deal with the 998/78 character limitations per line, + the field body portion of a header field can be split into a + multiple-line representation; this is called "folding". The general + rule is that wherever this specification allows for folding white + space (not simply WSP characters), a CRLF may be inserted before any + WSP. + + + + +Resnick Standards Track [Page 8] + +RFC 5322 Internet Message Format October 2008 + + + For example, the header field: + + Subject: This is a test + + can be represented as: + + Subject: This + is a test + + Note: Though structured field bodies are defined in such a way + that folding can take place between many of the lexical tokens + (and even within some of the lexical tokens), folding SHOULD be + limited to placing the CRLF at higher-level syntactic breaks. For + instance, if a field body is defined as comma-separated values, it + is recommended that folding occur after the comma separating the + structured items in preference to other places where the field + could be folded, even if it is allowed elsewhere. + + The process of moving from this folded multiple-line representation + of a header field to its single line representation is called + "unfolding". Unfolding is accomplished by simply removing any CRLF + that is immediately followed by WSP. Each header field should be + treated in its unfolded form for further syntactic and semantic + evaluation. An unfolded header field has no length restriction and + therefore may be indeterminately long. + +2.3. Body + + The body of a message is simply lines of US-ASCII characters. The + only two limitations on the body are as follows: + + o CR and LF MUST only occur together as CRLF; they MUST NOT appear + independently in the body. + o Lines of characters in the body MUST be limited to 998 characters, + and SHOULD be limited to 78 characters, excluding the CRLF. + + Note: As was stated earlier, there are other documents, + specifically the MIME documents ([RFC2045], [RFC2046], [RFC2049], + [RFC4288], [RFC4289]), that extend (and limit) this specification + to allow for different sorts of message bodies. Again, these + mechanisms are beyond the scope of this document. + + + + + + + + + + +Resnick Standards Track [Page 9] + +RFC 5322 Internet Message Format October 2008 + + +3. Syntax + +3.1. Introduction + + The syntax as given in this section defines the legal syntax of + Internet messages. Messages that are conformant to this + specification MUST conform to the syntax in this section. If there + are options in this section where one option SHOULD be generated, + that is indicated either in the prose or in a comment next to the + syntax. + + For the defined expressions, a short description of the syntax and + use is given, followed by the syntax in ABNF, followed by a semantic + analysis. The following primitive tokens that are used but otherwise + unspecified are taken from the "Core Rules" of [RFC5234], Appendix + B.1: CR, LF, CRLF, HTAB, SP, WSP, DQUOTE, DIGIT, ALPHA, and VCHAR. + + In some of the definitions, there will be non-terminals whose names + start with "obs-". These "obs-" elements refer to tokens defined in + the obsolete syntax in section 4. In all cases, these productions + are to be ignored for the purposes of generating legal Internet + messages and MUST NOT be used as part of such a message. However, + when interpreting messages, these tokens MUST be honored as part of + the legal syntax. In this sense, section 3 defines a grammar for the + generation of messages, with "obs-" elements that are to be ignored, + while section 4 adds grammar for the interpretation of messages. + +3.2. Lexical Tokens + + The following rules are used to define an underlying lexical + analyzer, which feeds tokens to the higher-level parsers. This + section defines the tokens used in structured header field bodies. + + Note: Readers of this specification need to pay special attention + to how these lexical tokens are used in both the lower-level and + higher-level syntax later in the document. Particularly, the + white space tokens and the comment tokens defined in section 3.2.2 + get used in the lower-level tokens defined here, and those lower- + level tokens are in turn used as parts of the higher-level tokens + defined later. Therefore, white space and comments may be allowed + in the higher-level tokens even though they may not explicitly + appear in a particular definition. + +3.2.1. Quoted characters + + Some characters are reserved for special interpretation, such as + delimiting lexical tokens. To permit use of these characters as + uninterpreted data, a quoting mechanism is provided. + + + +Resnick Standards Track [Page 10] + +RFC 5322 Internet Message Format October 2008 + + + quoted-pair = ("\" (VCHAR / WSP)) / obs-qp + + Where any quoted-pair appears, it is to be interpreted as the + character alone. That is to say, the "\" character that appears as + part of a quoted-pair is semantically "invisible". + + Note: The "\" character may appear in a message where it is not + part of a quoted-pair. A "\" character that does not appear in a + quoted-pair is not semantically invisible. The only places in + this specification where quoted-pair currently appears are + ccontent, qcontent, and in obs-dtext in section 4. + +3.2.2. Folding White Space and Comments + + White space characters, including white space used in folding + (described in section 2.2.3), may appear between many elements in + header field bodies. Also, strings of characters that are treated as + comments may be included in structured field bodies as characters + enclosed in parentheses. The following defines the folding white + space (FWS) and comment constructs. + + Strings of characters enclosed in parentheses are considered comments + so long as they do not appear within a "quoted-string", as defined in + section 3.2.4. Comments may nest. + + There are several places in this specification where comments and FWS + may be freely inserted. To accommodate that syntax, an additional + token for "CFWS" is defined for places where comments and/or FWS can + occur. However, where CFWS occurs in this specification, it MUST NOT + be inserted in such a way that any line of a folded header field is + made up entirely of WSP characters and nothing else. + + FWS = ([*WSP CRLF] 1*WSP) / obs-FWS + ; Folding white space + + ctext = %d33-39 / ; Printable US-ASCII + %d42-91 / ; characters not including + %d93-126 / ; "(", ")", or "\" + obs-ctext + + ccontent = ctext / quoted-pair / comment + + comment = "(" *([FWS] ccontent) [FWS] ")" + + CFWS = (1*([FWS] comment) [FWS]) / FWS + + + + + + +Resnick Standards Track [Page 11] + +RFC 5322 Internet Message Format October 2008 + + + Throughout this specification, where FWS (the folding white space + token) appears, it indicates a place where folding, as discussed in + section 2.2.3, may take place. Wherever folding appears in a message + (that is, a header field body containing a CRLF followed by any WSP), + unfolding (removal of the CRLF) is performed before any further + semantic analysis is performed on that header field according to this + specification. That is to say, any CRLF that appears in FWS is + semantically "invisible". + + A comment is normally used in a structured field body to provide some + human-readable informational text. Since a comment is allowed to + contain FWS, folding is permitted within the comment. Also note that + since quoted-pair is allowed in a comment, the parentheses and + backslash characters may appear in a comment, so long as they appear + as a quoted-pair. Semantically, the enclosing parentheses are not + part of the comment; the comment is what is contained between the two + parentheses. As stated earlier, the "\" in any quoted-pair and the + CRLF in any FWS that appears within the comment are semantically + "invisible" and therefore not part of the comment either. + + Runs of FWS, comment, or CFWS that occur between lexical tokens in a + structured header field are semantically interpreted as a single + space character. + +3.2.3. Atom + + Several productions in structured header field bodies are simply + strings of certain basic characters. Such productions are called + atoms. + + Some of the structured header field bodies also allow the period + character (".", ASCII value 46) within runs of atext. An additional + "dot-atom" token is defined for those purposes. + + Note: The "specials" token does not appear anywhere else in this + specification. It is simply the visible (i.e., non-control, non- + white space) characters that do not appear in atext. It is + provided only because it is useful for implementers who use tools + that lexically analyze messages. Each of the characters in + specials can be used to indicate a tokenization point in lexical + analysis. + + + + + + + + + + +Resnick Standards Track [Page 12] + +RFC 5322 Internet Message Format October 2008 + + + atext = ALPHA / DIGIT / ; Printable US-ASCII + "!" / "#" / ; characters not including + "$" / "%" / ; specials. Used for atoms. + "&" / "'" / + "*" / "+" / + "-" / "/" / + "=" / "?" / + "^" / "_" / + "`" / "{" / + "|" / "}" / + "~" + + atom = [CFWS] 1*atext [CFWS] + + dot-atom-text = 1*atext *("." 1*atext) + + dot-atom = [CFWS] dot-atom-text [CFWS] + + specials = "(" / ")" / ; Special characters that do + "<" / ">" / ; not appear in atext + "[" / "]" / + ":" / ";" / + "@" / "\" / + "," / "." / + DQUOTE + + Both atom and dot-atom are interpreted as a single unit, comprising + the string of characters that make it up. Semantically, the optional + comments and FWS surrounding the rest of the characters are not part + of the atom; the atom is only the run of atext characters in an atom, + or the atext and "." characters in a dot-atom. + +3.2.4. Quoted Strings + + Strings of characters that include characters other than those + allowed in atoms can be represented in a quoted string format, where + the characters are surrounded by quote (DQUOTE, ASCII value 34) + characters. + + + + + + + + + + + + + +Resnick Standards Track [Page 13] + +RFC 5322 Internet Message Format October 2008 + + + qtext = %d33 / ; Printable US-ASCII + %d35-91 / ; characters not including + %d93-126 / ; "\" or the quote character + obs-qtext + + qcontent = qtext / quoted-pair + + quoted-string = [CFWS] + DQUOTE *([FWS] qcontent) [FWS] DQUOTE + [CFWS] + + A quoted-string is treated as a unit. That is, quoted-string is + identical to atom, semantically. Since a quoted-string is allowed to + contain FWS, folding is permitted. Also note that since quoted-pair + is allowed in a quoted-string, the quote and backslash characters may + appear in a quoted-string so long as they appear as a quoted-pair. + + Semantically, neither the optional CFWS outside of the quote + characters nor the quote characters themselves are part of the + quoted-string; the quoted-string is what is contained between the two + quote characters. As stated earlier, the "\" in any quoted-pair and + the CRLF in any FWS/CFWS that appears within the quoted-string are + semantically "invisible" and therefore not part of the quoted-string + either. + +3.2.5. Miscellaneous Tokens + + Three additional tokens are defined: word and phrase for combinations + of atoms and/or quoted-strings, and unstructured for use in + unstructured header fields and in some places within structured + header fields. + + word = atom / quoted-string + + phrase = 1*word / obs-phrase + + unstructured = (*([FWS] VCHAR) *WSP) / obs-unstruct + +3.3. Date and Time Specification + + Date and time values occur in several header fields. This section + specifies the syntax for a full date and time specification. Though + folding white space is permitted throughout the date-time + specification, it is RECOMMENDED that a single space be used in each + place that FWS appears (whether it is required or optional); some + older implementations will not interpret longer sequences of folding + white space correctly. + + + + +Resnick Standards Track [Page 14] + +RFC 5322 Internet Message Format October 2008 + + + date-time = [ day-of-week "," ] date time [CFWS] + + day-of-week = ([FWS] day-name) / obs-day-of-week + + day-name = "Mon" / "Tue" / "Wed" / "Thu" / + "Fri" / "Sat" / "Sun" + + date = day month year + + day = ([FWS] 1*2DIGIT FWS) / obs-day + + month = "Jan" / "Feb" / "Mar" / "Apr" / + "May" / "Jun" / "Jul" / "Aug" / + "Sep" / "Oct" / "Nov" / "Dec" + + year = (FWS 4*DIGIT FWS) / obs-year + + time = time-of-day zone + + time-of-day = hour ":" minute [ ":" second ] + + hour = 2DIGIT / obs-hour + + minute = 2DIGIT / obs-minute + + second = 2DIGIT / obs-second + + zone = (FWS ( "+" / "-" ) 4DIGIT) / obs-zone + + The day is the numeric day of the month. The year is any numeric + year 1900 or later. + + The time-of-day specifies the number of hours, minutes, and + optionally seconds since midnight of the date indicated. + + The date and time-of-day SHOULD express local time. + + The zone specifies the offset from Coordinated Universal Time (UTC, + formerly referred to as "Greenwich Mean Time") that the date and + time-of-day represent. The "+" or "-" indicates whether the time-of- + day is ahead of (i.e., east of) or behind (i.e., west of) Universal + Time. The first two digits indicate the number of hours difference + from Universal Time, and the last two digits indicate the number of + additional minutes difference from Universal Time. (Hence, +hhmm + means +(hh * 60 + mm) minutes, and -hhmm means -(hh * 60 + mm) + minutes). The form "+0000" SHOULD be used to indicate a time zone at + Universal Time. Though "-0000" also indicates Universal Time, it is + + + + +Resnick Standards Track [Page 15] + +RFC 5322 Internet Message Format October 2008 + + + used to indicate that the time was generated on a system that may be + in a local time zone other than Universal Time and that the date-time + contains no information about the local time zone. + + A date-time specification MUST be semantically valid. That is, the + day-of-week (if included) MUST be the day implied by the date, the + numeric day-of-month MUST be between 1 and the number of days allowed + for the specified month (in the specified year), the time-of-day MUST + be in the range 00:00:00 through 23:59:60 (the number of seconds + allowing for a leap second; see [RFC1305]), and the last two digits + of the zone MUST be within the range 00 through 59. + +3.4. Address Specification + + Addresses occur in several message header fields to indicate senders + and recipients of messages. An address may either be an individual + mailbox, or a group of mailboxes. + + address = mailbox / group + + mailbox = name-addr / addr-spec + + name-addr = [display-name] angle-addr + + angle-addr = [CFWS] "<" addr-spec ">" [CFWS] / + obs-angle-addr + + group = display-name ":" [group-list] ";" [CFWS] + + display-name = phrase + + mailbox-list = (mailbox *("," mailbox)) / obs-mbox-list + + address-list = (address *("," address)) / obs-addr-list + + group-list = mailbox-list / CFWS / obs-group-list + + A mailbox receives mail. It is a conceptual entity that does not + necessarily pertain to file storage. For example, some sites may + choose to print mail on a printer and deliver the output to the + addressee's desk. + + Normally, a mailbox is composed of two parts: (1) an optional display + name that indicates the name of the recipient (which can be a person + or a system) that could be displayed to the user of a mail + application, and (2) an addr-spec address enclosed in angle brackets + + + + + +Resnick Standards Track [Page 16] + +RFC 5322 Internet Message Format October 2008 + + + ("<" and ">"). There is an alternate simple form of a mailbox where + the addr-spec address appears alone, without the recipient's name or + the angle brackets. The Internet addr-spec address is described in + section 3.4.1. + + Note: Some legacy implementations used the simple form where the + addr-spec appears without the angle brackets, but included the + name of the recipient in parentheses as a comment following the + addr-spec. Since the meaning of the information in a comment is + unspecified, implementations SHOULD use the full name-addr form of + the mailbox, instead of the legacy form, to specify the display + name associated with a mailbox. Also, because some legacy + implementations interpret the comment, comments generally SHOULD + NOT be used in address fields to avoid confusing such + implementations. + + When it is desirable to treat several mailboxes as a single unit + (i.e., in a distribution list), the group construct can be used. The + group construct allows the sender to indicate a named group of + recipients. This is done by giving a display name for the group, + followed by a colon, followed by a comma-separated list of any number + of mailboxes (including zero and one), and ending with a semicolon. + Because the list of mailboxes can be empty, using the group construct + is also a simple way to communicate to recipients that the message + was sent to one or more named sets of recipients, without actually + providing the individual mailbox address for any of those recipients. + +3.4.1. Addr-Spec Specification + + An addr-spec is a specific Internet identifier that contains a + locally interpreted string followed by the at-sign character ("@", + ASCII value 64) followed by an Internet domain. The locally + interpreted string is either a quoted-string or a dot-atom. If the + string can be represented as a dot-atom (that is, it contains no + characters other than atext characters or "." surrounded by atext + characters), then the dot-atom form SHOULD be used and the quoted- + string form SHOULD NOT be used. Comments and folding white space + SHOULD NOT be used around the "@" in the addr-spec. + + Note: A liberal syntax for the domain portion of addr-spec is + given here. However, the domain portion contains addressing + information specified by and used in other protocols (e.g., + [RFC1034], [RFC1035], [RFC1123], [RFC5321]). It is therefore + incumbent upon implementations to conform to the syntax of + addresses for the context in which they are used. + + + + + + +Resnick Standards Track [Page 17] + +RFC 5322 Internet Message Format October 2008 + + + addr-spec = local-part "@" domain + + local-part = dot-atom / quoted-string / obs-local-part + + domain = dot-atom / domain-literal / obs-domain + + domain-literal = [CFWS] "[" *([FWS] dtext) [FWS] "]" [CFWS] + + dtext = %d33-90 / ; Printable US-ASCII + %d94-126 / ; characters not including + obs-dtext ; "[", "]", or "\" + + The domain portion identifies the point to which the mail is + delivered. In the dot-atom form, this is interpreted as an Internet + domain name (either a host name or a mail exchanger name) as + described in [RFC1034], [RFC1035], and [RFC1123]. In the domain- + literal form, the domain is interpreted as the literal Internet + address of the particular host. In both cases, how addressing is + used and how messages are transported to a particular host is covered + in separate documents, such as [RFC5321]. These mechanisms are + outside of the scope of this document. + + The local-part portion is a domain-dependent string. In addresses, + it is simply interpreted on the particular host as a name of a + particular mailbox. + +3.5. Overall Message Syntax + + A message consists of header fields, optionally followed by a message + body. Lines in a message MUST be a maximum of 998 characters + excluding the CRLF, but it is RECOMMENDED that lines be limited to 78 + characters excluding the CRLF. (See section 2.1.1 for explanation.) + In a message body, though all of the characters listed in the text + rule MAY be used, the use of US-ASCII control characters (values 1 + through 8, 11, 12, and 14 through 31) is discouraged since their + interpretation by receivers for display is not guaranteed. + + message = (fields / obs-fields) + [CRLF body] + + body = (*(*998text CRLF) *998text) / obs-body + + text = %d1-9 / ; Characters excluding CR + %d11 / ; and LF + %d12 / + %d14-127 + + + + + +Resnick Standards Track [Page 18] + +RFC 5322 Internet Message Format October 2008 + + + The header fields carry most of the semantic information and are + defined in section 3.6. The body is simply a series of lines of text + that are uninterpreted for the purposes of this specification. + +3.6. Field Definitions + + The header fields of a message are defined here. All header fields + have the same general syntactic structure: a field name, followed by + a colon, followed by the field body. The specific syntax for each + header field is defined in the subsequent sections. + + Note: In the ABNF syntax for each field in subsequent sections, + each field name is followed by the required colon. However, for + brevity, sometimes the colon is not referred to in the textual + description of the syntax. It is, nonetheless, required. + + It is important to note that the header fields are not guaranteed to + be in a particular order. They may appear in any order, and they + have been known to be reordered occasionally when transported over + the Internet. However, for the purposes of this specification, + header fields SHOULD NOT be reordered when a message is transported + or transformed. More importantly, the trace header fields and resent + header fields MUST NOT be reordered, and SHOULD be kept in blocks + prepended to the message. See sections 3.6.6 and 3.6.7 for more + information. + + The only required header fields are the origination date field and + the originator address field(s). All other header fields are + syntactically optional. More information is contained in the table + following this definition. + + + + + + + + + + + + + + + + + + + + + +Resnick Standards Track [Page 19] + +RFC 5322 Internet Message Format October 2008 + + + fields = *(trace + *optional-field / + *(resent-date / + resent-from / + resent-sender / + resent-to / + resent-cc / + resent-bcc / + resent-msg-id)) + *(orig-date / + from / + sender / + reply-to / + to / + cc / + bcc / + message-id / + in-reply-to / + references / + subject / + comments / + keywords / + optional-field) + + The following table indicates limits on the number of times each + field may occur in the header section of a message as well as any + special limitations on the use of those fields. An asterisk ("*") + next to a value in the minimum or maximum column indicates that a + special restriction appears in the Notes column. + + + + + + + + + + + + + + + + + + + + + + +Resnick Standards Track [Page 20] + +RFC 5322 Internet Message Format October 2008 + + + +----------------+--------+------------+----------------------------+ + | Field | Min | Max number | Notes | + | | number | | | + +----------------+--------+------------+----------------------------+ + | trace | 0 | unlimited | Block prepended - see | + | | | | 3.6.7 | + | resent-date | 0* | unlimited* | One per block, required if | + | | | | other resent fields are | + | | | | present - see 3.6.6 | + | resent-from | 0 | unlimited* | One per block - see 3.6.6 | + | resent-sender | 0* | unlimited* | One per block, MUST occur | + | | | | with multi-address | + | | | | resent-from - see 3.6.6 | + | resent-to | 0 | unlimited* | One per block - see 3.6.6 | + | resent-cc | 0 | unlimited* | One per block - see 3.6.6 | + | resent-bcc | 0 | unlimited* | One per block - see 3.6.6 | + | resent-msg-id | 0 | unlimited* | One per block - see 3.6.6 | + | orig-date | 1 | 1 | | + | from | 1 | 1 | See sender and 3.6.2 | + | sender | 0* | 1 | MUST occur with | + | | | | multi-address from - see | + | | | | 3.6.2 | + | reply-to | 0 | 1 | | + | to | 0 | 1 | | + | cc | 0 | 1 | | + | bcc | 0 | 1 | | + | message-id | 0* | 1 | SHOULD be present - see | + | | | | 3.6.4 | + | in-reply-to | 0* | 1 | SHOULD occur in some | + | | | | replies - see 3.6.4 | + | references | 0* | 1 | SHOULD occur in some | + | | | | replies - see 3.6.4 | + | subject | 0 | 1 | | + | comments | 0 | unlimited | | + | keywords | 0 | unlimited | | + | optional-field | 0 | unlimited | | + +----------------+--------+------------+----------------------------+ + + The exact interpretation of each field is described in subsequent + sections. + + + + + + + + + + + +Resnick Standards Track [Page 21] + +RFC 5322 Internet Message Format October 2008 + + +3.6.1. The Origination Date Field + + The origination date field consists of the field name "Date" followed + by a date-time specification. + + orig-date = "Date:" date-time CRLF + + The origination date specifies the date and time at which the creator + of the message indicated that the message was complete and ready to + enter the mail delivery system. For instance, this might be the time + that a user pushes the "send" or "submit" button in an application + program. In any case, it is specifically not intended to convey the + time that the message is actually transported, but rather the time at + which the human or other creator of the message has put the message + into its final form, ready for transport. (For example, a portable + computer user who is not connected to a network might queue a message + for delivery. The origination date is intended to contain the date + and time that the user queued the message, not the time when the user + connected to the network to send the message.) + +3.6.2. Originator Fields + + The originator fields of a message consist of the from field, the + sender field (when applicable), and optionally the reply-to field. + The from field consists of the field name "From" and a comma- + separated list of one or more mailbox specifications. If the from + field contains more than one mailbox specification in the mailbox- + list, then the sender field, containing the field name "Sender" and a + single mailbox specification, MUST appear in the message. In either + case, an optional reply-to field MAY also be included, which contains + the field name "Reply-To" and a comma-separated list of one or more + addresses. + + from = "From:" mailbox-list CRLF + + sender = "Sender:" mailbox CRLF + + reply-to = "Reply-To:" address-list CRLF + + The originator fields indicate the mailbox(es) of the source of the + message. The "From:" field specifies the author(s) of the message, + that is, the mailbox(es) of the person(s) or system(s) responsible + for the writing of the message. The "Sender:" field specifies the + mailbox of the agent responsible for the actual transmission of the + message. For example, if a secretary were to send a message for + another person, the mailbox of the secretary would appear in the + "Sender:" field and the mailbox of the actual author would appear in + the "From:" field. If the originator of the message can be indicated + + + +Resnick Standards Track [Page 22] + +RFC 5322 Internet Message Format October 2008 + + + by a single mailbox and the author and transmitter are identical, the + "Sender:" field SHOULD NOT be used. Otherwise, both fields SHOULD + appear. + + Note: The transmitter information is always present. The absence + of the "Sender:" field is sometimes mistakenly taken to mean that + the agent responsible for transmission of the message has not been + specified. This absence merely means that the transmitter is + identical to the author and is therefore not redundantly placed + into the "Sender:" field. + + The originator fields also provide the information required when + replying to a message. When the "Reply-To:" field is present, it + indicates the address(es) to which the author of the message suggests + that replies be sent. In the absence of the "Reply-To:" field, + replies SHOULD by default be sent to the mailbox(es) specified in the + "From:" field unless otherwise specified by the person composing the + reply. + + In all cases, the "From:" field SHOULD NOT contain any mailbox that + does not belong to the author(s) of the message. See also section + 3.6.3 for more information on forming the destination addresses for a + reply. + +3.6.3. Destination Address Fields + + The destination fields of a message consist of three possible fields, + each of the same form: the field name, which is either "To", "Cc", or + "Bcc", followed by a comma-separated list of one or more addresses + (either mailbox or group syntax). + + to = "To:" address-list CRLF + + cc = "Cc:" address-list CRLF + + bcc = "Bcc:" [address-list / CFWS] CRLF + + The destination fields specify the recipients of the message. Each + destination field may have one or more addresses, and the addresses + indicate the intended recipients of the message. The only difference + between the three fields is how each is used. + + The "To:" field contains the address(es) of the primary recipient(s) + of the message. + + + + + + + +Resnick Standards Track [Page 23] + +RFC 5322 Internet Message Format October 2008 + + + The "Cc:" field (where the "Cc" means "Carbon Copy" in the sense of + making a copy on a typewriter using carbon paper) contains the + addresses of others who are to receive the message, though the + content of the message may not be directed at them. + + The "Bcc:" field (where the "Bcc" means "Blind Carbon Copy") contains + addresses of recipients of the message whose addresses are not to be + revealed to other recipients of the message. There are three ways in + which the "Bcc:" field is used. In the first case, when a message + containing a "Bcc:" field is prepared to be sent, the "Bcc:" line is + removed even though all of the recipients (including those specified + in the "Bcc:" field) are sent a copy of the message. In the second + case, recipients specified in the "To:" and "Cc:" lines each are sent + a copy of the message with the "Bcc:" line removed as above, but the + recipients on the "Bcc:" line get a separate copy of the message + containing a "Bcc:" line. (When there are multiple recipient + addresses in the "Bcc:" field, some implementations actually send a + separate copy of the message to each recipient with a "Bcc:" + containing only the address of that particular recipient.) Finally, + since a "Bcc:" field may contain no addresses, a "Bcc:" field can be + sent without any addresses indicating to the recipients that blind + copies were sent to someone. Which method to use with "Bcc:" fields + is implementation dependent, but refer to the "Security + Considerations" section of this document for a discussion of each. + + When a message is a reply to another message, the mailboxes of the + authors of the original message (the mailboxes in the "From:" field) + or mailboxes specified in the "Reply-To:" field (if it exists) MAY + appear in the "To:" field of the reply since these would normally be + the primary recipients of the reply. If a reply is sent to a message + that has destination fields, it is often desirable to send a copy of + the reply to all of the recipients of the message, in addition to the + author. When such a reply is formed, addresses in the "To:" and + "Cc:" fields of the original message MAY appear in the "Cc:" field of + the reply, since these are normally secondary recipients of the + reply. If a "Bcc:" field is present in the original message, + addresses in that field MAY appear in the "Bcc:" field of the reply, + but they SHOULD NOT appear in the "To:" or "Cc:" fields. + + Note: Some mail applications have automatic reply commands that + include the destination addresses of the original message in the + destination addresses of the reply. How those reply commands + behave is implementation dependent and is beyond the scope of this + document. In particular, whether or not to include the original + destination addresses when the original message had a "Reply-To:" + field is not addressed here. + + + + + +Resnick Standards Track [Page 24] + +RFC 5322 Internet Message Format October 2008 + + +3.6.4. Identification Fields + + Though listed as optional in the table in section 3.6, every message + SHOULD have a "Message-ID:" field. Furthermore, reply messages + SHOULD have "In-Reply-To:" and "References:" fields as appropriate + and as described below. + + The "Message-ID:" field contains a single unique message identifier. + The "References:" and "In-Reply-To:" fields each contain one or more + unique message identifiers, optionally separated by CFWS. + + The message identifier (msg-id) syntax is a limited version of the + addr-spec construct enclosed in the angle bracket characters, "<" and + ">". Unlike addr-spec, this syntax only permits the dot-atom-text + form on the left-hand side of the "@" and does not have internal CFWS + anywhere in the message identifier. + + Note: As with addr-spec, a liberal syntax is given for the right- + hand side of the "@" in a msg-id. However, later in this section, + the use of a domain for the right-hand side of the "@" is + RECOMMENDED. Again, the syntax of domain constructs is specified + by and used in other protocols (e.g., [RFC1034], [RFC1035], + [RFC1123], [RFC5321]). It is therefore incumbent upon + implementations to conform to the syntax of addresses for the + context in which they are used. + + message-id = "Message-ID:" msg-id CRLF + + in-reply-to = "In-Reply-To:" 1*msg-id CRLF + + references = "References:" 1*msg-id CRLF + + msg-id = [CFWS] "<" id-left "@" id-right ">" [CFWS] + + id-left = dot-atom-text / obs-id-left + + id-right = dot-atom-text / no-fold-literal / obs-id-right + + no-fold-literal = "[" *dtext "]" + + The "Message-ID:" field provides a unique message identifier that + refers to a particular version of a particular message. The + uniqueness of the message identifier is guaranteed by the host that + generates it (see below). This message identifier is intended to be + machine readable and not necessarily meaningful to humans. A message + identifier pertains to exactly one version of a particular message; + subsequent revisions to the message each receive new message + identifiers. + + + +Resnick Standards Track [Page 25] + +RFC 5322 Internet Message Format October 2008 + + + Note: There are many instances when messages are "changed", but + those changes do not constitute a new instantiation of that + message, and therefore the message would not get a new message + identifier. For example, when messages are introduced into the + transport system, they are often prepended with additional header + fields such as trace fields (described in section 3.6.7) and + resent fields (described in section 3.6.6). The addition of such + header fields does not change the identity of the message and + therefore the original "Message-ID:" field is retained. In all + cases, it is the meaning that the sender of the message wishes to + convey (i.e., whether this is the same message or a different + message) that determines whether or not the "Message-ID:" field + changes, not any particular syntactic difference that appears (or + does not appear) in the message. + + The "In-Reply-To:" and "References:" fields are used when creating a + reply to a message. They hold the message identifier of the original + message and the message identifiers of other messages (for example, + in the case of a reply to a message that was itself a reply). The + "In-Reply-To:" field may be used to identify the message (or + messages) to which the new message is a reply, while the + "References:" field may be used to identify a "thread" of + conversation. + + When creating a reply to a message, the "In-Reply-To:" and + "References:" fields of the resultant message are constructed as + follows: + + The "In-Reply-To:" field will contain the contents of the + "Message-ID:" field of the message to which this one is a reply (the + "parent message"). If there is more than one parent message, then + the "In-Reply-To:" field will contain the contents of all of the + parents' "Message-ID:" fields. If there is no "Message-ID:" field in + any of the parent messages, then the new message will have no "In- + Reply-To:" field. + + The "References:" field will contain the contents of the parent's + "References:" field (if any) followed by the contents of the parent's + "Message-ID:" field (if any). If the parent message does not contain + a "References:" field but does have an "In-Reply-To:" field + containing a single message identifier, then the "References:" field + will contain the contents of the parent's "In-Reply-To:" field + followed by the contents of the parent's "Message-ID:" field (if + any). If the parent has none of the "References:", "In-Reply-To:", + or "Message-ID:" fields, then the new message will have no + "References:" field. + + + + + +Resnick Standards Track [Page 26] + +RFC 5322 Internet Message Format October 2008 + + + Note: Some implementations parse the "References:" field to + display the "thread of the discussion". These implementations + assume that each new message is a reply to a single parent and + hence that they can walk backwards through the "References:" field + to find the parent of each message listed there. Therefore, + trying to form a "References:" field for a reply that has multiple + parents is discouraged; how to do so is not defined in this + document. + + The message identifier (msg-id) itself MUST be a globally unique + identifier for a message. The generator of the message identifier + MUST guarantee that the msg-id is unique. There are several + algorithms that can be used to accomplish this. Since the msg-id has + a similar syntax to addr-spec (identical except that quoted strings, + comments, and folding white space are not allowed), a good method is + to put the domain name (or a domain literal IP address) of the host + on which the message identifier was created on the right-hand side of + the "@" (since domain names and IP addresses are normally unique), + and put a combination of the current absolute date and time along + with some other currently unique (perhaps sequential) identifier + available on the system (for example, a process id number) on the + left-hand side. Though other algorithms will work, it is RECOMMENDED + that the right-hand side contain some domain identifier (either of + the host itself or otherwise) such that the generator of the message + identifier can guarantee the uniqueness of the left-hand side within + the scope of that domain. + + Semantically, the angle bracket characters are not part of the + msg-id; the msg-id is what is contained between the two angle bracket + characters. + +3.6.5. Informational Fields + + The informational fields are all optional. The "Subject:" and + "Comments:" fields are unstructured fields as defined in section + 2.2.1, and therefore may contain text or folding white space. The + "Keywords:" field contains a comma-separated list of one or more + words or quoted-strings. + + subject = "Subject:" unstructured CRLF + + comments = "Comments:" unstructured CRLF + + keywords = "Keywords:" phrase *("," phrase) CRLF + + These three fields are intended to have only human-readable content + with information about the message. The "Subject:" field is the most + common and contains a short string identifying the topic of the + + + +Resnick Standards Track [Page 27] + +RFC 5322 Internet Message Format October 2008 + + + message. When used in a reply, the field body MAY start with the + string "Re: " (an abbreviation of the Latin "in re", meaning "in the + matter of") followed by the contents of the "Subject:" field body of + the original message. If this is done, only one instance of the + literal string "Re: " ought to be used since use of other strings or + more than one instance can lead to undesirable consequences. The + "Comments:" field contains any additional comments on the text of the + body of the message. The "Keywords:" field contains a comma- + separated list of important words and phrases that might be useful + for the recipient. + +3.6.6. Resent Fields + + Resent fields SHOULD be added to any message that is reintroduced by + a user into the transport system. A separate set of resent fields + SHOULD be added each time this is done. All of the resent fields + corresponding to a particular resending of the message SHOULD be + grouped together. Each new set of resent fields is prepended to the + message; that is, the most recent set of resent fields appears + earlier in the message. No other fields in the message are changed + when resent fields are added. + + Each of the resent fields corresponds to a particular field elsewhere + in the syntax. For instance, the "Resent-Date:" field corresponds to + the "Date:" field and the "Resent-To:" field corresponds to the "To:" + field. In each case, the syntax for the field body is identical to + the syntax given previously for the corresponding field. + + When resent fields are used, the "Resent-From:" and "Resent-Date:" + fields MUST be sent. The "Resent-Message-ID:" field SHOULD be sent. + "Resent-Sender:" SHOULD NOT be used if "Resent-Sender:" would be + identical to "Resent-From:". + + resent-date = "Resent-Date:" date-time CRLF + + resent-from = "Resent-From:" mailbox-list CRLF + + resent-sender = "Resent-Sender:" mailbox CRLF + + resent-to = "Resent-To:" address-list CRLF + + resent-cc = "Resent-Cc:" address-list CRLF + + resent-bcc = "Resent-Bcc:" [address-list / CFWS] CRLF + + resent-msg-id = "Resent-Message-ID:" msg-id CRLF + + + + + +Resnick Standards Track [Page 28] + +RFC 5322 Internet Message Format October 2008 + + + Resent fields are used to identify a message as having been + reintroduced into the transport system by a user. The purpose of + using resent fields is to have the message appear to the final + recipient as if it were sent directly by the original sender, with + all of the original fields remaining the same. Each set of resent + fields correspond to a particular resending event. That is, if a + message is resent multiple times, each set of resent fields gives + identifying information for each individual time. Resent fields are + strictly informational. They MUST NOT be used in the normal + processing of replies or other such automatic actions on messages. + + Note: Reintroducing a message into the transport system and using + resent fields is a different operation from "forwarding". + "Forwarding" has two meanings: One sense of forwarding is that a + mail reading program can be told by a user to forward a copy of a + message to another person, making the forwarded message the body + of the new message. A forwarded message in this sense does not + appear to have come from the original sender, but is an entirely + new message from the forwarder of the message. Forwarding may + also mean that a mail transport program gets a message and + forwards it on to a different destination for final delivery. + Resent header fields are not intended for use with either type of + forwarding. + + The resent originator fields indicate the mailbox of the person(s) or + system(s) that resent the message. As with the regular originator + fields, there are two forms: a simple "Resent-From:" form, which + contains the mailbox of the individual doing the resending, and the + more complex form, when one individual (identified in the "Resent- + Sender:" field) resends a message on behalf of one or more others + (identified in the "Resent-From:" field). + + Note: When replying to a resent message, replies behave just as + they would with any other message, using the original "From:", + "Reply-To:", "Message-ID:", and other fields. The resent fields + are only informational and MUST NOT be used in the normal + processing of replies. + + The "Resent-Date:" indicates the date and time at which the resent + message is dispatched by the resender of the message. Like the + "Date:" field, it is not the date and time that the message was + actually transported. + + The "Resent-To:", "Resent-Cc:", and "Resent-Bcc:" fields function + identically to the "To:", "Cc:", and "Bcc:" fields, respectively, + except that they indicate the recipients of the resent message, not + the recipients of the original message. + + + + +Resnick Standards Track [Page 29] + +RFC 5322 Internet Message Format October 2008 + + + The "Resent-Message-ID:" field provides a unique identifier for the + resent message. + +3.6.7. Trace Fields + + The trace fields are a group of header fields consisting of an + optional "Return-Path:" field, and one or more "Received:" fields. + The "Return-Path:" header field contains a pair of angle brackets + that enclose an optional addr-spec. The "Received:" field contains a + (possibly empty) list of tokens followed by a semicolon and a date- + time specification. Each token must be a word, angle-addr, addr- + spec, or a domain. Further restrictions are applied to the syntax of + the trace fields by specifications that provide for their use, such + as [RFC5321]. + + trace = [return] + 1*received + + return = "Return-Path:" path CRLF + + path = angle-addr / ([CFWS] "<" [CFWS] ">" [CFWS]) + + received = "Received:" *received-token ";" date-time CRLF + + received-token = word / angle-addr / addr-spec / domain + + A full discussion of the Internet mail use of trace fields is + contained in [RFC5321]. For the purposes of this specification, the + trace fields are strictly informational, and any formal + interpretation of them is outside of the scope of this document. + +3.6.8. Optional Fields + + Fields may appear in messages that are otherwise unspecified in this + document. They MUST conform to the syntax of an optional-field. + This is a field name, made up of the printable US-ASCII characters + except SP and colon, followed by a colon, followed by any text that + conforms to the unstructured syntax. + + The field names of any optional field MUST NOT be identical to any + field name specified elsewhere in this document. + + + + + + + + + + +Resnick Standards Track [Page 30] + +RFC 5322 Internet Message Format October 2008 + + + optional-field = field-name ":" unstructured CRLF + + field-name = 1*ftext + + ftext = %d33-57 / ; Printable US-ASCII + %d59-126 ; characters not including + ; ":". + + For the purposes of this specification, any optional field is + uninterpreted. + +4. Obsolete Syntax + + Earlier versions of this specification allowed for different (usually + more liberal) syntax than is allowed in this version. Also, there + have been syntactic elements used in messages on the Internet whose + interpretations have never been documented. Though these syntactic + forms MUST NOT be generated according to the grammar in section 3, + they MUST be accepted and parsed by a conformant receiver. This + section documents many of these syntactic elements. Taking the + grammar in section 3 and adding the definitions presented in this + section will result in the grammar to use for the interpretation of + messages. + + Note: This section identifies syntactic forms that any + implementation MUST reasonably interpret. However, there are + certainly Internet messages that do not conform to even the + additional syntax given in this section. The fact that a + particular form does not appear in any section of this document is + not justification for computer programs to crash or for malformed + data to be irretrievably lost by any implementation. It is up to + the implementation to deal with messages robustly. + + One important difference between the obsolete (interpreting) and the + current (generating) syntax is that in structured header field bodies + (i.e., between the colon and the CRLF of any structured header + field), white space characters, including folding white space, and + comments could be freely inserted between any syntactic tokens. This + allowed many complex forms that have proven difficult for some + implementations to parse. + + Another key difference between the obsolete and the current syntax is + that the rule in section 3.2.2 regarding lines composed entirely of + white space in comments and folding white space does not apply. See + the discussion of folding white space in section 4.2 below. + + Finally, certain characters that were formerly allowed in messages + appear in this section. The NUL character (ASCII value 0) was once + + + +Resnick Standards Track [Page 31] + +RFC 5322 Internet Message Format October 2008 + + + allowed, but is no longer for compatibility reasons. Similarly, US- + ASCII control characters other than CR, LF, SP, and HTAB (ASCII + values 1 through 8, 11, 12, 14 through 31, and 127) were allowed to + appear in header field bodies. CR and LF were allowed to appear in + messages other than as CRLF; this use is also shown here. + + Other differences in syntax and semantics are noted in the following + sections. + +4.1. Miscellaneous Obsolete Tokens + + These syntactic elements are used elsewhere in the obsolete syntax or + in the main syntax. Bare CR, bare LF, and NUL are added to obs-qp, + obs-body, and obs-unstruct. US-ASCII control characters are added to + obs-qp, obs-unstruct, obs-ctext, and obs-qtext. The period character + is added to obs-phrase. The obs-phrase-list provides for a + (potentially empty) comma-separated list of phrases that may include + "null" elements. That is, there could be two or more commas in such + a list with nothing in between them, or commas at the beginning or + end of the list. + + Note: The "period" (or "full stop") character (".") in obs-phrase + is not a form that was allowed in earlier versions of this or any + other specification. Period (nor any other character from + specials) was not allowed in phrase because it introduced a + parsing difficulty distinguishing between phrases and portions of + an addr-spec (see section 4.4). It appears here because the + period character is currently used in many messages in the + display-name portion of addresses, especially for initials in + names, and therefore must be interpreted properly. + + obs-NO-WS-CTL = %d1-8 / ; US-ASCII control + %d11 / ; characters that do not + %d12 / ; include the carriage + %d14-31 / ; return, line feed, and + %d127 ; white space characters + + obs-ctext = obs-NO-WS-CTL + + obs-qtext = obs-NO-WS-CTL + + obs-utext = %d0 / obs-NO-WS-CTL / VCHAR + + obs-qp = "\" (%d0 / obs-NO-WS-CTL / LF / CR) + + obs-body = *((*LF *CR *((%d0 / text) *LF *CR)) / CRLF) + + obs-unstruct = *((*LF *CR *(obs-utext *LF *CR)) / FWS) + + + +Resnick Standards Track [Page 32] + +RFC 5322 Internet Message Format October 2008 + + + obs-phrase = word *(word / "." / CFWS) + + obs-phrase-list = [phrase / CFWS] *("," [phrase / CFWS]) + + Bare CR and bare LF appear in messages with two different meanings. + In many cases, bare CR or bare LF are used improperly instead of CRLF + to indicate line separators. In other cases, bare CR and bare LF are + used simply as US-ASCII control characters with their traditional + ASCII meanings. + +4.2. Obsolete Folding White Space + + In the obsolete syntax, any amount of folding white space MAY be + inserted where the obs-FWS rule is allowed. This creates the + possibility of having two consecutive "folds" in a line, and + therefore the possibility that a line which makes up a folded header + field could be composed entirely of white space. + + obs-FWS = 1*WSP *(CRLF 1*WSP) + +4.3. Obsolete Date and Time + + The syntax for the obsolete date format allows a 2 digit year in the + date field and allows for a list of alphabetic time zone specifiers + that were used in earlier versions of this specification. It also + permits comments and folding white space between many of the tokens. + + obs-day-of-week = [CFWS] day-name [CFWS] + + obs-day = [CFWS] 1*2DIGIT [CFWS] + + obs-year = [CFWS] 2*DIGIT [CFWS] + + obs-hour = [CFWS] 2DIGIT [CFWS] + + obs-minute = [CFWS] 2DIGIT [CFWS] + + obs-second = [CFWS] 2DIGIT [CFWS] + + obs-zone = "UT" / "GMT" / ; Universal Time + ; North American UT + ; offsets + "EST" / "EDT" / ; Eastern: - 5/ - 4 + "CST" / "CDT" / ; Central: - 6/ - 5 + "MST" / "MDT" / ; Mountain: - 7/ - 6 + "PST" / "PDT" / ; Pacific: - 8/ - 7 + ; + + + + +Resnick Standards Track [Page 33] + +RFC 5322 Internet Message Format October 2008 + + + %d65-73 / ; Military zones - "A" + %d75-90 / ; through "I" and "K" + %d97-105 / ; through "Z", both + %d107-122 ; upper and lower case + + Where a two or three digit year occurs in a date, the year is to be + interpreted as follows: If a two digit year is encountered whose + value is between 00 and 49, the year is interpreted by adding 2000, + ending up with a value between 2000 and 2049. If a two digit year is + encountered with a value between 50 and 99, or any three digit year + is encountered, the year is interpreted by adding 1900. + + In the obsolete time zone, "UT" and "GMT" are indications of + "Universal Time" and "Greenwich Mean Time", respectively, and are + both semantically identical to "+0000". + + The remaining three character zones are the US time zones. The first + letter, "E", "C", "M", or "P" stands for "Eastern", "Central", + "Mountain", and "Pacific". The second letter is either "S" for + "Standard" time, or "D" for "Daylight Savings" (or summer) time. + Their interpretations are as follows: + + EDT is semantically equivalent to -0400 + EST is semantically equivalent to -0500 + CDT is semantically equivalent to -0500 + CST is semantically equivalent to -0600 + MDT is semantically equivalent to -0600 + MST is semantically equivalent to -0700 + PDT is semantically equivalent to -0700 + PST is semantically equivalent to -0800 + + The 1 character military time zones were defined in a non-standard + way in [RFC0822] and are therefore unpredictable in their meaning. + The original definitions of the military zones "A" through "I" are + equivalent to "+0100" through "+0900", respectively; "K", "L", and + "M" are equivalent to "+1000", "+1100", and "+1200", respectively; + "N" through "Y" are equivalent to "-0100" through "-1200". + respectively; and "Z" is equivalent to "+0000". However, because of + the error in [RFC0822], they SHOULD all be considered equivalent to + "-0000" unless there is out-of-band information confirming their + meaning. + + Other multi-character (usually between 3 and 5) alphabetic time zones + have been used in Internet messages. Any such time zone whose + meaning is not known SHOULD be considered equivalent to "-0000" + unless there is out-of-band information confirming their meaning. + + + + + +Resnick Standards Track [Page 34] + +RFC 5322 Internet Message Format October 2008 + + +4.4. Obsolete Addressing + + There are four primary differences in addressing. First, mailbox + addresses were allowed to have a route portion before the addr-spec + when enclosed in "<" and ">". The route is simply a comma-separated + list of domain names, each preceded by "@", and the list terminated + by a colon. Second, CFWS were allowed between the period-separated + elements of local-part and domain (i.e., dot-atom was not used). In + addition, local-part is allowed to contain quoted-string in addition + to just atom. Third, mailbox-list and address-list were allowed to + have "null" members. That is, there could be two or more commas in + such a list with nothing in between them, or commas at the beginning + or end of the list. Finally, US-ASCII control characters and quoted- + pairs were allowed in domain literals and are added here. + + obs-angle-addr = [CFWS] "<" obs-route addr-spec ">" [CFWS] + + obs-route = obs-domain-list ":" + + obs-domain-list = *(CFWS / ",") "@" domain + *("," [CFWS] ["@" domain]) + + obs-mbox-list = *([CFWS] ",") mailbox *("," [mailbox / CFWS]) + + obs-addr-list = *([CFWS] ",") address *("," [address / CFWS]) + + obs-group-list = 1*([CFWS] ",") [CFWS] + + obs-local-part = word *("." word) + + obs-domain = atom *("." atom) + + obs-dtext = obs-NO-WS-CTL / quoted-pair + + When interpreting addresses, the route portion SHOULD be ignored. + +4.5. Obsolete Header Fields + + Syntactically, the primary difference in the obsolete field syntax is + that it allows multiple occurrences of any of the fields and they may + occur in any order. Also, any amount of white space is allowed + before the ":" at the end of the field name. + + + + + + + + + +Resnick Standards Track [Page 35] + +RFC 5322 Internet Message Format October 2008 + + + obs-fields = *(obs-return / + obs-received / + obs-orig-date / + obs-from / + obs-sender / + obs-reply-to / + obs-to / + obs-cc / + obs-bcc / + obs-message-id / + obs-in-reply-to / + obs-references / + obs-subject / + obs-comments / + obs-keywords / + obs-resent-date / + obs-resent-from / + obs-resent-send / + obs-resent-rply / + obs-resent-to / + obs-resent-cc / + obs-resent-bcc / + obs-resent-mid / + obs-optional) + + Except for destination address fields (described in section 4.5.3), + the interpretation of multiple occurrences of fields is unspecified. + Also, the interpretation of trace fields and resent fields that do + not occur in blocks prepended to the message is unspecified as well. + Unless otherwise noted in the following sections, interpretation of + other fields is identical to the interpretation of their non-obsolete + counterparts in section 3. + +4.5.1. Obsolete Origination Date Field + + obs-orig-date = "Date" *WSP ":" date-time CRLF + +4.5.2. Obsolete Originator Fields + + obs-from = "From" *WSP ":" mailbox-list CRLF + + obs-sender = "Sender" *WSP ":" mailbox CRLF + + obs-reply-to = "Reply-To" *WSP ":" address-list CRLF + + + + + + + +Resnick Standards Track [Page 36] + +RFC 5322 Internet Message Format October 2008 + + +4.5.3. Obsolete Destination Address Fields + + obs-to = "To" *WSP ":" address-list CRLF + + obs-cc = "Cc" *WSP ":" address-list CRLF + + obs-bcc = "Bcc" *WSP ":" + (address-list / (*([CFWS] ",") [CFWS])) CRLF + + When multiple occurrences of destination address fields occur in a + message, they SHOULD be treated as if the address list in the first + occurrence of the field is combined with the address lists of the + subsequent occurrences by adding a comma and concatenating. + +4.5.4. Obsolete Identification Fields + + The obsolete "In-Reply-To:" and "References:" fields differ from the + current syntax in that they allow phrase (words or quoted strings) to + appear. The obsolete forms of the left and right sides of msg-id + allow interspersed CFWS, making them syntactically identical to + local-part and domain, respectively. + + obs-message-id = "Message-ID" *WSP ":" msg-id CRLF + + obs-in-reply-to = "In-Reply-To" *WSP ":" *(phrase / msg-id) CRLF + + obs-references = "References" *WSP ":" *(phrase / msg-id) CRLF + + obs-id-left = local-part + + obs-id-right = domain + + For purposes of interpretation, the phrases in the "In-Reply-To:" and + "References:" fields are ignored. + + Semantically, none of the optional CFWS in the local-part and the + domain is part of the obs-id-left and obs-id-right, respectively. + +4.5.5. Obsolete Informational Fields + + obs-subject = "Subject" *WSP ":" unstructured CRLF + + obs-comments = "Comments" *WSP ":" unstructured CRLF + + obs-keywords = "Keywords" *WSP ":" obs-phrase-list CRLF + + + + + + +Resnick Standards Track [Page 37] + +RFC 5322 Internet Message Format October 2008 + + +4.5.6. Obsolete Resent Fields + + The obsolete syntax adds a "Resent-Reply-To:" field, which consists + of the field name, the optional comments and folding white space, the + colon, and a comma separated list of addresses. + + obs-resent-from = "Resent-From" *WSP ":" mailbox-list CRLF + + obs-resent-send = "Resent-Sender" *WSP ":" mailbox CRLF + + obs-resent-date = "Resent-Date" *WSP ":" date-time CRLF + + obs-resent-to = "Resent-To" *WSP ":" address-list CRLF + + obs-resent-cc = "Resent-Cc" *WSP ":" address-list CRLF + + obs-resent-bcc = "Resent-Bcc" *WSP ":" + (address-list / (*([CFWS] ",") [CFWS])) CRLF + + obs-resent-mid = "Resent-Message-ID" *WSP ":" msg-id CRLF + + obs-resent-rply = "Resent-Reply-To" *WSP ":" address-list CRLF + + As with other resent fields, the "Resent-Reply-To:" field is to be + treated as trace information only. + +4.5.7. Obsolete Trace Fields + + The obs-return and obs-received are again given here as template + definitions, just as return and received are in section 3. Their + full syntax is given in [RFC5321]. + + obs-return = "Return-Path" *WSP ":" path CRLF + + obs-received = "Received" *WSP ":" *received-token CRLF + +4.5.8. Obsolete optional fields + + obs-optional = field-name *WSP ":" unstructured CRLF + +5. Security Considerations + + Care needs to be taken when displaying messages on a terminal or + terminal emulator. Powerful terminals may act on escape sequences + and other combinations of US-ASCII control characters with a variety + of consequences. They can remap the keyboard or permit other + modifications to the terminal that could lead to denial of service or + even damaged data. They can trigger (sometimes programmable) + + + +Resnick Standards Track [Page 38] + +RFC 5322 Internet Message Format October 2008 + + + answerback messages that can allow a message to cause commands to be + issued on the recipient's behalf. They can also affect the operation + of terminal attached devices such as printers. Message viewers may + wish to strip potentially dangerous terminal escape sequences from + the message prior to display. However, other escape sequences appear + in messages for useful purposes (cf. [ISO.2022.1994], [RFC2045], + [RFC2046], [RFC2047], [RFC2049], [RFC4288], [RFC4289]) and therefore + should not be stripped indiscriminately. + + Transmission of non-text objects in messages raises additional + security issues. These issues are discussed in [RFC2045], [RFC2046], + [RFC2047], [RFC2049], [RFC4288], and [RFC4289]. + + Many implementations use the "Bcc:" (blind carbon copy) field, + described in section 3.6.3, to facilitate sending messages to + recipients without revealing the addresses of one or more of the + addressees to the other recipients. Mishandling this use of "Bcc:" + may disclose confidential information that could eventually lead to + security problems through knowledge of even the existence of a + particular mail address. For example, if using the first method + described in section 3.6.3, where the "Bcc:" line is removed from the + message, blind recipients have no explicit indication that they have + been sent a blind copy, except insofar as their address does not + appear in the header section of a message. Because of this, one of + the blind addressees could potentially send a reply to all of the + shown recipients and accidentally reveal that the message went to the + blind recipient. When the second method from section 3.6.3 is used, + the blind recipient's address appears in the "Bcc:" field of a + separate copy of the message. If the "Bcc:" field sent contains all + of the blind addressees, all of the "Bcc:" recipients will be seen by + each "Bcc:" recipient. Even if a separate message is sent to each + "Bcc:" recipient with only the individual's address, implementations + still need to be careful to process replies to the message as per + section 3.6.3 so as not to accidentally reveal the blind recipient to + other recipients. + +6. IANA Considerations + + This document updates the registrations that appeared in [RFC4021] + that referred to the definitions in [RFC2822]. IANA has updated the + Permanent Message Header Field Repository with the following header + fields, in accordance with the procedures set out in [RFC3864]. + + Header field name: Date + Applicable protocol: Mail + Status: standard + Author/Change controller: IETF + Specification document(s): This document (section 3.6.1) + + + +Resnick Standards Track [Page 39] + +RFC 5322 Internet Message Format October 2008 + + + Header field name: From + Applicable protocol: Mail + Status: standard + Author/Change controller: IETF + Specification document(s): This document (section 3.6.2) + + Header field name: Sender + Applicable protocol: Mail + Status: standard + Author/Change controller: IETF + Specification document(s): This document (section 3.6.2) + + Header field name: Reply-To + Applicable protocol: Mail + Status: standard + Author/Change controller: IETF + Specification document(s): This document (section 3.6.2) + + Header field name: To + Applicable protocol: Mail + Status: standard + Author/Change controller: IETF + Specification document(s): This document (section 3.6.3) + + Header field name: Cc + Applicable protocol: Mail + Status: standard + Author/Change controller: IETF + Specification document(s): This document (section 3.6.3) + + Header field name: Bcc + Applicable protocol: Mail + Status: standard + Author/Change controller: IETF + Specification document(s): This document (section 3.6.3) + + Header field name: Message-ID + Applicable protocol: Mail + Status: standard + Author/Change controller: IETF + Specification document(s): This document (section 3.6.4) + + Header field name: In-Reply-To + Applicable protocol: Mail + Status: standard + Author/Change controller: IETF + Specification document(s): This document (section 3.6.4) + + + + +Resnick Standards Track [Page 40] + +RFC 5322 Internet Message Format October 2008 + + + Header field name: References + Applicable protocol: Mail + Status: standard + Author/Change controller: IETF + Specification document(s): This document (section 3.6.4) + + Header field name: Subject + Applicable protocol: Mail + Status: standard + Author/Change controller: IETF + Specification document(s): This document (section 3.6.5) + + Header field name: Comments + Applicable protocol: Mail + Status: standard + Author/Change controller: IETF + Specification document(s): This document (section 3.6.5) + + Header field name: Keywords + Applicable protocol: Mail + Status: standard + Author/Change controller: IETF + Specification document(s): This document (section 3.6.5) + + Header field name: Resent-Date + Applicable protocol: Mail + Status: standard + Author/Change controller: IETF + Specification document(s): This document (section 3.6.6) + + Header field name: Resent-From + Applicable protocol: Mail + Status: standard + Author/Change controller: IETF + Specification document(s): This document (section 3.6.6) + + Header field name: Resent-Sender + Applicable protocol: Mail + Status: standard + Author/Change controller: IETF + Specification document(s): This document (section 3.6.6) + + Header field name: Resent-To + Applicable protocol: Mail + Status: standard + Author/Change controller: IETF + Specification document(s): This document (section 3.6.6) + + + + +Resnick Standards Track [Page 41] + +RFC 5322 Internet Message Format October 2008 + + + Header field name: Resent-Cc + Applicable protocol: Mail + Status: standard + Author/Change controller: IETF + Specification document(s): This document (section 3.6.6) + + Header field name: Resent-Bcc + Applicable protocol: Mail + Status: standard + Author/Change controller: IETF + Specification document(s): This document (section 3.6.6) + + Header field name: Resent-Reply-To + Applicable protocol: Mail + Status: obsolete + Author/Change controller: IETF + Specification document(s): This document (section 4.5.6) + + Header field name: Resent-Message-ID + Applicable protocol: Mail + Status: standard + Author/Change controller: IETF + Specification document(s): This document (section 3.6.6) + + Header field name: Return-Path + Applicable protocol: Mail + Status: standard + Author/Change controller: IETF + Specification document(s): This document (section 3.6.7) + + Header field name: Received + Applicable protocol: Mail + Status: standard + Author/Change controller: IETF + Specification document(s): This document (section 3.6.7) + Related information: [RFC5321] + + + + + + + + + + + + + + + +Resnick Standards Track [Page 42] + +RFC 5322 Internet Message Format October 2008 + + +Appendix A. Example Messages + + This section presents a selection of messages. These are intended to + assist in the implementation of this specification, but should not be + taken as normative; that is to say, although the examples in this + section were carefully reviewed, if there happens to be a conflict + between these examples and the syntax described in sections 3 and 4 + of this document, the syntax in those sections is to be taken as + correct. + + In the text version of this document, messages in this section are + delimited between lines of "----". The "----" lines are not part of + the message itself. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Resnick Standards Track [Page 43] + +RFC 5322 Internet Message Format October 2008 + + +Appendix A.1. Addressing Examples + + The following are examples of messages that might be sent between two + individuals. + +Appendix A.1.1. A Message from One Person to Another with Simple + Addressing + + This could be called a canonical message. It has a single author, + John Doe, a single recipient, Mary Smith, a subject, the date, a + message identifier, and a textual message in the body. + + ---- + From: John Doe + To: Mary Smith + Subject: Saying Hello + Date: Fri, 21 Nov 1997 09:55:06 -0600 + Message-ID: <1234@local.machine.example> + + This is a message just to say hello. + So, "Hello". + ---- + + If John's secretary Michael actually sent the message, even though + John was the author and replies to this message should go back to + him, the sender field would be used: + + ---- + From: John Doe + Sender: Michael Jones + To: Mary Smith + Subject: Saying Hello + Date: Fri, 21 Nov 1997 09:55:06 -0600 + Message-ID: <1234@local.machine.example> + + This is a message just to say hello. + So, "Hello". + ---- + + + + + + + + + + + + + +Resnick Standards Track [Page 44] + +RFC 5322 Internet Message Format October 2008 + + +Appendix A.1.2. Different Types of Mailboxes + + This message includes multiple addresses in the destination fields + and also uses several different forms of addresses. + + ---- + From: "Joe Q. Public" + To: Mary Smith , jdoe@example.org, Who? + Cc: , "Giant; \"Big\" Box" + Date: Tue, 1 Jul 2003 10:52:37 +0200 + Message-ID: <5678.21-Nov-1997@example.com> + + Hi everyone. + ---- + + Note that the display names for Joe Q. Public and Giant; "Big" Box + needed to be enclosed in double-quotes because the former contains + the period and the latter contains both semicolon and double-quote + characters (the double-quote characters appearing as quoted-pair + constructs). Conversely, the display name for Who? could appear + without them because the question mark is legal in an atom. Notice + also that jdoe@example.org and boss@nil.test have no display names + associated with them at all, and jdoe@example.org uses the simpler + address form without the angle brackets. + +Appendix A.1.3. Group Addresses + + ---- + From: Pete + To: A Group:Ed Jones ,joe@where.test,John ; + Cc: Undisclosed recipients:; + Date: Thu, 13 Feb 1969 23:32:54 -0330 + Message-ID: + + Testing. + ---- + + In this message, the "To:" field has a single group recipient named + "A Group", which contains 3 addresses, and a "Cc:" field with an + empty group recipient named Undisclosed recipients. + + + + + + + + + + + +Resnick Standards Track [Page 45] + +RFC 5322 Internet Message Format October 2008 + + +Appendix A.2. Reply Messages + + The following is a series of three messages that make up a + conversation thread between John and Mary. John first sends a + message to Mary, Mary then replies to John's message, and then John + replies to Mary's reply message. + + Note especially the "Message-ID:", "References:", and "In-Reply-To:" + fields in each message. + + ---- + From: John Doe + To: Mary Smith + Subject: Saying Hello + Date: Fri, 21 Nov 1997 09:55:06 -0600 + Message-ID: <1234@local.machine.example> + + This is a message just to say hello. + So, "Hello". + ---- + + When sending replies, the Subject field is often retained, though + prepended with "Re: " as described in section 3.6.5. + + ---- + From: Mary Smith + To: John Doe + Reply-To: "Mary Smith: Personal Account" + Subject: Re: Saying Hello + Date: Fri, 21 Nov 1997 10:01:10 -0600 + Message-ID: <3456@example.net> + In-Reply-To: <1234@local.machine.example> + References: <1234@local.machine.example> + + This is a reply to your hello. + ---- + + Note the "Reply-To:" field in the above message. When John replies + to Mary's message above, the reply should go to the address in the + "Reply-To:" field instead of the address in the "From:" field. + + + + + + + + + + + +Resnick Standards Track [Page 46] + +RFC 5322 Internet Message Format October 2008 + + + ---- + To: "Mary Smith: Personal Account" + From: John Doe + Subject: Re: Saying Hello + Date: Fri, 21 Nov 1997 11:00:00 -0600 + Message-ID: + In-Reply-To: <3456@example.net> + References: <1234@local.machine.example> <3456@example.net> + + This is a reply to your reply. + ---- + +Appendix A.3. Resent Messages + + Start with the message that has been used as an example several + times: + + ---- + From: John Doe + To: Mary Smith + Subject: Saying Hello + Date: Fri, 21 Nov 1997 09:55:06 -0600 + Message-ID: <1234@local.machine.example> + + This is a message just to say hello. + So, "Hello". + ---- + + Say that Mary, upon receiving this message, wishes to send a copy of + the message to Jane such that (a) the message would appear to have + come straight from John; (b) if Jane replies to the message, the + reply should go back to John; and (c) all of the original + information, like the date the message was originally sent to Mary, + the message identifier, and the original addressee, is preserved. In + this case, resent fields are prepended to the message: + + + + + + + + + + + + + + + + +Resnick Standards Track [Page 47] + +RFC 5322 Internet Message Format October 2008 + + + ---- + Resent-From: Mary Smith + Resent-To: Jane Brown + Resent-Date: Mon, 24 Nov 1997 14:22:01 -0800 + Resent-Message-ID: <78910@example.net> + From: John Doe + To: Mary Smith + Subject: Saying Hello + Date: Fri, 21 Nov 1997 09:55:06 -0600 + Message-ID: <1234@local.machine.example> + + This is a message just to say hello. + So, "Hello". + ---- + + If Jane, in turn, wished to resend this message to another person, + she would prepend her own set of resent header fields to the above + and send that. (Note that for brevity, trace fields are not shown.) + +Appendix A.4. Messages with Trace Fields + + As messages are sent through the transport system as described in + [RFC5321], trace fields are prepended to the message. The following + is an example of what those trace fields might look like. Note that + there is some folding white space in the first one since these lines + can be long. + + ---- + Received: from x.y.test + by example.net + via TCP + with ESMTP + id ABC12345 + for ; 21 Nov 1997 10:05:43 -0600 + Received: from node.example by x.y.test; 21 Nov 1997 10:01:22 -0600 + From: John Doe + To: Mary Smith + Subject: Saying Hello + Date: Fri, 21 Nov 1997 09:55:06 -0600 + Message-ID: <1234@local.node.example> + + This is a message just to say hello. + So, "Hello". + ---- + + + + + + + +Resnick Standards Track [Page 48] + +RFC 5322 Internet Message Format October 2008 + + +Appendix A.5. White Space, Comments, and Other Oddities + + White space, including folding white space, and comments can be + inserted between many of the tokens of fields. Taking the example + from A.1.3, white space and comments can be inserted into all of the + fields. + + ---- + From: Pete(A nice \) chap) + To:A Group(Some people) + :Chris Jones , + joe@example.org, + John (my dear friend); (the end of the group) + Cc:(Empty list)(start)Hidden recipients :(nobody(that I know)) ; + Date: Thu, + 13 + Feb + 1969 + 23:32 + -0330 (Newfoundland Time) + Message-ID: + + Testing. + ---- + + The above example is aesthetically displeasing, but perfectly legal. + Note particularly (1) the comments in the "From:" field (including + one that has a ")" character appearing as part of a quoted-pair); (2) + the white space absent after the ":" in the "To:" field as well as + the comment and folding white space after the group name, the special + character (".") in the comment in Chris Jones's address, and the + folding white space before and after "joe@example.org,"; (3) the + multiple and nested comments in the "Cc:" field as well as the + comment immediately following the ":" after "Cc"; (4) the folding + white space (but no comments except at the end) and the missing + seconds in the time of the date field; and (5) the white space before + (but not within) the identifier in the "Message-ID:" field. + + + + + + + + + + + + + + +Resnick Standards Track [Page 49] + +RFC 5322 Internet Message Format October 2008 + + +Appendix A.6. Obsoleted Forms + + The following are examples of obsolete (that is, the "MUST NOT + generate") syntactic elements described in section 4 of this + document. + +Appendix A.6.1. Obsolete Addressing + + Note in the example below the lack of quotes around Joe Q. Public, + the route that appears in the address for Mary Smith, the two commas + that appear in the "To:" field, and the spaces that appear around the + "." in the jdoe address. + + ---- + From: Joe Q. Public + To: Mary Smith <@node.test:mary@example.net>, , jdoe@test . example + Date: Tue, 1 Jul 2003 10:52:37 +0200 + Message-ID: <5678.21-Nov-1997@example.com> + + Hi everyone. + ---- + +Appendix A.6.2. Obsolete Dates + + The following message uses an obsolete date format, including a non- + numeric time zone and a two digit year. Note that although the day- + of-week is missing, that is not specific to the obsolete syntax; it + is optional in the current syntax as well. + + ---- + From: John Doe + To: Mary Smith + Subject: Saying Hello + Date: 21 Nov 97 09:55:06 GMT + Message-ID: <1234@local.machine.example> + + This is a message just to say hello. + So, "Hello". + ---- + + + + + + + + + + + + +Resnick Standards Track [Page 50] + +RFC 5322 Internet Message Format October 2008 + + +Appendix A.6.3. Obsolete White Space and Comments + + White space and comments can appear between many more elements than + in the current syntax. Also, folding lines that are made up entirely + of white space are legal. + + ---- + From : John Doe + To : Mary Smith + __ + + Subject : Saying Hello + Date : Fri, 21 Nov 1997 09(comment): 55 : 06 -0600 + Message-ID : <1234 @ local(blah) .machine .example> + + This is a message just to say hello. + So, "Hello". + ---- + + Note especially the second line of the "To:" field. It starts with + two space characters. (Note that "__" represent blank spaces.) + Therefore, it is considered part of the folding, as described in + section 4.2. Also, the comments and white space throughout + addresses, dates, and message identifiers are all part of the + obsolete syntax. + + + + + + + + + + + + + + + + + + + + + + + + + + +Resnick Standards Track [Page 51] + +RFC 5322 Internet Message Format October 2008 + + +Appendix B. Differences from Earlier Specifications + + This appendix contains a list of changes that have been made in the + Internet Message Format from earlier specifications, specifically + [RFC0822], [RFC1123], and [RFC2822]. Items marked with an asterisk + (*) below are items which appear in section 4 of this document and + therefore can no longer be generated. + + The following are the changes made from [RFC0822] and [RFC1123] to + [RFC2822] that remain in this document: + + 1. Period allowed in obsolete form of phrase. + 2. ABNF moved out of document, now in [RFC5234]. + 3. Four or more digits allowed for year. + 4. Header field ordering (and lack thereof) made explicit. + 5. Encrypted header field removed. + 6. Specifically allow and give meaning to "-0000" time zone. + 7. Folding white space is not allowed between every token. + 8. Requirement for destinations removed. + 9. Forwarding and resending redefined. + 10. Extension header fields no longer specifically called out. + 11. ASCII 0 (null) removed.* + 12. Folding continuation lines cannot contain only white space.* + 13. Free insertion of comments not allowed in date.* + 14. Non-numeric time zones not allowed.* + 15. Two digit years not allowed.* + 16. Three digit years interpreted, but not allowed for generation.* + 17. Routes in addresses not allowed.* + 18. CFWS within local-parts and domains not allowed.* + 19. Empty members of address lists not allowed.* + 20. Folding white space between field name and colon not allowed.* + 21. Comments between field name and colon not allowed. + 22. Tightened syntax of in-reply-to and references.* + 23. CFWS within msg-id not allowed.* + 24. Tightened semantics of resent fields as informational only. + 25. Resent-Reply-To not allowed.* + 26. No multiple occurrences of fields (except resent and received).* + 27. Free CR and LF not allowed.* + 28. Line length limits specified. + 29. Bcc more clearly specified. + + + + + + + + + + + +Resnick Standards Track [Page 52] + +RFC 5322 Internet Message Format October 2008 + + + The following are changes from [RFC2822]. + 1. Assorted typographical/grammatical errors fixed and + clarifications made. + 2. Changed "standard" to "document" or "specification" throughout. + 3. Made distinction between "header field" and "header section". + 4. Removed NO-WS-CTL from ctext, qtext, dtext, and unstructured.* + 5. Moved discussion of specials to the "Atom" section. Moved text + to "Overall message syntax" section. + 6. Simplified CFWS syntax. + 7. Fixed unstructured syntax. + 8. Changed date and time syntax to deal with white space in + obsolete date syntax. + 9. Removed quoted-pair from domain literals and message + identifiers.* + 10. Clarified that other specifications limit domain syntax. + 11. Simplified "Bcc:" and "Resent-Bcc:" syntax. + 12. Allowed optional-field to appear within trace information. + 13. Removed no-fold-quote from msg-id. Clarified syntax + limitations. + 14. Generalized "Received:" syntax to fix bugs and move definition + out of this document. + 15. Simplified obs-qp. Fixed and simplified obs-utext (which now + only appears in the obsolete syntax). Removed obs-text and obs- + char, adding obs-body. + 16. Fixed obsolete date syntax to allow for more (or less) comments + and white space. + 17. Fixed all obsolete list syntax (obs-domain-list, obs-mbox-list, + obs-addr-list, obs-phrase-list, and the newly added obs-group- + list). + 18. Fixed obs-reply-to syntax. + 19. Fixed obs-bcc and obs-resent-bcc to allow empty lists. + 20. Removed obs-path. + +Appendix C. Acknowledgements + + Many people contributed to this document. They included folks who + participated in the Detailed Revision and Update of Messaging + Standards (DRUMS) Working Group of the Internet Engineering Task + Force (IETF), the chair of DRUMS, the Area Directors of the IETF, and + people who simply sent their comments in via email. The editor is + deeply indebted to them all and thanks them sincerely. The below + list includes everyone who sent email concerning both this document + and [RFC2822]. Hopefully, everyone who contributed is named here: + + +--------------------+----------------------+---------------------+ + | Matti Aarnio | Tanaka Akira | Russ Allbery | + | Eric Allman | Harald Alvestrand | Ran Atkinson | + | Jos Backus | Bruce Balden | Dave Barr | + + + +Resnick Standards Track [Page 53] + +RFC 5322 Internet Message Format October 2008 + + + | Alan Barrett | John Beck | J Robert von Behren | + | Jos den Bekker | D J Bernstein | James Berriman | + | Oliver Block | Norbert Bollow | Raj Bose | + | Antony Bowesman | Scott Bradner | Randy Bush | + | Tom Byrer | Bruce Campbell | Larry Campbell | + | W J Carpenter | Michael Chapman | Richard Clayton | + | Maurizio Codogno | Jim Conklin | R Kelley Cook | + | Nathan Coulter | Steve Coya | Mark Crispin | + | Dave Crocker | Matt Curtin | Michael D'Errico | + | Cyrus Daboo | Michael D Dean | Jutta Degener | + | Mark Delany | Steve Dorner | Harold A Driscoll | + | Michael Elkins | Frank Ellerman | Robert Elz | + | Johnny Eriksson | Erik E Fair | Roger Fajman | + | Patrik Faltstrom | Claus Andre Faerber | Barry Finkel | + | Erik Forsberg | Chuck Foster | Paul Fox | + | Klaus M Frank | Ned Freed | Jochen Friedrich | + | Randall C Gellens | Sukvinder Singh Gill | Tim Goodwin | + | Philip Guenther | Arnt Gulbrandsen | Eric A Hall | + | Tony Hansen | John Hawkinson | Philip Hazel | + | Kai Henningsen | Robert Herriot | Paul Hethmon | + | Jim Hill | Alfred Hoenes | Paul E Hoffman | + | Steve Hole | Kari Hurtta | Marco S Hyman | + | Ofer Inbar | Olle Jarnefors | Kevin Johnson | + | Sudish Joseph | Maynard Kang | Prabhat Keni | + | John C Klensin | Graham Klyne | Brad Knowles | + | Shuhei Kobayashi | Peter Koch | Dan Kohn | + | Christian Kuhtz | Anand Kumria | Steen Larsen | + | Eliot Lear | Barry Leiba | Jay Levitt | + | Bruce Lilly | Lars-Johan Liman | Charles Lindsey | + | Pete Loshin | Simon Lyall | Bill Manning | + | John Martin | Mark Martinec | Larry Masinter | + | Denis McKeon | William P McQuillan | Alexey Melnikov | + | Perry E Metzger | Steven Miller | S Moonesamy | + | Keith Moore | John Gardiner Myers | Chris Newman | + | John W Noerenberg | Eric Norman | Mike O'Dell | + | Larry Osterman | Paul Overell | Jacob Palme | + | Michael A Patton | Uzi Paz | Michael A Quinlan | + | Robert Rapplean | Eric S Raymond | Sam Roberts | + | Hugh Sasse | Bart Schaefer | Tom Scola | + | Wolfgang Segmuller | Nick Shelness | John Stanley | + | Einar Stefferud | Jeff Stephenson | Bernard Stern | + | Peter Sylvester | Mark Symons | Eric Thomas | + | Lee Thompson | Karel De Vriendt | Matthew Wall | + | Rolf Weber | Brent B Welch | Dan Wing | + | Jack De Winter | Gregory J Woodhouse | Greg A Woods | + | Kazu Yamamoto | Alain Zahm | Jamie Zawinski | + | Timothy S Zurcher | | | + +--------------------+----------------------+---------------------+ + + + +Resnick Standards Track [Page 54] + +RFC 5322 Internet Message Format October 2008 + + +7. References + +7.1. Normative References + + [ANSI.X3-4.1986] American National Standards Institute, "Coded + Character Set - 7-bit American Standard Code for + Information Interchange", ANSI X3.4, 1986. + + [RFC1034] Mockapetris, P., "Domain names - concepts and + facilities", STD 13, RFC 1034, November 1987. + + [RFC1035] Mockapetris, P., "Domain names - implementation and + specification", STD 13, RFC 1035, November 1987. + + [RFC1123] Braden, R., "Requirements for Internet Hosts - + Application and Support", STD 3, RFC 1123, + October 1989. + + [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate + Requirement Levels", BCP 14, RFC 2119, March 1997. + + [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for + Syntax Specifications: ABNF", STD 68, RFC 5234, + January 2008. + +7.2. Informative References + + [RFC0822] Crocker, D., "Standard for the format of ARPA + Internet text messages", STD 11, RFC 822, + August 1982. + + [RFC1305] Mills, D., "Network Time Protocol (Version 3) + Specification, Implementation", RFC 1305, + March 1992. + + [ISO.2022.1994] International Organization for Standardization, + "Information technology - Character code structure + and extension techniques", ISO Standard 2022, 1994. + + [RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet + Mail Extensions (MIME) Part One: Format of Internet + Message Bodies", RFC 2045, November 1996. + + [RFC2046] Freed, N. and N. Borenstein, "Multipurpose Internet + Mail Extensions (MIME) Part Two: Media Types", + RFC 2046, November 1996. + + + + + +Resnick Standards Track [Page 55] + +RFC 5322 Internet Message Format October 2008 + + + [RFC2047] Moore, K., "MIME (Multipurpose Internet Mail + Extensions) Part Three: Message Header Extensions + for Non-ASCII Text", RFC 2047, November 1996. + + [RFC2049] Freed, N. and N. Borenstein, "Multipurpose Internet + Mail Extensions (MIME) Part Five: Conformance + Criteria and Examples", RFC 2049, November 1996. + + [RFC2822] Resnick, P., "Internet Message Format", RFC 2822, + April 2001. + + [RFC3864] Klyne, G., Nottingham, M., and J. Mogul, + "Registration Procedures for Message Header + Fields", BCP 90, RFC 3864, September 2004. + + [RFC4021] Klyne, G. and J. Palme, "Registration of Mail and + MIME Header Fields", RFC 4021, March 2005. + + [RFC4288] Freed, N. and J. Klensin, "Media Type + Specifications and Registration Procedures", + BCP 13, RFC 4288, December 2005. + + [RFC4289] Freed, N. and J. Klensin, "Multipurpose Internet + Mail Extensions (MIME) Part Four: Registration + Procedures", BCP 13, RFC 4289, December 2005. + + [RFC5321] Klensin, J., "Simple Mail Transfer Protocol", + RFC 5321, October 2008. + +Author's Address + + Peter W. Resnick (editor) + Qualcomm Incorporated + 5775 Morehouse Drive + San Diego, CA 92121-1714 + US + + Phone: +1 858 651 4478 + EMail: presnick@qualcomm.com + URI: http://www.qualcomm.com/~presnick/ + + + + + + + + + + + +Resnick Standards Track [Page 56] + +RFC 5322 Internet Message Format October 2008 + + +Full Copyright Statement + + Copyright (C) The IETF Trust (2008). + + This document is subject to the rights, licenses and restrictions + contained in BCP 78, and except as set forth therein, the authors + retain all their rights. + + This document and the information contained herein are provided on an + "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS + OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND + THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF + THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED + WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +Intellectual Property + + The IETF takes no position regarding the validity or scope of any + Intellectual Property Rights or other rights that might be claimed to + pertain to the implementation or use of the technology described in + this document or the extent to which any license under such rights + might or might not be available; nor does it represent that it has + made any independent effort to identify any such rights. Information + on the procedures with respect to rights in RFC documents can be + found in BCP 78 and BCP 79. + + Copies of IPR disclosures made to the IETF Secretariat and any + assurances of licenses to be made available, or the result of an + attempt made to obtain a general license or permission for the use of + such proprietary rights by implementers or users of this + specification can be obtained from the IETF on-line IPR repository at + http://www.ietf.org/ipr. + + The IETF invites any interested party to bring to its attention any + copyrights, patents or patent applications, or other proprietary + rights that may cover technology that may be required to implement + this standard. Please address the information to the IETF at + ietf-ipr@ietf.org. + + + + + + + + + + + + +Resnick Standards Track [Page 57] + diff --git a/specifications/mail/rfc8621.pdf b/specifications/mail/rfc8621.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ae1c0acb8b840c6539ace47f78d81ffed4849a26 GIT binary patch literal 152170 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⪼zdtk`B7OW6sy25%qghj@boZy(wZ@fHN$ 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 1, or null for no limit (or rather, the limit is + always the number of Mailboxes in the account). + + + + + +Jenkins & Newman Standards Track [Page 5] + +RFC 8621 JMAP Mail August 2019 + + + o maxMailboxDepth: "UnsignedInt|null" + + The maximum depth of the Mailbox hierarchy (i.e., one more than + the maximum number of ancestors a Mailbox may have), or null for + no limit. + + o maxSizeMailboxName: "UnsignedInt" + + The maximum length, in (UTF-8) octets, allowed for the name of a + Mailbox. This MUST be at least 100, although it is recommended + servers allow more. + + o maxSizeAttachmentsPerEmail: "UnsignedInt" + + The maximum total size of attachments, in octets, allowed for a + single Email object. A server MAY still reject the import or + creation of an Email with a lower attachment size total (for + example, if the body includes several megabytes of text, causing + the size of the encoded MIME structure to be over some server- + defined limit). + + Note that this limit is for the sum of unencoded attachment sizes. + Users are generally not knowledgeable about encoding overhead, + etc., nor should they need to be, so marketing and help materials + normally tell them the "max size attachments". This is the + unencoded size they see on their hard drive, so this capability + matches that and allows the client to consistently enforce what + the user understands as the limit. + + The server may separately have a limit for the total size of the + message [RFC5322], created by combining the attachments (often + base64 encoded) with the message headers and bodies. For example, + suppose the server advertises "maxSizeAttachmentsPerEmail: + 50000000" (50 MB). The enforced server limit may be for a message + size of 70000000 octets. Even with base64 encoding and a 2 MB + HTML body, 50 MB attachments would fit under this limit. + + o emailQuerySortOptions: "String[]" + + A list of all the values the server supports for the "property" + field of the Comparator object in an "Email/query" sort (see + Section 4.4.2). This MAY include properties the client does not + recognise (for example, custom properties specified in a vendor + extension). Clients MUST ignore any unknown properties in the + list. + + + + + + +Jenkins & Newman Standards Track [Page 6] + +RFC 8621 JMAP Mail August 2019 + + + o mayCreateTopLevelMailbox: "Boolean" + + If true, the user may create a Mailbox (see Section 2) in this + account with a null parentId. (Permission for creating a child of + an existing Mailbox is given by the "myRights" property on that + Mailbox.) + +1.3.2. urn:ietf:params:jmap:submission + + This represents support for the Identity and EmailSubmission data + types and associated API methods. The value of this property in the + JMAP session "capabilities" property is an empty object. + + The value of this property in an account's "accountCapabilities" + property is an object that MUST contain the following information on + server capabilities and permissions for that account: + + o maxDelayedSend: "UnsignedInt" + + The number in seconds of the maximum delay the server supports in + sending (see the EmailSubmission object description). This is 0 + if the server does not support delayed send. + + o submissionExtensions: "String[String[]]" + + The set of SMTP submission extensions supported by the server, + which the client may use when creating an EmailSubmission object + (see Section 7). Each key in the object is the "ehlo-name", and + the value is a list of "ehlo-args". + + A JMAP implementation that talks to a submission server [RFC6409] + SHOULD have a configuration setting that allows an administrator + to modify the set of submission EHLO capabilities it may expose on + this property. This allows a JMAP server to easily add access to + a new submission extension without code changes. By default, the + JMAP server should hide EHLO capabilities that have to do with the + transport mechanism and thus are only relevant to the JMAP server + (for example, PIPELINING, CHUNKING, or STARTTLS). + + Examples of Submission extensions to include: + + * FUTURERELEASE [RFC4865] + + * SIZE [RFC1870] + + * DSN [RFC3461] + + * DELIVERYBY [RFC2852] + + + +Jenkins & Newman Standards Track [Page 7] + +RFC 8621 JMAP Mail August 2019 + + + * MT-PRIORITY [RFC6710] + + A JMAP server MAY advertise an extension and implement the + semantics of that extension locally on the JMAP server even if a + submission server used by JMAP doesn't implement it. + + The full IANA registry of submission extensions can be found at + . + +1.3.3. urn:ietf:params:jmap:vacationresponse + + This represents support for the VacationResponse data type and + associated API methods. The value of this property is an empty + object in both the JMAP session "capabilities" property and an + account's "accountCapabilities" property. + +1.4. Data Type Support in Different Accounts + + The server MUST include the appropriate capability strings as keys in + the "accountCapabilities" property of any account with which the user + may use the data types represented by that URI. Supported data types + may differ between accounts the user has access to. For example, in + the user's personal account, they may have access to all three sets + of data, but in a shared account, they may only have data for + "urn:ietf:params:jmap:mail". This means they can access + Mailbox/Thread/Email data in the shared account but are not allowed + to send as that account (and so do not have access to Identity/ + EmailSubmission objects) or view/set its VacationResponse. + +1.5. Push + + Servers MUST support the JMAP push mechanisms, as specified in + [RFC8620], Section 7, to receive notifications when the state changes + for any of the types defined in this specification. + + In addition, servers that implement the "urn:ietf:params:jmap:mail" + capability MUST support pushing state changes for a type called + "EmailDelivery". There are no methods to act on this type; it only + exists as part of the push mechanism. The state string for this MUST + change whenever a new Email is added to the store, but it SHOULD NOT + change upon any other change to the Email objects, for example, if + one is marked as read or deleted. + + Clients in battery-constrained environments may wish to delay + fetching changes initiated by the user but fetch new Emails + immediately so they can notify the user. To do this, they can + register for pushes for the EmailDelivery type rather than the Email + type (as defined in Section 4). + + + +Jenkins & Newman Standards Track [Page 8] + +RFC 8621 JMAP Mail August 2019 + + +1.5.1. Example + + The client has registered for push notifications (see [RFC8620]) just + for the EmailDelivery type. The user marks an Email as read on + another device, causing the state string for the Email type to + change; however, as nothing new was added to the store, the + EmailDelivery state does not change and nothing is pushed to the + client. A new message arrives in the user's inbox, again causing the + Email state to change. This time, the EmailDelivery state also + changes, and a StateChange object is pushed to the client with the + new state string. The client may then resync to fetch the new Email + immediately. + +1.6. Ids + + If a JMAP Mail server also provides an IMAP interface to the data and + supports IMAP Extension for Object Identifiers [RFC8474], the ids + SHOULD be the same for Mailbox, Thread, and Email objects in JMAP. + +2. Mailboxes + + A Mailbox represents a named set of Email objects. This is the + primary mechanism for organising messages within an account. It is + analogous to a folder or a label in other systems. A Mailbox may + perform a certain role in the system; see below for more details. + + For compatibility with IMAP, an Email MUST belong to one or more + Mailboxes. The Email id does not change if the Email changes + Mailboxes. + + A *Mailbox* object has the following properties: + + o id: "Id" (immutable; server-set) + + The id of the Mailbox. + + o name: "String" + + User-visible name for the Mailbox, e.g., "Inbox". This MUST be a + Net-Unicode string [RFC5198] of at least 1 character in length, + subject to the maximum size given in the capability object. There + MUST NOT be two sibling Mailboxes with both the same parent and + the same name. Servers MAY reject names that violate server + policy (e.g., names containing a slash (/) or control characters). + + + + + + + +Jenkins & Newman Standards Track [Page 9] + +RFC 8621 JMAP Mail August 2019 + + + o parentId: "Id|null" (default: null) + + The Mailbox id for the parent of this Mailbox, or null if this + Mailbox is at the top level. Mailboxes form acyclic graphs + (forests) directed by the child-to-parent relationship. There + MUST NOT be a loop. + + o role: "String|null" (default: null) + + Identifies Mailboxes that have a particular common purpose (e.g., + the "inbox"), regardless of the "name" property (which may be + localised). + + This value is shared with IMAP (exposed in IMAP via the SPECIAL- + USE extension [RFC6154]). However, unlike in IMAP, a Mailbox MUST + only have a single role, and there MUST NOT be two Mailboxes in + the same account with the same role. Servers providing IMAP + access to the same data are encouraged to enforce these extra + restrictions in IMAP as well. Otherwise, modifying the IMAP + attributes to ensure compliance when exposing the data over JMAP + is implementation dependent. + + The value MUST be one of the Mailbox attribute names listed in the + IANA "IMAP Mailbox Name Attributes" registry at + , + as established in [RFC8457], converted to lowercase. New roles + may be established here in the future. + + An account is not required to have Mailboxes with any particular + roles. + + o sortOrder: "UnsignedInt" (default: 0) + + Defines the sort order of Mailboxes when presented in the client's + UI, so it is consistent between devices. The number MUST be an + integer in the range 0 <= sortOrder < 2^31. + + A Mailbox with a lower order should be displayed before a Mailbox + with a higher order (that has the same parent) in any Mailbox + listing in the client's UI. Mailboxes with equal order SHOULD be + sorted in alphabetical order by name. The sorting should take + into account locale-specific character order convention. + + o totalEmails: "UnsignedInt" (server-set) + + The number of Emails in this Mailbox. + + + + + +Jenkins & Newman Standards Track [Page 10] + +RFC 8621 JMAP Mail August 2019 + + + o unreadEmails: "UnsignedInt" (server-set) + + The number of Emails in this Mailbox that have neither the "$seen" + keyword nor the "$draft" keyword. + + o totalThreads: "UnsignedInt" (server-set) + + The number of Threads where at least one Email in the Thread is in + this Mailbox. + + o unreadThreads: "UnsignedInt" (server-set) + + An indication of the number of "unread" Threads in the Mailbox. + + For compatibility with existing implementations, the way "unread + Threads" is determined is not mandated in this document. The + simplest solution to implement is simply the number of Threads + where at least one Email in the Thread is both in this Mailbox and + has neither the "$seen" nor "$draft" keywords. + + However, a quality implementation will return the number of unread + items the user would see if they opened that Mailbox. A Thread is + shown as unread if it contains any unread Emails that will be + displayed when the Thread is opened. Therefore, "unreadThreads" + should be the number of Threads where at least one Email in the + Thread has neither the "$seen" nor the "$draft" keyword AND at + least one Email in the Thread is in this Mailbox. Note that the + unread Email does not need to be the one in this Mailbox. In + addition, the trash Mailbox (that is, a Mailbox whose "role" is + "trash") requires special treatment: + + 1. Emails that are *only* in the trash (and no other Mailbox) are + ignored when calculating the "unreadThreads" count of other + Mailboxes. + + 2. Emails that are *not* in the trash are ignored when + calculating the "unreadThreads" count for the trash Mailbox. + + The result of this is that Emails in the trash are treated as + though they are in a separate Thread for the purposes of unread + counts. It is expected that clients will hide Emails in the trash + when viewing a Thread in another Mailbox, and vice versa. This + allows you to delete a single Email to the trash out of a Thread. + + For example, suppose you have an account where the entire contents + is a single Thread with 2 Emails: an unread Email in the trash and + a read Email in the inbox. The "unreadThreads" count would be 1 + for the trash and 0 for the inbox. + + + +Jenkins & Newman Standards Track [Page 11] + +RFC 8621 JMAP Mail August 2019 + + + o myRights: "MailboxRights" (server-set) + + The set of rights (Access Control Lists (ACLs)) the user has in + relation to this Mailbox. These are backwards compatible with + IMAP ACLs, as defined in [RFC4314]. A *MailboxRights* object has + the following properties: + + * mayReadItems: "Boolean" + + If true, the user may use this Mailbox as part of a filter in + an "Email/query" call, and the Mailbox may be included in the + "mailboxIds" property of Email objects. Email objects may be + fetched if they are in *at least one* Mailbox with this + permission. If a sub-Mailbox is shared but not the parent + Mailbox, this may be false. Corresponds to IMAP ACLs "lr" (if + mapping from IMAP, both are required for this to be true). + + * mayAddItems: "Boolean" + + The user may add mail to this Mailbox (by either creating a new + Email or moving an existing one). Corresponds to IMAP ACL "i". + + * mayRemoveItems: "Boolean" + + The user may remove mail from this Mailbox (by either changing + the Mailboxes of an Email or destroying the Email). + Corresponds to IMAP ACLs "te" (if mapping from IMAP, both are + required for this to be true). + + * maySetSeen: "Boolean" + + The user may add or remove the "$seen" keyword to/from an + Email. If an Email belongs to multiple Mailboxes, the user may + only modify "$seen" if they have this permission for *all* of + the Mailboxes. Corresponds to IMAP ACL "s". + + * maySetKeywords: "Boolean" + + The user may add or remove any keyword other than "$seen" to/ + from an Email. If an Email belongs to multiple Mailboxes, the + user may only modify keywords if they have this permission for + *all* of the Mailboxes. Corresponds to IMAP ACL "w". + + * mayCreateChild: "Boolean" + + The user may create a Mailbox with this Mailbox as its parent. + Corresponds to IMAP ACL "k". + + + + +Jenkins & Newman Standards Track [Page 12] + +RFC 8621 JMAP Mail August 2019 + + + * mayRename: "Boolean" + + The user may rename the Mailbox or make it a child of another + Mailbox. Corresponds to IMAP ACL "x" (although this covers + both rename and delete permissions). + + * mayDelete: "Boolean" + + The user may delete the Mailbox itself. Corresponds to IMAP + ACL "x" (although this covers both rename and delete + permissions). + + * maySubmit: "Boolean" + + Messages may be submitted directly to this Mailbox. + Corresponds to IMAP ACL "p". + + o isSubscribed: "Boolean" + + Has the user indicated they wish to see this Mailbox in their + client? This SHOULD default to false for Mailboxes in shared + accounts the user has access to and true for any new Mailboxes + created by the user themself. This MUST be stored separately per + user where multiple users have access to a shared Mailbox. + + A user may have permission to access a large number of shared + accounts, or a shared account with a very large set of Mailboxes, + but only be interested in the contents of a few of these. Clients + may choose to only display Mailboxes where the "isSubscribed" + property is set to true, and offer a separate UI to allow the user + to see and subscribe/unsubscribe from the full set of Mailboxes. + However, clients MAY choose to ignore this property, either + entirely for ease of implementation or just for an account where + "isPersonal" is true (indicating it is the user's own rather than + a shared account). + + This property corresponds to IMAP [RFC3501] mailbox subscriptions. + + For IMAP compatibility, an Email in both the trash and another + Mailbox SHOULD be treated by the client as existing in both places + (i.e., when emptying the trash, the client should just remove it from + the trash Mailbox and leave it in the other Mailbox). + + The following JMAP methods are supported. + + + + + + + +Jenkins & Newman Standards Track [Page 13] + +RFC 8621 JMAP Mail August 2019 + + +2.1. Mailbox/get + + This is a standard "/get" method as described in [RFC8620], + Section 5.1. The "ids" argument may be "null" to fetch all at once. + +2.2. Mailbox/changes + + This is a standard "/changes" method as described in [RFC8620], + Section 5.2 but with one extra argument to the response: + + o updatedProperties: "String[]|null" + + If only the "totalEmails", "unreadEmails", "totalThreads", and/or + "unreadThreads" Mailbox properties have changed since the old + state, this will be the list of properties that may have changed. + If the server is unable to tell if only counts have changed, it + MUST just be null. + + Since counts frequently change but other properties are generally + only changed rarely, the server can help the client optimise data + transfer by keeping track of changes to Email/Thread counts separate + from other state changes. The "updatedProperties" array may be used + directly via a back-reference in a subsequent "Mailbox/get" call in + the same request, so only these properties are returned if nothing + else has changed. + +2.3. Mailbox/query + + This is a standard "/query" method as described in [RFC8620], + Section 5.5 but with the following additional request argument: + + o sortAsTree: "Boolean" (default: false) + + If true, when sorting the query results and comparing Mailboxes A + and B: + + * If A is an ancestor of B, it always comes first regardless of + the sort comparators. Similarly, if A is descendant of B, then + B always comes first. + + * Otherwise, if A and B do not share a "parentId", find the + nearest ancestors of each that do have the same "parentId" and + compare the sort properties on those Mailboxes instead. + + The result of this is that the Mailboxes are sorted as a tree + according to the parentId properties, with each set of children + with a common parent sorted according to the standard sort + comparators. + + + +Jenkins & Newman Standards Track [Page 14] + +RFC 8621 JMAP Mail August 2019 + + + o filterAsTree: "Boolean" (default: false) + + If true, a Mailbox is only included in the query if all its + ancestors are also included in the query according to the filter. + + A *FilterCondition* object has the following properties, any of which + may be omitted: + + o parentId: "Id|null" + + The Mailbox "parentId" property must match the given value + exactly. + + o name: "String" + + The Mailbox "name" property contains the given string. + + o role: "String|null" + + The Mailbox "role" property must match the given value exactly. + + o hasAnyRole: "Boolean" + + If true, a Mailbox matches if it has any non-null value for its + "role" property. + + o isSubscribed: "Boolean" + + The "isSubscribed" property of the Mailbox must be identical to + the value given to match the condition. + + A Mailbox object matches the FilterCondition if and only if all of + the given conditions match. If zero properties are specified, it is + automatically true for all objects. + + The following Mailbox properties MUST be supported for sorting: + + o "sortOrder" + + o "name" + +2.4. Mailbox/queryChanges + + This is a standard "/queryChanges" method as described in [RFC8620], + Section 5.6. + + + + + + +Jenkins & Newman Standards Track [Page 15] + +RFC 8621 JMAP Mail August 2019 + + +2.5. Mailbox/set + + This is a standard "/set" method as described in [RFC8620], + Section 5.3 but with the following additional request argument: + + o onDestroyRemoveEmails: "Boolean" (default: false) + + If false, any attempt to destroy a Mailbox that still has Emails + in it will be rejected with a "mailboxHasEmail" SetError. If + true, any Emails that were in the Mailbox will be removed from it, + and if in no other Mailboxes, they will be destroyed when the + Mailbox is destroyed. + + The following extra SetError types are defined: + + For "destroy": + + o "mailboxHasChild": The Mailbox still has at least one child + Mailbox. The client MUST remove these before it can delete the + parent Mailbox. + + o "mailboxHasEmail": The Mailbox has at least one Email assigned to + it, and the "onDestroyRemoveEmails" argument was false. + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Jenkins & Newman Standards Track [Page 16] + +RFC 8621 JMAP Mail August 2019 + + +2.6. Example + + Fetching all Mailboxes in an account: + + [[ "Mailbox/get", { + "accountId": "u33084183", + "ids": null + }, "0" ]] + + And the response: + + [[ "Mailbox/get", { + "accountId": "u33084183", + "state": "78540", + "list": [{ + "id": "MB23cfa8094c0f41e6", + "name": "Inbox", + "parentId": null, + "role": "inbox", + "sortOrder": 10, + "totalEmails": 16307, + "unreadEmails": 13905, + "totalThreads": 5833, + "unreadThreads": 5128, + "myRights": { + "mayAddItems": true, + "mayRename": false, + "maySubmit": true, + "mayDelete": false, + "maySetKeywords": true, + "mayRemoveItems": true, + "mayCreateChild": true, + "maySetSeen": true, + "mayReadItems": true + }, + "isSubscribed": true + }, { + "id": "MB674cc24095db49ce", + "name": "Important mail", + ... + }, ... ], + "notFound": [] + }, "0" ]] + + + + + + + + +Jenkins & Newman Standards Track [Page 17] + +RFC 8621 JMAP Mail August 2019 + + + Now suppose an Email is marked read, and we get a push update that + the Mailbox state has changed. You might fetch the updates like + this: + + [[ "Mailbox/changes", { + "accountId": "u33084183", + "sinceState": "78540" + }, "0" ], + [ "Mailbox/get", { + "accountId": "u33084183", + "#ids": { + "resultOf": "0", + "name": "Mailbox/changes", + "path": "/created" + } + }, "1" ], + [ "Mailbox/get", { + "accountId": "u33084183", + "#ids": { + "resultOf": "0", + "name": "Mailbox/changes", + "path": "/updated" + }, + "#properties": { + "resultOf": "0", + "name": "Mailbox/changes", + "path": "/updatedProperties" + } + }, "2" ]] + + + + + + + + + + + + + + + + + + + + + + +Jenkins & Newman Standards Track [Page 18] + +RFC 8621 JMAP Mail August 2019 + + + This fetches the list of ids for created/updated/destroyed Mailboxes, + then using back-references, it fetches the data for just the created/ + updated Mailboxes in the same request. The response may look + something like this: + + [[ "Mailbox/changes", { + "accountId": "u33084183", + "oldState": "78541", + "newState": "78542", + "hasMoreChanges": false, + "updatedProperties": [ + "totalEmails", "unreadEmails", + "totalThreads", "unreadThreads" + ], + "created": [], + "updated": ["MB23cfa8094c0f41e6"], + "destroyed": [] + }, "0" ], + [ "Mailbox/get", { + "accountId": "u33084183", + "state": "78542", + "list": [], + "notFound": [] + }, "1" ], + [ "Mailbox/get", { + "accountId": "u33084183", + "state": "78542", + "list": [{ + "id": "MB23cfa8094c0f41e6", + "totalEmails": 16307, + "unreadEmails": 13903, + "totalThreads": 5833, + "unreadThreads": 5127 + }], + "notFound": [] + }, "2" ]] + + + + + + + + + + + + + + + +Jenkins & Newman Standards Track [Page 19] + +RFC 8621 JMAP Mail August 2019 + + + Here's an example where we try to rename one Mailbox and destroy + another: + + [[ "Mailbox/set", { + "accountId": "u33084183", + "ifInState": "78542", + "update": { + "MB674cc24095db49ce": { + "name": "Maybe important mail" + } + }, + "destroy": [ "MB23cfa8094c0f41e6" ] + }, "0" ]] + + Suppose the rename succeeds, but we don't have permission to destroy + the Mailbox we tried to destroy; we might get back: + + [[ "Mailbox/set", { + "accountId": "u33084183", + "oldState": "78542", + "newState": "78549", + "updated": { + "MB674cc24095db49ce": null + }, + "notDestroyed": { + "MB23cfa8094c0f41e6": { + "type": "forbidden" + } + } + }, "0" ]] + +3. Threads + + Replies are grouped together with the original message to form a + Thread. In JMAP, a Thread is simply a flat list of Emails, ordered + by date. Every Email MUST belong to a Thread, even if it is the only + Email in the Thread. + + The exact algorithm for determining whether two Emails belong to the + same Thread is not mandated in this spec to allow for compatibility + with different existing systems. For new implementations, it is + suggested that two messages belong in the same Thread if both of the + following conditions apply: + + 1. An identical message id [RFC5322] appears in both messages in any + of the Message-Id, In-Reply-To, and References header fields. + + + + + +Jenkins & Newman Standards Track [Page 20] + +RFC 8621 JMAP Mail August 2019 + + + 2. After stripping automatically added prefixes such as "Fwd:", + "Re:", "[List-Tag]", etc., and ignoring white space, the subjects + are the same. This avoids the situation where a person replies + to an old message as a convenient way of finding the right + recipient to send to but changes the subject and starts a new + conversation. + + If messages are delivered out of order for some reason, a user may + have two Emails in the same Thread but without headers that associate + them with each other. The arrival of a third Email may provide the + missing references to join them all together into a single Thread. + Since the "threadId" of an Email is immutable, if the server wishes + to merge the Threads, it MUST handle this by deleting and reinserting + (with a new Email id) the Emails that change "threadId". + + A *Thread* object has the following properties: + + o id: "Id" (immutable; server-set) + + + The id of the Thread. + + o emailIds: "Id[]" (server-set) + + The ids of the Emails in the Thread, sorted by the "receivedAt" + date of the Email, oldest first. If two Emails have an identical + date, the sort is server dependent but MUST be stable (sorting by + id is recommended). + + The following JMAP methods are supported. + + + + + + + + + + + + + + + + + + + + + +Jenkins & Newman Standards Track [Page 21] + +RFC 8621 JMAP Mail August 2019 + + +3.1. Thread/get + + This is a standard "/get" method as described in [RFC8620], + Section 5.1. + +3.1.1. Example + + Request: + + [[ "Thread/get", { + "accountId": "acme", + "ids": ["f123u4", "f41u44"] + }, "#1" ]] + + with response: + + [[ "Thread/get", { + "accountId": "acme", + "state": "f6a7e214", + "list": [ + { + "id": "f123u4", + "emailIds": [ "eaa623", "f782cbb"] + }, + { + "id": "f41u44", + "emailIds": [ "82cf7bb" ] + } + ], + "notFound": [] + }, "#1" ]] + +3.2. Thread/changes + + This is a standard "/changes" method as described in [RFC8620], + Section 5.2. + +4. Emails + + An *Email* object is a representation of a message [RFC5322], which + allows clients to avoid the complexities of MIME parsing, transfer + encoding, and character encoding. + + + + + + + + + +Jenkins & Newman Standards Track [Page 22] + +RFC 8621 JMAP Mail August 2019 + + +4.1. Properties of the Email Object + + Broadly, a message consists of two parts: a list of header fields and + then a body. The Email data type provides a way to access the full + structure or to use simplified properties and avoid some complexity + if this is sufficient for the client application. + + While raw headers can be fetched and set, the vast majority of + clients should use an appropriate parsed form for each of the header + fields it wants to process, as this allows it to avoid the + complexities of various encodings that are required in a valid + message per RFC 5322. + + The body of a message is normally a MIME-encoded set of documents in + a tree structure. This may be arbitrarily nested, but the majority + of email clients present a flat model of a message body (normally + plaintext or HTML) with a set of attachments. Flattening the MIME + structure to form this model can be difficult and causes + inconsistency between clients. Therefore, in addition to the + "bodyStructure" property, which gives the full tree, the Email object + contains 3 alternate properties with flat lists of body parts: + + o "textBody"/"htmlBody": These provide a list of parts that should + be rendered sequentially as the "body" of the message. This is a + list rather than a single part as messages may have headers and/or + footers appended/prepended as separate parts when they are + transmitted, and some clients send text and images intended to be + displayed inline in the body (or even videos and sound clips) as + multiple parts rather than a single HTML part with referenced + images. + + Because MIME allows for multiple representations of the same data + (using "multipart/alternative"), there is a "textBody" property + (which prefers a plaintext representation) and an "htmlBody" + property (which prefers an HTML representation) to accommodate the + two most common client requirements. The same part may appear in + both lists where there is no alternative between the two. + + o "attachments": This provides a list of parts that should be + presented as "attachments" to the message. Some images may be + solely there for embedding within an HTML body part; clients may + wish to not present these as attachments in the user interface if + they are displaying the HTML with the embedded images directly. + Some parts may also be in htmlBody/textBody; again, clients may + wish to not present these as attachments in the user interface if + rendered as part of the body. + + + + + +Jenkins & Newman Standards Track [Page 23] + +RFC 8621 JMAP Mail August 2019 + + + The "bodyValues" property allows for clients to fetch the value of + text parts directly without having to do a second request for the + blob and to have the server handle decoding the charset into unicode. + This data is in a separate property rather than on the EmailBodyPart + object to avoid duplication of large amounts of data, as the same + part may be included twice if the client fetches more than one of + bodyStructure, textBody, and htmlBody. + + In the following subsections, the common notational convention for + wildcards has been adopted for content types, so "foo/*" means any + content type that starts with "foo/". + + Due to the number of properties involved, the set of Email properties + is specified over the following four subsections. This is purely for + readability; all properties are top-level peers. + +4.1.1. Metadata + + These properties represent metadata about the message in the mail + store and are not derived from parsing the message itself. + + o id: "Id" (immutable; server-set) + + The id of the Email object. Note that this is the JMAP object id, + NOT the Message-ID header field value of the message [RFC5322]. + + o blobId: "Id" (immutable; server-set) + + The id representing the raw octets of the message [RFC5322] for + this Email. This may be used to download the raw original message + or to attach it directly to another Email, etc. + + o threadId: "Id" (immutable; server-set) + + The id of the Thread to which this Email belongs. + + o mailboxIds: "Id[Boolean]" + + The set of Mailbox ids this Email belongs to. An Email in the + mail store MUST belong to one or more Mailboxes at all times + (until it is destroyed). The set is represented as an object, + with each key being a Mailbox id. The value for each key in the + object MUST be true. + + + + + + + + +Jenkins & Newman Standards Track [Page 24] + +RFC 8621 JMAP Mail August 2019 + + + o keywords: "String[Boolean]" (default: {}) + + A set of keywords that apply to the Email. The set is represented + as an object, with the keys being the keywords. The value for + each key in the object MUST be true. + + Keywords are shared with IMAP. The six system keywords from IMAP + get special treatment. The following four keywords have their + first character changed from "\" in IMAP to "$" in JMAP and have + particular semantic meaning: + + * "$draft": The Email is a draft the user is composing. + + * "$seen": The Email has been read. + + * "$flagged": The Email has been flagged for urgent/special + attention. + + * "$answered": The Email has been replied to. + + The IMAP "\Recent" keyword is not exposed via JMAP. The IMAP + "\Deleted" keyword is also not present: IMAP uses a delete+expunge + model, which JMAP does not. Any message with the "\Deleted" + keyword MUST NOT be visible via JMAP (and so are not counted in + the "totalEmails", "unreadEmails", "totalThreads", and + "unreadThreads" Mailbox properties). + + Users may add arbitrary keywords to an Email. For compatibility + with IMAP, a keyword is a case-insensitive string of 1-255 + characters in the ASCII subset %x21-%x7e (excludes control chars + and space), and it MUST NOT include any of these characters: + + ( ) { ] % * " \ + + Because JSON is case sensitive, servers MUST return keywords in + lowercase. + + The IANA "IMAP and JMAP Keywords" registry at + as + established in [RFC5788] assigns semantic meaning to some other + keywords in common use. New keywords may be established here in + the future. In particular, note: + + * "$forwarded": The Email has been forwarded. + + * "$phishing": The Email is highly likely to be phishing. + Clients SHOULD warn users to take care when viewing this Email + and disable links and attachments. + + + +Jenkins & Newman Standards Track [Page 25] + +RFC 8621 JMAP Mail August 2019 + + + * "$junk": The Email is definitely spam. Clients SHOULD set this + flag when users report spam to help train automated spam- + detection systems. + + * "$notjunk": The Email is definitely not spam. Clients SHOULD + set this flag when users indicate an Email is legitimate, to + help train automated spam-detection systems. + + o size: "UnsignedInt" (immutable; server-set) + + The size, in octets, of the raw data for the message [RFC5322] (as + referenced by the "blobId", i.e., the number of octets in the file + the user would download). + + o receivedAt: "UTCDate" (immutable; default: time of creation on + server) + + The date the Email was received by the message store. This is the + "internal date" in IMAP [RFC3501]. + +4.1.2. Header Fields Parsed Forms + + Header field properties are derived from the message header fields + [RFC5322] [RFC6532]. All header fields may be fetched in a raw form. + Some header fields may also be fetched in a parsed form. The + structured form that may be fetched depends on the header. The forms + are defined in the subsections that follow. + +4.1.2.1. Raw + + Type: "String" + + The raw octets of the header field value from the first octet + following the header field name terminating colon, up to but + excluding the header field terminating CRLF. Any standards-compliant + message MUST be either ASCII (RFC 5322) or UTF-8 (RFC 6532); however, + other encodings exist in the wild. A server SHOULD replace any octet + or octet run with the high bit set that violates UTF-8 syntax with + the unicode replacement character (U+FFFD). Any NUL octet MUST be + dropped. + + This form will typically have a leading space, as most generated + messages insert a space after the colon that terminates the header + field name. + + + + + + + +Jenkins & Newman Standards Track [Page 26] + +RFC 8621 JMAP Mail August 2019 + + +4.1.2.2. Text + + Type: "String" + + The header field value with: + + 1. White space unfolded (as defined in [RFC5322], Section 2.2.3). + + 2. The terminating CRLF at the end of the value removed. + + 3. Any SP characters at the beginning of the value removed. + + 4. Any syntactically correct encoded sections [RFC2047] with a known + character set decoded. Any NUL octets or control characters + encoded per [RFC2047] are dropped from the decoded value. Any + text that looks like syntax per [RFC2047] but violates placement + or white space rules per [RFC2047] MUST NOT be decoded. + + 5. The resulting unicode converted to Normalization Form C (NFC) + form. + + If any decodings fail, the parser SHOULD insert a unicode replacement + character (U+FFFD) and attempt to continue as much as possible. + + To prevent obviously nonsense behaviour, which can lead to + interoperability issues, this form may only be fetched or set for the + following header fields: + + o Subject + + o Comments + + o Keywords + + o List-Id + + o Any header field not defined in [RFC5322] or [RFC2369] + +4.1.2.3. Addresses + + Type: "EmailAddress[]" + + The header field is parsed as an "address-list" value, as specified + in [RFC5322], Section 3.4, into the "EmailAddress[]" type. There is + an EmailAddress item for each "mailbox" parsed from the "address- + list". Group and comment information is discarded. + + + + + +Jenkins & Newman Standards Track [Page 27] + +RFC 8621 JMAP Mail August 2019 + + + An *EmailAddress* object has the following properties: + + o name: "String|null" + + The "display-name" of the "mailbox" [RFC5322]. If this is a + "quoted-string": + + 1. The surrounding DQUOTE characters are removed. + + 2. Any "quoted-pair" is decoded. + + 3. White space is unfolded, and then any leading and trailing + white space is removed. + + If there is no "display-name" but there is a "comment" immediately + following the "addr-spec", the value of this SHOULD be used + instead. Otherwise, this property is null. + + o email: "String" + + The "addr-spec" of the "mailbox" [RFC5322]. + + Any syntactically correct encoded sections [RFC2047] with a known + encoding MUST be decoded, following the same rules as for the Text + form (see Section 4.1.2.2). + + Parsing SHOULD be best effort in the face of invalid structure to + accommodate invalid messages and semi-complete drafts. EmailAddress + objects MAY have an "email" property that does not conform to the + "addr-spec" form (for example, may not contain an @ symbol). + + For example, the following "address-list" string: + + " James Smythe" , Friends: + jane@example.com, =?UTF-8?Q?John_Sm=C3=AEth?= + ; + + would be parsed as: + + [ + { "name": "James Smythe", "email": "james@example.com" }, + { "name": null, "email": "jane@example.com" }, + { "name": "John Smith", "email": "john@example.com" } + ] + + + + + + + +Jenkins & Newman Standards Track [Page 28] + +RFC 8621 JMAP Mail August 2019 + + + To prevent obviously nonsense behaviour, which can lead to + interoperability issues, this form may only be fetched or set for the + following header fields: + + o From + + o Sender + + o Reply-To + + o To + + o Cc + + o Bcc + + o Resent-From + + o Resent-Sender + + o Resent-Reply-To + + o Resent-To + + o Resent-Cc + + o Resent-Bcc + + o Any header field not defined in [RFC5322] or [RFC2369] + +4.1.2.4. GroupedAddresses + + Type: "EmailAddressGroup[]" + + This is similar to the Addresses form but preserves group + information. The header field is parsed as an "address-list" value, + as specified in [RFC5322], Section 3.4, into the "GroupedAddresses[]" + type. Consecutive "mailbox" values that are not part of a group are + still collected under an EmailAddressGroup object to provide a + uniform type. + + + + + + + + + + + +Jenkins & Newman Standards Track [Page 29] + +RFC 8621 JMAP Mail August 2019 + + + An *EmailAddressGroup* object has the following properties: + + o name: "String|null" + + The "display-name" of the "group" [RFC5322], or null if the + addresses are not part of a group. If this is a "quoted-string", + it is processed the same as the "name" in the EmailAddress type. + + o addresses: "EmailAddress[]" + + The "mailbox" values that belong to this group, represented as + EmailAddress objects. + + Any syntactically correct encoded sections [RFC2047] with a known + encoding MUST be decoded, following the same rules as for the Text + form (see Section 4.1.2.2). + + Parsing SHOULD be best effort in the face of invalid structure to + accommodate invalid messages and semi-complete drafts. + + For example, the following "address-list" string: + + " James Smythe" , Friends: + jane@example.com, =?UTF-8?Q?John_Sm=C3=AEth?= + ; + + would be parsed as: + + [ + { "name": null, "addresses": [ + { "name": "James Smythe", "email": "james@example.com" } + ]}, + { "name": "Friends", "addresses": [ + { "name": null, "email": "jane@example.com" }, + { "name": "John Smith", "email": "john@example.com" } + ]} + ] + + To prevent obviously nonsense behaviour, which can lead to + interoperability issues, this form may only be fetched or set for the + same header fields as the Addresses form (see Section 4.1.2.3). + + + + + + + + + + +Jenkins & Newman Standards Track [Page 30] + +RFC 8621 JMAP Mail August 2019 + + +4.1.2.5. MessageIds + + Type: "String[]|null" + + The header field is parsed as a list of "msg-id" values, as specified + in [RFC5322], Section 3.6.4, into the "String[]" type. Comments and/ + or folding white space (CFWS) and surrounding angle brackets ("<>") + are removed. If parsing fails, the value is null. + + To prevent obviously nonsense behaviour, which can lead to + interoperability issues, this form may only be fetched or set for the + following header fields: + + o Message-ID + + o In-Reply-To + + o References + + o Resent-Message-ID + + o Any header field not defined in [RFC5322] or [RFC2369] + +4.1.2.6. Date + + Type: "Date|null" + + The header field is parsed as a "date-time" value, as specified in + [RFC5322], Section 3.3, into the "Date" type. If parsing fails, the + value is null. + + To prevent obviously nonsense behaviour, which can lead to + interoperability issues, this form may only be fetched or set for the + following header fields: + + o Date + + o Resent-Date + + o Any header field not defined in [RFC5322] or [RFC2369] + + + + + + + + + + + +Jenkins & Newman Standards Track [Page 31] + +RFC 8621 JMAP Mail August 2019 + + +4.1.2.7. URLs + + Type: "String[]|null" + + The header field is parsed as a list of URLs, as described in + [RFC2369], into the "String[]" type. Values do not include the + surrounding angle brackets or any comments in the header field with + the URLs. If parsing fails, the value is null. + + To prevent obviously nonsense behaviour, which can lead to + interoperability issues, this form may only be fetched or set for the + following header fields: + + o List-Help + + o List-Unsubscribe + + o List-Subscribe + + o List-Post + + o List-Owner + + o List-Archive + + o Any header field not defined in [RFC5322] or [RFC2369] + +4.1.3. Header Fields Properties + + The following low-level Email property is specified for complete + access to the header data of the message: + + o headers: "EmailHeader[]" (immutable) + + This is a list of all header fields [RFC5322], in the same order + they appear in the message. An *EmailHeader* object has the + following properties: + + * name: "String" + + The header "field name" as defined in [RFC5322], with the same + capitalization that it has in the message. + + * value: "String" + + The header "field value" as defined in [RFC5322], in Raw form. + + + + + +Jenkins & Newman Standards Track [Page 32] + +RFC 8621 JMAP Mail August 2019 + + + In addition, the client may request/send properties representing + individual header fields of the form: + + header:{header-field-name} + + Where "{header-field-name}" means any series of one or more printable + ASCII characters (i.e., characters that have values between 33 and + 126, inclusive), except for colon (:). The property may also have + the following suffixes: + + o :as{header-form} + + This means the value is in a parsed form, where "{header-form}" is + one of the parsed-form names specified above. If not given, the + value is in Raw form. + + o :all + + This means the value is an array, with the items corresponding to + each instance of the header field, in the order they appear in the + message. If this suffix is not used, the result is the value of + the *last* instance of the header field (i.e., identical to the + last item in the array if :all is used), or null if none. + + If both suffixes are used, they MUST be specified in the order above. + Header field names are matched case insensitively. The value is + typed according to the requested form or to an array of that type if + :all is used. If no header fields exist in the message with the + requested name, the value is null if fetching a single instance or an + empty array if requesting :all. + + As a simple example, if the client requests a property called + "header:subject", this means find the *last* header field in the + message named "subject" (matched case insensitively) and return the + value in Raw form, or null if no header field of this name is found. + + For a more complex example, consider the client requesting a property + called "header:Resent-To:asAddresses:all". This means: + + 1. Find *all* header fields named Resent-To (matched case + insensitively). + + 2. For each instance, parse the header field value in the Addresses + form. + + 3. The result is of type "EmailAddress[][]" -- each item in the + array corresponds to the parsed value (which is itself an array) + of the Resent-To header field instance. + + + +Jenkins & Newman Standards Track [Page 33] + +RFC 8621 JMAP Mail August 2019 + + + The following convenience properties are also specified for the Email + object: + + o messageId: "String[]|null" (immutable) + + The value is identical to the value of "header:Message- + ID:asMessageIds". For messages conforming to RFC 5322, this will + be an array with a single entry. + + o inReplyTo: "String[]|null" (immutable) + + The value is identical to the value of "header:In-Reply- + To:asMessageIds". + + o references: "String[]|null" (immutable) + + The value is identical to the value of + "header:References:asMessageIds". + + o sender: "EmailAddress[]|null" (immutable) + + The value is identical to the value of + "header:Sender:asAddresses". + + o from: "EmailAddress[]|null" (immutable) + + The value is identical to the value of "header:From:asAddresses". + + o to: "EmailAddress[]|null" (immutable) + + The value is identical to the value of "header:To:asAddresses". + + o cc: "EmailAddress[]|null" (immutable) + + The value is identical to the value of "header:Cc:asAddresses". + + o bcc: "EmailAddress[]|null" (immutable) + + The value is identical to the value of "header:Bcc:asAddresses". + + o replyTo: "EmailAddress[]|null" (immutable) + + The value is identical to the value of "header:Reply- + To:asAddresses". + + o subject: "String|null" (immutable) + + The value is identical to the value of "header:Subject:asText". + + + +Jenkins & Newman Standards Track [Page 34] + +RFC 8621 JMAP Mail August 2019 + + + o sentAt: "Date|null" (immutable; default on creation: current + server time) + + The value is identical to the value of "header:Date:asDate". + +4.1.4. Body Parts + + These properties are derived from the message body [RFC5322] and its + MIME entities [RFC2045]. + + An *EmailBodyPart* object has the following properties: + + o partId: "String|null" + + Identifies this part uniquely within the Email. This is scoped to + the "emailId" and has no meaning outside of the JMAP Email object + representation. This is null if, and only if, the part is of type + "multipart/*". + + o blobId: "Id|null" + + The id representing the raw octets of the contents of the part, + after decoding any known Content-Transfer-Encoding (as defined in + [RFC2045]), or null if, and only if, the part is of type + "multipart/*". Note that two parts may be transfer-encoded + differently but have the same blob id if their decoded octets are + identical and the server is using a secure hash of the data for + the blob id. If the transfer encoding is unknown, it is treated + as though it had no transfer encoding. + + o size: "UnsignedInt" + + The size, in octets, of the raw data after content transfer + decoding (as referenced by the "blobId", i.e., the number of + octets in the file the user would download). + + o headers: "EmailHeader[]" + + This is a list of all header fields in the part, in the order they + appear in the message. The values are in Raw form. + + o name: "String|null" + + This is the decoded "filename" parameter of the Content- + Disposition header field per [RFC2231], or (for compatibility with + existing systems) if not present, then it's the decoded "name" + parameter of the Content-Type header field per [RFC2047]. + + + + +Jenkins & Newman Standards Track [Page 35] + +RFC 8621 JMAP Mail August 2019 + + + o type: "String" + + The value of the Content-Type header field of the part, if + present; otherwise, the implicit type as per the MIME standard + ("text/plain" or "message/rfc822" if inside a "multipart/digest"). + CFWS is removed and any parameters are stripped. + + o charset: "String|null" + + The value of the charset parameter of the Content-Type header + field, if present, or null if the header field is present but not + of type "text/*". If there is no Content-Type header field, or it + exists and is of type "text/*" but has no charset parameter, this + is the implicit charset as per the MIME standard: "us-ascii". + + o disposition: "String|null" + + The value of the Content-Disposition header field of the part, if + present; otherwise, it's null. CFWS is removed and any parameters + are stripped. + + o cid: "String|null" + + The value of the Content-Id header field of the part, if present; + otherwise, it's null. CFWS and surrounding angle brackets ("<>") + are removed. This may be used to reference the content from + within a "text/html" body part [HTML] using the "cid:" protocol, + as defined in [RFC2392]. + + o language: "String[]|null" + + The list of language tags, as defined in [RFC3282], in the + Content-Language header field of the part, if present. + + o location: "String|null" + + The URI, as defined in [RFC2557], in the Content-Location header + field of the part, if present. + + o subParts: "EmailBodyPart[]|null" + + If the type is "multipart/*", this contains the body parts of each + child. + + In addition, the client may request/send EmailBodyPart properties + representing individual header fields, following the same syntax and + semantics as for the Email object, e.g., "header:Content-Type". + + + + +Jenkins & Newman Standards Track [Page 36] + +RFC 8621 JMAP Mail August 2019 + + + The following Email properties are specified for access to the body + data of the message: + + o bodyStructure: "EmailBodyPart" (immutable) + + This is the full MIME structure of the message body, without + recursing into "message/rfc822" or "message/global" parts. Note + that EmailBodyParts may have subParts if they are of type + "multipart/*". + + o bodyValues: "String[EmailBodyValue]" (immutable) + + This is a map of "partId" to an EmailBodyValue object for none, + some, or all "text/*" parts. Which parts are included and whether + the value is truncated is determined by various arguments to + "Email/get" and "Email/parse". An *EmailBodyValue* object has the + following properties: + + * value: "String" + + The value of the body part after decoding Content-Transfer- + Encoding and the Content-Type charset, if both known to the + server, and with any CRLF replaced with a single LF. The + server MAY use heuristics to determine the charset to use for + decoding if the charset is unknown, no charset is given, or it + believes the charset given is incorrect. Decoding is best + effort; the server SHOULD insert the unicode replacement + character (U+FFFD) and continue when a malformed section is + encountered. + + Note that due to the charset decoding and line ending + normalisation, the length of this string will probably not be + exactly the same as the "size" property on the corresponding + EmailBodyPart. + + * isEncodingProblem: "Boolean" (default: false) + + This is true if malformed sections were found while decoding + the charset, the charset was unknown, or the content-transfer- + encoding was unknown. + + * isTruncated: "Boolean" (default: false) + + This is true if the "value" has been truncated. + + See the Security Considerations section for issues related to + truncation and heuristic determination of the content-type and + charset. + + + +Jenkins & Newman Standards Track [Page 37] + +RFC 8621 JMAP Mail August 2019 + + + o textBody: "EmailBodyPart[]" (immutable) + + A list of "text/plain", "text/html", "image/*", "audio/*", and/or + "video/*" parts to display (sequentially) as the message body, + with a preference for "text/plain" when alternative versions are + available. + + o htmlBody: "EmailBodyPart[]" (immutable) + + A list of "text/plain", "text/html", "image/*", "audio/*", and/or + "video/*" parts to display (sequentially) as the message body, + with a preference for "text/html" when alternative versions are + available. + + o attachments: "EmailBodyPart[]" (immutable) + + A list, traversing depth-first, of all parts in "bodyStructure" + that satisfy either of the following conditions: + + * not of type "multipart/*" and not included in "textBody" or + "htmlBody" + + * of type "image/*", "audio/*", or "video/*" and not in both + "textBody" and "htmlBody" + + None of these parts include subParts, including "message/*" types. + Attached messages may be fetched using the "Email/parse" method + and the "blobId". + + Note that a "text/html" body part [HTML] may reference image parts + in attachments by using "cid:" links to reference the Content-Id, + as defined in [RFC2392], or by referencing the Content-Location. + + o hasAttachment: "Boolean" (immutable; server-set) + + This is true if there are one or more parts in the message that a + client UI should offer as downloadable. A server SHOULD set + hasAttachment to true if the "attachments" list contains at least + one item that does not have "Content-Disposition: inline". The + server MAY ignore parts in this list that are processed + automatically in some way or are referenced as embedded images in + one of the "text/html" parts of the message. + + The server MAY set hasAttachment based on implementation-defined + or site-configurable heuristics. + + + + + + +Jenkins & Newman Standards Track [Page 38] + +RFC 8621 JMAP Mail August 2019 + + + o preview: "String" (immutable; server-set) + + A plaintext fragment of the message body. This is intended to be + shown as a preview line when listing messages in the mail store + and may be truncated when shown. The server may choose which part + of the message to include in the preview; skipping quoted sections + and salutations and collapsing white space can result in a more + useful preview. + + This MUST NOT be more than 256 characters in length. + + As this is derived from the message content by the server, and the + algorithm for doing so could change over time, fetching this for + an Email a second time MAY return a different result. However, + the previous value is not considered incorrect, and the change + SHOULD NOT cause the Email object to be considered as changed by + the server. + + The exact algorithm for decomposing bodyStructure into textBody, + htmlBody, and attachments part lists is not mandated, as this is a + quality-of-service implementation issue and likely to require + workarounds for malformed content discovered over time. However, the + following algorithm (expressed here in JavaScript) is suggested as a + starting point, based on real-world experience: + + function isInlineMediaType ( type ) { + return type.startsWith( 'image/' ) || + type.startsWith( 'audio/' ) || + type.startsWith( 'video/' ); + } + + function parseStructure ( parts, multipartType, inAlternative, + htmlBody, textBody, attachments ) { + + // For multipartType == alternative + let textLength = textBody ? textBody.length : -1; + let htmlLength = htmlBody ? htmlBody.length : -1; + + for ( let i = 0; i < parts.length; i += 1 ) { + let part = parts[i]; + let isMultipart = part.type.startsWith( 'multipart/' ); + // Is this a body part rather than an attachment + let isInline = part.disposition != "attachment" && + // Must be one of the allowed body types + ( part.type == "text/plain" || + part.type == "text/html" || + isInlineMediaType( part.type ) ) && + + + + +Jenkins & Newman Standards Track [Page 39] + +RFC 8621 JMAP Mail August 2019 + + + // If multipart/related, only the first part can be inline + // If a text part with a filename, and not the first item + // in the multipart, assume it is an attachment + ( i === 0 || + ( multipartType != "related" && + ( isInlineMediaType( part.type ) || !part.name ) ) ); + + if ( isMultipart ) { + let subMultiType = part.type.split( '/' )[1]; + parseStructure( part.subParts, subMultiType, + inAlternative || ( subMultiType == 'alternative' ), + htmlBody, textBody, attachments ); + } else if ( isInline ) { + if ( multipartType == 'alternative' ) { + switch ( part.type ) { + case 'text/plain': + textBody.push( part ); + break; + case 'text/html': + htmlBody.push( part ); + break; + default: + attachments.push( part ); + break; + } + continue; + } else if ( inAlternative ) { + if ( part.type == 'text/plain' ) { + htmlBody = null; + } + if ( part.type == 'text/html' ) { + textBody = null; + } + } + if ( textBody ) { + textBody.push( part ); + } + if ( htmlBody ) { + htmlBody.push( part ); + } + if ( ( !textBody || !htmlBody ) && + isInlineMediaType( part.type ) ) { + attachments.push( part ); + } + } else { + attachments.push( part ); + } + } + + + +Jenkins & Newman Standards Track [Page 40] + +RFC 8621 JMAP Mail August 2019 + + + if ( multipartType == 'alternative' && textBody && htmlBody ) { + // Found HTML part only + if ( textLength == textBody.length && + htmlLength != htmlBody.length ) { + for ( let i = htmlLength; i < htmlBody.length; i += 1 ) { + textBody.push( htmlBody[i] ); + } + } + // Found plaintext part only + if ( htmlLength == htmlBody.length && + textLength != textBody.length ) { + for ( let i = textLength; i < textBody.length; i += 1 ) { + htmlBody.push( textBody[i] ); + } + } + } + } + + // Usage: + let htmlBody = []; + let textBody = []; + let attachments = []; + + parseStructure( [ bodyStructure ], 'mixed', false, + htmlBody, textBody, attachments ); + + For instance, consider a message with both text and HTML versions + that has gone through a list software manager that attaches a header + and footer. It might have a MIME structure something like: + + multipart/mixed + text/plain, content-disposition=inline - A + multipart/mixed + multipart/alternative + multipart/mixed + text/plain, content-disposition=inline - B + image/jpeg, content-disposition=inline - C + text/plain, content-disposition=inline - D + multipart/related + text/html - E + image/jpeg - F + image/jpeg, content-disposition=attachment - G + application/x-excel - H + message/rfc822 - J + text/plain, content-disposition=inline - K + + + + + + +Jenkins & Newman Standards Track [Page 41] + +RFC 8621 JMAP Mail August 2019 + + + In this case, the above algorithm would decompose this to: + + textBody => [ A, B, C, D, K ] + htmlBody => [ A, E, K ] + attachments => [ C, F, G, H, J ] + +4.2. Email/get + + This is a standard "/get" method as described in [RFC8620], + Section 5.1 with the following additional request arguments: + + o bodyProperties: "String[]" + + A list of properties to fetch for each EmailBodyPart returned. If + omitted, this defaults to: + + [ "partId", "blobId", "size", "name", "type", "charset", + "disposition", "cid", "language", "location" ] + + o fetchTextBodyValues: "Boolean" (default: false) + + If true, the "bodyValues" property includes any "text/*" part in + the "textBody" property. + + o fetchHTMLBodyValues: "Boolean" (default: false) + + If true, the "bodyValues" property includes any "text/*" part in + the "htmlBody" property. + + o fetchAllBodyValues: "Boolean" (default: false) + + If true, the "bodyValues" property includes any "text/*" part in + the "bodyStructure" property. + + o maxBodyValueBytes: "UnsignedInt" (default: 0) + + If greater than zero, the "value" property of any EmailBodyValue + object returned in "bodyValues" MUST be truncated if necessary so + it does not exceed this number of octets in size. If 0 (the + default), no truncation occurs. + + The server MUST ensure the truncation results in valid UTF-8 and + does not occur mid-codepoint. If the part is of type "text/html", + the server SHOULD NOT truncate inside an HTML tag, e.g., in the + middle of "". There is no + requirement for the truncated form to be a balanced tree or valid + HTML (indeed, the original source may well be neither of these + things). + + + +Jenkins & Newman Standards Track [Page 42] + +RFC 8621 JMAP Mail August 2019 + + + If the standard "properties" argument is omitted or null, the + following default MUST be used instead of "all" properties: + + [ "id", "blobId", "threadId", "mailboxIds", "keywords", "size", + "receivedAt", "messageId", "inReplyTo", "references", "sender", "from", + "to", "cc", "bcc", "replyTo", "subject", "sentAt", "hasAttachment", + "preview", "bodyValues", "textBody", "htmlBody", "attachments" ] + + The following properties are expected to be fast to fetch in a + quality implementation: + + o id + + o blobId + + o threadId + + o mailboxIds + + o keywords + + o size + + o receivedAt + + o messageId + + o inReplyTo + + o sender + + o from + + o to + + o cc + + o bcc + + o replyTo + + o subject + + o sentAt + + o hasAttachment + + o preview + + + +Jenkins & Newman Standards Track [Page 43] + +RFC 8621 JMAP Mail August 2019 + + + Clients SHOULD take care when fetching any other properties, as there + may be significantly longer latency in fetching and returning the + data. + + As specified above, parsed forms of headers may only be used on + appropriate header fields. Attempting to fetch a form that is + forbidden (e.g., "header:From:asDate") MUST result in the method call + being rejected with an "invalidArguments" error. + + Where a specific header field is requested as a property, the + capitalization of the property name in the response MUST be identical + to that used in the request. + +4.2.1. Example + + Request: + + [[ "Email/get", { + "ids": [ "f123u456", "f123u457" ], + "properties": [ "threadId", "mailboxIds", "from", "subject", + "receivedAt", "header:List-POST:asURLs", + "htmlBody", "bodyValues" ], + "bodyProperties": [ "partId", "blobId", "size", "type" ], + "fetchHTMLBodyValues": true, + "maxBodyValueBytes": 256 + }, "#1" ]] + + and response: + + [[ "Email/get", { + "accountId": "abc", + "state": "41234123231", + "list": [ + { + "id": "f123u457", + "threadId": "ef1314a", + "mailboxIds": { "f123": true }, + "from": [{ "name": "Joe Bloggs", "email": "joe@example.com" }], + "subject": "Dinner on Thursday?", + "receivedAt": "2013-10-13T14:12:00Z", + "header:List-POST:asURLs": [ + "mailto:partytime@lists.example.com" + ], + "htmlBody": [{ + "partId": "1", + "blobId": "B841623871", + "size": 283331, + "type": "text/html" + + + +Jenkins & Newman Standards Track [Page 44] + +RFC 8621 JMAP Mail August 2019 + + + }, { + "partId": "2", + "blobId": "B319437193", + "size": 10343, + "type": "text/plain" + }], + "bodyValues": { + "1": { + "isEncodingProblem": false, + "isTruncated": true, + "value": "