diff --git a/apps/web/app.db b/apps/web/app.db new file mode 100644 index 0000000000000000000000000000000000000000..105abc67f944535df85e3a91e86602a7a8f623a4 GIT binary patch literal 335872 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 R71DB2i!)MFz;0Bk1psq_9ESh^ literal 0 HcmV?d00001 diff --git a/apps/web/astro.config.mjs b/apps/web/astro.config.ts similarity index 100% rename from apps/web/astro.config.mjs rename to apps/web/astro.config.ts diff --git a/apps/web/db/db.ts b/apps/web/db/db.ts new file mode 100644 index 0000000..30adb46 --- /dev/null +++ b/apps/web/db/db.ts @@ -0,0 +1,7 @@ +import { Database } from "bun:sqlite"; +import { drizzle } from "drizzle-orm/bun-sqlite"; +import { config } from "../config"; +const sqlite = new Database(config.sqliteFile); +export const db = drizzle({ + client: sqlite, +}); diff --git a/apps/web/db/drizzle/0000_equal_living_lightning.sql b/apps/web/db/drizzle/0000_equal_living_lightning.sql new file mode 100644 index 0000000..de3b82e --- /dev/null +++ b/apps/web/db/drizzle/0000_equal_living_lightning.sql @@ -0,0 +1,41 @@ +CREATE TABLE `follow` ( + `followed_by` text NOT NULL, + `follows` text NOT NULL, + `modified` text DEFAULT (CURRENT_TIMESTAMP) NOT NULL, + PRIMARY KEY(`follows`, `followed_by`), + FOREIGN KEY (`followed_by`) REFERENCES `user`(`did`) ON UPDATE no action ON DELETE no action, + FOREIGN KEY (`follows`) REFERENCES `user`(`did`) ON UPDATE no action ON DELETE no action +); +--> statement-breakpoint +CREATE TABLE `post_data` ( + `post_id` text, + FOREIGN KEY (`post_id`) REFERENCES `post`(`id`) ON UPDATE no action ON DELETE no action +); +--> statement-breakpoint +CREATE UNIQUE INDEX `post_data_post_id_unique` ON `post_data` (`post_id`);--> statement-breakpoint +CREATE TABLE `post` ( + `id` text PRIMARY KEY NOT NULL, + `author_id` text, + `created` text DEFAULT (CURRENT_TIMESTAMP) NOT NULL, + `modified` text DEFAULT (CURRENT_TIMESTAMP) NOT NULL, + FOREIGN KEY (`author_id`) REFERENCES `user`(`did`) ON UPDATE no action ON DELETE no action +); +--> statement-breakpoint +CREATE TABLE `post_tag` ( + `tag_id` text NOT NULL, + `post_id` text NOT NULL, + `probability` real, + PRIMARY KEY(`post_id`, `tag_id`), + FOREIGN KEY (`tag_id`) REFERENCES `tag`(`id`) ON UPDATE no action ON DELETE no action, + FOREIGN KEY (`post_id`) REFERENCES `post`(`id`) ON UPDATE no action ON DELETE no action +); +--> statement-breakpoint +CREATE TABLE `tag` ( + `id` text PRIMARY KEY NOT NULL, + `description` text +); +--> statement-breakpoint +CREATE TABLE `user` ( + `did` text PRIMARY KEY NOT NULL, + `modified` text DEFAULT (CURRENT_TIMESTAMP) NOT NULL +); diff --git a/apps/web/db/drizzle/0001_slim_sister_grimm.sql b/apps/web/db/drizzle/0001_slim_sister_grimm.sql new file mode 100644 index 0000000..4ea8316 --- /dev/null +++ b/apps/web/db/drizzle/0001_slim_sister_grimm.sql @@ -0,0 +1,4 @@ +DROP INDEX `post_data_post_id_unique`;--> statement-breakpoint +ALTER TABLE `post_data` ADD `type` text NOT NULL;--> statement-breakpoint +CREATE INDEX `post_idx` ON `post_data` (`post_id`);--> statement-breakpoint +ALTER TABLE `follow` DROP COLUMN `modified`; \ No newline at end of file diff --git a/apps/web/db/drizzle/0002_fair_captain_cross.sql b/apps/web/db/drizzle/0002_fair_captain_cross.sql new file mode 100644 index 0000000..2fc2028 --- /dev/null +++ b/apps/web/db/drizzle/0002_fair_captain_cross.sql @@ -0,0 +1,13 @@ +PRAGMA foreign_keys=OFF;--> statement-breakpoint +CREATE TABLE `__new_post` ( + `id` text PRIMARY KEY NOT NULL, + `author_id` text NOT NULL, + `created` text DEFAULT (CURRENT_TIMESTAMP) NOT NULL, + `modified` text DEFAULT (CURRENT_TIMESTAMP) NOT NULL, + FOREIGN KEY (`author_id`) REFERENCES `user`(`did`) ON UPDATE no action ON DELETE no action +); +--> statement-breakpoint +INSERT INTO `__new_post`("id", "author_id", "created", "modified") SELECT "id", "author_id", "created", "modified" FROM `post`;--> statement-breakpoint +DROP TABLE `post`;--> statement-breakpoint +ALTER TABLE `__new_post` RENAME TO `post`;--> statement-breakpoint +PRAGMA foreign_keys=ON; \ No newline at end of file diff --git a/apps/web/db/drizzle/0003_foamy_swordsman.sql b/apps/web/db/drizzle/0003_foamy_swordsman.sql new file mode 100644 index 0000000..6a76f3b --- /dev/null +++ b/apps/web/db/drizzle/0003_foamy_swordsman.sql @@ -0,0 +1 @@ +CREATE INDEX `followedby_idx` ON `follow` (`followed_by`); \ No newline at end of file diff --git a/apps/web/db/drizzle/0004_fixed_harrier.sql b/apps/web/db/drizzle/0004_fixed_harrier.sql new file mode 100644 index 0000000..c2bbb2f --- /dev/null +++ b/apps/web/db/drizzle/0004_fixed_harrier.sql @@ -0,0 +1,4 @@ +CREATE TABLE `app` ( + `k` text PRIMARY KEY NOT NULL, + `v` text +); diff --git a/apps/web/db/drizzle/0005_safe_vin_gonzales.sql b/apps/web/db/drizzle/0005_safe_vin_gonzales.sql new file mode 100644 index 0000000..1ee4ff3 --- /dev/null +++ b/apps/web/db/drizzle/0005_safe_vin_gonzales.sql @@ -0,0 +1 @@ +ALTER TABLE `post_data` ADD `value` text; \ No newline at end of file diff --git a/apps/web/db/drizzle/0006_milky_white_queen.sql b/apps/web/db/drizzle/0006_milky_white_queen.sql new file mode 100644 index 0000000..855dc4e --- /dev/null +++ b/apps/web/db/drizzle/0006_milky_white_queen.sql @@ -0,0 +1,13 @@ +PRAGMA foreign_keys=OFF;--> statement-breakpoint +CREATE TABLE `__new_post_data` ( + `post_id` text PRIMARY KEY NOT NULL, + `type` text NOT NULL, + `value` text, + FOREIGN KEY (`post_id`) REFERENCES `post`(`id`) ON UPDATE no action ON DELETE no action +); +--> statement-breakpoint +INSERT INTO `__new_post_data`("post_id", "type", "value") SELECT "post_id", "type", "value" FROM `post_data`;--> statement-breakpoint +DROP TABLE `post_data`;--> statement-breakpoint +ALTER TABLE `__new_post_data` RENAME TO `post_data`;--> statement-breakpoint +PRAGMA foreign_keys=ON;--> statement-breakpoint +CREATE INDEX `post_idx` ON `post_data` (`post_id`); \ No newline at end of file diff --git a/apps/web/db/drizzle/0007_sudden_dark_phoenix.sql b/apps/web/db/drizzle/0007_sudden_dark_phoenix.sql new file mode 100644 index 0000000..6cb6a97 --- /dev/null +++ b/apps/web/db/drizzle/0007_sudden_dark_phoenix.sql @@ -0,0 +1,12 @@ +PRAGMA foreign_keys=OFF;--> statement-breakpoint +CREATE TABLE `__new_post_data` ( + `post_id` text PRIMARY KEY NOT NULL, + `type` text NOT NULL, + `value` text +); +--> statement-breakpoint +INSERT INTO `__new_post_data`("post_id", "type", "value") SELECT "post_id", "type", "value" FROM `post_data`;--> statement-breakpoint +DROP TABLE `post_data`;--> statement-breakpoint +ALTER TABLE `__new_post_data` RENAME TO `post_data`;--> statement-breakpoint +PRAGMA foreign_keys=ON;--> statement-breakpoint +CREATE INDEX `post_idx` ON `post_data` (`post_id`); \ No newline at end of file diff --git a/apps/web/db/drizzle/0008_redundant_spectrum.sql b/apps/web/db/drizzle/0008_redundant_spectrum.sql new file mode 100644 index 0000000..753831b --- /dev/null +++ b/apps/web/db/drizzle/0008_redundant_spectrum.sql @@ -0,0 +1 @@ +ALTER TABLE `post_data` RENAME TO `post_queue`; \ No newline at end of file diff --git a/apps/web/db/drizzle/0009_skinny_cerebro.sql b/apps/web/db/drizzle/0009_skinny_cerebro.sql new file mode 100644 index 0000000..eb8adfc --- /dev/null +++ b/apps/web/db/drizzle/0009_skinny_cerebro.sql @@ -0,0 +1,12 @@ +PRAGMA foreign_keys=OFF;--> statement-breakpoint +CREATE TABLE `__new_post` ( + `id` text PRIMARY KEY NOT NULL, + `author_id` text NOT NULL, + `created` text DEFAULT (CURRENT_TIMESTAMP) NOT NULL, + `modified` text DEFAULT (CURRENT_TIMESTAMP) NOT NULL +); +--> statement-breakpoint +INSERT INTO `__new_post`("id", "author_id", "created", "modified") SELECT "id", "author_id", "created", "modified" FROM `post`;--> statement-breakpoint +DROP TABLE `post`;--> statement-breakpoint +ALTER TABLE `__new_post` RENAME TO `post`;--> statement-breakpoint +PRAGMA foreign_keys=ON; \ No newline at end of file diff --git a/apps/web/db/drizzle/0010_sad_salo.sql b/apps/web/db/drizzle/0010_sad_salo.sql new file mode 100644 index 0000000..3bbe845 --- /dev/null +++ b/apps/web/db/drizzle/0010_sad_salo.sql @@ -0,0 +1,13 @@ +PRAGMA foreign_keys=OFF;--> statement-breakpoint +CREATE TABLE `__new_follow` ( + `followed_by` text NOT NULL, + `follows` text NOT NULL, + PRIMARY KEY(`follows`, `followed_by`), + FOREIGN KEY (`followed_by`) REFERENCES `user`(`did`) ON UPDATE no action ON DELETE no action +); +--> statement-breakpoint +INSERT INTO `__new_follow`("followed_by", "follows") SELECT "followed_by", "follows" FROM `follow`;--> statement-breakpoint +DROP TABLE `follow`;--> statement-breakpoint +ALTER TABLE `__new_follow` RENAME TO `follow`;--> statement-breakpoint +PRAGMA foreign_keys=ON;--> statement-breakpoint +CREATE INDEX `followedby_idx` ON `follow` (`followed_by`); \ No newline at end of file diff --git a/apps/web/db/drizzle/meta/0000_snapshot.json b/apps/web/db/drizzle/meta/0000_snapshot.json new file mode 100644 index 0000000..796356f --- /dev/null +++ b/apps/web/db/drizzle/meta/0000_snapshot.json @@ -0,0 +1,293 @@ +{ + "version": "6", + "dialect": "sqlite", + "id": "f28baea5-3649-4a26-ac42-82d5571894ed", + "prevId": "00000000-0000-0000-0000-000000000000", + "tables": { + "follow": { + "name": "follow", + "columns": { + "followed_by": { + "name": "followed_by", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "follows": { + "name": "follows", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "modified": { + "name": "modified", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + } + }, + "indexes": {}, + "foreignKeys": { + "follow_followed_by_user_did_fk": { + "name": "follow_followed_by_user_did_fk", + "tableFrom": "follow", + "tableTo": "user", + "columnsFrom": [ + "followed_by" + ], + "columnsTo": [ + "did" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "follow_follows_user_did_fk": { + "name": "follow_follows_user_did_fk", + "tableFrom": "follow", + "tableTo": "user", + "columnsFrom": [ + "follows" + ], + "columnsTo": [ + "did" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "follow_follows_followed_by_pk": { + "columns": [ + "follows", + "followed_by" + ], + "name": "follow_follows_followed_by_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "post_data": { + "name": "post_data", + "columns": { + "post_id": { + "name": "post_id", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "post_data_post_id_unique": { + "name": "post_data_post_id_unique", + "columns": [ + "post_id" + ], + "isUnique": true + } + }, + "foreignKeys": { + "post_data_post_id_post_id_fk": { + "name": "post_data_post_id_post_id_fk", + "tableFrom": "post_data", + "tableTo": "post", + "columnsFrom": [ + "post_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "post": { + "name": "post", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "author_id": { + "name": "author_id", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created": { + "name": "created", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + }, + "modified": { + "name": "modified", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + } + }, + "indexes": {}, + "foreignKeys": { + "post_author_id_user_did_fk": { + "name": "post_author_id_user_did_fk", + "tableFrom": "post", + "tableTo": "user", + "columnsFrom": [ + "author_id" + ], + "columnsTo": [ + "did" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "post_tag": { + "name": "post_tag", + "columns": { + "tag_id": { + "name": "tag_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "post_id": { + "name": "post_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "probability": { + "name": "probability", + "type": "real", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "post_tag_tag_id_tag_id_fk": { + "name": "post_tag_tag_id_tag_id_fk", + "tableFrom": "post_tag", + "tableTo": "tag", + "columnsFrom": [ + "tag_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "post_tag_post_id_post_id_fk": { + "name": "post_tag_post_id_post_id_fk", + "tableFrom": "post_tag", + "tableTo": "post", + "columnsFrom": [ + "post_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "post_tag_post_id_tag_id_pk": { + "columns": [ + "post_id", + "tag_id" + ], + "name": "post_tag_post_id_tag_id_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "tag": { + "name": "tag", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "user": { + "name": "user", + "columns": { + "did": { + "name": "did", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "modified": { + "name": "modified", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + } + }, + "views": {}, + "enums": {}, + "_meta": { + "schemas": {}, + "tables": {}, + "columns": {} + }, + "internal": { + "indexes": {} + } +} \ No newline at end of file diff --git a/apps/web/db/drizzle/meta/0001_snapshot.json b/apps/web/db/drizzle/meta/0001_snapshot.json new file mode 100644 index 0000000..a47ac1a --- /dev/null +++ b/apps/web/db/drizzle/meta/0001_snapshot.json @@ -0,0 +1,292 @@ +{ + "version": "6", + "dialect": "sqlite", + "id": "b71f2809-5f01-4370-8d00-c42f4bd56216", + "prevId": "f28baea5-3649-4a26-ac42-82d5571894ed", + "tables": { + "follow": { + "name": "follow", + "columns": { + "followed_by": { + "name": "followed_by", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "follows": { + "name": "follows", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "follow_followed_by_user_did_fk": { + "name": "follow_followed_by_user_did_fk", + "tableFrom": "follow", + "tableTo": "user", + "columnsFrom": [ + "followed_by" + ], + "columnsTo": [ + "did" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "follow_follows_user_did_fk": { + "name": "follow_follows_user_did_fk", + "tableFrom": "follow", + "tableTo": "user", + "columnsFrom": [ + "follows" + ], + "columnsTo": [ + "did" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "follow_follows_followed_by_pk": { + "columns": [ + "follows", + "followed_by" + ], + "name": "follow_follows_followed_by_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "post_data": { + "name": "post_data", + "columns": { + "post_id": { + "name": "post_id", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "post_idx": { + "name": "post_idx", + "columns": [ + "post_id" + ], + "isUnique": false + } + }, + "foreignKeys": { + "post_data_post_id_post_id_fk": { + "name": "post_data_post_id_post_id_fk", + "tableFrom": "post_data", + "tableTo": "post", + "columnsFrom": [ + "post_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "post": { + "name": "post", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "author_id": { + "name": "author_id", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created": { + "name": "created", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + }, + "modified": { + "name": "modified", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + } + }, + "indexes": {}, + "foreignKeys": { + "post_author_id_user_did_fk": { + "name": "post_author_id_user_did_fk", + "tableFrom": "post", + "tableTo": "user", + "columnsFrom": [ + "author_id" + ], + "columnsTo": [ + "did" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "post_tag": { + "name": "post_tag", + "columns": { + "tag_id": { + "name": "tag_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "post_id": { + "name": "post_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "probability": { + "name": "probability", + "type": "real", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "post_tag_tag_id_tag_id_fk": { + "name": "post_tag_tag_id_tag_id_fk", + "tableFrom": "post_tag", + "tableTo": "tag", + "columnsFrom": [ + "tag_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "post_tag_post_id_post_id_fk": { + "name": "post_tag_post_id_post_id_fk", + "tableFrom": "post_tag", + "tableTo": "post", + "columnsFrom": [ + "post_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "post_tag_post_id_tag_id_pk": { + "columns": [ + "post_id", + "tag_id" + ], + "name": "post_tag_post_id_tag_id_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "tag": { + "name": "tag", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "user": { + "name": "user", + "columns": { + "did": { + "name": "did", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "modified": { + "name": "modified", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + } + }, + "views": {}, + "enums": {}, + "_meta": { + "schemas": {}, + "tables": {}, + "columns": {} + }, + "internal": { + "indexes": {} + } +} \ No newline at end of file diff --git a/apps/web/db/drizzle/meta/0002_snapshot.json b/apps/web/db/drizzle/meta/0002_snapshot.json new file mode 100644 index 0000000..c40025d --- /dev/null +++ b/apps/web/db/drizzle/meta/0002_snapshot.json @@ -0,0 +1,292 @@ +{ + "version": "6", + "dialect": "sqlite", + "id": "15955115-bfb7-46d2-8201-0dbb0123e4a3", + "prevId": "b71f2809-5f01-4370-8d00-c42f4bd56216", + "tables": { + "follow": { + "name": "follow", + "columns": { + "followed_by": { + "name": "followed_by", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "follows": { + "name": "follows", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "follow_followed_by_user_did_fk": { + "name": "follow_followed_by_user_did_fk", + "tableFrom": "follow", + "tableTo": "user", + "columnsFrom": [ + "followed_by" + ], + "columnsTo": [ + "did" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "follow_follows_user_did_fk": { + "name": "follow_follows_user_did_fk", + "tableFrom": "follow", + "tableTo": "user", + "columnsFrom": [ + "follows" + ], + "columnsTo": [ + "did" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "follow_follows_followed_by_pk": { + "columns": [ + "follows", + "followed_by" + ], + "name": "follow_follows_followed_by_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "post_data": { + "name": "post_data", + "columns": { + "post_id": { + "name": "post_id", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "post_idx": { + "name": "post_idx", + "columns": [ + "post_id" + ], + "isUnique": false + } + }, + "foreignKeys": { + "post_data_post_id_post_id_fk": { + "name": "post_data_post_id_post_id_fk", + "tableFrom": "post_data", + "tableTo": "post", + "columnsFrom": [ + "post_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "post": { + "name": "post", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "author_id": { + "name": "author_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created": { + "name": "created", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + }, + "modified": { + "name": "modified", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + } + }, + "indexes": {}, + "foreignKeys": { + "post_author_id_user_did_fk": { + "name": "post_author_id_user_did_fk", + "tableFrom": "post", + "tableTo": "user", + "columnsFrom": [ + "author_id" + ], + "columnsTo": [ + "did" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "post_tag": { + "name": "post_tag", + "columns": { + "tag_id": { + "name": "tag_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "post_id": { + "name": "post_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "probability": { + "name": "probability", + "type": "real", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "post_tag_tag_id_tag_id_fk": { + "name": "post_tag_tag_id_tag_id_fk", + "tableFrom": "post_tag", + "tableTo": "tag", + "columnsFrom": [ + "tag_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "post_tag_post_id_post_id_fk": { + "name": "post_tag_post_id_post_id_fk", + "tableFrom": "post_tag", + "tableTo": "post", + "columnsFrom": [ + "post_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "post_tag_post_id_tag_id_pk": { + "columns": [ + "post_id", + "tag_id" + ], + "name": "post_tag_post_id_tag_id_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "tag": { + "name": "tag", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "user": { + "name": "user", + "columns": { + "did": { + "name": "did", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "modified": { + "name": "modified", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + } + }, + "views": {}, + "enums": {}, + "_meta": { + "schemas": {}, + "tables": {}, + "columns": {} + }, + "internal": { + "indexes": {} + } +} \ No newline at end of file diff --git a/apps/web/db/drizzle/meta/0003_snapshot.json b/apps/web/db/drizzle/meta/0003_snapshot.json new file mode 100644 index 0000000..b9d1c21 --- /dev/null +++ b/apps/web/db/drizzle/meta/0003_snapshot.json @@ -0,0 +1,300 @@ +{ + "version": "6", + "dialect": "sqlite", + "id": "e93a951d-60aa-40bc-bcbe-6d480f9dabe8", + "prevId": "15955115-bfb7-46d2-8201-0dbb0123e4a3", + "tables": { + "follow": { + "name": "follow", + "columns": { + "followed_by": { + "name": "followed_by", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "follows": { + "name": "follows", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "followedby_idx": { + "name": "followedby_idx", + "columns": [ + "followed_by" + ], + "isUnique": false + } + }, + "foreignKeys": { + "follow_followed_by_user_did_fk": { + "name": "follow_followed_by_user_did_fk", + "tableFrom": "follow", + "tableTo": "user", + "columnsFrom": [ + "followed_by" + ], + "columnsTo": [ + "did" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "follow_follows_user_did_fk": { + "name": "follow_follows_user_did_fk", + "tableFrom": "follow", + "tableTo": "user", + "columnsFrom": [ + "follows" + ], + "columnsTo": [ + "did" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "follow_follows_followed_by_pk": { + "columns": [ + "follows", + "followed_by" + ], + "name": "follow_follows_followed_by_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "post_data": { + "name": "post_data", + "columns": { + "post_id": { + "name": "post_id", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "post_idx": { + "name": "post_idx", + "columns": [ + "post_id" + ], + "isUnique": false + } + }, + "foreignKeys": { + "post_data_post_id_post_id_fk": { + "name": "post_data_post_id_post_id_fk", + "tableFrom": "post_data", + "tableTo": "post", + "columnsFrom": [ + "post_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "post": { + "name": "post", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "author_id": { + "name": "author_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created": { + "name": "created", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + }, + "modified": { + "name": "modified", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + } + }, + "indexes": {}, + "foreignKeys": { + "post_author_id_user_did_fk": { + "name": "post_author_id_user_did_fk", + "tableFrom": "post", + "tableTo": "user", + "columnsFrom": [ + "author_id" + ], + "columnsTo": [ + "did" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "post_tag": { + "name": "post_tag", + "columns": { + "tag_id": { + "name": "tag_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "post_id": { + "name": "post_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "probability": { + "name": "probability", + "type": "real", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "post_tag_tag_id_tag_id_fk": { + "name": "post_tag_tag_id_tag_id_fk", + "tableFrom": "post_tag", + "tableTo": "tag", + "columnsFrom": [ + "tag_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "post_tag_post_id_post_id_fk": { + "name": "post_tag_post_id_post_id_fk", + "tableFrom": "post_tag", + "tableTo": "post", + "columnsFrom": [ + "post_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "post_tag_post_id_tag_id_pk": { + "columns": [ + "post_id", + "tag_id" + ], + "name": "post_tag_post_id_tag_id_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "tag": { + "name": "tag", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "user": { + "name": "user", + "columns": { + "did": { + "name": "did", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "modified": { + "name": "modified", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + } + }, + "views": {}, + "enums": {}, + "_meta": { + "schemas": {}, + "tables": {}, + "columns": {} + }, + "internal": { + "indexes": {} + } +} \ No newline at end of file diff --git a/apps/web/db/drizzle/meta/0004_snapshot.json b/apps/web/db/drizzle/meta/0004_snapshot.json new file mode 100644 index 0000000..28b62e4 --- /dev/null +++ b/apps/web/db/drizzle/meta/0004_snapshot.json @@ -0,0 +1,324 @@ +{ + "version": "6", + "dialect": "sqlite", + "id": "154e4024-fe4a-47ed-9d97-5cfe9ee6d84f", + "prevId": "e93a951d-60aa-40bc-bcbe-6d480f9dabe8", + "tables": { + "app": { + "name": "app", + "columns": { + "k": { + "name": "k", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "v": { + "name": "v", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "follow": { + "name": "follow", + "columns": { + "followed_by": { + "name": "followed_by", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "follows": { + "name": "follows", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "followedby_idx": { + "name": "followedby_idx", + "columns": [ + "followed_by" + ], + "isUnique": false + } + }, + "foreignKeys": { + "follow_followed_by_user_did_fk": { + "name": "follow_followed_by_user_did_fk", + "tableFrom": "follow", + "tableTo": "user", + "columnsFrom": [ + "followed_by" + ], + "columnsTo": [ + "did" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "follow_follows_user_did_fk": { + "name": "follow_follows_user_did_fk", + "tableFrom": "follow", + "tableTo": "user", + "columnsFrom": [ + "follows" + ], + "columnsTo": [ + "did" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "follow_follows_followed_by_pk": { + "columns": [ + "follows", + "followed_by" + ], + "name": "follow_follows_followed_by_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "post_data": { + "name": "post_data", + "columns": { + "post_id": { + "name": "post_id", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "post_idx": { + "name": "post_idx", + "columns": [ + "post_id" + ], + "isUnique": false + } + }, + "foreignKeys": { + "post_data_post_id_post_id_fk": { + "name": "post_data_post_id_post_id_fk", + "tableFrom": "post_data", + "tableTo": "post", + "columnsFrom": [ + "post_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "post": { + "name": "post", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "author_id": { + "name": "author_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created": { + "name": "created", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + }, + "modified": { + "name": "modified", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + } + }, + "indexes": {}, + "foreignKeys": { + "post_author_id_user_did_fk": { + "name": "post_author_id_user_did_fk", + "tableFrom": "post", + "tableTo": "user", + "columnsFrom": [ + "author_id" + ], + "columnsTo": [ + "did" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "post_tag": { + "name": "post_tag", + "columns": { + "tag_id": { + "name": "tag_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "post_id": { + "name": "post_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "probability": { + "name": "probability", + "type": "real", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "post_tag_tag_id_tag_id_fk": { + "name": "post_tag_tag_id_tag_id_fk", + "tableFrom": "post_tag", + "tableTo": "tag", + "columnsFrom": [ + "tag_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "post_tag_post_id_post_id_fk": { + "name": "post_tag_post_id_post_id_fk", + "tableFrom": "post_tag", + "tableTo": "post", + "columnsFrom": [ + "post_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "post_tag_post_id_tag_id_pk": { + "columns": [ + "post_id", + "tag_id" + ], + "name": "post_tag_post_id_tag_id_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "tag": { + "name": "tag", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "user": { + "name": "user", + "columns": { + "did": { + "name": "did", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "modified": { + "name": "modified", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + } + }, + "views": {}, + "enums": {}, + "_meta": { + "schemas": {}, + "tables": {}, + "columns": {} + }, + "internal": { + "indexes": {} + } +} \ No newline at end of file diff --git a/apps/web/db/drizzle/meta/0005_snapshot.json b/apps/web/db/drizzle/meta/0005_snapshot.json new file mode 100644 index 0000000..67fda82 --- /dev/null +++ b/apps/web/db/drizzle/meta/0005_snapshot.json @@ -0,0 +1,331 @@ +{ + "version": "6", + "dialect": "sqlite", + "id": "795c7067-865d-4cd3-a628-410d5fb01dd1", + "prevId": "154e4024-fe4a-47ed-9d97-5cfe9ee6d84f", + "tables": { + "app": { + "name": "app", + "columns": { + "k": { + "name": "k", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "v": { + "name": "v", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "follow": { + "name": "follow", + "columns": { + "followed_by": { + "name": "followed_by", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "follows": { + "name": "follows", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "followedby_idx": { + "name": "followedby_idx", + "columns": [ + "followed_by" + ], + "isUnique": false + } + }, + "foreignKeys": { + "follow_followed_by_user_did_fk": { + "name": "follow_followed_by_user_did_fk", + "tableFrom": "follow", + "tableTo": "user", + "columnsFrom": [ + "followed_by" + ], + "columnsTo": [ + "did" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "follow_follows_user_did_fk": { + "name": "follow_follows_user_did_fk", + "tableFrom": "follow", + "tableTo": "user", + "columnsFrom": [ + "follows" + ], + "columnsTo": [ + "did" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "follow_follows_followed_by_pk": { + "columns": [ + "follows", + "followed_by" + ], + "name": "follow_follows_followed_by_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "post_data": { + "name": "post_data", + "columns": { + "post_id": { + "name": "post_id", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "value": { + "name": "value", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "post_idx": { + "name": "post_idx", + "columns": [ + "post_id" + ], + "isUnique": false + } + }, + "foreignKeys": { + "post_data_post_id_post_id_fk": { + "name": "post_data_post_id_post_id_fk", + "tableFrom": "post_data", + "tableTo": "post", + "columnsFrom": [ + "post_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "post": { + "name": "post", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "author_id": { + "name": "author_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created": { + "name": "created", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + }, + "modified": { + "name": "modified", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + } + }, + "indexes": {}, + "foreignKeys": { + "post_author_id_user_did_fk": { + "name": "post_author_id_user_did_fk", + "tableFrom": "post", + "tableTo": "user", + "columnsFrom": [ + "author_id" + ], + "columnsTo": [ + "did" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "post_tag": { + "name": "post_tag", + "columns": { + "tag_id": { + "name": "tag_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "post_id": { + "name": "post_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "probability": { + "name": "probability", + "type": "real", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "post_tag_tag_id_tag_id_fk": { + "name": "post_tag_tag_id_tag_id_fk", + "tableFrom": "post_tag", + "tableTo": "tag", + "columnsFrom": [ + "tag_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "post_tag_post_id_post_id_fk": { + "name": "post_tag_post_id_post_id_fk", + "tableFrom": "post_tag", + "tableTo": "post", + "columnsFrom": [ + "post_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "post_tag_post_id_tag_id_pk": { + "columns": [ + "post_id", + "tag_id" + ], + "name": "post_tag_post_id_tag_id_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "tag": { + "name": "tag", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "user": { + "name": "user", + "columns": { + "did": { + "name": "did", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "modified": { + "name": "modified", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + } + }, + "views": {}, + "enums": {}, + "_meta": { + "schemas": {}, + "tables": {}, + "columns": {} + }, + "internal": { + "indexes": {} + } +} \ No newline at end of file diff --git a/apps/web/db/drizzle/meta/0006_snapshot.json b/apps/web/db/drizzle/meta/0006_snapshot.json new file mode 100644 index 0000000..4eaec9d --- /dev/null +++ b/apps/web/db/drizzle/meta/0006_snapshot.json @@ -0,0 +1,331 @@ +{ + "version": "6", + "dialect": "sqlite", + "id": "da6f951c-777b-4561-a816-aa814502a02b", + "prevId": "795c7067-865d-4cd3-a628-410d5fb01dd1", + "tables": { + "app": { + "name": "app", + "columns": { + "k": { + "name": "k", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "v": { + "name": "v", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "follow": { + "name": "follow", + "columns": { + "followed_by": { + "name": "followed_by", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "follows": { + "name": "follows", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "followedby_idx": { + "name": "followedby_idx", + "columns": [ + "followed_by" + ], + "isUnique": false + } + }, + "foreignKeys": { + "follow_followed_by_user_did_fk": { + "name": "follow_followed_by_user_did_fk", + "tableFrom": "follow", + "tableTo": "user", + "columnsFrom": [ + "followed_by" + ], + "columnsTo": [ + "did" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "follow_follows_user_did_fk": { + "name": "follow_follows_user_did_fk", + "tableFrom": "follow", + "tableTo": "user", + "columnsFrom": [ + "follows" + ], + "columnsTo": [ + "did" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "follow_follows_followed_by_pk": { + "columns": [ + "follows", + "followed_by" + ], + "name": "follow_follows_followed_by_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "post_data": { + "name": "post_data", + "columns": { + "post_id": { + "name": "post_id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "value": { + "name": "value", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "post_idx": { + "name": "post_idx", + "columns": [ + "post_id" + ], + "isUnique": false + } + }, + "foreignKeys": { + "post_data_post_id_post_id_fk": { + "name": "post_data_post_id_post_id_fk", + "tableFrom": "post_data", + "tableTo": "post", + "columnsFrom": [ + "post_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "post": { + "name": "post", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "author_id": { + "name": "author_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created": { + "name": "created", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + }, + "modified": { + "name": "modified", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + } + }, + "indexes": {}, + "foreignKeys": { + "post_author_id_user_did_fk": { + "name": "post_author_id_user_did_fk", + "tableFrom": "post", + "tableTo": "user", + "columnsFrom": [ + "author_id" + ], + "columnsTo": [ + "did" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "post_tag": { + "name": "post_tag", + "columns": { + "tag_id": { + "name": "tag_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "post_id": { + "name": "post_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "probability": { + "name": "probability", + "type": "real", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "post_tag_tag_id_tag_id_fk": { + "name": "post_tag_tag_id_tag_id_fk", + "tableFrom": "post_tag", + "tableTo": "tag", + "columnsFrom": [ + "tag_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "post_tag_post_id_post_id_fk": { + "name": "post_tag_post_id_post_id_fk", + "tableFrom": "post_tag", + "tableTo": "post", + "columnsFrom": [ + "post_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "post_tag_post_id_tag_id_pk": { + "columns": [ + "post_id", + "tag_id" + ], + "name": "post_tag_post_id_tag_id_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "tag": { + "name": "tag", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "user": { + "name": "user", + "columns": { + "did": { + "name": "did", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "modified": { + "name": "modified", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + } + }, + "views": {}, + "enums": {}, + "_meta": { + "schemas": {}, + "tables": {}, + "columns": {} + }, + "internal": { + "indexes": {} + } +} \ No newline at end of file diff --git a/apps/web/db/drizzle/meta/0007_snapshot.json b/apps/web/db/drizzle/meta/0007_snapshot.json new file mode 100644 index 0000000..fd808b4 --- /dev/null +++ b/apps/web/db/drizzle/meta/0007_snapshot.json @@ -0,0 +1,317 @@ +{ + "version": "6", + "dialect": "sqlite", + "id": "5d0b0ba7-935d-4a87-96ab-196d84605482", + "prevId": "da6f951c-777b-4561-a816-aa814502a02b", + "tables": { + "app": { + "name": "app", + "columns": { + "k": { + "name": "k", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "v": { + "name": "v", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "follow": { + "name": "follow", + "columns": { + "followed_by": { + "name": "followed_by", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "follows": { + "name": "follows", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "followedby_idx": { + "name": "followedby_idx", + "columns": [ + "followed_by" + ], + "isUnique": false + } + }, + "foreignKeys": { + "follow_followed_by_user_did_fk": { + "name": "follow_followed_by_user_did_fk", + "tableFrom": "follow", + "tableTo": "user", + "columnsFrom": [ + "followed_by" + ], + "columnsTo": [ + "did" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "follow_follows_user_did_fk": { + "name": "follow_follows_user_did_fk", + "tableFrom": "follow", + "tableTo": "user", + "columnsFrom": [ + "follows" + ], + "columnsTo": [ + "did" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "follow_follows_followed_by_pk": { + "columns": [ + "follows", + "followed_by" + ], + "name": "follow_follows_followed_by_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "post_data": { + "name": "post_data", + "columns": { + "post_id": { + "name": "post_id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "value": { + "name": "value", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "post_idx": { + "name": "post_idx", + "columns": [ + "post_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "post": { + "name": "post", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "author_id": { + "name": "author_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created": { + "name": "created", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + }, + "modified": { + "name": "modified", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + } + }, + "indexes": {}, + "foreignKeys": { + "post_author_id_user_did_fk": { + "name": "post_author_id_user_did_fk", + "tableFrom": "post", + "tableTo": "user", + "columnsFrom": [ + "author_id" + ], + "columnsTo": [ + "did" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "post_tag": { + "name": "post_tag", + "columns": { + "tag_id": { + "name": "tag_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "post_id": { + "name": "post_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "probability": { + "name": "probability", + "type": "real", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "post_tag_tag_id_tag_id_fk": { + "name": "post_tag_tag_id_tag_id_fk", + "tableFrom": "post_tag", + "tableTo": "tag", + "columnsFrom": [ + "tag_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "post_tag_post_id_post_id_fk": { + "name": "post_tag_post_id_post_id_fk", + "tableFrom": "post_tag", + "tableTo": "post", + "columnsFrom": [ + "post_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "post_tag_post_id_tag_id_pk": { + "columns": [ + "post_id", + "tag_id" + ], + "name": "post_tag_post_id_tag_id_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "tag": { + "name": "tag", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "user": { + "name": "user", + "columns": { + "did": { + "name": "did", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "modified": { + "name": "modified", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + } + }, + "views": {}, + "enums": {}, + "_meta": { + "schemas": {}, + "tables": {}, + "columns": {} + }, + "internal": { + "indexes": {} + } +} \ No newline at end of file diff --git a/apps/web/db/drizzle/meta/0008_snapshot.json b/apps/web/db/drizzle/meta/0008_snapshot.json new file mode 100644 index 0000000..9b1bbac --- /dev/null +++ b/apps/web/db/drizzle/meta/0008_snapshot.json @@ -0,0 +1,319 @@ +{ + "version": "6", + "dialect": "sqlite", + "id": "69149008-c187-4f4f-acfc-86c339f41cb3", + "prevId": "5d0b0ba7-935d-4a87-96ab-196d84605482", + "tables": { + "app": { + "name": "app", + "columns": { + "k": { + "name": "k", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "v": { + "name": "v", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "follow": { + "name": "follow", + "columns": { + "followed_by": { + "name": "followed_by", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "follows": { + "name": "follows", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "followedby_idx": { + "name": "followedby_idx", + "columns": [ + "followed_by" + ], + "isUnique": false + } + }, + "foreignKeys": { + "follow_followed_by_user_did_fk": { + "name": "follow_followed_by_user_did_fk", + "tableFrom": "follow", + "tableTo": "user", + "columnsFrom": [ + "followed_by" + ], + "columnsTo": [ + "did" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "follow_follows_user_did_fk": { + "name": "follow_follows_user_did_fk", + "tableFrom": "follow", + "tableTo": "user", + "columnsFrom": [ + "follows" + ], + "columnsTo": [ + "did" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "follow_follows_followed_by_pk": { + "columns": [ + "follows", + "followed_by" + ], + "name": "follow_follows_followed_by_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "post": { + "name": "post", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "author_id": { + "name": "author_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created": { + "name": "created", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + }, + "modified": { + "name": "modified", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + } + }, + "indexes": {}, + "foreignKeys": { + "post_author_id_user_did_fk": { + "name": "post_author_id_user_did_fk", + "tableFrom": "post", + "tableTo": "user", + "columnsFrom": [ + "author_id" + ], + "columnsTo": [ + "did" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "post_tag": { + "name": "post_tag", + "columns": { + "tag_id": { + "name": "tag_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "post_id": { + "name": "post_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "probability": { + "name": "probability", + "type": "real", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "post_tag_tag_id_tag_id_fk": { + "name": "post_tag_tag_id_tag_id_fk", + "tableFrom": "post_tag", + "tableTo": "tag", + "columnsFrom": [ + "tag_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "post_tag_post_id_post_id_fk": { + "name": "post_tag_post_id_post_id_fk", + "tableFrom": "post_tag", + "tableTo": "post", + "columnsFrom": [ + "post_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "post_tag_post_id_tag_id_pk": { + "columns": [ + "post_id", + "tag_id" + ], + "name": "post_tag_post_id_tag_id_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "post_queue": { + "name": "post_queue", + "columns": { + "post_id": { + "name": "post_id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "value": { + "name": "value", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "post_idx": { + "name": "post_idx", + "columns": [ + "post_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "tag": { + "name": "tag", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "user": { + "name": "user", + "columns": { + "did": { + "name": "did", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "modified": { + "name": "modified", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + } + }, + "views": {}, + "enums": {}, + "_meta": { + "schemas": {}, + "tables": { + "\"post_data\"": "\"post_queue\"" + }, + "columns": {} + }, + "internal": { + "indexes": {} + } +} \ No newline at end of file diff --git a/apps/web/db/drizzle/meta/0009_snapshot.json b/apps/web/db/drizzle/meta/0009_snapshot.json new file mode 100644 index 0000000..65a27aa --- /dev/null +++ b/apps/web/db/drizzle/meta/0009_snapshot.json @@ -0,0 +1,303 @@ +{ + "version": "6", + "dialect": "sqlite", + "id": "ec42ebc4-c344-4ad8-b5c8-8916b4867068", + "prevId": "69149008-c187-4f4f-acfc-86c339f41cb3", + "tables": { + "app": { + "name": "app", + "columns": { + "k": { + "name": "k", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "v": { + "name": "v", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "follow": { + "name": "follow", + "columns": { + "followed_by": { + "name": "followed_by", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "follows": { + "name": "follows", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "followedby_idx": { + "name": "followedby_idx", + "columns": [ + "followed_by" + ], + "isUnique": false + } + }, + "foreignKeys": { + "follow_followed_by_user_did_fk": { + "name": "follow_followed_by_user_did_fk", + "tableFrom": "follow", + "tableTo": "user", + "columnsFrom": [ + "followed_by" + ], + "columnsTo": [ + "did" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "follow_follows_user_did_fk": { + "name": "follow_follows_user_did_fk", + "tableFrom": "follow", + "tableTo": "user", + "columnsFrom": [ + "follows" + ], + "columnsTo": [ + "did" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "follow_follows_followed_by_pk": { + "columns": [ + "follows", + "followed_by" + ], + "name": "follow_follows_followed_by_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "post": { + "name": "post", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "author_id": { + "name": "author_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created": { + "name": "created", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + }, + "modified": { + "name": "modified", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "post_tag": { + "name": "post_tag", + "columns": { + "tag_id": { + "name": "tag_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "post_id": { + "name": "post_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "probability": { + "name": "probability", + "type": "real", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "post_tag_tag_id_tag_id_fk": { + "name": "post_tag_tag_id_tag_id_fk", + "tableFrom": "post_tag", + "tableTo": "tag", + "columnsFrom": [ + "tag_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "post_tag_post_id_post_id_fk": { + "name": "post_tag_post_id_post_id_fk", + "tableFrom": "post_tag", + "tableTo": "post", + "columnsFrom": [ + "post_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "post_tag_post_id_tag_id_pk": { + "columns": [ + "post_id", + "tag_id" + ], + "name": "post_tag_post_id_tag_id_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "post_queue": { + "name": "post_queue", + "columns": { + "post_id": { + "name": "post_id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "value": { + "name": "value", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "post_idx": { + "name": "post_idx", + "columns": [ + "post_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "tag": { + "name": "tag", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "user": { + "name": "user", + "columns": { + "did": { + "name": "did", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "modified": { + "name": "modified", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + } + }, + "views": {}, + "enums": {}, + "_meta": { + "schemas": {}, + "tables": {}, + "columns": {} + }, + "internal": { + "indexes": {} + } +} \ No newline at end of file diff --git a/apps/web/db/drizzle/meta/0010_snapshot.json b/apps/web/db/drizzle/meta/0010_snapshot.json new file mode 100644 index 0000000..d29600e --- /dev/null +++ b/apps/web/db/drizzle/meta/0010_snapshot.json @@ -0,0 +1,290 @@ +{ + "version": "6", + "dialect": "sqlite", + "id": "cd10b5bf-2e31-4641-bdfc-19fd88bec42e", + "prevId": "ec42ebc4-c344-4ad8-b5c8-8916b4867068", + "tables": { + "app": { + "name": "app", + "columns": { + "k": { + "name": "k", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "v": { + "name": "v", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "follow": { + "name": "follow", + "columns": { + "followed_by": { + "name": "followed_by", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "follows": { + "name": "follows", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + } + }, + "indexes": { + "followedby_idx": { + "name": "followedby_idx", + "columns": [ + "followed_by" + ], + "isUnique": false + } + }, + "foreignKeys": { + "follow_followed_by_user_did_fk": { + "name": "follow_followed_by_user_did_fk", + "tableFrom": "follow", + "tableTo": "user", + "columnsFrom": [ + "followed_by" + ], + "columnsTo": [ + "did" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "follow_follows_followed_by_pk": { + "columns": [ + "follows", + "followed_by" + ], + "name": "follow_follows_followed_by_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "post": { + "name": "post", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "author_id": { + "name": "author_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created": { + "name": "created", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + }, + "modified": { + "name": "modified", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "post_tag": { + "name": "post_tag", + "columns": { + "tag_id": { + "name": "tag_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "post_id": { + "name": "post_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "probability": { + "name": "probability", + "type": "real", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": { + "post_tag_tag_id_tag_id_fk": { + "name": "post_tag_tag_id_tag_id_fk", + "tableFrom": "post_tag", + "tableTo": "tag", + "columnsFrom": [ + "tag_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "post_tag_post_id_post_id_fk": { + "name": "post_tag_post_id_post_id_fk", + "tableFrom": "post_tag", + "tableTo": "post", + "columnsFrom": [ + "post_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "post_tag_post_id_tag_id_pk": { + "columns": [ + "post_id", + "tag_id" + ], + "name": "post_tag_post_id_tag_id_pk" + } + }, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "post_queue": { + "name": "post_queue", + "columns": { + "post_id": { + "name": "post_id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "type": { + "name": "type", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "value": { + "name": "value", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": { + "post_idx": { + "name": "post_idx", + "columns": [ + "post_id" + ], + "isUnique": false + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "tag": { + "name": "tag", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + }, + "user": { + "name": "user", + "columns": { + "did": { + "name": "did", + "type": "text", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "modified": { + "name": "modified", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false, + "default": "(CURRENT_TIMESTAMP)" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "checkConstraints": {} + } + }, + "views": {}, + "enums": {}, + "_meta": { + "schemas": {}, + "tables": {}, + "columns": {} + }, + "internal": { + "indexes": {} + } +} \ No newline at end of file diff --git a/apps/web/db/drizzle/meta/_journal.json b/apps/web/db/drizzle/meta/_journal.json new file mode 100644 index 0000000..fc727a7 --- /dev/null +++ b/apps/web/db/drizzle/meta/_journal.json @@ -0,0 +1,83 @@ +{ + "version": "7", + "dialect": "sqlite", + "entries": [ + { + "idx": 0, + "version": "6", + "when": 1734777195321, + "tag": "0000_equal_living_lightning", + "breakpoints": true + }, + { + "idx": 1, + "version": "6", + "when": 1734778152257, + "tag": "0001_slim_sister_grimm", + "breakpoints": true + }, + { + "idx": 2, + "version": "6", + "when": 1734778382151, + "tag": "0002_fair_captain_cross", + "breakpoints": true + }, + { + "idx": 3, + "version": "6", + "when": 1734778476053, + "tag": "0003_foamy_swordsman", + "breakpoints": true + }, + { + "idx": 4, + "version": "6", + "when": 1734785140860, + "tag": "0004_fixed_harrier", + "breakpoints": true + }, + { + "idx": 5, + "version": "6", + "when": 1734790233945, + "tag": "0005_safe_vin_gonzales", + "breakpoints": true + }, + { + "idx": 6, + "version": "6", + "when": 1734798238305, + "tag": "0006_milky_white_queen", + "breakpoints": true + }, + { + "idx": 7, + "version": "6", + "when": 1734812702811, + "tag": "0007_sudden_dark_phoenix", + "breakpoints": true + }, + { + "idx": 8, + "version": "6", + "when": 1734812798498, + "tag": "0008_redundant_spectrum", + "breakpoints": true + }, + { + "idx": 9, + "version": "6", + "when": 1734812969373, + "tag": "0009_skinny_cerebro", + "breakpoints": true + }, + { + "idx": 10, + "version": "6", + "when": 1734813044639, + "tag": "0010_sad_salo", + "breakpoints": true + } + ] +} \ No newline at end of file diff --git a/apps/web/db/schema.ts b/apps/web/db/schema.ts new file mode 100644 index 0000000..66bc185 --- /dev/null +++ b/apps/web/db/schema.ts @@ -0,0 +1,137 @@ +import type { AppBskyFeedPost } from "@atproto/api"; +import { relations, sql } from "drizzle-orm"; +import { + index, + primaryKey, + real, + sqliteTable, + text, +} from "drizzle-orm/sqlite-core"; + +export const appData = sqliteTable( + "app", + { + k: text("k", { enum: ["session"] }).primaryKey(), + v: text("v", { + mode: "json", + }), + }, + (t) => [] +); + +export const followTable = sqliteTable( + "follow", + { + followedBy: text("followed_by") + .notNull() + .references(() => userTable.did), + follows: text("follows").notNull(), + }, + (t) => [ + primaryKey({ + columns: [t.follows, t.followedBy], + }), + index("followedby_idx").on(t.followedBy), + ] +); + +export const postTable = sqliteTable( + "post", + { + id: text().primaryKey(), // bluesky post id + authorId: text("author_id").notNull(), + created: text() + .default(sql`(CURRENT_TIMESTAMP)`) + .notNull(), + modified: text() + .default(sql`(CURRENT_TIMESTAMP)`) + .notNull(), + }, + () => [] +); + +// Should be deleted after processing +export const post_queue = sqliteTable( + "post_queue", + { + postId: text("post_id").primaryKey(), + type: text({ + enum: ["AppBskyFeedPost.Record"], + }).notNull(), + value: text({ mode: "json" }).$type(), + }, + (t) => [index("post_idx").on(t.postId)] +); + +export const tagTable = sqliteTable( + "tag", + { + id: text().primaryKey(), + description: text(), + }, + () => [] +); + +export const postTags = sqliteTable( + "post_tag", + { + tagId: text("tag_id") + .notNull() + .references(() => tagTable.id), + postId: text("post_id") + .notNull() + .references(() => postTable.id), + probability: real(), + }, + (t) => [primaryKey({ columns: [t.postId, t.tagId] })] +); + +export const userTable = sqliteTable( + "user", + { + did: text("did").primaryKey(), + modified: text() + .default(sql`(CURRENT_TIMESTAMP)`) + .notNull(), + }, + () => [] +); + +export const postsToTagsRelations = relations(postTags, ({ one }) => ({ + post: one(postTable, { + fields: [postTags.postId], + references: [postTable.id], + }), + tag: one(tagTable, { + fields: [postTags.tagId], + references: [tagTable.id], + }), +})); + +export const postRelations = relations(postTable, ({ one, many }) => ({ + author: one(userTable, { + fields: [postTable.authorId], + references: [userTable.did], + }), + // TODO: add followedby + unprocessed: one(post_queue, { + fields: [postTable.id], + references: [post_queue.postId], + }), + tags: many(postTags), +})); + +export const tagRelations = relations(tagTable, ({ one, many }) => ({ + posts: many(postTags), +})); + +export const followTableRelations = relations(followTable, ({ one }) => ({ + follower: one(userTable, { + fields: [followTable.followedBy], + references: [userTable.did], + }), + follwedBy: one(userTable, { + fields: [followTable.follows], + references: [userTable.did], + }), +})); diff --git a/apps/web/drizzle.config.ts b/apps/web/drizzle.config.ts new file mode 100644 index 0000000..d2f9bb1 --- /dev/null +++ b/apps/web/drizzle.config.ts @@ -0,0 +1,10 @@ +import { defineConfig } from "drizzle-kit"; + +export default defineConfig({ + dialect: "sqlite", + schema: "./db/schema.ts", + out: "./db/drizzle", + dbCredentials: { + url: "./app.db", + }, +}); diff --git a/apps/web/package.json b/apps/web/package.json index be81d12..4e712ef 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -3,22 +3,28 @@ "type": "module", "version": "0.0.1", "scripts": { - "dev": "astro dev", + "dev": "bunx --bun astro dev", "build": "astro build", "server": "bun run-server.mjs", "preview": "astro preview", - "astro": "astro" + "astro": "astro", + "db:generate": "bunx drizzle-kit generate", + "db:migrate": "bunx drizzle-kit migrate", + "db:studio": "bunx drizzle-kit studio", + "db:update": "bunx drizzle-kit generate && bunx drizzle-kit migrate", + "db:wipe": "rm -rf db/drizzle app.db" }, "dependencies": { + "@andrioid/atproto": "workspace:*", "@astrojs/node": "^9.0.0", - "@astrojs/react": "^4.0.0", - "@astrojs/tailwind": "^5.1.3", + "@astrojs/react": "4.1.2", + "@astrojs/tailwind": "5.1.4", "@atproto/api": "^0.13.19", "@atproto/lexicon": "^0.4.3", "@atproto/oauth-client-browser": "^0.3.3", "@atproto/oauth-client-node": "^0.2.3", "@atproto/xrpc-server": "^0.7.3", - "astro": "^5.0.3", + "astro": "5.1.1", "atutils": "workspace:*", "express": "^4.21.2", "react": "^19.0.0", diff --git a/apps/web/run-server.mjs b/apps/web/scripts/run-server.ts similarity index 100% rename from apps/web/run-server.mjs rename to apps/web/scripts/run-server.ts diff --git a/apps/web/scripts/stream-listener.ts b/apps/web/scripts/stream-listener.ts new file mode 100644 index 0000000..2c62ccb --- /dev/null +++ b/apps/web/scripts/stream-listener.ts @@ -0,0 +1,11 @@ +import { createAtContext, listenForPosts } from "@andrioid/atproto"; + +async function main() { + const atContext = await createAtContext(); + await listenForPosts(atContext); +} + +main().catch((err) => { + console.error(err); + process.exit(1); +}); diff --git a/apps/web/src/env.d.ts b/apps/web/src/env.d.ts new file mode 100644 index 0000000..84f106a --- /dev/null +++ b/apps/web/src/env.d.ts @@ -0,0 +1,5 @@ +declare namespace App { + interface Locals { + at: import("@andrioid/atproto").AtContext; + } +} diff --git a/apps/web/src/middleware.ts b/apps/web/src/middleware.ts new file mode 100644 index 0000000..b45ce77 --- /dev/null +++ b/apps/web/src/middleware.ts @@ -0,0 +1,9 @@ +import { createAtContext } from "@andrioid/atproto"; +import { defineMiddleware } from "astro:middleware"; + +const atContext = await createAtContext(); + +export const onRequest = defineMiddleware((context, next) => { + context.locals.at = atContext; + next(); +}); diff --git a/apps/web/tsconfig.json b/apps/web/tsconfig.json index 8bf91d3..ce144a2 100644 --- a/apps/web/tsconfig.json +++ b/apps/web/tsconfig.json @@ -1,5 +1,5 @@ { "extends": "astro/tsconfigs/strict", - "include": [".astro/types.d.ts", "**/*"], + "include": [".astro/types.d.ts", "**/*", "./src/env.d.ts"], "exclude": ["dist"] } diff --git a/apps/web/zstd_dictionary.dat b/apps/web/zstd_dictionary.dat new file mode 100644 index 0000000000000000000000000000000000000000..106847e7007b4ac409fd58912fed85d69aedb352 GIT binary patch literal 112640 zcmXqCV(=!{O*BDG-~!hqzW*T5Jk#gUiDfQbJ}pxwiOl@Lf7aZ)EO^t-8w}jijK-`C z3=9m14kQ~GOgYX}%d)_sjh&^vm5G_9nW=j^D_hS54t5TnCWinKu@<(48xjmzN_bu} zSu!v%q?}e{Jji&MJ)=p2g^_{5Q9?mVpn;izfq{{Mfq{jAfq{d8fk7`VF*&tFIX5-0 zBr`uxNk=IqGeyY?L|PT(BwH1iR~eb7mZv2qrwtN|C5c5PN>)Y&MztW7If;4c#Y$GuN~w8Du{ug6sTCzk zR!WZ>`kYGh6nyf_GV{_OH}rFbXC#&=WF!_8q~;YXlxL*oDI_YCXXNLk7U$=tDr6+) zr0FIVrKYB&7AfSWrj`^dlxLP?C?qNr<>w~mm1HI>B$ejbD}<-!2DrDrBC?w{kC={2cCYDqx6sJ}wWELx=q^4!&WtODoR4U}>DU@WSDkNv5CTHhl z7MJMNaXFWkq$)U-=2M3WNJDvMGxGb%E&GEJ&V64O!>lZsN!jdF776El)aO>%Nglxl0aszFhL6fv0<1?eVcl?7Ef#@VH*iRFpq z#$^>56{$)(N+p@Osqv-7N>+yEMrIZk2Igj_7KRqaCgwUyC6xuKN>)nA`MF9uATl?z z1QdTosbxx5O2#=Rxn;&FMOn!vMj0S;po+mtb8=FX!70Q_DY2jc;>EPo)D%5X;40}T z6=kPZBAJnxSqe6zC^b31C4P(%r`G9F-tWzO0Ot3H?J%% zO--uGPs&U)Hcv@S%c)8$D>pI8F;UV{DlN)XvQkPcvC`L1$xH#K_o__e>=NV3UQqI^X~MMZmih161ol2nDn+PW=Z)4rDo-+#(7Ce#b$}cMJbv2<>tnP1r?PgW=1B(sihf}nW<(OmDs$W zl#*R(Txp(KXlhcKQdF6kXqH@7VpNia&HJVX=7tt#mZn5`zbrkcDAC9aWDdCr-KZ=* zy|fZ+2IUFe)XLOI&%g+8LeD5kFDx@EGd0f3GRa6XF*hnM$jr;hHLomAE6Xr9D$Fn` zEXgV_EzU|WDJsd$HA^%p0p)Zo3B97I$TZ6+KReGnwcMzxEV;b6qO{mJJqcGrFHOnF z%goL(D#J|Z$>wH>rr9QCM!ES(xke^t<&~wyImJ1p#VLjP$(81&8O9k&MwMpS1?f3? zrDf?AMLAhm6S`SNu}NxHWrmS)VPC#Hm zTr<-gqe_rDWX5!9rD;x8QVQ4%%46EZ%FtZTz`zn;k(OFemYMnr~K+lu~JK zQdVG`pIVZbTTx(MY*w0AnVFW8S7~HYQIVceU}BV!3@ZDv#dKw^NkxuHNlH#yWm#r= zWs*sONs@U{9wer%3{0$y%=L_ojqtf9xiGgpJ3l!mtF)>hH?=%5r?@mVxg@`=FsURf zs~|Z!!>BMVC#BRhuQI7LIV;nstSY?_djXqTUTI!sRG3m>T9#T_k!@UMR8*c;T2%&d z4XA1b*DCM=wzML(ptL9zTe?d(E;lbUs;VeW$E zWyTdrMtN0b*%f(}mBq&9=4Pgqr5Wa_n79(Aw8A94+z4DJ5h`KQixLYm^wRQka`MYj+fAjFrR5db`Cw!4 zL^hfMc$!WoRwl-J2F9p03aA|kZt7$e<(8D^ftpyRR>lT;1_pRbfDDs@q{Ni+#LA@X z^xUfClBB}a4AZhoqmtB|f+F+c+(MI-qQugyq_V=4f~>;a(p=-*Ozb5q zrU(NAJqrsHd}V#Qd4X|KQC@y-X-0*KsY#AWWnxycNt#i*SwUq%L2+?ea#ngtMqz4x zd1jhvL2-JPX$Fq6-l!-mCAloas4A}@C!@SPKQk*eC!?YQXJb0GINQ9cFxSW!Go~~0 zvkD3e(+di6vyDsBlk(Dwvr^O3%9C=-@{CF6w|D;*06z?4*L6{N!v<2M=Ed%*a5`z!0_8fR`dkrlv;brR61A zspSRPr5TxNDaA#_1^E>i{eh(Hg2c?Eg4Ck&;;Ouo{H$!FjN&TOiRv?8snDm@cy z2BA2BmbQ4}z!=mgGqW@V#R0CthorP*6VsHEybQC-^c=JDs)BMee)8edr^GwsS>=GlRG~=wyBJ=$6^1?LZ)SRr0(!{(%vr>}+6XR5@Jxr6_tn!M2 zyo~(R#O%C^!o;NVj5MP>Gpwb*si}#fk);7~Ln&2d#!1;mplBtSZqb@=$m3>4Riz~v z5M%HpT{Hvmq+U}iQ)4|tW7OInUUHXK7-yTMHg7*}RxBo~_$mggqsCYfQB8Y%fn zS!Mb8CMITP1^J2PsYWL0899Yn$vIhh8TpkJ#+gNlNg2t;nUxt8xmm@zrbVgXHatcv z%fvLLFfp+(BPTsSGdr)`+$1ljJU1f~dq2z45ImGcM9E!dT$quak!(~9Dt*XoWr55{ z%_#<(fhXvRY-O2Q8CvLBni$|KHBw45igMC3l1)-f3QbbXD~*$KOfpPOaw<)X)6DZy zbMsP+Q;jN3ij&ffOU$whs_W53;)?8Sqf&4_Gc7PpG|$h?F-^)#Og1V^%1+5PGs!AT&&VstE6z{OOEXT&Gb_Yp zb$)tLPI^&peo|hkc}0?0VNPyRs!3)g&MaO~TAoo_W>f&S8g&Rax3HipH`y$?EXT~W z&@|t;B+1CABGo7@Ik7k=CC$9b*rYPiD61;RC^OYG%dD^<(HLt}-aIwMthgXAwJ5)` zq#~ubyx26|v@kOTJj{nyHJO{48yFgy5H*NYW}I4PUQS^H&p5TrsH&7o4Lma|12a8y zBfOoq^i1QT(!7$AvdW6WjNHuPjQq+x)579(qly%heB+XmDl?PZ^wO%Nywb|7yt0zw z%=BbXS%@W(6_uu#ROV#l=BJjJC8lR47i8uZW)!EV;*9AW)BGf}B%@R;F<*Qf!i0T9907QdVLLnm{NmLY?lbEY2=0$;?VgF)J~y%uLV9Of@#oPfh_3VWH(7 zGh;IoLo-8DVk*eeipV^dtYC$BuY(!8h)+mJ_kNm7+*L20RJeo|?Ea#lfE zR&hpt0jS}em2X~@X_Q$|oNa7ml2uY#lA2SJnwwQn1j>ULxhFr>s3Il3vY;R1roPYy zJyQ~k%TtO|le5k9^E1=)a!gH2OA@n;3r$KgN|Ot6i_*$Ws`8A}it|&AO$w`WlGD?& zunu~rniiC185~}WGRrnCNK4HsEjGF#2OGeIZ2fn1;)u4rsZZu*%|qz1^H!Z>E+<5ZuBH? zY+z()Vs1=Kg;83OoKawwVq^-+I%Kv#L1tv6Ld>8%$s1dl8t56A;H@yy%uPzn3yl&@ za>_GO3oCB_+L$;rmK1x2MeW4gSeA}I&dl&VFaGEd2`%t|WEGfyqeN;R)4DoZyt zt4K9X%t*{kOv}ix$TKY|Pb$mKugoyZH!3$xEz8d=#M%hVt1>puFe)fW%&*KgEz3*J zHcKo^F-}hc#SmIdo0}P18W|Xy5;HzgW}H+}oNsDW05XSAOrv$vkZLlJF*zk^U}Nw^ zHktu=`gvwn2F7}3W~ieS@P1x-Nq%l>eqM@Ek*RTFYGz_`Mqy@om1&j|IP}rhKP0A< z=2s+^m6_z_B&U|-o0^oQml~&K72%A`ssiJbBqO6N%xs&HR#;h{TAWi-R#Z@0k(*(f zZJt_TmYCnpTpOZC;p|ZB~(;T4o zxu`O?AhoIpYdg=v#K6$d+?=?`EHln2Dl$qTCNgofNy?1Nj5A6hX5fiQWZih9(a2cO z&qLxYRhcxV*?T$tXR)GOHrD$TX`UsjQ?tBRL~I zu{^B`)W61(Z3`>&vx`#`D^rcqb4zp5GfmRXtBNX8DsaSfdbvqnib+-pwA+Z@a zHZe6eDabM|DL2k4GtSPeN-In+$OU--V`$d^6w?;QM72rEvof;sbB#dbRAjeF%Cj<( zOG?3JP#)99Rz^m8mX;Ry1_&}z%F@bms!|J+i%ZfHOH#^ms|rj~E0c|r%8N|Pa?GpJ zO)8R8%yW}7&60Aea*fh6^C2yIj5STg1tulQ<%LyA##LFBrs+A^rG=U48EGltmb=sY)#= z$;r>nt1!tar~-vImV{SSnx0mbmz$E2oLp6uQJzv#l%Hafl819#FuyP*zpx52ri9)^ z$}3OFEGe%r&8Nlhs!GdDHLG%+D{_j=&C&}p!Hrn7`ohA%#MIEp$dsrR04AAvnMR35-~>#l zzCbP{kShz5%)BJ?Ot2Z0Cpm{(AiW|W#y zRFPkrXUSZfQkgW_C(uiBWQ9 zO0sEsVnvBrftjgsKK4Na5=MYcEltb}jg3u+ng1&-Ps}VU0IgC%^pSART%c9#NRbUP zrl6$M2(%ypPh_JRfTv0^wlXx*Gc&_60$g5Zl0{%Ss7Zc$URi|^sAM6x=qxkIPtP>U z0GolwQ^@HbkB`hiZCgVNyko10g~e$m#wBJ+#)-xzd8wJHDOp7+=|<^Q#sx;EiKf}c z>7}_D#>Ewh#yN$VY3aE|=82#ziX{bCRvMY46qn~$nWSfBnHQ(0rIqER7iK}%PGMQC zRGOYrVGe2`Vzh0OGLy24OY<|$Gc)t^5=%;ovI=u6v-6D$6LX3RsMUFlHeuZ-~hDPS*#MDZqRVgNwWm!g`fGDX{|Yz3dpDuu%<6>>{6OY#*`a|`lQQi~E(5_J>`@{0;fQxy^w z(o^$FQsGiCl{twz3VEr;#i>B4G7=TiGIKJ(UP;c+OU^0HEY(xs zQgAFT&MYoTwBqu~FG|fzRPf9#D9SHMRLIL$2+B{+R>;g#2+9PF?IsmvrleQ;7iFer z<|XEY7Ud{eDP@$D6ck(O>ldY#fea}uP0iIy&&f~9*GtaN)lV%;%`3?-)-TFW&eqM$ z(=E!(*9T>;rl~n*rdj#PC23iv#aI^tWM||V7n>KA8E2Oy zrIZw=n;8|R6zAuIS^?-qtGT(Mk)eTwB{4&RWyYB$=~ao~c^|TyOU9WcNv4HhGbpb_ z&8!S8^h}Mwi->SlqKTEpRcS@#DT!Id85K#!+1VLM<&}v^rKXh`W%=nv6&dDLMyZu$ z$>lkw=DDUO>6PZV#uQSrD$^3P)68;BD+(%&i;QyiqPf`xi3QoEMc77< z60>v6GAfcva?-PkOv}nM^Nr0-GR$(aOEL;GQ!6skk_!s+(oCyLvT~~O(hJJ+3kym> z6WSP+XjMg8es*PHMpc=yQGr=nN=jy7UU^~`_Ca5BOG8sj;+Bh5WEGX9BpFp8noFR8 zq-3m1mC)Mj@CLteQfYp9QDS)^c+?xi=|xGE#TgZOrfKPgDXHnnB_?I2d1i%K;1z0U zy;3tXBXdI&L!wrzlvXBXWMvqGhjU9RGc(IUD{gd@it_U@H&&$-XD1h!m*ksdb6?=hC#>ld{8@~RG}cXD7`eVBwt4XRH^5JiVRRY zq%5^aq4@C1qRdo#dwY9@ki!c>1yylka$+8&jt1AUpbbwsCEx-TqzSb93ACTEI5!`o zyh$o5Pc6wSsH#XU&o$3XNzE=a%E(VC&QD9s%PlHSG)gJUFUl}AN;63*PfE*4HBZS+ z!I}z7vr7wd3X{r8jnk?!D=N)W%X10}l1#BirIER*p^>qv38E*7bGKe;g?VY3Sq^by zn7C4*NiN73vy>9BF?fm`Gy`zex`tK;##ScgdWIILBbo34>8ixk%<_sVQ?r~xGt=Cv ziq!0s(hRfWWX#Y{PR&j&HA_iPEy*j&uBu2WFDfmmFf-3AC`(N=POD0-Fv`g*F{`LD zD>o@AGO9FBHNiT(lUP|^Qc_T!S6otBT9%S&npu&WpIlIkb;+oqF{smTZbVGzmlx+I zmZln|Bgz2Kh!JUJfJts?d2z0Br3u&=DuuqWv7V_BxXlAE^WmYNUSOVIY*ta8SZZ#P zl%J|poLQBsWMye)X>M)-%4wM;IiN9t;KK`(5>xUON>YmsF9dA_R7lM$DN0qyD=hz1SzL3p~w`8m2^7wAGxrM7MJGe8tNIE8k-uMLl%-_Z`1fI_~jSnrxur_>VUdEsl^4Upe?%aEK{tdI+8{)3vR#X1TFMTa+6WP;lL`K1bp`3gm; zDfvYTDfz_;#s-IWIb)>fl$6ZWr0nFZ%oOv?yyX0nx)Qht7AD)vFFtRmyW^2CzDBIC-+^s<7?%*+gvoT40Ttrs%`V4D$vmN(*u`Gcq$u)AN(cb5b&^@^ULO%}q@*L8DoaB#N^4H#s>a&nUM% zrL3qdy{f`Iqqv~TxUAHy0$1zBtT4y4GOx_21as~yrJyRiDy^)nyr9H5rM$?vAhSFz zB_%)AEZMB8ILFv1BR#LQEUzFdx!fqZBD1O_IXMsODh<=rg5pARlaxFoqqH)!oWwli zN|TbrbZmn?<|Zb_h9(x4#LS4485NiqnU{c?0F|H)Q9)u+Y940opOKrDmQ_|#m6wu} zSy7czURaotX_}N;S(cKWn4FrPoS#!^Y*tX7o^GC(S!`Thl4+U_8dSg%v}R_>=4F|Q zX_aY7na1Xod4(Cdg(Zb0<~V{j+bG>At+=4V2wW#%Z<*w!W|o)c8Yd-{XQw0;m{t{* z7bX^#msFKimYJC6q*Rs`mYWslRuq}#n5UZ?C1vFr;~1qjDoV>t&&W(pD=#U|GBr=k zO3MSSmBO`%F{?P=tje^i2)xD>(K0Cn_3%@Za}tZ7!zn3=3I#>^1(}Ho0d5M#`AJ2o zR$Sn5q{M;({eq(Ww9K4T{gTS!3_U$PjFKX$z{ohaup~Xryf7stts*b0sv<4DusAoT zs46kNB*Q$@G`G|^JKZcRKc}G37&JkYjkV@WNl!}8s>;qSDNC=)FG@}{O{*|Ut1t(J z1bRQm)Y8)2(9q0?xRN3*)hNdtI)nr{Qa}lGpa3Zg^~=*zN(&0WW>8*I7=xGGLi(`q zIuC7?Pr7kRc3ELYqG@_oN>WC8hFPVNk$Gi#N=ja8L271}aambzu2EJ&K}uO=Syf?K zQfWmBs7S?C`D>oNm;&WQDu2)zL7~z zSx!k(W`QD$0IO1g=$QBiVcQI<)0VyUTVa!FcB9*#1!qN>8&xGX8JxWc3& zu{0??(=-IMQ%z-VtG}nQD#X=W_DIuSwW?7No7S+ zZenJ6W>reQsZphAdR|#(QF@taMm}hU4a-RxMdbx0Ny#NeNmUspMJ1*w6=_vwCOJuk zpjI1tH_Fh+%+So3sPzM-{SxF_C zm3c`fDV3?_DHX|;B}K*Nd1hq=MI|M9MLEeP>8Yi;#(6nOm64}lVyl@jiDKDcEAnk7Kp8U`}MG$R>o2BDaS>c-Q*GP5!^*0Zz(FYwBN z9j$}1HSEdmu4mJizTY$X+03TLjjLa5-Tt_-_i^L0$Bok;H|~4fxcG77{Kt*mkDH+9 zn3N_aW|ifES_Bx=8ObSS$t7j!Da9sLd1*POC1uG)1!g6QMR}#=X~q>fC8ZUaCPnE< z>1oDQrFjKKIeEp{V<*4J*gVZR+oU9;GS55(w7;psq&zJX+enPLp^2%XiKRJl6IaD0 z$)=D^cVy?os^a3xv<&d(KSHrXxYcTEWoW8rXl#yebw^5Cc4lfpRgPIkVNzjsa%ECl zYFb5#X@zM;VR1>NNqJdmR#sVYd46RX*19UdvjB~F`bm1o@H8IUYTf= zQe0+gYFd$1W?q$ATwGpWVU%iCmYQXpTA5pxo}QRhnV(Zqnw^tdf}?ItO*YOh&deyz zDmO|?&nPmkDk~_-NG`(JKPjz9H#bkoFsi_e>7>NM!ko%t(=-zk6FnmXa6y8z*_4`N zmSmi4o^EPdnpBWknO2^iQ<$G;YF1X9ZE94STvl38Rh(00mXlamo|9yhmy=t7quErR zTVS47nqHQkkyM(Qo}ZPOo>fwinT2zBxU@8>C@aGR+cNmn{KT~Ml>EwyETe+Na`W=! zLSwVk!kmh-#DWy_g3?SQv*gOOGE=jnvXo-uWYdg_#3HPV3rq4+a!o7qO;e1_E6t6~ zOAF1*@{E#;KzR*4shU|>T7cS3#4Ii>tujtd%%HFA6|OC1r^w6-L>ZNi{t$Gpne| zsMIJoEu*A7)7&I2Eu+%BJj*yKqr%8Iv%t7Azbq>;F}J9!%&e%e(kM5t9P5;iscE5! zSxHf*SxQDmR#{bYdWm_qafUH?EiYQ*z|6qV(9qb@h^Qgh^7MiN(Y5mu*{6_uwLm1JiYW>@6rWt3#4<|O5rSEhj)A?S(J+}PC6(9G0~sCJD} zdbTO@QEMik)j}4Qc(+O7np;##bQY#CMIQtS(%w>C7D&mMxbUvc}i(nNixo^LTRy)NoINu zc&-F}9iVxVX+e34QDtU9MV4_^PF`MWRc?Atg_%iqj&WjTQ7UNDLwcflPGM0=S$>Ln zzEKI*wKX}WX=%oVd8TP)X=R0_C7DH~rG?39*`NqT4`?$JOLIeWGvWr;DoU%W3d_KY zN1E(HaCdsCzsYTgY zMU_cLX&HIuSd)2%QI=^^N?B5>X>LiHS%y)5ijhf%aSFDw*xbOv*wD<#z?_KYdudf} zMOHRsxjn(q2RGlLO+5HKok=dpj8y2#e>_2ttQ$}B-4wK5-_Qi_ux3hSc6o_$Qd(k_ zNn$}-MMZj6T1l2^zIk50agtGDv2k90MS5ygPI^j3Nm7wfsYzvyF{nq2C7%_faZH%ltaEHFtkGA*qzFUZJA%B#$* z!qqk{EhsN3swl;F08El`MOHykN=j;Big{XkT1j42MrL|WWmZaxsZnJ~PI9?%PI7Xx zX=ZUrR;F21YJsU)2G$YP?9|+(!mMoboD|cXJo8kuBGVM(l!{!eeMB>JOG6U_6QV{` zjnj%tjVr->I*3bT&|V%=A}a%J=1R;2n?Wd%L3QIvWZ?b51}5Oq0C*n}WmQLZVo`pM zLON*jG~@8flGLJndyKrDUTU0VT54=+oRU>#R#lo`S)QJlQIThsW0ad!l~`JmZ=PRR zWn@~JR+?p8lv`SsYnqC+OJG!4WL%h?kzQ(&o1I%+SX@<=nw^zb1Zvx$m#pT-CI*J) zrpClVi%4Acc{1oFVlcI`}43q2%lj4f>6CNnEAPERi=GJ+ggnpjzoRFPqlRGOWilU7ht zl%JHGnwe8sm0?y=Vw8(@ca?E!L5@*crb&KbdI{)&5R=@*s@(iU@cuXSmXxWnrJ<35 zIWcirT2WbLY*vcglEPg}BA2vCFBw_8yXXcw0mFAk3q*j#YW||Zh z7?)OMC6^^9=b0xJCl?fz7UUHcnUxt;nI`2X=9;D%m*s&rpkk~*Nlr2{(S(cGsVxE~&R*;r$ zng|*x%d5!AG)^wgC^I%LPRh(Pt1!+oHOr_n%Q8zWG{u_FjB*PzD$PqPQ$by?^hDFV zJmbnl({gO5(peZ<7#W&am=V)sDKja{EioS7=(2SW;k= zV_aBPo>5qpo0M*xl$e@kY;Ka8fweuJU6Gobot$o*R+4IFo>gIgOHD$hzQ%gQj#$SN#0DmP0uH8(O(Nh{AU&Pgi*1r(N& zrZO!huPQCEG%F=9vnbE3*rY1o*wnZ@6<3X6USSG4YS<_pOYgkgEIBW;ASbOP$K2dJ zKhrcVu_U=7Kcz6KATJ}&xU4L*A}uL3E7LR|l%|Ij3V<~)3S7lS< zPQEH}1QATl6RaK=?zDZh;asZm*BQhr`#sZnYYXowd*VVj$nni`rL5jE^o zW>lD7o|10_T5UyK5r(bVTbN#$X$CffP_l;V#*?T`txQbyj4Z&NT6lj0a@|8wYC#UZ zbtXv_xrtRp=D8IaX?c~V##yGxNv0XeRhjvPr3K~L=9%d^IVQ!G>1HNL#ipt0<)!H< zxca)e<>h(CMW#79RmEwE#l`vMMX3cvg{3%894)OVOEE7k08KyRNc)LZ6{g8KW%-$D zl^G_f#+gNBxygAMDds5|$=O+%`T3O@$*K9d1xeY)1xCq5Mv2B{DLBSNNp)LERdRA! zWv-DCa@u#yQwYsV&Ph!yQV34YNKGltNma;CQ}E5tOHWNLPE{z+FU?6&NJ>>GE=>mA zjFFU>lapGckds-GT9jB+sgRdnmYSnb0$$_?-v1B2^`W%VJg+>z5`2UO!3WNw;SU~HO{ zYhqrJmtI+xmRXdBqogq}%_%L*$V@iLPb)|%ODd~M$*M>*FDbxL(&Uy_q!g#8lz`3| z$B`0JlalfZ@=6O#P4lyp64OodD$0_pj4JaB%2V@9jq}R$vx-vlOH)kp(@IUsj0*E} z^7C-izg4A0W=2I7MpeeSrI`g4MwzLZ$!Uc+_nPJAR+X4nm6aQrqof2!IKXIuW>ln? z7Z;gimzEWnres$YmK3I%7L;UUnP!(3RaK-FXOH{UACN? zlx1FAlwFXUn39{4V_cS;ZJLo}l83DYYG!O`X=q|X)M>e;6{*IBW@W^+ztEcRDAjVR zac&aC7(A&K%>X<_m@#;c#1hA{<=pI~;*84dl%&$+in8+bsd!PugpkJ zO3KPKNlMKvD@rY_$j>Xt$garDFDNZfF32dzEjCU|E6gv?$Sox=BVZ*2RCuhGxd524+OHevMMh^HZz9$Iz8jLiYcg80i^8 zGA#HyAkbAk)k!6{Ri`&AVVW#lzV~<4GmH634#1loB&RtNa!6^0Po2?sOEAQZus>ixd(S zlJb)i6;i+(40BWSQZm!?6+o-`K^yFnK|2b;3wet{%?0qLzf^_f#L{B${=37A@`^JP z6^g-I^zxI6GSd^m`;kC92$WIWk2ckinx3AVm}XQ7y0{=CB`>Gkv?M7fH@zq|v9hSD zDmT?UC%vjNC#kTg%qTe}KfT81Hq`30#t>8WPLnU%%KxQhLflGLoCiejT;aM6mg{wys$ zDKEP)BegKgJg=~*$~@P&FfT1VyRyRAG$lJDr?k>6H94a+-MF&Q*tFcVs=%le`=PT{ zrWyHpg%ugbMuqu_iK*$CnT3UBS(#WzoDB^u3{4FUh*=F$T2+uzo>K(wlt5d6pm{3n zlS<&Yf_F_2WoTL&`uV>Z8Ac^Z#pXt-RjKJ|skz4Km8N+a=0)a(6@@uvDMh)t#wN+8 z>ACskDdi#2bl%JlSS!$ALT2_)( zlxB-yQxJwvopH_*oa6ElqylZ+Eh za&t`*Q;W)zO-jnjD{~8Ts!G#~lGC!2Q&LhYOskC2j0&OtK|a8fRsc zrxd0ql@ui>n-`jtWM`KdC*#a#MTwau<|*J^f3-SFkow=yM9;_q?>Kk5QE5q9MOCFy ziFtlSWlCjwWl~ypa*=7ac}ZeMT6uQ4QCfa-R(YCfVMSTDDK7Vtcq>FsNm*H9 zS(=eiK4uY}l$vK!U}kKRpJ$q!n4Ml(k(5@HlW%Hfnwy!ERFPerT9sawpIBsUYMy0Y zlw(wAY+{BrWf~P%6dETQ6%>`3Rwm_D6;!3<78#j<&v-y+jhwPMDRaTyE23clIdCD{e-8^M#g4)7GOPQ&uWmy#&X8B1eiDh|Jrm3a*Ddpv5 zX^9yX1*T<1C28gvW(65V<+=H3g_(s(Ch27*xRwZK7ABXOB$|~MCRLOfr{$QImX?FOrj29h3m&#CK?&&nOmaHETE;ljJ&eMtOC;t@pn9z|6wRT%)RTqcrp6V^Wz_oSl7%)(g+&Ey)-E&w>&>1G2PT8H?gcNFA@8V zQh7yHRmo;mIhiT>iIwF=plj~3%}sM~oj{sXoReglpOp;ST?QTlLpoq0J>T5K$h@jB zqarcM%q-P7vC=#@%hWilqOveKF~1@?)ubRNy&$o;+^9G$DJQKmE2|Rgdk3aJ&kPEJk= zsS25SX*s2-dC8fHDWI+QDVgb+C5btZvqn-fK_~l^q!xj9%9drOB!bS#QAkWmEh+&W z8&m-rG)~k39isy}-liC2T5^7FehTym5YP^M$YCfcsR{+DIjMRI!HJnkpp#xQixo-| zlk)R(5)}eV!5#L(QqcJ*`FWsjI(Rpo0_f0?g8br4$mvBX`3i}}#gH=rKt}_mRutr9 zCMQ}c#3;FzDkLUnKqdnqr{#d%nss;~Xu=>VH5ck+Jq6cNh4lR567az#DXEziiA4$} zr4W-db3x+{xe7U;Gg%Z0iV_t-yN?xeOY>6l^%Me%KnL;UD&&F28V;{iC;`!FhZiPi z=73IfNi2fw08~g+NKDQH9ftxwHYv4KA+IzqIZ>e`vn*9l!4q_{Pg;JaLTRo-UTXT` z&B>V%M<*ud=ar-;gOr1;0iE{)@_`QMCRUIyN>V|`uoxLbj(bT-RmcSGq}G8Pc2KNP zkXl@vpIEGrmtT~dm;;_JQOL|q1fBJh3m#a>1X)~`nyZkPsF0Wfx^6l7@G4N8>nVWd zT0jPY?s-iuR!B@K%_&I)MNV$g;gz`xpp&3-!JDN)X6VHzDTF104tz>f@X0So1zD+3 zTmrgvIRzAvARADQ9#RNOOiN77QE)CTPAtjS4=hd11;tk$B={g9QIKDnoUf3QnRa+B zC^Qq3iZY8}=T3n_1QgPc<7LV+ixP_<$LAzMCU-!AlbD=eTvD2wnh8m?kn^9wu?jxa z33`GRIO0&{z{vqD4o(x`(9VUY;e5!166nC2!&?-RN{f@h$ut){vy@l_3W}iA#GK43 zuy9FHVhMPnDj$6KO};`R=%Aj&ybP#d?%|awnaTM&;4`p5v7HExnB3A7(9Uv&#GFh} zv_W^4>gp;KrIuuZcD#dAYH=y(2JDi|Jkar3$r<^{`8kQ8UF`+=MGC1EsksF?kOQ(H zsS^}s;Pa!B^K+9j^HQqPO*8ULN-Gk}3o?s~3QH=g%F`2#vU76F3-gn6t8&bZjkEI0 zO>9_Vhctdf$dq|}m(+*D(e(xS}5?2HPtl+^U3id-`zcUR<= zSLGDtnCB$u0KCMO#wX6NLXY`u zYGj_AnQKyDR$`WFUTj)Xl$~ajmsyfwUS(`*oMe_;g>_9tNk&eQNkwL|c~NOrj%iU! zxp_{RsaYQQ&MdTEw7Hq3k)g2#ahq$5GeGlK;06$)%~4B}t~H=4P2$W;r?LRh8KpMpY?BRTajG#udid#>R=s z>4^n7#d+Wc7nac~6VtR3lfr)N@PAsw$IA3b9>flaga% zVp3_A2wLToS(=n?nwyi7ZJr!$Amlb3s z85NnDWaj1;q!m}D8YP=o<`$V^TQdpTvubE!LEKrT6LfJgqX$G0%mVL3zS5 zu`;pLGcv*36-lo!E>BEJGc7MN%S<&lGA%LBPEJh9Oe#q$NKH&J%}>osG|4kbF3G9N zG)YRzN=wc#!7&VKTAX82n3|E4Wn7q)YFw3*Us03^%C-79Zj>+0H8x4fsl>KdJSjQR z#I(4oA~Q87Gd07!Dl^F>udtvr*}Sqm$GkKr&p5~2q&Uf}B+sn0q_iqEIlC$gYva_| zyf`(@#5^x4tuWENAU(@G%P6h1stRi-*uuyVbe0NnYoJR~jY+!h6yB9Uit94tl9X~H zFFb|o$I}%twK6f%voOTl6-hJ8Eyyj%GcGDJOEXF=HZ#h~OD`)c$}%ggtSHP*FUw6y zHO))TsZ6RgF-y0u)N~*{$C^RuQE=tVFD5y%# zNUh3DF3c;-$SK0Qh_kBFxFk6wIsVNq31 zMR8tgT2WGBig8s*d4)+)zFC!dR+ec}R-#dQd17`^a&k7-VV}&rO0yiJ?6e%y-0aN! zyrQIX^8&M^Vr=JcnHyS|8k$)UxwWJ`zbq*eI+aSyIT-L1iQX!@gD&64v z@uqk~3q2#q?r@wHXNGyHk!eX`V@LB2^@Nq!l$ftr(*nwpeYQI%JaZS-An z#>vU4X~j7e#i?0lW=0vtMMWt^X33SQr9~B~<;EFV`5C5VMunwm#<}@9$%VR@d9HC{Zf;(pxlx*NVtIaLR%xDbS%pbbSz>0gQC?YchPhEia!yWq zT6%J2VpdXV73dsT%mozXIaw81Cg$ZSg=V?=xkd#=#px-f#wFkzxY7GT=4Qr*7G?&f z#Ej${=M|S_WEg>#ZV?yTn9bEPg8)cYe6_lr!rezdlB_>srW)v0`rxuwNl%<+y=VzFh!*Az6X>+8N z<`k8crFLI1#rdg;g_)^FS*BH) z*?GAYMk!_mNvS!xRr%(o>4lj|#>quVDaKXVIr)X<8A+vB8v#`rNks)!#m1@GCTZ!J z<)&HY`9)bpkm4LI#h96ySr{4_84xx5UzwJiY?=X{w;?yhlvbuCn>!U)?+W$3UUcqBSEwFJCQ5PS@O zK6vO4G>)EGlvu1#T$-d{WT4=U4xr5|B}D(KG_R^4w;;dJq$ndlHKRN^EhoRADy=Fp zyD+)1Dl5GJbVf;~d4^e;S!RZLalT1rX)dJsj4V7GB-*rDJn|L&CbSp zNtU^Rk%6J5IguB4rkAG`C4z6jCN6TIH5YQiu1YUYEUg5aK`3&dy75Ggsg;4Dp1HXx zzEUi?EH5W5C9|jkbX}Oac~)kjNlI~9fk|GaX`WG1R&h#pK~Y&=eqKgVqG^tCRW>Ma zvCknEmY8LOhSUqq%&T&=a&WFy$jD4FFDj~puE|EJL^HC}QnSi3l1t0V zj1n`=t4d3fjg5`+Q%W+E%uLdAa#Jcwt1|M-%`-C!O|$be63eP`v93x<%`P#{E6+-; zDlIoHN-N9D%E>RQtgOH`(rad5W?^JtO5DQ1@?5jR+zi;l!Q^stW0UOEO5^;j@?x_} zvs`m*<3MJXhL(n=mP9RvD6KM0&M?acFQy_tDVZiGr5J(Dpgbv=fG!QPG{d_F6?80K zc5ZHFYEp?=d45uXd6s!rzG-4Xm1&lFNk(C@SwU_|mYKOpYJOr~R+@21W{w$-#&T96 z=pMW5l8WSf(~Nx6DigEv#G;f8Toqz&X;x{Od3rInq?DRdT9{;JTwGBcnx0*dla-Q}m{M9;l44qAT##y1oRXWCY@Th7eGDi+IXgMqG^?_rIL$1%urM>( z+_bzZu>k8vUeKlJ1}4O9udB?=E+~WCXij!aS7v5sSLK4oP^b~pMwWUe_!l0e6r~g! znHLn7r>5m(l;)(Q6q=i56{VF`W)+tul^SK5R1}sMR;8EZ=4P9km1b3#7USA_PwG{6 zr8xzKd8WBWDVW`&q>RGsDs%Is(h}nmljQR3oNRN`;`|EZ+@$Q{s`7%2inP+~;i_83L57C)x4?6`9;|8Oo22{ax#lcphn;=%E1>5f)^u!bb!|MmssiRr(~vB z733sa6`K`j7N!^Fl;u^H<>#B26y}s>nHp!7BSuXTw&@$^7#mlar01uX8XJN7_V7Lt zyv386o|#ctmY7^-T9sLzlx>uqSeRW=o@|0qC#U756&IUU6`5zJr6r}LXPV`trW7Qa zl%|!WCuLNcn59)D<(E~M7-eRqm>A_IXD63pA9*k}E>Fub$;dP}%}cM!$YMu#rJ`I|^KxH%bm93BvO3Tm5$p_UCND*3Em70~A zmjhnojVvvbQT zjEq3$5NaxeTWin;0g}7RjMK9-D+uTO^hl{%PR_sQj<%~ zaj6{BC{m(%Djq{)I_61@BzSy z#ir)QMoC5`g+{4aMFrVKrlooLW~oMHxk<&T<>l!W#TCgWMd`%_#buQ_W~NDr`M4(A z3kwT#jB^u9O|wi=i}ETmGt;U{l8Z|+5m^}=+n~0&zHyF8ZfRwrsd+^<_y#nzalxdt zEYkwhoZM3L%Ivh1tn5;=%#z$(6SI`OwDQctyp)onH1nj~yj-J<(v)KJid>^ybF9-{ zNvQ=T*~WRsm1*T=nTdsJs!K(bT}w(8S!3m^GiJ73C)7Wd-1_2sC$+ zzV5uD+@#P5a=#+wN!-NB&`{5Sz-f;8##KhrshW3MJ8!gRVHRe zCMEf0{N5}bkJeP7^{2J&5SDwO3li%Gczly%1lfOQYs5fQwq!~OR`Lj(kgPz%&Ia?@^eeG zjnndy@-ovhP0X=YeicbMrD?f^Nm)fX`FTYt#RVBfrP*b<*arU14Ghc-EzC@b+iH`R zlbsLQ5Jh%OSEc2omZX4N-IT|)sg;3&p0O#o;|j0;&_;hVa*KX5%`=PBlG2k)EAmpaKo=)rWWB1S((GK*^1O=Tf~>^6+ziw5iln5p z0<%)%)XKt)ioC>}!jzri=mI%x40xBw-yZZ9oQPb*GMH3FG|C+NX-1+-;= zC)^FKOilF+%q{WN?TJN26&dAaRVhivB`MieMa3zJx#ksSMQQ0q70KC2d1Xa8g-K~f zhuhgbo2b|vUe-DhWM1Rb%n)U$+aR6^US4;}vkU67TL z4;tt?yiy@wp*SPITp=Y|867$TAl&q@CoT~Jq{6h1z;NaOp}bN+(h%djH=YUirhTo(n3(19CK>N%&amwFRwB!4|Ix6rCE7Og;`-{2KXFN z^mJ=(VPI)!WJc8ZW0`TWX>M65xCo}8)BqWiXr2o;22au@zSJ-SpO;{S+A@Wg8io0} zMoA_WrK#mrnW@F)r8!jv#f8bqMoQ>|=V>WbY39jgDJ6y3IVF|JrYR|91$k*^rIlso zmHAoaNrl-NWl7m4>7`{Ux#q@INo6M3mz`CZCYP00WfT-8l@_I!rDYW+SEUx28iN+R zV1&N0k&&Ufr4cdBr81+G+(hG2BT(mrVCaMMJ*bTc>VsydRw`M6RgO3A56&IOx+ zC+LxNqm~+mX1az3x<-~Eh89-F#-QVFp?8Bqle@1cXmNF3esOW4LViw0BIF+2w9+Eb zvh$Qwg(T35^pt!B-$YOgBUQoAQNhL4%{AB&BQ`P;Qwz%ybBZcU(@HbVt8$H!vy0R6 zD)Y0=)AGxc@-wo`a?*0Dva-wzQ%X$BjEYQiDzWD5%Jkyo+|tVA9FxMr%IvbT)Re5s zoWgW$Iora}%+k=%%#xVH_R363GmMQ=jgl%V(oKys(lgCW%#%y<^UF=mt1@t%sZo|@ zTAWp0Qe>Q(Wl~g-WtN+2RGv{#o`j>tms^}tnwy&pIU}<~ioc zrb$Kxg~fSE$%%=@nZ~$Uqq+Iz*}3MKu%kwy(O;Yix;?cRwAMNmvRWFxv=_P^0JO|q zp&+riII&0}DX}Co1+-?n6qHu-!J7i0#}4GADx@kDXXcfFW(%_NA?xTtyA8nG7!EIn ztlLg40$op-S`50pI3-a5bmwcTLP};)YGz5I4!UaaN_6n5@#K-inVVsqlon)4jR+(p>kzJKvQk+`}x<<7uzbGXq zFVU#5veF2=Oao)ApgglOCojLExU@X6ETbSly(rh%JkvNA>kSU3CPs#47RJO(tCbm5 z7UkxpgC{?UD;c0I0_3p*qspR;A~UcVgh~deZq$+iCa5>)p*62lOEXP! z(~67=^Rmlw%~DIt(lX1-vvLb6Q?imWO!6u#3kx%|5|hm`bJHtQb1M>yQgPkjkeFDU zoS9-$WDdGxryx5sBiksmq9iQ~SGFpxN~x$a%>`ZCiBShsnWh<+R+bo>=A@)%7Z+q_ z87JnO6jW7JRpnI_mgJjfC7YM!7MJB`CKl(Wq?sFm7Wfn^Sw&YXCFYbUSt*6)DuAx! z%}mQo2HpNwmRVF%nwSIKv;fK_`3f;g&iT2ix%rU&2Zja;xtTc`hqtB{gA#LTap~cO zMVXLWhn;dtQ;V}Jbrh7%^o-05^h}J+bQGKt^AhtC6?_#QHLP+-0&{Zpz!zhI_aEgv zYFMMAkeQcW1lqMy3c8xl$O2??VtT$Fhz8v*9iybAqm&4`v9Ba3u_QAebcb0+YG!&y ziISC}nSp_hQh8=dNrsY@k%56ht&S3Cw@WHW5$qI`q?~-v*mqHC8dx+ZGcOx5QNZo?Mhxkeh6hol|UHkeHjElAlqO zUI;4xb2D>OLm=&8u!Z_r1*xDzQ6M)g8XK5cSb$DBsnt=!-qr%`wSngPBJg};N@i7R zkpg(j6FB$hCKl^KfP%jQG;kFX!FQs9$|>m4X9~EYL`NYNv|}i(G*clTDM}O+QGmjS z`IA~d%Mr)U-U&Jg*?J zB)2@PEX6dns@yc!I1TFnReEAos##ICNltQpN>X}JRfTzCdYWk#))hTQ=0=95#zc+N zlo^>-q?lEJr`yRdUd$@Yk_*6QP@{M;GSjm(N9`t}6)!18$>l~xB`Nupx#<;2rllsy z#Gz!cOpGRD7qI4wOdH>n~!B`v3@A|)rc zEVVc#J3Y71+_*R=x3nS&bVsgPZcar?xp`h$2I!Zasyz&EW;KJP0)W{Gt(GDND$OMhjXQrg)m1LHH z&%H|luj_`*cHl8PBQY-peEn)-UP*plW`0&_US@t#b{cX4sidP+oLZ=4WoT(^X=H9{ zU<}$OoS6%{v=t*3O-=O7L3e&&S>$14W?EX3o{?%?R$87|Rb`rPWLA`AWRBH`7NAYB zMnvr{DFYp7m7hk@s3^#cv|{2Gc@VD5%|NT6EDZ7PBT6bwF*mQOGB3?3D66Q*D9X=I zu1ZQSO0G0YGc!%hPb$vJC`d2OEGy1WHcL-3H_k4sz>(WZQ!Dezs!Gx-(^AXQ%S;N> z@^cEaG7E8?aG6`0np9aX}KjCnIDa@|%qYh=ue_?TEU&~QF|V>Lv!b9lzpM&08idgSHa9jjG&C}Y4yGtsDJ6rK$tCCK z=4O_F+7?BrWw6exaaK`PE@jJ~%8av$N(&*mi%>lT?LOma=9+=#3rrv}otm4JihZIN zETdPJnUb21r`2TuI<^$r>M}JqtJP70=&-6*BC64qk(iaAnv|25ZEBL2kyMs#lv($w;@!t^B5{JiXn zqN=Ql^7Qn~q^v^I-0YO3T;udyT$ewYj6;$PyV_iy>o|KeaZkk$>3);zCP?%I!oLrD!mWBQ3DKj%eQ&TgdCWgw(vXat3 zg*UwJ$2|pzHXw-9c`Yq3%QDF_qv{RtW_rdJs7vSIBZ|33`Q?S?g(ZcVl}R}nSt%8{ zX{G6&aE^_OEfZ1 z&aSM=&rT^fN-{Mvt1K?T8v14CS&1p-l{scSQl%v?|%g_7km z$})2^jPsKV(sPVUQVNsuDvC|3jEhYQ3$u)K&6A7MlgrK0ib^swjM6IeKo{4W;W~@a zC?&BdE#KIzBBj_QzbdaRv%tKvs_)=JSdyF8^R4RohkN=`vua$bH~ zVqsox38=_KF9*zwEsYH=3@t%@8$zL9T9IRJlvQ8^T8>FD^ucoj&`tw#5nPdDR+3)< zHUm%4BkRUf0vKDFTIiV>qm}?@9sIPMlDyoMoYc}Jv)syZ^VICjyt0Cnoc#QZ?2M$M zlI)7gvb2H%^U4Bqqr$3;O4E|0Qc%MNOA|WFI4iHHyeOkQDbXk|y`ng$qOda8Bn9{Q zVOd^QR$@Nr(DPayNN?Z3LeJa?Zx1QGvOFy=->AYk zF*&2CJgcHKD?L9mttj8jJPUMY5Dw>Nq-IoP8W$EDXC)@5mn5eYXC$SiCYj>C#xyrM zH^(FubUy+5aA#6^Wo5B(MQOfyNlHO_Qhs?wT1H`6l~HNH$PDMeHiCJ=a zdP;U_m2q}{64r#7QfOYDnUR`QWtx&yW}KT{mS~)uQw3faiIFgkj0_FU4Gf8D9#j|= z6_)2gZ(1Q{doZ?yX;hSLTn09S8VS?HP|wm7@6Mo9qwK1zk| zjC7;Y(ws`OqSV~7#GJg$eB-SA{ESTFoTB3V%p4psZCsIAT#{T|mR*!mWLi<0oo||& zm6e%{^Jc1ivy$v2lQe86J*JgrSC*P2mFHyUW>h7mCncp7=b5CI6(lF+=b0O4mSm-x znO782s?0U5gp}N57eQ5(IRz<@N`&&5HU&*88=2r=5|Nx(1R-hviEKw(*(Tc0o z%;enoL!pe<{1TGWAG#lGz0KdPo`F&^Jy(nr?=qE z0+U?hl&pNy6!Q|J^4#p?yu?%!Qxnt542)($Vs2q+idlI|N<~#+Zf;p#hH+6rdSz~z zSxI)bNkN%ua$;^#Mpa39WnxKkQK4}`X_6V%2C7MBd3kP1PI6+INv3&5X|`!fN@9VL zNfK!3FxptFnTe4FXh#!Kd9oruBPSWUzZ2SqP|{JtzIqy5u|r2pkb=InB0nQNJqx@? z6i?72>&6rACRPSUdZv*3LLO~!%N;(*Q@ z%PdP(aP#zY^zn7|3vpFQOioP7F9jWmR+Okv20GJTA+0newFt6yAvd)s1$0KfLQ;Nl z37C3JEZnW<@M73Qg#rN)^#iB%>g=Ek6* zFDyAZEhQL~J=ZEhRfE)2Of_E5oGJ zG%ckpJ+G=LztkkjtimL}#Hc*QtUR&GG{-2_D5tD2KO@VyDy;--O|u=^RmM2}@00UQudhoC-FBP+EfO z#*>zet&A=7Eby1v>A7WDl{uNIg%y=XW~nBb$!5uU<>rM|RawQx+38iKNf~*@re+yM z#YRS@X=W+O85Nm0YV!1)Ec4W=ax)Y2{8Z!Yq*RmiN)w~hRGejYX=z@SSuSYlK4|O> zrGJ^4RZ*3alvG)knpA3*Q3NX7vW$z<($Xr@i}Q_(%}R>%D$G(6P4jZiD~hwtKurv+ zF>RKSm|K`vY?hapTbP<|l%JTLUr=g>^(=RD&{^(AMn*)H8dZ6fpeCd#D8-N)(^Ywu zIaQF7hw_*<1>MqYXpXmb24%ctW6-EfdP;6#c2Q<}ZiQ)1K~{2^X>MM+S#Dx>l396v zYG#>vj#-XzX>xHvI`lXfJuHP@WubXhZYq`Tg)*@+HrKN-1~){|3Oz!%0VO3R8WkCv zo2DC8RuttGl;s-drx&HBmlmbugN~7}NUth1OD#<+G_A@=O-#(qGcv}tB`+l{KQ+-j zJ3G<1pe(g2tIFIsEv?inI|Emnqtv`4Gug}tbOa!d;|Y^e3M+EV)6=T5iVKShN(+p$ z@=MB$%JR}vDl_wqtFjY~l9Tf?64SDi%0Wld<(ieG;mBJhCE3YFSrxfO8KpVd$>pZG znOQ}N1?9Ni20EI%4BCBD0$l#S3TadUH1149#2qP9SR zdSiL1kj0jiG@*=hvoo?xsJCX*+{)Nc&%_d(sxeo37iXoF=b4oyXBFj{Bo(LTR3zsY znIz?#VuXHbYO+zTk#SyHQd*vIW?p%@v3a>^Vqs2URc>-oT4`~Lxmj^$dRlgNp|PoP zK}u?Jg&EeuFu5o@r!29+sJJTC$gHZkw7l5JI6Xfd`yC^u7KSFKum&ua$$v8|BO^Uy zBe35{&9OxpnaSy8sYxa|sm1B0rg>$VN##lD=DCUKrKx4bm6^sFNkv7;sm3OGl}4p` zrIlr6IC=?HIi+c-W+@r@$rY&?DMh6vd8TG&#o0Iq4@)vi3NnpyjM6}1T$G;=o_s^8 zc#@33-7C}N@+7k~Q}eQ-;@raY@}ktV#EdFq(~Oclfe`8RTLV zm!?#hWaZ>k6eNR2D65iFOf$=iO)83t^Q!U^D~ruatMZF0%W^9cbF#{d%t4oLR+V8* z73pcl85w3Kx#^WA<=LjmX6cz_rB%jhpfyS8!y4uWre=m_mgYo_w^d~)XBMP_w@nbt zli;Q?v^j&^u&&BZPA!I*L6s`fM9;_)?|55ENoitwiBWo1L9UTea)ohfVp>{3QA&kT zZfR+Gfk~Q4QkhwLZfTj3d2W7TX?A95X(EmSyRbB~EH|~hG%dp@CpobosjM(PxhyFq z9cN`yTv%mVRA`iqxm+bVqsTlfBiYQjFefJ|)uf`ZsKU71B+aY}G*)h2oRwFVo>-n{ zQf6*kQecu&SyE7*m5A+7h|1*BjEvIUg5rXLl+4W3?Bp^d^QuG>tfjAsp^>4XrI`_A z$_jo91GYHI&o@d-A*vk!)s3gY3U0=jSmGUe$}mk!GOa95G%Cm{O3JB9&oeSJ&Pp~l zs;tVWs>~}bHA^$jNjEc2FRL&sPdCX)PtGiWHe=A21E-{zSDBj>R%H~V85flq<(8DB zniQrO;ogQ=o|I&6Vv6kMPiCss| zVQNWvVPQd8c4<{{VwGuP9_UUUEK94hvW!a;vkQxIjf!(hj8fAIimQyOGO{bMwS|l= zjSbB$iCaKol%1JgOymL*w9z1>qPNT_t1LMwAG|`VD76H<3pXXrJgcf0YoMeRnidyV z6_llzl~yH}6jv2zn&f0BWf~c!CK;C+mzo%rXB8Gy80Y4K4s0sPOi9d50Z8e4O0MsLaGDH>VI{ z2Ia}$40P+3sS)1eg%gv~3d)o6Q_Ks~Qc}}X(~>fhQWH&*5{pvHsxm67s`5%rD>L&7 zQcFw=(<}1Iv-1mbakNE9yiF;$)Fe02ytn|=vq7ItNz2VF$TTT0E-3?zuVk9#Cnn{k zGR`q8H8;sJttc%q zP0z^Bz;>j71!yyxxv>Q?1znj*WnN|p?k%jH>%3X!Pe|ZF*PbqDz7L@%P)qn|4AxO zFECCn%*iOsFiI;dD=DkWHcCx5$w@9OsVX)}DmE@lE66EHEKg0%FeyvPD>tc31La*T z!-6EA2wPlWR+M3eZT(Mra*Ao9X=YANR%vdzxp75aaehH%Wl?HjNk(a2nsHL5d0MJz zae01aT1q)+omzfX71ktKQdD77XjYn0Xq=l@S&?N_S!SM_m0W~vv8$Phskx!0i5W3_ z+Da>mk_wE|i7R|?m&hPvvdzuF#^6bnXa?YEYnfOXnCclB;~3yiEGa1}E&;Wj3QLp9 zl2Xg6(vp)iGNA{;r6|FZL`rF5R#}=^MGok&-O@61v*hf8{KTBxG}D}tlFCA};*`9? ztiqzKtaM}JwB$;oLgOT?t1b!(l1eIz3zD)E%gb`Ba`H_Ii&G1$azMalz?}Tp!5PW3eq#p^URVeOR~#S@-vM~vy#j+^An3IlhVs` z^ApR9jH=3uOe@SQN{o{Wl1hxylCrT@ys5c~#U_=h*@b4N1)xnVIY!B8DLIwUH817) z<{4!<6`8526~-xL=EW&hnPxaQ%^4+So0e9X8&zTUWKxSu^OLet%L@w3%*_j{vNBBb zinFqeazXCQ%*{17GEFHf$S+PbOE1bSOis+ot0>0mT4S^1QqW-%Nd>6|S?NXDITd+j z>BZ)t+7F|dU|?x%XlOv(p7pA{(u#si60YLIdWdgTUTINDCD;@^85P{hhU>?ZQowy8 zLo>WB<&3nPto)+%oTSRUqO{z+qVh~Lld^Kts@(KKqmra@!SQsWe(Zh?9Ae{;u37*Ru+bamWJlwi=$z+KklX0CIy8iCMlF&FkWU-kXBd$ zS-*iNx=AS+Obzu+OmLJ8$(hNO#)&CL>E;zx#YJgZY5Cb@xrG@?7~?~!Wu=8hMp-3Q zW#*+OMODVh$r;8;CZ_q7iG@XZMagM}#Yx49IVq``x#_va+46l?=z7KSFqMy5t)M9uq~6dRcp7J+LNXj%oWb;UmOjFx(kDyHOKrk!eM49=4NJ%uUP;4UJ4JiE_G8VP$q< zA-E|5bvkHy9(JdL%Q@)C50bmfj0!7L%M!t6;K??~y788g#uj>}MyPEWw8be&SxM&R z#^!})={cp9=85S>xn{X$=E()6>4l(6ZBom!lTu77&5F#D)67c?Qp~b(cBe8;b2HO2 zvx?12Q}PO{Qj0T$&2g<=&oEBP%F0Lu9SMw4MyBT_nH85MCYP3GmQ-YBC+Aiq zrIn_D&Ra{aGO0+)HZRI4Gc7C2NK7)zEHNr9G0DZgEi%)ru)++K)02y`(u_d+3QDt* z3b2-uW}p(%#KeTSiB40KlyVcqA$(=Y=4mGRiD@b66~&nu*(S+Fl|~f>RXDH7Dy_`Q zOij+hc6CW=RbFv!YDR8FVPQ#OK}Jz(Mnz6hW?52hUJ7{P&Mc=WKP#muvohbT+$hmF zC8HnYlPVK43)0PV%gRhmD@}6?iz})!ii$FG%Tx2R&62Zll*DF9Wk#my<~c=KSs96G zg~eG$l~v|uNjMjb=9`wKrj>v)G)5v%D@#nvHA~7%&dRJxt}-brG|4O}sLHM?H7`gi zFs-UA%TG%#O*PG|%E>4wPAf4s%`C>+5GXgVFe%RlE!Qf@D$7eWGcHX^PRd9FZ5Tyw z_L*52ni(1!5O?`hWl2U}sj(4w4>6%G0=PheH`|a3w9?9wjP$A$uqlM%8m=Etk!E6L zVyI_eig*8SMpa=7_+Y<^^wP4j@{-i70;8(LqLPBD@;vkG?7aNMRI{{{q)Zdj?DCw7 zl+4l`@Wo(Q>fNmL)UpEe#EkNkbmOw@+%)rw#ER0g6k|xU57FC8%}FaZEy&9*C@MC} z%PLAWFE2AGtx76SF32}7C^bziHciS+E-6h;F-y+O$STP%$jJd^L@YK|WmFX#6;+jF znUh+Xmu_BCo|ToDW|o&% z3c7l^1k_u^64Qm|Nv1g_d3mO#Mi~`3CFaSdCRurji8(l9I^WE=DmfW6ON&1Gm{^f& zR+*KYmu!@oUzKB?m{gT&W|EU*oRgeioK~EXmYGpZBN>JEKlCsK5 z)6C+sl$6wxY)P=2C9Mp0^-ZH!VzNl8JmmA-y%VsS}+N`9VR zeqK&yUaEdcVtTQDZfZ$lT26jZVvLePa!z7#v2BbJ=oFpI{5*w>#Nv#S#Pk>?g`(6P z+ZZJ<8)Ahrm`W}#NX!GXQW55WoRqAOkO9l1xmCXaEDEY5l8Q1@(kuOoGC{Z6=7bjI zC|Tiju|sl3W>I2dy1t>Iv7xziSf=d#Mz=xk0*VgJFw%k(5N#OHQbd(?k04yPZ<695p!m9lI zL_N^%C>)Li%{3!C(%7sPq%tQlDK)1Ur}FQY@Sw_)0QVUX&Q_YLh%ZiIDj1qIq%Cd_pE0c}V@)A?i3QJQn(yJ=dQ;f>YObgPh z3W}4;D$~*sZbRGuZ)|01u4jaHh$UKwE2FG9wJg0TE!WH}HOHvDtfDeGGsU#9vNSWR zusl1{Bq`C@EF-VXv?|fGsKVSR!!#S$LCNVkIaS8xWhPm9M%gB1$!S$)+3DsbnYbqE zb8<~f%99h5jj}L@AX7>ci!*Zaij%7f(({b-%#+LtGEK6Q3yiaqtBew}b4v@$K_?2P z=O*Tro0pfQn-!H|tw9Pa&C7C<^NkD5DwFcfG7ItxO_EEpOtIA<<|gJAhDMea#C5HU zGs;r)jldVG5^9Tr6SW?;)4a=!N{fxtE5V%?Jk13(1Mrk;rdB4FdY0y>gOKpy>eT#- zbkpprib9jj#Io$7s)Dq%l0@_LB1r9lG+B^Zo|;&kn`By$)ADT{GlMO8szWm>XvL26lQc1ebrd0B2^ z3Dy~+m@*Ov}v9H>yOsNB~~qLwX*inPye_#@J@V z6VsB5jY@MXi?UNqQi>9DN-|6e(kjanqyLIo>yL!59*qu_iW8UlV28QrbMOZs+|11d{Cbpp7?Q( zF@ik}k1a%O8&#&47Nk@ZgWKa6LyTEfrAeu#6{Q8mrTO`#`GpxJxoHJC>EP)$^d-HP zW`>5w7DV;Q%S;mUO4E#p8=MEb9NHE}xH}hQMovyK*bF?`5Lq{#641=b*hJ6L0zAZs zy(OKLS(R8+l&=74`6}d==B4B-B!iB{1u+tniW0$x<>looBqbIpfKGGFOjIaTC@D?J zS4hh*E>2Y_0PX83C`!dFH8aYKi!$(?rb^9w+|WQ@4Vs7$NKE6B`FDN3(2HOfoO%gi%3E-nK#Xwg%dsimQr zp^2d>WC0-T_>Yw2WV7^i(>#;RbmP?Gk^$>rI_pks)NEAots zGt*PdGb{3N^a;((i;QwJ@(Qza%uL>)K=4Ip;DSVhev**M7{@s|NXjWEOP-32%lb%zUmzdootG=?lGxIPc$z|GcPPOH%`wjGA>BX z%1Nv$haQ!HGTvxzZfYGF=MVOCW^dR1CUX1Q^0Dzt^2l$Dwc+5?aR zy^5zO&8Q%;+}Jd&qRO6uvtDJ7)^CYi;? zNfk-v73pS$CRt_~*%cY(nTdtjNoBb?WvR(n^IUPdaeh^jd3j!CW>#8av3W{bNl|KL zA~?3tW8KKY$k4*jf~ZC66^S_}`9PPb)3Ytg19h$}mbw%}O&WswgT*%uG+mHf3pMZfRy{ zZfZtUOQ^CaD?8VixMe`NV!E;@E445OYzE~qZ35bxX^FP{3N5D7(lT>RbMo^utI7(p ziwXC)H3GFGbd*5*|IMrnE%c1>A6Jr+o1UAVZ&Z+y zlVn<6Zd8Q2{P*j?pR+X2V zl98NTRg_VlQc{$kVv>@F^DgOZ;~cY`B+${$7_(1_Rrv*`6-fnIX@yA@#f9lPRaxmq z1<3`)Nu}ill_|M}rIneL#)+w!iA9xF6=r5R=Ehi4W~F(05@_fqr7SHmF+VlAJh>#h zDkT%^4sR4z< zY6Yl#2al8{XXd6W6c;5U4d)gc=@yoz=IW*ABxUBNgGTZ6!*x?#joi$W0?p#XBg#DT z^1brCDx5t{Lh=l3^)vN~jgb|X8R|QRhIqs$8KfDcT9_Cam?vABSR^J{Bw3i7nZVU1_dD za$;U`YEB|(1RZixJm}huynKb+)XaPZP~RglH#09IUq>Mkq_iZzC{ZCVzo;Zt7w#?4 zN!g~R5L=2<6%q@IQj1gbN)i?FQbET66sJ~{BM*8JJobn&=rC;%$zkWELiy z>LQ^0LZ}%=0TV z@)J$+OwDrBK}Yr$CMV~VCMBB`C`ijOO)JPtDycFqOw2DXFfT1DFETT&Do?H| z&CkbL|CgsHW@V+Al%^S{8KoK*3fT6LX^aAm!%SNqL~1 z`oxaWVJ3^xa*Qv$BnnN=(u!Q!_L3&5DeYvT`z$i?MENFf+C=G$V3p zSY>iXS!Eu0y$f*#7qsPpl$=W|lQZ(oAZ8FMxS+c66kH}&M#g%k=6FWvN)mJPL1*A7 zBp+U=P>_!?M3kPGl$vHzQCMrvk$a#>ZL z63U)~b|s+ilofEqC}%I%z3@^O!JhY@}iVfBeUG{!qn2DJoC!p6^YqK$t7iG=4lxzS-BOa=>=6u z*a}fI@V+zy6XJ4tRe5%46>+0`xcZ;vRpn`wMPM@snH%8U4xeF? zTVhmDmR)6*kyo5uk(zI0YEo2Lnv|WGoL-QdSYA?5Rat0WkXKcdZdzDSUX-3`grk}- zE;g^qElw*dEjKMMuSiWRt1?Z?Nl(Ig3RG&ASyDk_F1C?|3}Z86qs)o|qpaN05@X|J zqau^EeDi#x;FLEL#P#QJWm1#eGLy85 z-11~_yAV%gqZxoFzRf`E2~BZrE2uIz$~4bNsm#mGHY+kRsxmUqFe@o5h0fqYkAcak zGAcDHDX%I@&M{5Ss?5kMt1`|`GR^=EKUSKS6qICUn3k4iCS@2`<>VEo7H1`;;Ybb@ zNyeF#X8A>CNrmYqRTafmrm4AAMdrBL_qm1Ti79F6$wr`xSqFBUjlV*$Q-}^|Dg|^Q z4(OVz)LhWjTcDm&szOO>PHI_Z@!`do#e7nEUUp7eMpkZdVs=VKvTBrQ{ z)J)IV6z`7Z6r;?lyxc^iB(vfYv$BG8lPvSB0@JGe%uMt0LenJk+^RfN5p zv)tr@M6)tb^9f7MP?cYmUu<5Qnx0mkky@CNn_5|wnNwC!fUEtNQ(9D3m6&T}j#)FL zmKdj{mXw#}XBB3qWtx}dXXfP=CFZAOmzN|Kl@{jYmX>5Bm1LwAmY5l3B&VblWu{}T z8O*aXvU0Ohvoop+aAQG2a}#1QF>12Q0T{Sr{9d7#P%| zuIkE41g+|V&J;dhv*yXJp2y9NkDHc1Zf<_uwEl7P+{aBz9yf1(+}!cFaoyvFo+mrj zzHHte?D&39$CDl1kDI#Q@9BKp(EGS?`Qyf!j~kkv_I5q(XnWb%_ZWocKW<#{xN-91 zrryVm-5}YX>5m(CJe@ER#BFSQzM}haW7pFqE1zwc{|S!s4oc5yn6o++st z*GtoqN=i-hvF(6KNioYTDoHFX%uNCvdTC~oR*;`&lvG-pWRjU|Y;K&Bl$n`cnrBpM znvtEJUY=N*lZ|yPTBS*8X=-U!MNxTCX0CZvYF<@lNlFfQYz;l8%`J>A42>*^Iy9!t zxU@XEq}(VSJpONDWnidhj{ml=lr*E9{EQOg!V>e$Y~vE6lH8oK(n?cfo$6T3lY5 zmY186US3*W25M$t)b{yF#wCSCNySMiWv1y#6=vC)>4iB-S=h$^&5aEV3{8wo361|7 z=YY!Yq`dMZGw^8>#N{Vw367kfjFR&5GRnbb5Xw(b-FWhoDd=nx6UfbTpu!*DjX$Xs zkO6xo9VIx^s#+-}wK%ybv!En1KTpX@DL6APJttM+&~}CJP&a=ce|P_25XZ>C$QVQ$ zDir7EL5`uzD9ue$BK9_*q%7mijO4W3^2C(<(#)!=4D+PS@>H{|LX%YEQnQ?5(D`v` zRYn!XiAClW$%SRc$)F8nI!gE}6H{YT3scit9i@`Y67Vf+jtXI!C6I+CVX27Z3R~fv zUyz!oS6q-^l9^Tso*Bu^E6LF(o$?=6D6dyR$5Vpi)11P@9OEpbytIn4oQlHa(u|TEW1J@jW@aU)WG5CFnSo;r zWf&yAsKmUW%)BH&E5kI+EZf95FSpb*$;8~qG&RF4w=%IZ-Q1)!+t@s_*fcLAuQ1mv zu@LLTg0Wd?aivLdSxQnyYDSV-u4zGqQ9)%{8J4{$<|am#hDPQVkX2cr%lz>4Lyhvv zjq@wObu9ViN?ut(1;h+OaZOCQVqyflSAg8KkG$_8I5n{-(LKMkC^xkP$JPhX1@=fO z*&Mv@fuziaY$0e~FEcMFGaoVs2%4G1VXuh^%8m;o6X;$BP%&o}tyE9~YMX+06M#xP z9D50pi;60Y(z2@ZbIbBGsw$I>iV8BTGV^mY^2>8eGjp>`lgz8kOe?Z-%_>aF3zL#c zjY~m|J1o5^)8w@D)ZEmng4F!X#GEX%;^cg@)bu2rM|dP>n3<&|few?e1)pq-mK{^7 zGL3SR3NrJIvQ3N2vdhyFQ?iPaQ}XgN%hFQJQp&PRk`jxuONvWODzXYQimFnw({W7m zlR7M9lvrYBR+)-zDQ>z+NpZe$W>#jQaYa^nSxS0ZX1ZBrp1Dy~UX^jNnOQ-4ab8Kj ziBWo)Nn*N5QgK=$_Pf+G^D0bJGqXy{$}+3+jEgfW(h3X9k}9yBHeqgVZfX=IXNmR4?*S&^PsVVam&l%H5$keid0QJI`;Y-*O1RaBOloNbnG zlwn$spOcrGl8v>Oos^nfZkAPAWt>r#n2}_boSA8wn3j_TK2sfirI)d>nW2T51u?Cx z(u%aaf|6q7p>qObD$srhO3jy+msJVc#t+&pl$>9Ly zmeG=olT%W%D${b(^2*Z_(~L|iDvUFeQ&Np`Dyve=$`Y$`^3u)C3UZ87%uK2>lS-1Z zGI7*-E1Tpe-SW7O3||p?M(1s4OWzyD-@}xi~2?D<#vs z5HwMokz!&58oo_0&oVVGDXK6rOH4@tT|1VSW||EeJ;PFj6(^e-=ci?trKc9BB$}C+ zmlvd#nUxjdthh@n3XL*N)4_Mtqjd<eqZ%wK&OENafNG&rmF*m6yE3Yss&nqa&$69fl zf=(eaH6!M{urg!Qoa9VWPS=1|y+}zFWQJJ|#0<(y3RBQcRR)&eCK~pVBCs?Oyvki6 zATcQ?U!k}(DYFQ)iUhQ(9lW!&pa`-GB@uk%M5;njW|2Z!Vx~e#QEF}~bd(uspHNa( zo^eugZb3<=SxH8IYI$l-ZboTIVy?MyPGMSUrAcK)d1gjNW_nIhnMqk%X;N`M_MUM@ zQE5qDnt5_|aj8j4X{k|GQE^q7nF-c?LKdc$hK3fP5iVHyjPvNA(#neL3X^Oj@NO@n z)@(t`1EeSdnNgTj3^s#M6hU?4DNRg3$B7Xb14%6`FgL5rF)t}jD$mQ!E=Wu(F)7MR z%Sq3#Dk&>W&o#=aGD^y<$V^YqEw9W^O3pLOgO7or=j-B}wCu9V?5eWLER*Dlw2}<- z!p!uFx+!qSw=+^mAid}EV>lFYJTwqk5o0(#qo0Xkq zRBmjPZCqBIo}X-1Zk(Qyo0y!AwWD8JX=Y+nR#lmwlWCG#nNen1oSa@(QU>w>#&C+U znUSHnks)ydy&2gBl_|tkL1^cLdZBr)S-w$Ha#eDvxlyulSy4f8SyFMLd8KJ~L0)-wMrlb&YOYyD z1&%I2c7}P0X@zNdWr0a~QI&aCYH4~&rLkEut_hXQ%#6IsqHM^7Nn?Y(F_lCq6&3BFChvG&89nBRi!yyDTr=sI)2#_vWGE^2)NJszRe2ES-3h zqSWG|j5O0S)1*ApG-Ko9tc5|2RZe0`RaUB5wn?5zVNw!kb_*lbnp#*I8XFl9)oiUaEduSD)IoYZ9KNHOY}3-IAXBp;R;Wt6An z7K2S8R0hNK<4Mn^R>o#}#wK`|!K5Z8m8X`Qr>C1GmKhtT8mAW(=clGrn4}k(rRh1`}mm6o9WhCY&!W&LXC?!|ASx#nUVM$qbZcc%zS#d^zd2(`@Svt;T zFr`V^*@>p6*bXvCGE2-cH7`yp&8;j*G%Ez{J1fY{&nikUE+{rDuShL0$}P%DH!>|D~yV9^j8ZD3Nn+DDk@Wrii!)(((-am zN;0!j(r_N1R$7pkl?+miS#o8Vl^UBAXIAAKflk{>E;7kXu1ZO%Fi*`+FD@x9%u7l$ zO*GA}G&3zMFHfliZSXC?n*S@)OH(Q`lFZ6YE6R#8)3cLHlgmnSQ$a;9X8s4AlxJvx zSiue&?9?@|)HN~;0j&l$1+6ABw8VcpSz)C~NmW6qX|idac|}rUQDI(UQf^tkNm`O| zc1dwkeqL%}WmR6OXmSw@n1W_D&e)^RE`6HCy2z{C`i zrIjhUrX^M2!-EMHl4xywl$?{2Q(}??HU>{AiDm%a%wue%XKIQ%*aPn*RAp6`XBJf@ zCz&NBXPRXvCY$GicK8)zbQ01F(#n!5vdWVx%d#s?vr3XoGP8=x)2d2Jt4y;CD?uBt zbIeLhP12I9DpJcbOLMc#uqNfSEYq}YGrwHc6Me_et}t@X?|%{u4!^%iLq&NZc1`RSx$;kPEJ8$VgcwZ zkQ6f$^E6ZATxjT*XXat<=uS0BOfSeb&&V*!Pckz%D@dzK&(2IYO)AX9n}H`AA?wDIhs;2CG+LN~w@_gp zMoY{DZ`J}WV9Zy@O)Se)$c6#T$TT(0Oau)}BxV#ARF#yKmlkDbXBp+2o0eAQ7G|VZ zC8npFWR&L>XO)#yWaXw77GuA0C^@Gn1vHS8lU-O?Ri08@TAY!YlT(OwL%oTak)f#t zXmSe{qPU01DvAm#Gb@pIyO1&9UQ}3`12Kb8@Do%28<^^uo8j$mCzoU;8<*v#r>2`^ z6{c0D8Wm?$nimwAS7n!H6zAup7x8=F@c zrDYp|4T5xCNRH|GdQb0W=EKyyaSCE=lmX@ArZeEp}Vq{vB zTy9!clvRnNb&^|JQIb<`nvZP=GtIctI3+VJ8?<~XFQuxq$|Nx>ImJ9B-84VD$RsPr z)FeMU#XQfXvLZj-xG=ZCG|LR@+P|`F6LV8@6O+WE#Hv)&iq!nveDjq2JaFd{txPqu zG&2L8l0npPL{(C;X-NgRJcN}1_`7h>Y>C`7sY)uU1g+i&9ebHd=`5NFXjQVQDc($- zR#;Y=o1dCuY@Cx)S(KZen~`m7Vw_h}m|SR{ZI*6gQe0S&mS&QiRal%{T$W{;1Ui}k z>%bGq7se$Q8)cc5VcV~gT9#~7l$}y+o?V%lYm{1^kyvJuRZwVVQkj@kP?VEgo|RdZ zmY8c)m{ysRTwIY|!*8EGb_<>pyw zCZ**`rC3{(d1=N4mAM&N<#|a}dHHEsxw!=ups55bt8gp~3{4G<&CQ5u&zG5`6`Ld` zL&LEERFHy(22i$aC1)g-=p}(pJWfn5$uH7NNlng4EJ_3qiRi$VUV)Cc#F}I9>rTwc z$uIZJOU?&vL07U;O3cYoLO)bDxx^^7Fe^8?)U>!FKfTx}wJ^V^w4lNy+r+H2+{i33 zFC*WyAUUJNG$*m7syrvHCZDa$hgA4`V)Tv7A1=h_Gp@{sx(&2o6LN@!b7@gYrUI8TczKv#K77#@M!HW+DacRH zNUACG`nc>_5US^!1Se|Esb(W_xwbV2# zFU7pPDk;k-Dc8u@xGX0pE2lEU*u1Q`vZ^GnvcN1YDK)7wDW#$;BfF|32b}J!L49l` zD-dZ_kdtg>o|9LeY*dwLY+g~AQ<|1umQ|UNY*dJ?vNba@wlp*{Hnv0*T6p?OCZNGm z@OS~im_{2lKyF!8n53H(rh$#Y6WM46;3?7rRNtW7v-81rRJMwmX=neXXR#BC$l2kB&{qt zrP8dxI6ohIOdBU=XI7OK6@jMYF)FIWZ1eP_irm67lgzB#3^OTYd^NP&0B9l~5MTMSWvyF2y3(Cz+%!~69Gct?{jWhFdlC!ZM zQ;!#FcNEw4N)F()xAtE?!`%%sF5+a#x|vN$)Zv@$=%EUBWT zpbE6+rL-usM9E4CZ34i=%EUy^$P91NN;5SsN;a>oGS163Eze0WO)kjHD6c3o%1KN$ zPpv33F09BZG&M=ANJ%y;G%n0bF3v3mO-5j87!>ALRhAc3W@M+O7#rm!nx_~Q8y8n4 z8)HveCb`AMX`oxP!ABgRcNmJ3%StngjdSzM(-KQ_N>Z!L(#$K9(#sN4va?I7ib~Rw ztBR7-OcP5h3Mw*6DnSSHVoO@N<;i8KMrOul8C6+{r5S03CAqoDCHYu~EiDa<3@wa^ zYVDSp7#md;LT=e6SQj8C4y2?7GNYu-m`az0m{}Pc=ouN}uk|yG%(9Y<%0V~&7G&iZ zr5I=DV zGAqt2&n+&_OEN0SFRMt-Da2aq7ntQ&Wv7>ASEVFXW>pzg=4E6TrQ~5f&BM&V(9+P@ z+!8u&2I_DngT}%VlaupHA=d>YCYNNEr7BsK6qTmxfLazv?F&3M6{i*|Ss7XyTN)V} zm>7f1&&&n&CegB`v6Ydbo-t@%4$GC}g*o}f1*KJ0C1oikCAno~6{h7zRk_LFaXa); zAyXqWLn9L-$XEgD`5%d8W@Sbx8Rb>xsU|sPCB~H|#>J`G$r)v76~<+GWkvRk=kOl__~ym079f#z`iLxkWiesV2raj{ztu%g9g4HiPb^ z#6E`Z=;`UH@L~RpwdfeL{a=xmoKakmn3R8gmX(Hmk!edUL`YbO)KC zF>yy=8y8h(8d12>*0`uL*{lq_35fDa#>~plQqK_o+Mf*5#H1>-io*1g!lVpS^ThO= ze6!s0%#!@F!jiQ7B-8RNbJLWna+9pef`Y8XQj-!BTqlDW8JU+Ql_#3ynB*GgB~@l+ z6{lC`l;z_*0w6Qls4N*=DPuGz(#ujSD+@BpQ!275({jslORCaJOU;VY5;KyGjZ&)e z(~EMmit@^nQ<5{wbBdFVjEgd`mIV3Pg#~$)#w8h<$;O#kW`#+q#mUB*Mp!S1vNSa| zG9_|3aaCeQL3SeY+8Vi|FV zuHdRQjY>?)($c_Y5DG!U4KhtGsg(LAB)^hmQi|1a&`&W3~I!*v8kScA$T7Z&X~?MDk(_ID9JUdOfk(e zuPQ4qDmAG{tSZf_N~_4MtVm5yDoroRG)c`Z2OVIPQC19II*O$wOzMirqLQSnv^+DT zbj)={X-TD~Nk*C3<(Y{Ui76Gur`KhKQI2NxNC#9$7n5Pt)7=f0Zp*6zON(z#*Q*(3k(@aZ^ zO>;8R3Mxv{lT)%yOOuSMax=;kD~<9~QjLm|a!t$gip)(?(knna`!V+9XXcof8WmO) znq?N|Cgta5r&m_w73G(KatV4OGcz_eHZ(RPcqT7sPkw1dT6(TI=;Q;$=nc*xXSDGY zq;@#Sn9O8|F?iA$ngMuM+U1FA5mStX* zR#lpmm5tHxNl8g8D9FvKG)^(kF3c;+si-hdD^JWQNij3ZD@--7D9<)BORvf=&o56h zEi2B<&CkrnI*vlZ&B*4429}0q#zw>x=A~5ypzCG8C#n1rQemliVM$eqQA%==k!fCWN=0Q^mPuu0MoxxVerZy9VrE)SLAj}MUPeJq zY9`iLFfGi_M%l$?sU?M}xtT?|CPtNIg=RTspx&WbNm@x+MSf0t znR!`a5~#+v6EAmX=0F1{TDeNMB}bW}awPY6M{Rf&nIX5ii!dhuvsXlh|- zY(!M?SY}d^Sz($5-iJ&ugMwRI@RisIm*;{^DNHT`n}VlwMAeTcdzyjTtY${2OBB%) zYFSlTT1G}@PMJw+W^txjd0AdgRZ(G*Nmh1Z2536I$~Yq{-^?T>r7AO}$ke3LtQY?NGLo|%|cmS0#|l97ljp%$hlW@V=oU^}2D&A1>ZHL=t< zqcpKJyC|zXHKoY3Br)5pD9a=_&nVL@BO^H{r=Y5=psXU_I5)8{yPyi|6n0K(nTc_p zS#Dm5k%>uOa&l@$eok&?BG&z=MxdPuCdBPrH!{N*{WAqGWitc!58#CYya+5YFU~DZ z%q&byEh(=^Nvt$8F3n0$&n&^Hh%%Cj(~a^?j4QL#QnFI>%5zMzOia_wlJY9eO4IXG z(^HI-(^4~%jf(QJ(zA1_jFZYzu{HzBDw7LJ%2G^?(kqgat5S;-Q;khBOpUS5Je!yq z8yZ^@cYRhxQBiVIiV-*jAz3sTXEOktPNDq*q*Pv7Q3P5U0XBnBDu?RElg3S~3{3UR zEb*rC^s1EPB-7l&%(A44#L8roiqibl%;NH_tZbvIid?hO{EV#9g6z_&!rV#|le`q8 zirfqwGtc>ng@u`gW|>(gc_~$8xfx}~`Bgc^skkm_$|=ptGcGeX!nWr+sWLseBsI;f zFe$%0t=POIH6tT8*{q_dAg3a)u(Bd0E3K@cG{e{&RGb+nrxll{nq%!hnpEberePRu~tjo9E>x78K@G6jv1G8|S7~RZ>A-Q4yAeWoBk!W@uz#M%0SA$_!)U^fDu`IhEk`KLm;p=->=;5mK39RF;zl zHiJ;Yg6hUwgczCYSz3SxCa7@=Pe@T>S!!`H_*PwPw-1BHs*#T1F|wfS3?ARayv#(G z)Uf>I!>e!{zGDbF-44l0L-5&uGmZ013iES8Ep7DHo|%P-rJ=EzAu$cr z(#mpZ{x?oFF3rl%GA~Kb&#E#?$tcb?HcvLsEGR5XFUv7aEK4;tugu6V$jwhGOE*c% zFflCxb^S3q?NvFZMg=+Lm8B(lg-N+-*(E9E*(O;j;4FeR4PkC%Vrgh%U_wl{vCPP% zu-q&IJbqU~R91u5w@6tHWJYlk#0)}N4XPVYRx`CSGSM@!1TXl9x029Wq#2;QbF)ng zDhji5Q*(;Tb4?11%_@o$%PLFDs&dT>D>4exD>GA5(ks)_Qp`$I^HY${phMYPNa_(U z#rc_~DY>Q4$rO}@7OBQ5#aT%vDFsHw<@t%3=4ScjSvg51DP_jR$%Sd4{aWQE1;!>- zIYsG-WhrT8MalVCyQVpn>B+g7*;&S!+39)d#>Q#sS!r3tX`m7iJw=+ESy~zySQ2%a zSDA4}VQD6$rX@S3jWY@hb0B6=9@F5h9p(fs$0*A)%}P$sD#%SQH%duMOe-%*OEk$! zNy^E{%*;1QPAbW$OixZNFfUI_E6q1e0?pB3-~XOnnp##^l$}wWS6G^ql4M+!XWyU#`S!oqU;6VwZ@+Q_Eqj64UYE}W*6hd(Z*N-QE zf=|FQGQ&G^n`~5+oK|3BTA6BER+Uy^T5Ot|n37eQ47%dMG&QxXD7m1@JSnZ*I5{h) zC?%`J*t8h5jtEN|E5)=lH!m&OJl`mL_yK26L` zDK0InEYGYgNi(Y|FwHDX$t+CC%F8z@sWizqOD|4Ot}4$cN;5GrOUcd7PfRJwz*=J% z<)D+%l7t zO!K4yurYX|8_fVb@of&895**Z-LwktwVD)~CFW(DC6%P5R~RK0B_&p76qr?3WMTAL z6Z6Uv%Z*YC^7BjzjPuizlCsi@jnYevGcwAPbJI&p3v$fO%T06g^76`(@=7vuii?b~ zZhXruD^II5D>p7EE-%fg03Du}TT)i zT4h!m*o>l7&}M}6?3}#P^vv8m)7B6-D`#S*Cf(8Of!2 z1?i>P`KI~VnMI&A9~i}mrIERzxuvNgF~x|9X@+rCnvpT6RZgfFK}#3NwY-UGdYM@s z*chrLEHf)(Lp@`2)LT2@3Cjp{m`PP;Np4w1Ze@~ra$;hMQAv(D<`Fs>$>vFUW@*M{ zsb&?WnK@aBRfSdgi6sSDxrIh$m5Jsl*{LO_1xaODNjZt8*%?MdA=Ea#N z<;JOn#yKUah34sHg~d6b+W|2`-`K*^(9+l#vC$h(C)p_5)GQ?pe4jSi3Ck$kq%xxn zYzCg7NA6#n%#z%Eh|0q&6$%coEC$Ud zDWobCAKt7`k_x%KJ3Te81a!t^u0lp)Nvc9#YFWo=KXqNm@xxZdqk{Io5VZW=djZ zQf_vZd2y<7RhD_8k#SC0a#jIo{sX;$GP5u+GPE=>CvLE%*fb}}9Na!6w}2|GEH=$Z zg_uEk0cB!kY^i5vhFUS8^#D`SQZiHWi*n18s)|jDj4D&gvNQ4$i!-W{Qp+6{IF*W~NkRWM?IVPZUBMw@A+@D>hHdFRx5bD@irYEJ)8zO-m}N zs?0J^FDuD5$}a~k$v4Y1%1^DxEi@@FD>cc&I&V>4l9ZU9m6?-SWRh8Ko?2K~Y@TmY zl7lrhm|Gecnwk)|1HH1aGO^s4xXr3)SqZ7JP+D17X|EKr;YOUNiwM%D1q< zkr&I%GIO#`vMMr4^YgRvs{PV$l~%c{zgD$>);vP-JWi^`Jn)ACZ% z!0T(!OF{!9b3mMyICMG7DRVJpJ<(gNR6d7fJ?)fXIFwU+_Hm@kn$}ur7$jK;9GR;XXGEFm2O3o?D zFfB^N-bXj8sLHA;tt?8fGE2$Lsx+!d$;e48PtUD3Zb4dRZgIJBQ3~jwBGV*uvx35sBvY)VZdPiBQF3aI znR$9;VN$tiZca*No_S&tcmf(Nrp-((O%06=Oc4DI=oMgzSs7(!W%-Hel?5p!Y3aGS zMy4sINma%s1=%Gnz04>H*W^-eLB4rbN^T0YAi_SD>sqRinwOlPS5gE%j{|cg0l3gq$Jal5|bjM+_c<`oWd;A(!3M{45g_^E{JGvq~cz119PDMTO>>#<|6rMQQ03MHR_r+1WXHIXI7e zE;KDqE-y95HeixeRG4p8Xp(J~W0Gl}W1N?il2nugI^!ulIVr8E+|<-G*T}3YE2+fD zI3?3OxiCL32Wu9}$*QW%GD<8;EiX<^&dn(_I`b2Y8d3Lrb*bK^J+QiDxM9&1an8IAo)Ch06nVe&uXl|CBTv?Qy zmztfJY?5SZRG5;OT2zpfTa=TSo>*E@l%8KunNggPmXw~8nO108ioM({EHTT@EK1BP zG&8Tt%_`2UOvx@Ut;oT(>oX^(vLe3%di5<@`y@57G^;W*Gc_X}w7M~+w9v#Hbfs2G zR(f%1acZ(zo~dz0MP*`kNqTmPnMq21MWrd$_DNYmQASx#iK$s~ab|95VR=D@d1`tx zc&ie6q?=oSR?!$B?f<~joi;8n%`Gc80?%EO8R=!l<)s-_`Cv0Bk90FDBhX4#{Cm2} ziqZ>nOmj+1OEYtdN-7Fd%QMWgQ_a$|j0!W;vvSG`^FY%VnNgNenXyrJrcqi>QE^6Mnpp*o8Zsx%q_oPYxWp&}v$dLDn3rWrS7>ZvZfIzR6w{fY25V+YYFCiu&N)LgUlobvRHf<#l(^6cbf z^V~cm)BK#uqST_C%G}Zv)BK8T)1=B$)9l>x!nDMsqMRfgD-v>wO3RYWOY+JpO3QMx zjZ4jvjH`+(ii&Zhj%@Rsth|C;=y}Dc`<0TjvJ+Fw@{B91%yY9$(kly73X)1P(^5*) z3i7k_603^xijpf+$_mVq&5SC`j7!YRv0v0vTxObHl3tpUnv{~1Q*4x$Zd6#6S(t%! z-qO_A1hm+gsI@0Xpv`Fo;L%9pTFTH#exy!HnNdZGNeXCz1mSJNP~CWXD5h4Xpo_GP zL3vNH0_GtA6#)6|ytd<))@&ChC=>=H(ZGuNNyQsPHNe^3yG-$ai#fbad8F zDN0SuO-?LH&PXlNMdc*sX6mJ9rrBp?*czIe$CMfv7@3uq+Zut7^+Q?^k(#Fz3%^!3 zr?LoS7zn2pft$|xc_me4kX=qh)l=}fHlvA$E`>+y z%_Zd*=B4CklvNld7v|(ws5DM4ElJJI%S%crOHIteQ5xlz86}mN=7L(b7<CDk#cN z%gh0V95lXho>hcXV`5oiNn#PG(o}&Kfk`>}pyiuIscB$Q@SS&7N=b=n*+r?D8HJf? zmAS@gMp=oeX_Yy7M(L^9MHTrOX(ojwCMMY`r6k9+)F`dQ$fP9GJlQNYH8D9SCpRxCBP+SIq$n$~Bqi0v z1l0FWPc%16&MnExOCq9xF)}wXGcW_4)l`(4Sdxl-1&@WUk!6UXrImphXn~0_WJm+` z%Ee6eoE(MX)KrDa{8EL?JcY!({F02+B88mHv{Z%ijMO}Z@>GSyqEv;X{E`fXBsHxdxhko&Dy68h%q-nJBR{7w%Oo?kv^XczI3u;f z7{};`d3sTPMW$(5dYVa5Ri$}(rnz}#Zdn1&eGa7==EjL>*+y6nwof!OHYq4gOEfPv zDK@W2&Pz4UF)lAJGOMg8FG_jG zD~pRWi@|0Psyv8^X=6)0Q^*QPT+6aj%t}&BOU=tGtEx&0iVDh2b1L&IbMp!_($h<_ z&2lpG%2JZEP4ZI;vWkq-^0RXi3o<|jAf)O>S(a6jmu*&1S!QCAnU`*sWSX0tm|>P` zmWJz0tK5=Q^CF|dbR$#DZcbWZWs*r!R(fGhc2aJYky%zoaRKPGg{)+=?3|3!vZQ?D zf*hlqG?S9#g0!l%;~tQ;Z7=Q_M5cD@(9c9cCs5riRAF zsbx5;x{{nCqmoQhqY_N_CgogA<`!nghNk8w z#7q~J8CRqfC#4#J7dMev27%1TO)CYPL3zpqcfif@mq8iXrj^-Q=0$16xrvD-iRGDz z#py=LX6cow$tGEaDWz4J`6b55S!rek<&{RoRmoY!#yGlIq#jY5QBa;$Zkl0~hZ)nU zdHEIPMI}W>Sthyp`DrO-g&8KLCPw9XxkiOK<2nWk7{ zIyX75$|yG}(KMqZCAYBHyr>v-C`}o71Qe}NV`gY+Xk=t&ju@iGJ=9WKUQwJvX>C(p zQEW=J+QtYp)M8$#^fU zgzLxCL^1)bpEEYWAKQ6}#)a9H*%f6O#+6xF`4#zD8Rf>Q#)awW$t9+#W`!n6Rc2+W zWw|-|$;qWfY2{{VIGRXVCFVvIRVCRurN${n$r)uiIYt?oRYhjF`dld$WhEJAIap`V z5{pYr(sGMUt165OG7EByOY+Q$Q%qBh%96~}3eC!@Dl&4?(m;FpDocy2s?v?K%dw6R znx|!z=4MnGC6=0}8s%1Im}lpjW~3EhJL%Ef5VYOgg1FeOD#|Y~PXq6SB)f@JRg|9! z>bl|I?Tp;O!V}Y`R)%JJ28OUPf9Uw1iMgJo3Eml^JE`mFJ~nJN+>!tE9BBFfGHpBqJp=uc|a9sl>D_J=M50GdsW1Jh!wY zx1_Kjt1{iBFr_rjD8H~Gvk>cItMb%bBV*I#%&N?a!rY|f@(j>zX`n;OQ;I8!igGGTl8p<^)6=VR(u;~sOLJ3-(kpS~bMu^ZqufH%w8FBI z;)3LqQlrA`qO8&!oHONF<%!0{rRhc$n5BAhK}AYIaz;){R&H8hc~x;~l5u`{QK?aK zig9^WK}u?Jrg>6wfpI}@YL#hnMq#3926#FdV~0wmS$=9-c4|p!W?7keR!U-eaao#C zT46bs2C}&Y=x{ev1ELOyG_I;l%t!{G#!6gFL&s{7%Jeehs!Ee=h#7=p8mb#lJ~y*6 zvd}ZL0Iz_@KBaDCppcPoU}S=H_m45C?P6$&WAm?Rc}cR7ab|W(3TVG_N};()S$d{< z1?J}8q%$(#)T)AvjP&y2N^{f1 z)bv!Wg>rI|Q9(*-c5X^)RfV}}aamGXiCKD95@_@YqY5@KGcg1$AtGX}acOx@aaDdU zc-I}l$U%;eIPoRVzQw4AIoqr#-B ze6!ptv!b%Xw5lwuqXwzv1^HP;M&NrWD|3pCjZ$*6iz`e)EjaYhH?=f1H?**@ByQ9o zDL19C1TxM#p>J$uV6JCsh&t>H5B+pwW25vG)8dlsiqeYI zRCCZlv-v5-$x5JMyiBC#XG)=2SwT@wcD}iBd0w)yX<}(snMrP0PHAaYUUFtpS#nVh zXoAipBR8wqxU{^YG9?jf=$jdvR+wd(=B1bAWF{Mzm?oJe8Jkz-S70lsOhH=+OpS3>wp~NG>$XFG)!^ zGDGq5lRv zCVWcE^9l>nvcSjc5iA>!n_MVKGp{f!s|sueo}`Ja8&9cV3@XTt@ZW=xSX7djQJ9xf zQks`pno(L-k)2UoV4PW*QdVx7lapAUnqHP^RGw0hT4SQB_7& zs##%Ca(b0%im6d+~D!a-kJFzU^$fP*4*tj^u zyfP&_**q%=Yb{`5XbIZdG9D8CmIOgl=pmGN#R}OfB`y zEm4<`qK{LXBv+K@n&hSCXXlm`Wu;`48s#RLRG22EmKA0gm82JBmKBzyXO`zARTP2l z-7`-IpTLJDrVDd(%rdhe`+t**iYkoKva0fP%knd-DwBZSicuQ))DYqd7-(A$sel2Q zVP<9uHiJ+B1J#YEfH4DAd`8CL-XHdsVo0F7LPlmDXtiZ>W`15`jzUVJf^&Y(;VrpI zpwj`+R%a!pq^ISVn3bg@7N-~)m6=zXn--ar7iVPW8|RivewC1#eGm1ZSX zrYBYvR$|>_oLF30R9R}2S!ixvo|J1=k(iNMU{+Cv^-NB43j;$#V`E}gWt3JHRHf#Z z7=hdTgc=~oSr;h=KxUYgq=3yJ6a&Qc%8bqRjLq=&%91KG$|@=gi}K7%%9FE=3rlkH zb8@RHD)W+4j4M-9bIOd;vU9SEO-;;F($b1D%~H}*K{I(+GJbYNMNUywxlw6)QigE> zWHl1lo1mnkZ=3@qztr2uvSM2>%|}$85J2O6{bcN8K!x8#hFQF~uf7|2B;o_Rr;`51*sT28TP zj(N7RaanOmc3MtJc9~hSnQ2i~YFTPwR+*V`d5KwNW^tBDRYqy5aZz?kVs19pg@#p$ zrpZNx#ii!iiRG!;xn>1r#yM%}N!U&rGqp4aEyXt@YA~@pCDXJh-v~TRMO0FT4+bJ9 z=JJ$`igGisDTER;TtA)y#l*_MM9t=o0^rBQdp6jQc_TymX}kWQJ8B~n3`Fbnq_QUXp&`=U6zuUf_1K=AU`*) zFh8#(sjAqtG&QL#xvV&^C_M|?E=@B_BMUaVGc8O^1RwrRT-5_kQ2Xuvml8#bhaY1TwNf79AGmsG(shQ~+B}!IC2B3R4$}>|+GL)yP%UR9NGMpdR zG&ip(%gX~Ta>~UzHd9bhRZwPHT$)^3Ra%*qQkk5domG^c0cww;kIk4Hnwc0Hni&uk z(^aMUDHSH*O-01TG_=5kr%;pJ(yG#YbE8tQ8Ab5S3@e9FV;ZU(YfKx27=rE!v@$i+ NGcW*;mlJ#98UX)HUhe<^ literal 0 HcmV?d00001 diff --git a/bun.lockb b/bun.lockb index 7365c8b81b7852187098c863481c9e7ad0ae3684..38b27deb45193b6023f466d2fc4b49d31c361ecb 100755 GIT binary patch delta 62583 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≺u{8G;`f$cUQMhBJkxur=Cpz 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 diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..03606c2 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,15 @@ +services: + db: + build: ./packages/db + environment: + POSTGRES_USER: devuser + POSTGRES_PASSWORD: devpass + POSTGRES_DB: devdb + ports: + - "5432:5432" + volumes: + - postgres_data:/var/lib/postgresql/data + - ./packages/db/init_pgvector.sql:/docker-entrypoint-initdb.d/init_pgvector.sql + +volumes: + postgres_data: diff --git a/packages/atproto/README.md b/packages/atproto/README.md index baa6365..5effaff 100644 --- a/packages/atproto/README.md +++ b/packages/atproto/README.md @@ -1,15 +1,3 @@ # pt1 -To install dependencies: - -```bash -bun install -``` - -To run: - -```bash -bun run index.ts -``` - -This project was created using `bun init` in bun v1.1.40. [Bun](https://bun.sh) is a fast all-in-one JavaScript runtime. +Prototype feed for atproto. Will be splitting it out into packages to use with Astro diff --git a/packages/atproto/api/types.ts b/packages/atproto/api/types.ts index 8cd73bd..4f753d7 100644 --- a/packages/atproto/api/types.ts +++ b/packages/atproto/api/types.ts @@ -1,3 +1,3 @@ -import type { AppContext } from "../context"; +import type { AtContext } from "../context"; -export type HandlerFn = (req: Request, ctx: AppContext) => Promise; +export type HandlerFn = (req: Request, ctx: AtContext) => Promise; diff --git a/packages/atproto/context.ts b/packages/atproto/context.ts index 1c50f6d..b434b34 100644 --- a/packages/atproto/context.ts +++ b/packages/atproto/context.ts @@ -64,4 +64,4 @@ export async function createAtContext() { } } -export type AppContext = Awaited>; +export type AtContext = Awaited>; diff --git a/packages/atproto/domain/get-feed-posts.ts b/packages/atproto/domain/get-feed-posts.ts index efa2ac7..b31906b 100644 --- a/packages/atproto/domain/get-feed-posts.ts +++ b/packages/atproto/domain/get-feed-posts.ts @@ -1,9 +1,9 @@ import { eq } from "drizzle-orm/expressions"; -import type { AppContext } from "../context"; +import type { AtContext } from "../context"; import { followTable, postTable } from "../db/schema"; export async function getFeedPosts( - ctx: AppContext, + ctx: AtContext, did: string ): Promise> { const fls = ctx.db diff --git a/packages/atproto/domain/get-or-update-follows.ts b/packages/atproto/domain/get-or-update-follows.ts index 7046d72..48ad1b0 100644 --- a/packages/atproto/domain/get-or-update-follows.ts +++ b/packages/atproto/domain/get-or-update-follows.ts @@ -1,5 +1,5 @@ import { eq } from "drizzle-orm"; -import type { AppContext } from "../context"; +import type { AtContext } from "../context"; import { followTable, userTable } from "../db/schema"; import { getAllFollows } from "../helpers/follows"; @@ -7,7 +7,7 @@ import { getAllFollows } from "../helpers/follows"; * Registers the feedUser's followers. Fetches them if necessary. * If we already have a list, then we won't update (TODO) */ -export async function getOrUpdateFollows(ctx: AppContext, did: string) { +export async function getOrUpdateFollows(ctx: AtContext, did: string) { console.log("getorupdatefollows", did); const existingActor = await ctx.db .select() diff --git a/packages/atproto/domain/jetstream-subscription.ts b/packages/atproto/domain/jetstream-subscription.ts index 336264b..8a4f27d 100644 --- a/packages/atproto/domain/jetstream-subscription.ts +++ b/packages/atproto/domain/jetstream-subscription.ts @@ -1,10 +1,10 @@ import { AtUri, type AppBskyFeedPost } from "@atproto/api"; -import type { AppContext } from "../context"; +import type { AtContext } from "../context"; import { followTable } from "../db/schema"; import { createJetStreamListener } from "./jetstream"; import { queueForClassification } from "./queue-for-classification"; -export async function listenForPosts(ctx: AppContext) { +export async function listenForPosts(ctx: AtContext) { const wantedDids = await ctx.db .selectDistinct({ did: followTable.follows }) .from(followTable); diff --git a/packages/atproto/domain/queue-for-classification.ts b/packages/atproto/domain/queue-for-classification.ts index 962ed6d..e00bf4d 100644 --- a/packages/atproto/domain/queue-for-classification.ts +++ b/packages/atproto/domain/queue-for-classification.ts @@ -1,5 +1,5 @@ import { AtUri, type AppBskyFeedPost } from "@atproto/api"; -import type { AppContext } from "../context"; +import type { AtContext } from "../context"; import { post_queue } from "../db/schema"; export type FeedPostWithUri = { @@ -8,7 +8,7 @@ export type FeedPostWithUri = { }; export async function queueForClassification( - ctx: AppContext, + ctx: AtContext, // TODO: Just receive the entire PostRecord post: FeedPostWithUri ) { diff --git a/packages/atproto/domain/subscription-service.ts b/packages/atproto/domain/subscription-service.ts index fffe6ae..0210098 100644 --- a/packages/atproto/domain/subscription-service.ts +++ b/packages/atproto/domain/subscription-service.ts @@ -1,6 +1,6 @@ import type { AppBskyFeedPost } from "@atproto/api"; import { Jetstream } from "@skyware/jetstream"; -import type { AppContext } from "../context"; +import type { AtContext } from "../context"; import { followTable } from "../db/schema"; import { queueForClassification } from "./queue-for-classification"; type PostRecord = AppBskyFeedPost.Record & { @@ -32,9 +32,9 @@ type StreamCollection = { export class PostSubscription { socket: WebSocket | undefined = undefined; jetstream: Jetstream | undefined = undefined; - ctx: AppContext; + ctx: AtContext; cursor?: string; // TODO - constructor(ctx: AppContext) { + constructor(ctx: AtContext) { this.ctx = ctx; } diff --git a/packages/atproto/helpers/follows.ts b/packages/atproto/helpers/follows.ts index a89c9cd..62d29e0 100644 --- a/packages/atproto/helpers/follows.ts +++ b/packages/atproto/helpers/follows.ts @@ -1,7 +1,7 @@ import { AppBskyGraphGetFollows } from "@atproto/api"; -import type { AppContext } from "../context"; +import type { AtContext } from "../context"; -export async function getAllFollows(ctx: AppContext, actor: string) { +export async function getAllFollows(ctx: AtContext, actor: string) { let isDone = false; let follows: AppBskyGraphGetFollows.Response["data"]["follows"] = []; let currentCursor: string | undefined = undefined; diff --git a/packages/atproto/index.ts b/packages/atproto/index.ts index e75f952..7b60380 100644 --- a/packages/atproto/index.ts +++ b/packages/atproto/index.ts @@ -1,31 +1,2 @@ -import { getFeedSkeletonHandler } from "./api/get-feed-skeleton"; -import { wellKnownDidHandler } from "./api/well-known-did"; -import { config } from "./config"; -import { createAtContext } from "./context"; -import { listenForPosts } from "./domain/jetstream-subscription"; - -console.log(`Server listening on ${config.port}`); -const atContext = await createAtContext(); -//const sub = new PostSubscription(appContext); -//await sub.listen(); -await listenForPosts(atContext); - -Bun.serve({ - port: config.port, - //idleTimeout: 120, // Remove when we have a DB - async fetch(req) { - const url = new URL(req.url); - console.log(`[req] ${url.pathname} ${url.searchParams}`, req.headers); - const res = new Response(); - switch (url.pathname) { - case "/": - return new Response("Bare bones feed generator for Bluesky"); - case "/.well-known/did.json": - return wellKnownDidHandler(req, atContext); - case "/xrpc/app.bsky.feed.getFeedSkeleton": - return getFeedSkeletonHandler(req, atContext); - default: - return new Response("404!"); - } - }, -}); +export * from "./context"; +export * from "./domain/jetstream-subscription"; diff --git a/packages/atproto/pt1.ts b/packages/atproto/pt1.ts new file mode 100644 index 0000000..e75f952 --- /dev/null +++ b/packages/atproto/pt1.ts @@ -0,0 +1,31 @@ +import { getFeedSkeletonHandler } from "./api/get-feed-skeleton"; +import { wellKnownDidHandler } from "./api/well-known-did"; +import { config } from "./config"; +import { createAtContext } from "./context"; +import { listenForPosts } from "./domain/jetstream-subscription"; + +console.log(`Server listening on ${config.port}`); +const atContext = await createAtContext(); +//const sub = new PostSubscription(appContext); +//await sub.listen(); +await listenForPosts(atContext); + +Bun.serve({ + port: config.port, + //idleTimeout: 120, // Remove when we have a DB + async fetch(req) { + const url = new URL(req.url); + console.log(`[req] ${url.pathname} ${url.searchParams}`, req.headers); + const res = new Response(); + switch (url.pathname) { + case "/": + return new Response("Bare bones feed generator for Bluesky"); + case "/.well-known/did.json": + return wellKnownDidHandler(req, atContext); + case "/xrpc/app.bsky.feed.getFeedSkeleton": + return getFeedSkeletonHandler(req, atContext); + default: + return new Response("404!"); + } + }, +}); diff --git a/packages/db/Dockerfile b/packages/db/Dockerfile new file mode 100644 index 0000000..07937ae --- /dev/null +++ b/packages/db/Dockerfile @@ -0,0 +1,22 @@ +# Use the official Postgres image as a base image +FROM postgres:17 + +# Set environment variables for Postgres +ENV POSTGRES_USER=devuser +ENV POSTGRES_PASSWORD=devpass +ENV POSTGRES_DB=devdb + +# Install the build dependencies +USER root +RUN apt-get update && apt-get install -y \ + build-essential \ + git \ + postgresql-server-dev-all \ + && rm -rf /var/lib/apt/lists/* + +# Clone, build, and install the pgvector extension +RUN cd /tmp \ + && git clone --branch v0.5.0 https://github.com/pgvector/pgvector.git \ + && cd pgvector \ + && make \ + && make install diff --git a/packages/db/init_pgvector.sql b/packages/db/init_pgvector.sql new file mode 100644 index 0000000..0aa0fc2 --- /dev/null +++ b/packages/db/init_pgvector.sql @@ -0,0 +1 @@ +CREATE EXTENSION IF NOT EXISTS vector;