From e098a52fd8f8313c27ee939773a18aea29c29f0a Mon Sep 17 00:00:00 2001 From: jalvarado <421010301@pcpuma.acatlan.unam.mx> Date: Fri, 24 Mar 2023 15:00:03 -0600 Subject: [PATCH] =?UTF-8?q?envio=20de=20constancias=20pdf,=20se=20a=C3=B1a?= =?UTF-8?q?dio=20banner?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 2800 +++++++++++++++++++++- package.json | 11 +- public/1366_2000.jpg | Bin 0 -> 33018 bytes public/cedetec_1.webp | Bin 0 -> 59294 bytes src/app.module.ts | 11 +- src/carousel/carousel.controller.spec.ts | 18 + src/carousel/carousel.controller.ts | 60 + src/carousel/carousel.service.spec.ts | 18 + src/carousel/carousel.service.ts | 9 + src/email/dto/rowInterface.interface.ts | 9 + src/email/email.controller.ts | 27 +- src/email/email.service.ts | 85 +- src/eventos/eventos.controller.ts | 5 + src/eventos/eventos.service.ts | 10 +- src/main.ts | 8 +- 15 files changed, 3002 insertions(+), 69 deletions(-) create mode 100644 public/1366_2000.jpg create mode 100644 public/cedetec_1.webp create mode 100644 src/carousel/carousel.controller.spec.ts create mode 100644 src/carousel/carousel.controller.ts create mode 100644 src/carousel/carousel.service.spec.ts create mode 100644 src/carousel/carousel.service.ts create mode 100644 src/email/dto/rowInterface.interface.ts diff --git a/package-lock.json b/package-lock.json index d67e221..21ca84b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,24 +15,32 @@ "@nestjs/jwt": "^10.0.2", "@nestjs/passport": "^9.0.3", "@nestjs/platform-express": "^9.0.0", + "@nestjs/serve-static": "^3.0.1", "@nestjs/swagger": "^6.2.1", "@nestjs/typeorm": "^9.0.1", + "@types/multer": "^1.4.7", "bcrypt": "^5.1.0", + "blob-stream": "^0.1.3", "class-transformer": "^0.5.1", "class-validator": "^0.14.0", "exceljs": "^4.3.0", "moment": "^2.29.4", + "multer": "^1.4.5-lts.1", "mysql2": "^3.1.2", "nodemailer": "^6.9.1", "passport": "^0.6.0", "passport-jwt": "^4.0.1", "passport-local": "^1.0.0", + "pdf-lib": "^1.17.1", + "pdfkit": "^0.13.0", "pg": "^8.9.0", "reflect-metadata": "^0.1.13", "rxjs": "^7.2.0", "swagger-ui-express": "^4.6.1", "sybase": "^1.2.3", - "typeorm": "^0.3.12" + "typeorm": "^0.3.12", + "uuid": "^9.0.0", + "xlsx": "^0.18.5" }, "devDependencies": { "@jridgewell/sourcemap-codec": "^1.4.14", @@ -50,6 +58,7 @@ "eslint-config-prettier": "^8.3.0", "eslint-plugin-prettier": "^4.0.0", "jest": "29.3.1", + "pdfmake": "^0.2.7", "prettier": "^2.3.2", "source-map-support": "^0.5.20", "supertest": "^6.1.3", @@ -914,6 +923,59 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.38.tgz", "integrity": "sha512-zMRIidN2Huikv/+/U7gRPFYsXDR/7IGqFZzTLnCEj5+gkrQjsowfamaxEnyvArct5hxGA3bTxMXlYhH78V6Cew==" }, + "node_modules/@foliojs-fork/fontkit": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@foliojs-fork/fontkit/-/fontkit-1.9.1.tgz", + "integrity": "sha512-U589voc2/ROnvx1CyH9aNzOQWJp127JGU1QAylXGQ7LoEAF6hMmahZLQ4eqAcgHUw+uyW4PjtCItq9qudPkK3A==", + "dev": true, + "dependencies": { + "@foliojs-fork/restructure": "^2.0.2", + "brfs": "^2.0.0", + "brotli": "^1.2.0", + "browserify-optional": "^1.0.1", + "clone": "^1.0.4", + "deep-equal": "^1.0.0", + "dfa": "^1.2.0", + "tiny-inflate": "^1.0.2", + "unicode-properties": "^1.2.2", + "unicode-trie": "^2.0.0" + } + }, + "node_modules/@foliojs-fork/linebreak": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@foliojs-fork/linebreak/-/linebreak-1.1.1.tgz", + "integrity": "sha512-pgY/+53GqGQI+mvDiyprvPWgkTlVBS8cxqee03ejm6gKAQNsR1tCYCIvN9FHy7otZajzMqCgPOgC4cHdt4JPig==", + "dev": true, + "dependencies": { + "base64-js": "1.3.1", + "brfs": "^2.0.2", + "unicode-trie": "^2.0.0" + } + }, + "node_modules/@foliojs-fork/linebreak/node_modules/base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", + "dev": true + }, + "node_modules/@foliojs-fork/pdfkit": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@foliojs-fork/pdfkit/-/pdfkit-0.13.0.tgz", + "integrity": "sha512-YXeG1fml9k97YNC9K8e292Pj2JzGt9uOIiBFuQFxHsdQ45BlxW+JU3RQK6JAvXU7kjhjP8rCcYvpk36JLD33sQ==", + "dev": true, + "dependencies": { + "@foliojs-fork/fontkit": "^1.9.1", + "@foliojs-fork/linebreak": "^1.1.1", + "crypto-js": "^4.0.0", + "png-js": "^1.0.0" + } + }, + "node_modules/@foliojs-fork/restructure": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@foliojs-fork/restructure/-/restructure-2.0.2.tgz", + "integrity": "sha512-59SgoZ3EXbkfSX7b63tsou/SDGzwUEK6MuB5sKqgVK1/XE0fxmpsOb9DQI8LXW3KfGnAjImCGhhEb7uPPAUVNA==", + "dev": true + }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.8", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", @@ -1598,14 +1660,6 @@ "rxjs": "^6.0.0 || ^7.2.0" } }, - "node_modules/@nestjs/config/node_modules/uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, "node_modules/@nestjs/core": { "version": "9.3.7", "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-9.3.7.tgz", @@ -1703,6 +1757,23 @@ "@nestjs/core": "^9.0.0" } }, + "node_modules/@nestjs/platform-express/node_modules/multer": { + "version": "1.4.4-lts.1", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.4-lts.1.tgz", + "integrity": "sha512-WeSGziVj6+Z2/MwQo3GvqzgR+9Uc+qt8SwHKh3gvNPiISKfsMfG4SvCOFYlxxgkXt7yIV2i1yczehm0EOKIxIg==", + "dependencies": { + "append-field": "^1.0.0", + "busboy": "^1.0.0", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.4", + "object-assign": "^4.1.1", + "type-is": "^1.6.4", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">= 6.0.0" + } + }, "node_modules/@nestjs/schematics": { "version": "9.0.4", "resolved": "https://registry.npmjs.org/@nestjs/schematics/-/schematics-9.0.4.tgz", @@ -1809,6 +1880,37 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, + "node_modules/@nestjs/serve-static": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@nestjs/serve-static/-/serve-static-3.0.1.tgz", + "integrity": "sha512-i766UJPYOqvQ2BbRKh0/+Mmq5NkJnmKcShjWV1i5qpXyeM0KDZTn0n7g7ykWq/3LbQgjpMzrhYtGv35GX7GVQw==", + "dependencies": { + "path-to-regexp": "0.2.5" + }, + "peerDependencies": { + "@fastify/static": "^6.5.0", + "@nestjs/common": "^9.0.0", + "@nestjs/core": "^9.0.0", + "express": "^4.18.1", + "fastify": "^4.7.0" + }, + "peerDependenciesMeta": { + "@fastify/static": { + "optional": true + }, + "express": { + "optional": true + }, + "fastify": { + "optional": true + } + } + }, + "node_modules/@nestjs/serve-static/node_modules/path-to-regexp": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.2.5.tgz", + "integrity": "sha512-l6qtdDPIkmAmzEO6egquYDfqQGPMRNGjYtrU13HAXb3YSRrt7HSb1sJY0pKp6o2bAa86tSB6iwaW2JbthPKr7Q==" + }, "node_modules/@nestjs/swagger": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/@nestjs/swagger/-/swagger-6.2.1.tgz", @@ -1882,6 +1984,14 @@ "typeorm": "^0.3.0" } }, + "node_modules/@nestjs/typeorm/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -1934,6 +2044,22 @@ "npm": ">=5.0.0" } }, + "node_modules/@pdf-lib/standard-fonts": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@pdf-lib/standard-fonts/-/standard-fonts-1.0.0.tgz", + "integrity": "sha512-hU30BK9IUN/su0Mn9VdlVKsWBS6GyhVfqjwl1FjZN4TxP6cCw0jP2w7V3Hf5uX7M0AZJ16vey9yE0ny7Sa59ZA==", + "dependencies": { + "pako": "^1.0.6" + } + }, + "node_modules/@pdf-lib/upng": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@pdf-lib/upng/-/upng-1.0.1.tgz", + "integrity": "sha512-dQK2FUMQtowVP00mtIksrlZhdFXQZPC+taih1q4CvPZ5vqdxR/LKBaFg0oAfzd1GlHZXXSPdQfzQnt+ViGvEIQ==", + "dependencies": { + "pako": "^1.0.10" + } + }, "node_modules/@sinclair/typebox": { "version": "0.25.21", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.21.tgz", @@ -1963,6 +2089,14 @@ "resolved": "https://registry.npmjs.org/@sqltools/formatter/-/formatter-1.2.5.tgz", "integrity": "sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==" }, + "node_modules/@swc/helpers": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.3.17.tgz", + "integrity": "sha512-tb7Iu+oZ+zWJZ3HJqwx8oNwSDIU440hmVMDPhpACWQWnrZHK99Bxs70gT1L2dnr5Hg50ZRWEFkQCAnOVVV0z1Q==", + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@tsconfig/node10": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", @@ -2032,7 +2166,6 @@ "version": "1.19.2", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "dev": true, "dependencies": { "@types/connect": "*", "@types/node": "*" @@ -2042,7 +2175,6 @@ "version": "3.4.35", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dev": true, "dependencies": { "@types/node": "*" } @@ -2083,7 +2215,6 @@ "version": "4.17.17", "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", - "dev": true, "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.33", @@ -2095,7 +2226,6 @@ "version": "4.17.33", "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.33.tgz", "integrity": "sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==", - "dev": true, "dependencies": { "@types/node": "*", "@types/qs": "*", @@ -2162,8 +2292,15 @@ "node_modules/@types/mime": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", - "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", - "dev": true + "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==" + }, + "node_modules/@types/multer": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/@types/multer/-/multer-1.4.7.tgz", + "integrity": "sha512-/SNsDidUFCvqqcWDwxv2feww/yqhNeTRL5CVoL3jU4Goc4kKEL10T7Eye65ZqPNi4HRx8sAEX59pV1aEH7drNA==", + "dependencies": { + "@types/express": "*" + } }, "node_modules/@types/node": { "version": "18.11.18", @@ -2215,14 +2352,12 @@ "node_modules/@types/qs": { "version": "6.9.7", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", - "dev": true + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" }, "node_modules/@types/range-parser": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", - "dev": true + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" }, "node_modules/@types/semver": { "version": "7.3.13", @@ -2234,7 +2369,6 @@ "version": "1.15.0", "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", - "dev": true, "dependencies": { "@types/mime": "*", "@types/node": "*" @@ -2678,6 +2812,38 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "dev": true, + "dependencies": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + } + }, + "node_modules/acorn-node/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-node/node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/acorn-walk": { "version": "8.2.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", @@ -2687,6 +2853,14 @@ "node": ">=0.4.0" } }, + "node_modules/adler-32": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz", + "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==", + "engines": { + "node": ">=0.8" + } + }, "node_modules/agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", @@ -2731,6 +2905,16 @@ } } }, + "node_modules/amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.4.2" + } + }, "node_modules/ansi-colors": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", @@ -2916,6 +3100,12 @@ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" }, + "node_modules/array-from": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz", + "integrity": "sha512-GQTc6Uupx1FCavi5mPzBvVT7nEOeWMmUA9P95wpfpW1XwMSKs+KaymD5C2Up7KAUKg/mYwbsUYzdZWcoajlNZg==", + "dev": true + }, "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", @@ -2931,6 +3121,39 @@ "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", "dev": true }, + "node_modules/ast-transform": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/ast-transform/-/ast-transform-0.0.0.tgz", + "integrity": "sha512-e/JfLiSoakfmL4wmTGPjv0HpTICVmxwXgYOB8x+mzozHL8v+dSfCbrJ8J8hJ0YBP0XcYu1aLZ6b/3TnxNK3P2A==", + "dev": true, + "dependencies": { + "escodegen": "~1.2.0", + "esprima": "~1.0.4", + "through": "~2.3.4" + } + }, + "node_modules/ast-transform/node_modules/esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha512-rp5dMKN8zEs9dfi9g0X1ClLmV//WRyk/R15mppFNICIFRG5P92VP7Z04p8pk++gABo9W2tY+kHyu6P1mEHgmTA==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ast-types": { + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.7.8.tgz", + "integrity": "sha512-RIOpVnVlltB6PcBJ5BMLx+H+6JJ/zjDGU0t7f0L6c2M1dqcK92VQopLBlPQ9R80AVXelfqYgjcPLtHtDbNFg0Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/async": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", @@ -2942,6 +3165,17 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "dev": true }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/babel-jest": { "version": "29.4.2", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.4.2.tgz", @@ -3122,6 +3356,19 @@ "node": ">= 6" } }, + "node_modules/blob": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", + "integrity": "sha512-YRc9zvVz4wNaxcXmiSgb9LAg7YYwqQ2xd0Sj6osfA7k/PKmIGVlnOYs3wOFdkRC9/JpQu8sGt/zHgJV7xzerfg==" + }, + "node_modules/blob-stream": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/blob-stream/-/blob-stream-0.1.3.tgz", + "integrity": "sha512-xXwyhgVmPsFVFFvtM5P0syI17/oae+MIjLn5jGhuD86mmSJ61EWMWmbPrV/0+bdcH9jQ2CzIhmTQKNUJL7IPog==", + "dependencies": { + "blob": "0.0.4" + } + }, "node_modules/bluebird": { "version": "3.4.7", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", @@ -3184,6 +3431,55 @@ "node": ">=8" } }, + "node_modules/brfs": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brfs/-/brfs-2.0.2.tgz", + "integrity": "sha512-IrFjVtwu4eTJZyu8w/V2gxU7iLTtcHih67sgEdzrhjLBMHp2uYefUBfdM4k2UvcuWMgV7PQDZHSLeNWnLFKWVQ==", + "dev": true, + "dependencies": { + "quote-stream": "^1.0.1", + "resolve": "^1.1.5", + "static-module": "^3.0.2", + "through2": "^2.0.0" + }, + "bin": { + "brfs": "bin/cmd.js" + } + }, + "node_modules/brotli": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/brotli/-/brotli-1.3.3.tgz", + "integrity": "sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==", + "dependencies": { + "base64-js": "^1.1.2" + } + }, + "node_modules/browser-resolve": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", + "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", + "dev": true, + "dependencies": { + "resolve": "1.1.7" + } + }, + "node_modules/browser-resolve/node_modules/resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==", + "dev": true + }, + "node_modules/browserify-optional": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-optional/-/browserify-optional-1.0.1.tgz", + "integrity": "sha512-VrhjbZ+Ba5mDiSYEuPelekQMfTbhcA2DhLk2VQWqdcCROWeFqlTcXZ7yfRkXCIl8E+g4gINJYJiRB7WEtfomAQ==", + "dev": true, + "dependencies": { + "ast-transform": "0.0.0", + "ast-types": "^0.7.0", + "browser-resolve": "^1.8.1" + } + }, "node_modules/browserslist": { "version": "4.21.5", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", @@ -3264,6 +3560,15 @@ "node": "*" } }, + "node_modules/buffer-equal": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", + "integrity": "sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/buffer-equal-constant-time": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", @@ -3363,6 +3668,18 @@ } ] }, + "node_modules/cfb": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.2.tgz", + "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==", + "dependencies": { + "adler-32": "~1.3.0", + "crc-32": "~1.2.0" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/chainsaw": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", @@ -3619,6 +3936,14 @@ "node": ">= 0.12.0" } }, + "node_modules/codepage": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz", + "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==", + "engines": { + "node": ">=0.8" + } + }, "node_modules/collect-v8-coverage": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", @@ -3865,6 +4190,27 @@ "node": ">= 8" } }, + "node_modules/crypto-js": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz", + "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==" + }, + "node_modules/d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dev": true, + "dependencies": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "node_modules/dash-ast": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-2.0.1.tgz", + "integrity": "sha512-5TXltWJGc+RdnabUGzhRae1TRq6m4gr+3K2wQX0is5/F2yS6MJXJvLyI3ErAnsAXuJoGqvfVD5icRgim07DrxQ==", + "dev": true + }, "node_modules/date-fns": { "version": "2.29.3", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz", @@ -3904,6 +4250,23 @@ "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", "dev": true }, + "node_modules/deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "dev": true, + "dependencies": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -3931,6 +4294,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -3997,6 +4375,11 @@ "wrappy": "1" } }, + "node_modules/dfa": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/dfa/-/dfa-1.2.0.tgz", + "integrity": "sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==" + }, "node_modules/diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", @@ -4137,12 +4520,109 @@ "is-arrayish": "^0.2.1" } }, + "node_modules/es-get-iterator": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-get-iterator/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, "node_modules/es-module-lexer": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", "dev": true }, + "node_modules/es5-ext": { + "version": "0.10.62", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", + "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-map": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", + "integrity": "sha512-mz3UqCh0uPCIqsw1SSAkB/p0rOzF/M0V++vyN7JqlPtSW/VsYgQBvVvqMLmfBuyMzTpLnNqi6JmcSizs4jy19A==", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-set": "~0.1.5", + "es6-symbol": "~3.1.1", + "event-emitter": "~0.3.5" + } + }, + "node_modules/es6-set": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.6.tgz", + "integrity": "sha512-TE3LgGLDIBX332jq3ypv6bcOpkLO0AslAQo7p2VqX/1N46YNsvIWgvjojjSEnWEGWMhr1qUbYeTSir5J6mFHOw==", + "dev": true, + "dependencies": { + "d": "^1.0.1", + "es5-ext": "^0.10.62", + "es6-iterator": "~2.0.3", + "es6-symbol": "^3.1.3", + "event-emitter": "^0.3.5", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/es6-set/node_modules/type": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", + "dev": true + }, + "node_modules/es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dev": true, + "dependencies": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -4168,6 +4648,71 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/escodegen": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.2.0.tgz", + "integrity": "sha512-yLy3Cc+zAC0WSmoT2fig3J87TpQ8UaZGx8ahCAs9FL8qNbyV7CVyPKS74DG4bsHiL5ew9sxdYx131OkBQMFnvA==", + "dev": true, + "dependencies": { + "esprima": "~1.0.4", + "estraverse": "~1.5.0", + "esutils": "~1.0.0" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=0.4.0" + }, + "optionalDependencies": { + "source-map": "~0.1.30" + } + }, + "node_modules/escodegen/node_modules/esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha512-rp5dMKN8zEs9dfi9g0X1ClLmV//WRyk/R15mppFNICIFRG5P92VP7Z04p8pk++gABo9W2tY+kHyu6P1mEHgmTA==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/escodegen/node_modules/estraverse": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.5.1.tgz", + "integrity": "sha512-FpCjJDfmo3vsc/1zKSeqR5k42tcIhxFIlvq+h9j0fO2q/h2uLKyweq7rYJ+0CoVvrGQOxIS5wyBrW/+vF58BUQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/escodegen/node_modules/esutils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.0.0.tgz", + "integrity": "sha512-x/iYH53X3quDwfHRz4y8rn4XcEwwCJeWsul9pF1zldMbGtgOtMNBEOuYWwB1EQlK2LRa1fev3YAgym/RElp5Cg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha512-VtCvB9SIQhk3aF6h+N85EaqIaBFIAfZ9Cu+NJHHVvc8BbEcnvDcFw6sqQ2dQrT6SlOrZq3tIvyD9+EGq/lJryQ==", + "dev": true, + "optional": true, + "dependencies": { + "amdefine": ">=0.0.4" + }, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/eslint": { "version": "8.33.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.33.0.tgz", @@ -4443,6 +4988,12 @@ "node": ">=4.0" } }, + "node_modules/estree-is-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/estree-is-function/-/estree-is-function-1.0.0.tgz", + "integrity": "sha512-nSCWn1jkSq2QAtkaVLJZY2ezwcFO161HVc174zL1KPW3RJ+O6C3eJb8Nx7OXzvhoEv+nLgSR1g71oWUHUDTrJA==", + "dev": true + }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -4460,6 +5011,16 @@ "node": ">= 0.6" } }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, "node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", @@ -4512,6 +5073,14 @@ "node": ">=8.17.0" } }, + "node_modules/exceljs/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", @@ -4619,6 +5188,21 @@ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" }, + "node_modules/ext": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "dev": true, + "dependencies": { + "type": "^2.7.2" + } + }, + "node_modules/ext/node_modules/type": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", + "dev": true + }, "node_modules/external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", @@ -4821,6 +5405,70 @@ "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, + "node_modules/fontkit": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/fontkit/-/fontkit-1.9.0.tgz", + "integrity": "sha512-HkW/8Lrk8jl18kzQHvAw9aTHe1cqsyx5sDnxncx652+CIfhawokEPkeM3BoIC+z/Xv7a0yMr0f3pRRwhGH455g==", + "dependencies": { + "@swc/helpers": "^0.3.13", + "brotli": "^1.3.2", + "clone": "^2.1.2", + "deep-equal": "^2.0.5", + "dfa": "^1.2.0", + "restructure": "^2.0.1", + "tiny-inflate": "^1.0.3", + "unicode-properties": "^1.3.1", + "unicode-trie": "^2.0.0" + } + }, + "node_modules/fontkit/node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/fontkit/node_modules/deep-equal": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.0.tgz", + "integrity": "sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==", + "dependencies": { + "call-bind": "^1.0.2", + "es-get-iterator": "^1.1.2", + "get-intrinsic": "^1.1.3", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.1", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/fontkit/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dependencies": { + "is-callable": "^1.1.3" + } + }, "node_modules/fork-ts-checker-webpack-plugin": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-8.0.0.tgz", @@ -4900,6 +5548,14 @@ "node": ">= 0.6" } }, + "node_modules/frac": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz", + "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==", + "engines": { + "node": ">=0.8" + } + }, "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -5009,6 +5665,14 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/gauge": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", @@ -5045,6 +5709,12 @@ "node": ">=6.9.0" } }, + "node_modules/get-assigned-identifiers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", + "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==", + "dev": true + }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -5159,6 +5829,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/graceful-fs": { "version": "4.2.10", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", @@ -5181,6 +5862,14 @@ "node": ">= 0.4.0" } }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -5189,6 +5878,17 @@ "node": ">=8" } }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", @@ -5200,6 +5900,20 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", @@ -5392,6 +6106,19 @@ "node": ">=12.0.0" } }, + "node_modules/internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "dependencies": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/interpret": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", @@ -5409,12 +6136,51 @@ "node": ">= 0.10" } }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -5427,6 +6193,32 @@ "node": ">=8" } }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-core-module": { "version": "2.11.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", @@ -5439,6 +6231,20 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -5486,6 +6292,14 @@ "node": ">=8" } }, + "node_modules/is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -5495,6 +6309,20 @@ "node": ">=0.12.0" } }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", @@ -5509,6 +6337,40 @@ "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==" }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", @@ -5521,6 +6383,52 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", @@ -5533,6 +6441,26 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -6424,6 +7352,23 @@ "immediate": "~3.0.5" } }, + "node_modules/linebreak": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/linebreak/-/linebreak-1.1.0.tgz", + "integrity": "sha512-MHp03UImeVhB7XZtjd0E4n6+3xr5Dq/9xI/5FptGk5FrbDR3zagPa2DS6U8ks/3HjbKWG9Q1M2ufOzxV2qLYSQ==", + "dependencies": { + "base64-js": "0.0.8", + "unicode-trie": "^2.0.0" + } + }, + "node_modules/linebreak/node_modules/base64-js": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz", + "integrity": "sha512-3XSA2cR/h/73EzlXXdU6YNycmYI7+kicTxks4eJg2g39biHR84slg2+des+p7iHYhbRg/udIS4TD53WabcOUkw==", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", @@ -6657,6 +7602,24 @@ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" }, + "node_modules/merge-source-map": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz", + "integrity": "sha512-PGSmS0kfnTnMJCzJ16BLLCEe6oeYCamKFFdQKshi4BmM6FUwipjVOcBFGxqtQtirtAG4iZvHlqST9CpZKqlRjA==", + "dev": true, + "dependencies": { + "source-map": "^0.5.6" + } + }, + "node_modules/merge-source-map/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -6812,9 +7775,9 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/multer": { - "version": "1.4.4-lts.1", - "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.4-lts.1.tgz", - "integrity": "sha512-WeSGziVj6+Z2/MwQo3GvqzgR+9Uc+qt8SwHKh3gvNPiISKfsMfG4SvCOFYlxxgkXt7yIV2i1yczehm0EOKIxIg==", + "version": "1.4.5-lts.1", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz", + "integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==", "dependencies": { "append-field": "^1.0.0", "busboy": "^1.0.0", @@ -6926,6 +7889,12 @@ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, + "node_modules/next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", + "dev": true + }, "node_modules/node-abort-controller": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", @@ -7046,6 +8015,46 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", @@ -7371,6 +8380,60 @@ "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz", "integrity": "sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg==" }, + "node_modules/pdf-lib": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/pdf-lib/-/pdf-lib-1.17.1.tgz", + "integrity": "sha512-V/mpyJAoTsN4cnP31vc0wfNA1+p20evqqnap0KLoRUN0Yk/p3wN52DOEsL4oBFcLdb76hlpKPtzJIgo67j/XLw==", + "dependencies": { + "@pdf-lib/standard-fonts": "^1.0.0", + "@pdf-lib/upng": "^1.0.1", + "pako": "^1.0.11", + "tslib": "^1.11.1" + } + }, + "node_modules/pdf-lib/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/pdfkit": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/pdfkit/-/pdfkit-0.13.0.tgz", + "integrity": "sha512-AW79eHU5eLd2vgRDS9z3bSoi0FA+gYm+100LLosrQQMLUzOBGVOhG7ABcMFpJu7Bpg+MT74XYHi4k9EuU/9EZw==", + "dependencies": { + "crypto-js": "^4.0.0", + "fontkit": "^1.8.1", + "linebreak": "^1.0.2", + "png-js": "^1.0.0" + } + }, + "node_modules/pdfmake": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/pdfmake/-/pdfmake-0.2.7.tgz", + "integrity": "sha512-ClLpgx30H5G3EDvRW1MrA1Xih6YxEaSgIVFrOyBMgAAt62V+hxsyWAi6JNP7u1Fc5JKYAbpb4RRVw8Rhvmz5cQ==", + "dev": true, + "dependencies": { + "@foliojs-fork/linebreak": "^1.1.1", + "@foliojs-fork/pdfkit": "^0.13.0", + "iconv-lite": "^0.6.3", + "xmldoc": "^1.1.2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/pdfmake/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/pg": { "version": "8.9.0", "resolved": "https://registry.npmjs.org/pg/-/pg-8.9.0.tgz", @@ -7545,6 +8608,11 @@ "node": ">=4" } }, + "node_modules/png-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/png-js/-/png-js-1.0.0.tgz", + "integrity": "sha512-k+YsbhpA9e+EFfKjTCH3VW6aoKlyNYI6NYdTfDL4CIvFnvsuO84ttonmZE7rc+v23SLTH8XX+5w/Ak9v0xGY4g==" + }, "node_modules/postgres-array": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", @@ -7725,6 +8793,20 @@ } ] }, + "node_modules/quote-stream": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/quote-stream/-/quote-stream-1.0.2.tgz", + "integrity": "sha512-kKr2uQ2AokadPjvTyKJQad9xELbZwYzWlNfI3Uz2j/ib5u6H9lDP7fUUR//rMycd0gv4Z5P1qXMfXR8YpIxrjQ==", + "dev": true, + "dependencies": { + "buffer-equal": "0.0.1", + "minimist": "^1.1.3", + "through2": "^2.0.0" + }, + "bin": { + "quote-stream": "bin/cmd.js" + } + }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -7837,6 +8919,22 @@ "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/regexpp": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", @@ -7935,6 +9033,11 @@ "node": ">=8" } }, + "node_modules/restructure": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/restructure/-/restructure-2.0.1.tgz", + "integrity": "sha512-e0dOpjm5DseomnXx2M5lpdZ5zoHqF1+bqdMJUohoYVVQa7cBdnk7fdmeI6byNWP/kiME72EeTiSypTCVnpLiDg==" + }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -8088,6 +9191,21 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, + "node_modules/scope-analyzer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/scope-analyzer/-/scope-analyzer-2.1.2.tgz", + "integrity": "sha512-5cfCmsTYV/wPaRIItNxatw02ua/MThdIUNnUOCYp+3LSEJvnG804ANw2VLaavNILIfWXF1D1G2KNANkBBvInwQ==", + "dev": true, + "dependencies": { + "array-from": "^2.1.1", + "dash-ast": "^2.0.1", + "es6-map": "^0.1.5", + "es6-set": "^0.1.5", + "es6-symbol": "^3.1.1", + "estree-is-function": "^1.0.0", + "get-assigned-identifiers": "^1.1.0" + } + }, "node_modules/semver": { "version": "7.3.8", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", @@ -8214,6 +9332,12 @@ "sha.js": "bin.js" } }, + "node_modules/shallow-copy": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz", + "integrity": "sha512-b6i4ZpVuUxB9h5gfCxPiusKYkqTMOjEbBs4wMaFbkfia4yFv92UKZ6Df8WXcKbn08JNL/abvg3FnMAOfakDvUw==", + "dev": true + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -8342,6 +9466,17 @@ "node": ">= 0.6" } }, + "node_modules/ssf": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz", + "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==", + "dependencies": { + "frac": "~1.1.2" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/stack-utils": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", @@ -8363,6 +9498,218 @@ "node": ">=8" } }, + "node_modules/static-eval": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.1.0.tgz", + "integrity": "sha512-agtxZ/kWSsCkI5E4QifRwsaPs0P0JmZV6dkLz6ILYfFYQGn+5plctanRN+IC8dJRiFkyXHrwEE3W9Wmx67uDbw==", + "dev": true, + "dependencies": { + "escodegen": "^1.11.1" + } + }, + "node_modules/static-eval/node_modules/escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "dev": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=4.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/static-eval/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-eval/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-eval/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-eval/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-eval/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-module": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/static-module/-/static-module-3.0.4.tgz", + "integrity": "sha512-gb0v0rrgpBkifXCa3yZXxqVmXDVE+ETXj6YlC/jt5VzOnGXR2C15+++eXuMDUYsePnbhf+lwW0pE1UXyOLtGCw==", + "dev": true, + "dependencies": { + "acorn-node": "^1.3.0", + "concat-stream": "~1.6.0", + "convert-source-map": "^1.5.1", + "duplexer2": "~0.1.4", + "escodegen": "^1.11.1", + "has": "^1.0.1", + "magic-string": "0.25.1", + "merge-source-map": "1.0.4", + "object-inspect": "^1.6.0", + "readable-stream": "~2.3.3", + "scope-analyzer": "^2.0.1", + "shallow-copy": "~0.0.1", + "static-eval": "^2.0.5", + "through2": "~2.0.3" + } + }, + "node_modules/static-module/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/static-module/node_modules/escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "dev": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=4.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/static-module/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-module/node_modules/magic-string": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.1.tgz", + "integrity": "sha512-sCuTz6pYom8Rlt4ISPFn6wuFodbKMIHUMv4Qko9P17dpxb7s52KJTmRuZZqHdGmLCK9AOcDare039nRIcfdkEg==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.1" + } + }, + "node_modules/static-module/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-module/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-module/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-module/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", @@ -8371,6 +9718,17 @@ "node": ">= 0.8" } }, + "node_modules/stop-iteration-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", + "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "dependencies": { + "internal-slot": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/streamsearch": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", @@ -8764,6 +10122,21 @@ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/tiny-inflate": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", + "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==" + }, "node_modules/tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -9024,6 +10397,12 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, + "node_modules/type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", + "dev": true + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -9255,14 +10634,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/typeorm/node_modules/uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, "node_modules/typescript": { "version": "4.9.5", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", @@ -9287,6 +10658,29 @@ "node": ">=8" } }, + "node_modules/unicode-properties": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/unicode-properties/-/unicode-properties-1.4.1.tgz", + "integrity": "sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg==", + "dependencies": { + "base64-js": "^1.3.0", + "unicode-trie": "^2.0.0" + } + }, + "node_modules/unicode-trie": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-2.0.0.tgz", + "integrity": "sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==", + "dependencies": { + "pako": "^0.2.5", + "tiny-inflate": "^1.0.0" + } + }, + "node_modules/unicode-trie/node_modules/pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==" + }, "node_modules/universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -9370,9 +10764,9 @@ } }, "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", "bin": { "uuid": "dist/bin/uuid" } @@ -9544,6 +10938,54 @@ "node": ">= 8" } }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "dependencies": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/wide-align": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", @@ -9614,6 +11056,22 @@ "node": ">=8.12.0" } }, + "node_modules/wmf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz", + "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/word": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/word/-/word-0.3.0.tgz", + "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==", + "engines": { + "node": ">=0.8" + } + }, "node_modules/word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -9657,6 +11115,26 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/xlsx": { + "version": "0.18.5", + "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.18.5.tgz", + "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==", + "dependencies": { + "adler-32": "~1.3.0", + "cfb": "~1.2.1", + "codepage": "~1.15.0", + "crc-32": "~1.2.1", + "ssf": "~0.11.2", + "wmf": "~1.0.1", + "word": "~0.3.0" + }, + "bin": { + "xlsx": "bin/xlsx.njs" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/xml2js": { "version": "0.4.23", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", @@ -9682,6 +11160,15 @@ "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" }, + "node_modules/xmldoc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/xmldoc/-/xmldoc-1.3.0.tgz", + "integrity": "sha512-y7IRWW6PvEnYQZNZFMRLNJw+p3pezM4nKYPfr15g4OOW9i8VpeydycFuipE2297OvZnh3jSb2pxOt9QpkZUVng==", + "dev": true, + "dependencies": { + "sax": "^1.2.4" + } + }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -10457,6 +11944,61 @@ } } }, + "@foliojs-fork/fontkit": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@foliojs-fork/fontkit/-/fontkit-1.9.1.tgz", + "integrity": "sha512-U589voc2/ROnvx1CyH9aNzOQWJp127JGU1QAylXGQ7LoEAF6hMmahZLQ4eqAcgHUw+uyW4PjtCItq9qudPkK3A==", + "dev": true, + "requires": { + "@foliojs-fork/restructure": "^2.0.2", + "brfs": "^2.0.0", + "brotli": "^1.2.0", + "browserify-optional": "^1.0.1", + "clone": "^1.0.4", + "deep-equal": "^1.0.0", + "dfa": "^1.2.0", + "tiny-inflate": "^1.0.2", + "unicode-properties": "^1.2.2", + "unicode-trie": "^2.0.0" + } + }, + "@foliojs-fork/linebreak": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@foliojs-fork/linebreak/-/linebreak-1.1.1.tgz", + "integrity": "sha512-pgY/+53GqGQI+mvDiyprvPWgkTlVBS8cxqee03ejm6gKAQNsR1tCYCIvN9FHy7otZajzMqCgPOgC4cHdt4JPig==", + "dev": true, + "requires": { + "base64-js": "1.3.1", + "brfs": "^2.0.2", + "unicode-trie": "^2.0.0" + }, + "dependencies": { + "base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", + "dev": true + } + } + }, + "@foliojs-fork/pdfkit": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@foliojs-fork/pdfkit/-/pdfkit-0.13.0.tgz", + "integrity": "sha512-YXeG1fml9k97YNC9K8e292Pj2JzGt9uOIiBFuQFxHsdQ45BlxW+JU3RQK6JAvXU7kjhjP8rCcYvpk36JLD33sQ==", + "dev": true, + "requires": { + "@foliojs-fork/fontkit": "^1.9.1", + "@foliojs-fork/linebreak": "^1.1.1", + "crypto-js": "^4.0.0", + "png-js": "^1.0.0" + } + }, + "@foliojs-fork/restructure": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@foliojs-fork/restructure/-/restructure-2.0.2.tgz", + "integrity": "sha512-59SgoZ3EXbkfSX7b63tsou/SDGzwUEK6MuB5sKqgVK1/XE0fxmpsOb9DQI8LXW3KfGnAjImCGhhEb7uPPAUVNA==", + "dev": true + }, "@humanwhocodes/config-array": { "version": "0.11.8", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", @@ -10972,13 +12514,6 @@ "dotenv-expand": "10.0.0", "lodash": "4.17.21", "uuid": "9.0.0" - }, - "dependencies": { - "uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==" - } } }, "@nestjs/core": { @@ -11025,6 +12560,22 @@ "express": "4.18.2", "multer": "1.4.4-lts.1", "tslib": "2.5.0" + }, + "dependencies": { + "multer": { + "version": "1.4.4-lts.1", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.4-lts.1.tgz", + "integrity": "sha512-WeSGziVj6+Z2/MwQo3GvqzgR+9Uc+qt8SwHKh3gvNPiISKfsMfG4SvCOFYlxxgkXt7yIV2i1yczehm0EOKIxIg==", + "requires": { + "append-field": "^1.0.0", + "busboy": "^1.0.0", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.4", + "object-assign": "^4.1.1", + "type-is": "^1.6.4", + "xtend": "^4.0.0" + } + } } }, "@nestjs/schematics": { @@ -11104,6 +12655,21 @@ } } }, + "@nestjs/serve-static": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@nestjs/serve-static/-/serve-static-3.0.1.tgz", + "integrity": "sha512-i766UJPYOqvQ2BbRKh0/+Mmq5NkJnmKcShjWV1i5qpXyeM0KDZTn0n7g7ykWq/3LbQgjpMzrhYtGv35GX7GVQw==", + "requires": { + "path-to-regexp": "0.2.5" + }, + "dependencies": { + "path-to-regexp": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.2.5.tgz", + "integrity": "sha512-l6qtdDPIkmAmzEO6egquYDfqQGPMRNGjYtrU13HAXb3YSRrt7HSb1sJY0pKp6o2bAa86tSB6iwaW2JbthPKr7Q==" + } + } + }, "@nestjs/swagger": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/@nestjs/swagger/-/swagger-6.2.1.tgz", @@ -11131,6 +12697,13 @@ "integrity": "sha512-A2BgLIPsMtmMI0bPKEf4bmzgFPsnvHqNBx3KkvaJ7hJrBQy0OqYOb+Rr06ifblKWDWS2tUPNrAFQbZjtk3PI+g==", "requires": { "uuid": "8.3.2" + }, + "dependencies": { + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + } } }, "@nodelib/fs.scandir": { @@ -11169,6 +12742,22 @@ "node-fetch": "^2.6.1" } }, + "@pdf-lib/standard-fonts": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@pdf-lib/standard-fonts/-/standard-fonts-1.0.0.tgz", + "integrity": "sha512-hU30BK9IUN/su0Mn9VdlVKsWBS6GyhVfqjwl1FjZN4TxP6cCw0jP2w7V3Hf5uX7M0AZJ16vey9yE0ny7Sa59ZA==", + "requires": { + "pako": "^1.0.6" + } + }, + "@pdf-lib/upng": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@pdf-lib/upng/-/upng-1.0.1.tgz", + "integrity": "sha512-dQK2FUMQtowVP00mtIksrlZhdFXQZPC+taih1q4CvPZ5vqdxR/LKBaFg0oAfzd1GlHZXXSPdQfzQnt+ViGvEIQ==", + "requires": { + "pako": "^1.0.10" + } + }, "@sinclair/typebox": { "version": "0.25.21", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.21.tgz", @@ -11198,6 +12787,14 @@ "resolved": "https://registry.npmjs.org/@sqltools/formatter/-/formatter-1.2.5.tgz", "integrity": "sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==" }, + "@swc/helpers": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.3.17.tgz", + "integrity": "sha512-tb7Iu+oZ+zWJZ3HJqwx8oNwSDIU440hmVMDPhpACWQWnrZHK99Bxs70gT1L2dnr5Hg50ZRWEFkQCAnOVVV0z1Q==", + "requires": { + "tslib": "^2.4.0" + } + }, "@tsconfig/node10": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", @@ -11267,7 +12864,6 @@ "version": "1.19.2", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "dev": true, "requires": { "@types/connect": "*", "@types/node": "*" @@ -11277,7 +12873,6 @@ "version": "3.4.35", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dev": true, "requires": { "@types/node": "*" } @@ -11318,7 +12913,6 @@ "version": "4.17.17", "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", - "dev": true, "requires": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.33", @@ -11330,7 +12924,6 @@ "version": "4.17.33", "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.33.tgz", "integrity": "sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==", - "dev": true, "requires": { "@types/node": "*", "@types/qs": "*", @@ -11397,8 +12990,15 @@ "@types/mime": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", - "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", - "dev": true + "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==" + }, + "@types/multer": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/@types/multer/-/multer-1.4.7.tgz", + "integrity": "sha512-/SNsDidUFCvqqcWDwxv2feww/yqhNeTRL5CVoL3jU4Goc4kKEL10T7Eye65ZqPNi4HRx8sAEX59pV1aEH7drNA==", + "requires": { + "@types/express": "*" + } }, "@types/node": { "version": "18.11.18", @@ -11450,14 +13050,12 @@ "@types/qs": { "version": "6.9.7", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", - "dev": true + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" }, "@types/range-parser": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", - "dev": true + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" }, "@types/semver": { "version": "7.3.13", @@ -11469,7 +13067,6 @@ "version": "1.15.0", "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", - "dev": true, "requires": { "@types/mime": "*", "@types/node": "*" @@ -11811,12 +13408,42 @@ "dev": true, "requires": {} }, + "acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "dev": true, + "requires": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true + } + } + }, "acorn-walk": { "version": "8.2.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", "devOptional": true }, + "adler-32": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz", + "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==" + }, "agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", @@ -11846,6 +13473,13 @@ "ajv": "^8.0.0" } }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==", + "dev": true, + "optional": true + }, "ansi-colors": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", @@ -11992,6 +13626,12 @@ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" }, + "array-from": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz", + "integrity": "sha512-GQTc6Uupx1FCavi5mPzBvVT7nEOeWMmUA9P95wpfpW1XwMSKs+KaymD5C2Up7KAUKg/mYwbsUYzdZWcoajlNZg==", + "dev": true + }, "array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", @@ -12004,6 +13644,31 @@ "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", "dev": true }, + "ast-transform": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/ast-transform/-/ast-transform-0.0.0.tgz", + "integrity": "sha512-e/JfLiSoakfmL4wmTGPjv0HpTICVmxwXgYOB8x+mzozHL8v+dSfCbrJ8J8hJ0YBP0XcYu1aLZ6b/3TnxNK3P2A==", + "dev": true, + "requires": { + "escodegen": "~1.2.0", + "esprima": "~1.0.4", + "through": "~2.3.4" + }, + "dependencies": { + "esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha512-rp5dMKN8zEs9dfi9g0X1ClLmV//WRyk/R15mppFNICIFRG5P92VP7Z04p8pk++gABo9W2tY+kHyu6P1mEHgmTA==", + "dev": true + } + } + }, + "ast-types": { + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.7.8.tgz", + "integrity": "sha512-RIOpVnVlltB6PcBJ5BMLx+H+6JJ/zjDGU0t7f0L6c2M1dqcK92VQopLBlPQ9R80AVXelfqYgjcPLtHtDbNFg0Q==", + "dev": true + }, "async": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", @@ -12015,6 +13680,11 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "dev": true }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" + }, "babel-jest": { "version": "29.4.2", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.4.2.tgz", @@ -12146,6 +13816,19 @@ } } }, + "blob": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", + "integrity": "sha512-YRc9zvVz4wNaxcXmiSgb9LAg7YYwqQ2xd0Sj6osfA7k/PKmIGVlnOYs3wOFdkRC9/JpQu8sGt/zHgJV7xzerfg==" + }, + "blob-stream": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/blob-stream/-/blob-stream-0.1.3.tgz", + "integrity": "sha512-xXwyhgVmPsFVFFvtM5P0syI17/oae+MIjLn5jGhuD86mmSJ61EWMWmbPrV/0+bdcH9jQ2CzIhmTQKNUJL7IPog==", + "requires": { + "blob": "0.0.4" + } + }, "bluebird": { "version": "3.4.7", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", @@ -12203,6 +13886,54 @@ "fill-range": "^7.0.1" } }, + "brfs": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brfs/-/brfs-2.0.2.tgz", + "integrity": "sha512-IrFjVtwu4eTJZyu8w/V2gxU7iLTtcHih67sgEdzrhjLBMHp2uYefUBfdM4k2UvcuWMgV7PQDZHSLeNWnLFKWVQ==", + "dev": true, + "requires": { + "quote-stream": "^1.0.1", + "resolve": "^1.1.5", + "static-module": "^3.0.2", + "through2": "^2.0.0" + } + }, + "brotli": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/brotli/-/brotli-1.3.3.tgz", + "integrity": "sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==", + "requires": { + "base64-js": "^1.1.2" + } + }, + "browser-resolve": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", + "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", + "dev": true, + "requires": { + "resolve": "1.1.7" + }, + "dependencies": { + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==", + "dev": true + } + } + }, + "browserify-optional": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-optional/-/browserify-optional-1.0.1.tgz", + "integrity": "sha512-VrhjbZ+Ba5mDiSYEuPelekQMfTbhcA2DhLk2VQWqdcCROWeFqlTcXZ7yfRkXCIl8E+g4gINJYJiRB7WEtfomAQ==", + "dev": true, + "requires": { + "ast-transform": "0.0.0", + "ast-types": "^0.7.0", + "browser-resolve": "^1.8.1" + } + }, "browserslist": { "version": "4.21.5", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", @@ -12247,6 +13978,12 @@ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==" }, + "buffer-equal": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", + "integrity": "sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==", + "dev": true + }, "buffer-equal-constant-time": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", @@ -12312,6 +14049,15 @@ "integrity": "sha512-XY7UbUpGRatZzoRft//5xOa69/1iGJRBlrieH6QYrkKLIFn3m7OVEJ81dSrKoy2BnKsdbX5cLrOispZNYo9v2w==", "dev": true }, + "cfb": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.2.tgz", + "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==", + "requires": { + "adler-32": "~1.3.0", + "crc-32": "~1.2.0" + } + }, "chainsaw": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", @@ -12492,6 +14238,11 @@ "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true }, + "codepage": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz", + "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==" + }, "collect-v8-coverage": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", @@ -12691,6 +14442,27 @@ "which": "^2.0.1" } }, + "crypto-js": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz", + "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==" + }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dev": true, + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "dash-ast": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-2.0.1.tgz", + "integrity": "sha512-5TXltWJGc+RdnabUGzhRae1TRq6m4gr+3K2wQX0is5/F2yS6MJXJvLyI3ErAnsAXuJoGqvfVD5icRgim07DrxQ==", + "dev": true + }, "date-fns": { "version": "2.29.3", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz", @@ -12715,6 +14487,20 @@ "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", "dev": true }, + "deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "dev": true, + "requires": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + } + }, "deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -12736,6 +14522,15 @@ "clone": "^1.0.2" } }, + "define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -12783,6 +14578,11 @@ "wrappy": "1" } }, + "dfa": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/dfa/-/dfa-1.2.0.tgz", + "integrity": "sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==" + }, "diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", @@ -12893,12 +14693,103 @@ "is-arrayish": "^0.2.1" } }, + "es-get-iterator": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + }, + "dependencies": { + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + } + } + }, "es-module-lexer": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", "dev": true }, + "es5-ext": { + "version": "0.10.62", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", + "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", + "dev": true, + "requires": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "next-tick": "^1.1.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-map": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", + "integrity": "sha512-mz3UqCh0uPCIqsw1SSAkB/p0rOzF/M0V++vyN7JqlPtSW/VsYgQBvVvqMLmfBuyMzTpLnNqi6JmcSizs4jy19A==", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-set": "~0.1.5", + "es6-symbol": "~3.1.1", + "event-emitter": "~0.3.5" + } + }, + "es6-set": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.6.tgz", + "integrity": "sha512-TE3LgGLDIBX332jq3ypv6bcOpkLO0AslAQo7p2VqX/1N46YNsvIWgvjojjSEnWEGWMhr1qUbYeTSir5J6mFHOw==", + "dev": true, + "requires": { + "d": "^1.0.1", + "es5-ext": "^0.10.62", + "es6-iterator": "~2.0.3", + "es6-symbol": "^3.1.3", + "event-emitter": "^0.3.5", + "type": "^2.7.2" + }, + "dependencies": { + "type": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", + "dev": true + } + } + }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dev": true, + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -12915,6 +14806,48 @@ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true }, + "escodegen": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.2.0.tgz", + "integrity": "sha512-yLy3Cc+zAC0WSmoT2fig3J87TpQ8UaZGx8ahCAs9FL8qNbyV7CVyPKS74DG4bsHiL5ew9sxdYx131OkBQMFnvA==", + "dev": true, + "requires": { + "esprima": "~1.0.4", + "estraverse": "~1.5.0", + "esutils": "~1.0.0", + "source-map": "~0.1.30" + }, + "dependencies": { + "esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha512-rp5dMKN8zEs9dfi9g0X1ClLmV//WRyk/R15mppFNICIFRG5P92VP7Z04p8pk++gABo9W2tY+kHyu6P1mEHgmTA==", + "dev": true + }, + "estraverse": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.5.1.tgz", + "integrity": "sha512-FpCjJDfmo3vsc/1zKSeqR5k42tcIhxFIlvq+h9j0fO2q/h2uLKyweq7rYJ+0CoVvrGQOxIS5wyBrW/+vF58BUQ==", + "dev": true + }, + "esutils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.0.0.tgz", + "integrity": "sha512-x/iYH53X3quDwfHRz4y8rn4XcEwwCJeWsul9pF1zldMbGtgOtMNBEOuYWwB1EQlK2LRa1fev3YAgym/RElp5Cg==", + "dev": true + }, + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha512-VtCvB9SIQhk3aF6h+N85EaqIaBFIAfZ9Cu+NJHHVvc8BbEcnvDcFw6sqQ2dQrT6SlOrZq3tIvyD9+EGq/lJryQ==", + "dev": true, + "optional": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, "eslint": { "version": "8.33.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.33.0.tgz", @@ -13113,6 +15046,12 @@ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true }, + "estree-is-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/estree-is-function/-/estree-is-function-1.0.0.tgz", + "integrity": "sha512-nSCWn1jkSq2QAtkaVLJZY2ezwcFO161HVc174zL1KPW3RJ+O6C3eJb8Nx7OXzvhoEv+nLgSR1g71oWUHUDTrJA==", + "dev": true + }, "esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -13124,6 +15063,16 @@ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, "events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", @@ -13163,6 +15112,11 @@ "requires": { "rimraf": "^3.0.0" } + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" } } }, @@ -13260,6 +15214,23 @@ } } }, + "ext": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "dev": true, + "requires": { + "type": "^2.7.2" + }, + "dependencies": { + "type": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", + "dev": true + } + } + }, "external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", @@ -13430,6 +15401,66 @@ "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, + "fontkit": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/fontkit/-/fontkit-1.9.0.tgz", + "integrity": "sha512-HkW/8Lrk8jl18kzQHvAw9aTHe1cqsyx5sDnxncx652+CIfhawokEPkeM3BoIC+z/Xv7a0yMr0f3pRRwhGH455g==", + "requires": { + "@swc/helpers": "^0.3.13", + "brotli": "^1.3.2", + "clone": "^2.1.2", + "deep-equal": "^2.0.5", + "dfa": "^1.2.0", + "restructure": "^2.0.1", + "tiny-inflate": "^1.0.3", + "unicode-properties": "^1.3.1", + "unicode-trie": "^2.0.0" + }, + "dependencies": { + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==" + }, + "deep-equal": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.0.tgz", + "integrity": "sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==", + "requires": { + "call-bind": "^1.0.2", + "es-get-iterator": "^1.1.2", + "get-intrinsic": "^1.1.3", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.1", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + } + }, + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + } + } + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "requires": { + "is-callable": "^1.1.3" + } + }, "fork-ts-checker-webpack-plugin": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-8.0.0.tgz", @@ -13491,6 +15522,11 @@ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" }, + "frac": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz", + "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==" + }, "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -13579,6 +15615,11 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==" + }, "gauge": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", @@ -13609,6 +15650,12 @@ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true }, + "get-assigned-identifiers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", + "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==", + "dev": true + }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -13687,6 +15734,14 @@ "slash": "^3.0.0" } }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "requires": { + "get-intrinsic": "^1.1.3" + } + }, "graceful-fs": { "version": "4.2.10", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", @@ -13706,16 +15761,37 @@ "function-bind": "^1.1.1" } }, + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==" + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "requires": { + "get-intrinsic": "^1.1.1" + } + }, "has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "requires": { + "has-symbols": "^1.0.2" + } + }, "has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", @@ -13852,6 +15928,16 @@ "wrap-ansi": "^7.0.0" } }, + "internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "requires": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, "interpret": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", @@ -13863,12 +15949,39 @@ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" }, + "is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + } + }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "requires": { + "has-bigints": "^1.0.1" + } + }, "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -13878,6 +15991,20 @@ "binary-extensions": "^2.0.0" } }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==" + }, "is-core-module": { "version": "2.11.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", @@ -13887,6 +16014,14 @@ "has": "^1.0.3" } }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -13919,12 +16054,25 @@ "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", "dev": true }, + "is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==" + }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, "is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", @@ -13936,18 +16084,82 @@ "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==" }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==" + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "requires": { + "call-bind": "^1.0.2" + } + }, "is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, "is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true }, + "is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==" + }, + "is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -14643,6 +16855,22 @@ "immediate": "~3.0.5" } }, + "linebreak": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/linebreak/-/linebreak-1.1.0.tgz", + "integrity": "sha512-MHp03UImeVhB7XZtjd0E4n6+3xr5Dq/9xI/5FptGk5FrbDR3zagPa2DS6U8ks/3HjbKWG9Q1M2ufOzxV2qLYSQ==", + "requires": { + "base64-js": "0.0.8", + "unicode-trie": "^2.0.0" + }, + "dependencies": { + "base64-js": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz", + "integrity": "sha512-3XSA2cR/h/73EzlXXdU6YNycmYI7+kicTxks4eJg2g39biHR84slg2+des+p7iHYhbRg/udIS4TD53WabcOUkw==" + } + } + }, "lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", @@ -14839,6 +17067,23 @@ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" }, + "merge-source-map": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz", + "integrity": "sha512-PGSmS0kfnTnMJCzJ16BLLCEe6oeYCamKFFdQKshi4BmM6FUwipjVOcBFGxqtQtirtAG4iZvHlqST9CpZKqlRjA==", + "dev": true, + "requires": { + "source-map": "^0.5.6" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true + } + } + }, "merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -14951,9 +17196,9 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "multer": { - "version": "1.4.4-lts.1", - "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.4-lts.1.tgz", - "integrity": "sha512-WeSGziVj6+Z2/MwQo3GvqzgR+9Uc+qt8SwHKh3gvNPiISKfsMfG4SvCOFYlxxgkXt7yIV2i1yczehm0EOKIxIg==", + "version": "1.4.5-lts.1", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz", + "integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==", "requires": { "append-field": "^1.0.0", "busboy": "^1.0.0", @@ -15048,6 +17293,12 @@ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, + "next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", + "dev": true + }, "node-abort-controller": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", @@ -15136,6 +17387,31 @@ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" }, + "object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, "on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", @@ -15377,6 +17653,58 @@ "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz", "integrity": "sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg==" }, + "pdf-lib": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/pdf-lib/-/pdf-lib-1.17.1.tgz", + "integrity": "sha512-V/mpyJAoTsN4cnP31vc0wfNA1+p20evqqnap0KLoRUN0Yk/p3wN52DOEsL4oBFcLdb76hlpKPtzJIgo67j/XLw==", + "requires": { + "@pdf-lib/standard-fonts": "^1.0.0", + "@pdf-lib/upng": "^1.0.1", + "pako": "^1.0.11", + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "pdfkit": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/pdfkit/-/pdfkit-0.13.0.tgz", + "integrity": "sha512-AW79eHU5eLd2vgRDS9z3bSoi0FA+gYm+100LLosrQQMLUzOBGVOhG7ABcMFpJu7Bpg+MT74XYHi4k9EuU/9EZw==", + "requires": { + "crypto-js": "^4.0.0", + "fontkit": "^1.8.1", + "linebreak": "^1.0.2", + "png-js": "^1.0.0" + } + }, + "pdfmake": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/pdfmake/-/pdfmake-0.2.7.tgz", + "integrity": "sha512-ClLpgx30H5G3EDvRW1MrA1Xih6YxEaSgIVFrOyBMgAAt62V+hxsyWAi6JNP7u1Fc5JKYAbpb4RRVw8Rhvmz5cQ==", + "dev": true, + "requires": { + "@foliojs-fork/linebreak": "^1.1.1", + "@foliojs-fork/pdfkit": "^0.13.0", + "iconv-lite": "^0.6.3", + "xmldoc": "^1.1.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } + } + }, "pg": { "version": "8.9.0", "resolved": "https://registry.npmjs.org/pg/-/pg-8.9.0.tgz", @@ -15504,6 +17832,11 @@ "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", "dev": true }, + "png-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/png-js/-/png-js-1.0.0.tgz", + "integrity": "sha512-k+YsbhpA9e+EFfKjTCH3VW6aoKlyNYI6NYdTfDL4CIvFnvsuO84ttonmZE7rc+v23SLTH8XX+5w/Ak9v0xGY4g==" + }, "postgres-array": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", @@ -15621,6 +17954,17 @@ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true }, + "quote-stream": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/quote-stream/-/quote-stream-1.0.2.tgz", + "integrity": "sha512-kKr2uQ2AokadPjvTyKJQad9xELbZwYzWlNfI3Uz2j/ib5u6H9lDP7fUUR//rMycd0gv4Z5P1qXMfXR8YpIxrjQ==", + "dev": true, + "requires": { + "buffer-equal": "0.0.1", + "minimist": "^1.1.3", + "through2": "^2.0.0" + } + }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -15722,6 +18066,16 @@ "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" }, + "regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + } + }, "regexpp": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", @@ -15789,6 +18143,11 @@ "signal-exit": "^3.0.2" } }, + "restructure": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/restructure/-/restructure-2.0.1.tgz", + "integrity": "sha512-e0dOpjm5DseomnXx2M5lpdZ5zoHqF1+bqdMJUohoYVVQa7cBdnk7fdmeI6byNWP/kiME72EeTiSypTCVnpLiDg==" + }, "reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -15887,6 +18246,21 @@ } } }, + "scope-analyzer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/scope-analyzer/-/scope-analyzer-2.1.2.tgz", + "integrity": "sha512-5cfCmsTYV/wPaRIItNxatw02ua/MThdIUNnUOCYp+3LSEJvnG804ANw2VLaavNILIfWXF1D1G2KNANkBBvInwQ==", + "dev": true, + "requires": { + "array-from": "^2.1.1", + "dash-ast": "^2.0.1", + "es6-map": "^0.1.5", + "es6-set": "^0.1.5", + "es6-symbol": "^3.1.1", + "estree-is-function": "^1.0.0", + "get-assigned-identifiers": "^1.1.0" + } + }, "semver": { "version": "7.3.8", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", @@ -16001,6 +18375,12 @@ "safe-buffer": "^5.0.1" } }, + "shallow-copy": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz", + "integrity": "sha512-b6i4ZpVuUxB9h5gfCxPiusKYkqTMOjEbBs4wMaFbkfia4yFv92UKZ6Df8WXcKbn08JNL/abvg3FnMAOfakDvUw==", + "dev": true + }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -16100,6 +18480,14 @@ "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==" }, + "ssf": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz", + "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==", + "requires": { + "frac": "~1.1.2" + } + }, "stack-utils": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", @@ -16117,11 +18505,187 @@ } } }, + "static-eval": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.1.0.tgz", + "integrity": "sha512-agtxZ/kWSsCkI5E4QifRwsaPs0P0JmZV6dkLz6ILYfFYQGn+5plctanRN+IC8dJRiFkyXHrwEE3W9Wmx67uDbw==", + "dev": true, + "requires": { + "escodegen": "^1.11.1" + }, + "dependencies": { + "escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "dev": true, + "requires": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + } + } + }, + "static-module": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/static-module/-/static-module-3.0.4.tgz", + "integrity": "sha512-gb0v0rrgpBkifXCa3yZXxqVmXDVE+ETXj6YlC/jt5VzOnGXR2C15+++eXuMDUYsePnbhf+lwW0pE1UXyOLtGCw==", + "dev": true, + "requires": { + "acorn-node": "^1.3.0", + "concat-stream": "~1.6.0", + "convert-source-map": "^1.5.1", + "duplexer2": "~0.1.4", + "escodegen": "^1.11.1", + "has": "^1.0.1", + "magic-string": "0.25.1", + "merge-source-map": "1.0.4", + "object-inspect": "^1.6.0", + "readable-stream": "~2.3.3", + "scope-analyzer": "^2.0.1", + "shallow-copy": "~0.0.1", + "static-eval": "^2.0.5", + "through2": "~2.0.3" + }, + "dependencies": { + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "dev": true, + "requires": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "magic-string": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.1.tgz", + "integrity": "sha512-sCuTz6pYom8Rlt4ISPFn6wuFodbKMIHUMv4Qko9P17dpxb7s52KJTmRuZZqHdGmLCK9AOcDare039nRIcfdkEg==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.1" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + } + } + }, "statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" }, + "stop-iteration-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", + "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "requires": { + "internal-slot": "^1.0.4" + } + }, "streamsearch": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", @@ -16413,6 +18977,21 @@ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "tiny-inflate": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", + "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==" + }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -16584,6 +19163,12 @@ } } }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", + "dev": true + }, "type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -16684,11 +19269,6 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-2.1.3.tgz", "integrity": "sha512-sjAkg21peAG9HS+Dkx7hlG9Ztx7HLeKnvB3NQRcu/mltCVmvkF0pisbiTSfDVYTT86XEfZrTUosLdZLStquZUw==" - }, - "uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==" } } }, @@ -16706,6 +19286,31 @@ "@lukeed/csprng": "^1.0.0" } }, + "unicode-properties": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/unicode-properties/-/unicode-properties-1.4.1.tgz", + "integrity": "sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg==", + "requires": { + "base64-js": "^1.3.0", + "unicode-trie": "^2.0.0" + } + }, + "unicode-trie": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-2.0.0.tgz", + "integrity": "sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==", + "requires": { + "pako": "^0.2.5", + "tiny-inflate": "^1.0.0" + }, + "dependencies": { + "pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==" + } + } + }, "universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -16764,9 +19369,9 @@ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" }, "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==" }, "v8-compile-cache-lib": { "version": "3.0.1", @@ -16898,6 +19503,42 @@ "isexe": "^2.0.0" } }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "requires": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + } + }, + "which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + } + }, "wide-align": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", @@ -16949,6 +19590,16 @@ } } }, + "wmf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz", + "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==" + }, + "word": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/word/-/word-0.3.0.tgz", + "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==" + }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -16980,6 +19631,20 @@ "signal-exit": "^3.0.7" } }, + "xlsx": { + "version": "0.18.5", + "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.18.5.tgz", + "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==", + "requires": { + "adler-32": "~1.3.0", + "cfb": "~1.2.1", + "codepage": "~1.15.0", + "crc-32": "~1.2.1", + "ssf": "~0.11.2", + "wmf": "~1.0.1", + "word": "~0.3.0" + } + }, "xml2js": { "version": "0.4.23", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", @@ -16999,6 +19664,15 @@ "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" }, + "xmldoc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/xmldoc/-/xmldoc-1.3.0.tgz", + "integrity": "sha512-y7IRWW6PvEnYQZNZFMRLNJw+p3pezM4nKYPfr15g4OOW9i8VpeydycFuipE2297OvZnh3jSb2pxOt9QpkZUVng==", + "dev": true, + "requires": { + "sax": "^1.2.4" + } + }, "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", diff --git a/package.json b/package.json index 37af02d..d3d3bd6 100644 --- a/package.json +++ b/package.json @@ -26,24 +26,32 @@ "@nestjs/jwt": "^10.0.2", "@nestjs/passport": "^9.0.3", "@nestjs/platform-express": "^9.0.0", + "@nestjs/serve-static": "^3.0.1", "@nestjs/swagger": "^6.2.1", "@nestjs/typeorm": "^9.0.1", + "@types/multer": "^1.4.7", "bcrypt": "^5.1.0", + "blob-stream": "^0.1.3", "class-transformer": "^0.5.1", "class-validator": "^0.14.0", "exceljs": "^4.3.0", "moment": "^2.29.4", + "multer": "^1.4.5-lts.1", "mysql2": "^3.1.2", "nodemailer": "^6.9.1", "passport": "^0.6.0", "passport-jwt": "^4.0.1", "passport-local": "^1.0.0", + "pdf-lib": "^1.17.1", + "pdfkit": "^0.13.0", "pg": "^8.9.0", "reflect-metadata": "^0.1.13", "rxjs": "^7.2.0", "swagger-ui-express": "^4.6.1", "sybase": "^1.2.3", - "typeorm": "^0.3.12" + "typeorm": "^0.3.12", + "uuid": "^9.0.0", + "xlsx": "^0.18.5" }, "devDependencies": { "@jridgewell/sourcemap-codec": "^1.4.14", @@ -61,6 +69,7 @@ "eslint-config-prettier": "^8.3.0", "eslint-plugin-prettier": "^4.0.0", "jest": "29.3.1", + "pdfmake": "^0.2.7", "prettier": "^2.3.2", "source-map-support": "^0.5.20", "supertest": "^6.1.3", diff --git a/public/1366_2000.jpg b/public/1366_2000.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0dde5efbb28842c8eef5777d6e8465ee327ec302 GIT binary patch literal 33018 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 z

CtV2VMQUXl9$6#}`%yJK{20EGB#qiY`qdrN<4`);Mn65LN6X$}E%I~xWt7tx!W ze+40udsqc|ZyX4iRleo86-#ioDpDQi!qj6@k6gJf+BHDq@L10iy~jlqZ5D~Ls`Gbl z@cqGn^@!GCARsL9-^f$uEU|Z-{|$qMK=B`(hTpX!s@{UjkX3pq=A^6mc-^w1prH>N z0~>l_bS9KG);M1it3)lQI-Bn5D0No6$da4>PIY5=b)J31LPQBJn_cBsCS!f{n?q5WSzrt2;?OKKI0G4zSM-GasCd7 z%6ufMGg&0*Up|)aqlbr$kV+fa*=5uVP5C*u1Cknfp^G@_mntOj?fIBEhGX-|-q`lS z0@q7*xe z9nhO1j;C1UR#>7x>zFY+IR-|Ahd)yifcICbyM0ghI8D>`u?^SXr5nE8R=6i9$ic(G zStTJqlGcwyRVjD`N!h2=$sSp|zr>qdCC34*_Jcj59YfP@w|4T?Jcq=o8W`Qx@`%x3 zFq=6d9RgBhz`ilT^W-9Xs22qs&zcX6jHIn{f}`z_VdG&L|lXT0a<>MewDbjtkZ85O9^F(MF=kVYDqM)Y*oBkB8%9=iu?=PO(4fbR zU0_%*txMsf&MlICVIKd9Hyhkk61__JuE)kUoK4t{YA|uqO2%Y{P5N0C?p)B)fnUhj z`oh!R93}=Y|B{R-cv*~Fmq($nO#M^$I@51h8Uoh~zr+^Z{9VAlVe!p*3`ha>@J6KJ z1x+B~eqsx0j{7MamJMU5eMxCvT%)Hrs#rqc`oNKR;xeQbHlB1vu2c)wV~MDVYvvxx zcIa#ZQ3B2`5(gUN>WP#Ck;4owp>M*bh={HAnaoggn;AnHyi;Q0vIc}R5dH;ZkNo|O z&mpHEiu|N+6Qt|zs~-cJr$|z}J!@HvRbkhK1ZHZ0+@kbh!_vt6_a=FOAw%)M6_E_y zP6mD&@(}gGrPb_7?M${cDsPrYKn!E!OI~p`LcTf2VrrP;^><76lYH!^xsxclUOLO; zrbmn$GiiL3M`m{mI!KQb;LY7ujmdN*;{r)gAg*!PQ!J45hn6YCd2$O`h$rrlmkY5V z&)`+`2c`(rRTjz{<&mjY>;T6MuX~k9N{W!oQv z5g|`0#vA}mpkDE+ruhCWAhjkbiWi--OP6CHiAX0TA%l!%@BITb_{IJuyZp1mY1>NN z(A$7DIy!9znlh|HE~DVK@xtlt1Wf$yI4f=886XNcTUwngPV6%1gf5%jwevWq1B_L3 z>C=;%sh{p%KhG1hyFj8Id$^kqMAf!h%D=JoMZRypL z{iO!#46dG8O^b@fx=PP7X*i?+gp>Hy^xF(ozHT>WW&9vNizprV?49;Y$=>?yRmFR{ zwdfE88C5P^6F3>mLHrKbO_r^*DZypG9WXcoL(E9B;9P?L>(-u?Go1J%8{nbuEG8Rp z;!>Pu?o4>%p(v^bFb|UI_F7dQ%rx}IJv_QdqTjTUzco=Ms$ld-gD1~{wpPki&VdXB z1F@~&sl(im5D04gDNIn&?C>@r_7^G7G)&Y7Q&D(Z!Tvfn=hw*7nX3IZF8ZU3iP8P8 zp2210g@BLGx9-U}(8!>+Eq`vdg>cOw>#AF4?8rbGbG^lwvC=h=clPsQY+ucdN+COk zpbw#`NWzsNF}Q@r+O*aIAx62B3*-r3U=2?>HJ}i=#R0dPxC=w#?yh3qbp35^DY)qp z7HDhpCvn@+VU?n!uNt*AcXEmRqCZcbORk5hSAj|~3C-ZCtdBP*^P4{)0-mOr_r^G^ zpbuRs0$XqApDR(YtbcPLsv|M6+(1MwZ2KJ_Ch+=PIAh;;+ z%xR*VvPhAb@ORNQ;=fN^!xq$7W!=yMbzH=o3*)B9>4<}6PwC9y_%>9g&q9H^H19vT zTs98NX`kp{i_$BpWCP7Mwr$&V>nXIvU;K&4_3bG;LfrW(Y!!T}7JT}DUO{q`ElRn{ z&7uT`i;CXri%K`M4L6Q#WAwa3){r0J&LiyTA+I6>A}^?AD7AtU5ja_UN;e8Enmanj zndoBM8Ya@RHb^81J1|W>+T-LL-HG$qjlPANIhJ%Z`!VW`RAQt8v;}(2UkKf$W~KX*n{f??%f1=tmmb zh$V~dL6`sl00002b--Vh-)8@a@-kyPbtB+^Gth?n%+#i=+u^QVwFUEfjOyYkV5$PyR_tW4DE~SfIH&hKLAM>r3;VAWCZiOri6rX{h6s}{K(gsXCC?xKfbu>tYy{4^Qy ze^1Nrq60Y_!^P86m6uXy?;I9OauO5wCXL@ALEd069qh>dGxalc>9w2yIHtm|Ttf#2 zJ0uw5X)9-D(rnTv90PO2MsDmK${k<@6ZB*RD7Yf0kqq1_=M-L#O5dIHfl@vM+5B%F z$bdSrooNHbd{Cf!0t?I%F1P@KNIKwA<2sd&XgHwNpJv3)i+GVQQ^Wiq+&CLR88s*4 zGu=I2O~Yc_f(Q7EB{7qwp4PlKcFTJX=5TrS zy79$W)RBHCWt9q96~x|f<~44w06pvrnwqKno6P9NDf&x!SGZ7meEetw^o(_B_8G#by}LNQ+&MG0b=roW@)+hwJymD`(y*06cP zZlkUJWD4E>(!)O|$;#uxb(C$m&msX6Nu*C0Vn>w1JpLjJqH@xrfg!kzV!g}!(gcP4 zySeN5v8tU#wVMhxO=i1@h~I6QFe}PC&B2bP)3v5MsX-YB&V;-sPlT?v8Kwo0ah_pN z)+@J&)UqQ!VXyH+z%}K573+2jUtKDMT0el=i||mRe7W10_PqL$QtUy2a64A45Kx}+ zV(->(=vOujVqX9n0s8c=B6-GI4*zQ|4KJS7?&#z$#ulCchn zP1N~ZJNxlk33l8Drt3D{zSAadMs2^CQZ^0{a*`z&s1}m>TI}r{J+UBdskX}YPXX<8 zpeR$`gA!?N7s}7idrr3Oj*yA(@+|ow_*55Q;zgC_u~Ved?ncX9meP~SuB&X(sSlSr zw|V(?;JRpM8THk8j~Z&Eun?Wg83e%q9%j=8kVAI?xV%q}eszok`jU2&6iW3{yUAH1 z<2J2cpMCaqRi$4L$UtPX5@UDv5@ssWek_8AVm%{XJY*T}sg$=sX(gVehbR5`mMYk< zt-!`uyc}iP_aEH>##Vl#j9L4)t`aisE*YCjAr@)t*=8_f{qEZ`7;WtRBX0<{!Kqfw zmtUI2YD^O>Np4qxN#f4)u-B|~_z>A~nNLr7dVinT2g`Pf{0H!tqVmoy^u?@{G%Wcf9C1f3P;o#23uVzt8OV_dWE00t zgUc>Fq0RO zSxiaceYQ|729z)8^Xew%8`{riE zfKF!nX0IRgS5-4c7J+cTmHLc`5Zn&M8O~EALnKG0vXwS$$we=KWgjf+T)3sV;zGRt zV%cF>29Ii*!440;K14fK{34Dd$pG90j+yZs=yX9AR?^)r?U7sJ%FNZ}gYnx%?Ct~J za-;ZxeJG}z1mL{jcev|&N7Er99}JFcO`cJIu>J>J-0X!1l*Wne(zS32r1|xW|4Drm zO+1L8p#3VzuMfaaFHsTy3bUbSp_Ut#@XegR-st8Rd zd`{^~KAH)xyE7s;Eu5H!F5lV|RzS}_Yw=3#&5x|+&h?HS;iPR5opADHF(7T7!rqS4 ziVqY*lKorPKl!5Jp?h%m-J7>Zxo_3L+(Qwq17irSurBk!5F3KmMfy5)qNa+gfr|T& z0yNneKE@cfj}LJpgW2bW^XS6P4_=plK)OXpZh>X$K1V~#vl(uv z5`7e{^u)ZQ^ATSgKU^>IuUgbui?LO%3px8Sd@Lio~m5FcF`CP#s>m0q53_+@#Yjr;?VB-mzrD-q^T?I4R(ay)3+u~0eSVdC6aJ?6zoycgm=6eEe7DV zX9xm0JyvKfb@ufyXNeP#-9E2ZBm&YI;}MY}(ZS_YACh}Axz*mX*>PiZ0=_v&O_im^qpHrV_N9b?)5!;(f zeFV5PUha1msqFK$ui}HOCn|OsRJp&xF-N=NZA+4|y1zR;m-t;B4fdgG+3uIl2Ezir zi_3lB-dc4S{Y}(6rcQL4oDZO3!hQp}9uKV$a{_ua7?#_i6BsC&Yf3wPX#D+PK$FGQ z-Lb@GX`kYCV0)d?>mf53#!${IsApJ4nAj@1yrk6taz=uy^u@(pJtI_gaV_Uk)oh_~ z5KJTVtkfF|7qE!BJtBt9X&_ysPUVP0{8Urpd6Of<#{E@db8^gv-Ppun*8M-SwQ1%` zw0^UWnd-@xsu+{6-zU9`OXD!ceZ|t~@lS5NZCJzluG_E@Q++X? zz8rRNwJyg%)^FnMcNyM=bs#$y$E@sUMRBv@J)(^9W|hO0QL>tiecVaFIG37DsV2GI;0(!VxkrvRYe zja!>}IqfoR?N_WT@>m<49+vS5AmvNW3nu<9m+|2w$vPEujdxK58yLaCinv1m2T;+_ zsOu(YZsf+SD|)iQ4P_bn#^?m}{~U&JR~X7nMfPioUeJn=N;NPg} zLrPdBPg}DThx5?t11B-WHWdMZ=SYQ~xF=Yq*AkZSUAc=6#wC&@z1AGejr`1$Ns;y4oyD}LR z<)>H<4~?Uv2h$v@H>cW{Jgcv)N~uiY4ae-|jFeIp#P96uaw1s!61msuRWi2jI9&6w zdU)39Ouo4I&4A(x*oG8%hTpaVCc}ogb>U+kQ-boOrfsNPOe^Fabu|_7cWDfw`|jwZ zw1R%1+>~jsqO6@iV8qWU)$K{$krSwAw;lod_ZJ%l$ix%=9S!qj@iLJ;*+uN#Ll!-n z$(0Rs*ax=QZ9>Xt$hT2lcjTVTX5}i(J%1j$U8~rn=xLt%6YE;!EY~KJ3@*{oSN$tU z@~5I}zFt7@0z6`3+w|SKr==PSm{Kz)P>@~oJBflNhz=P0;2N<>W0vv7rl(&)nxkAF3_ zsL+P0Rx&@9eG%L9U6U8@E>##gbvL^3KFGrJt`vJYi*vzr@|1O_wY|X&-Li$2Ydm7c z;`m}`t?i;8g$;e5<>&t+WZ&T4qNF2~;hb9p^q@78c#B%zK7wwO$l&3eTj^}m~(6V6@9g&Mww*Z3qf zq6!VVcuP94IR`rZ^@L7Dq${I&I+d!imAkNmT-P!_Hqg5wK#;r$Z*v|bzytkinMD{o zkssWVTo2^HoCLgBrzErl=_fie`#&Gz#lNYN@?HOA`x6(bR%xpP&P>JiS27r2$)4wRsNc8J$!@i|ZYq`pwaW9n6X?Y7onHz3KCb!HE>bv2ge6ARfa)-*0SC}EfZ zs9T)rlt*TZr?<7$v@M$cMo2@Kt^^$JazDElSiy-0 zSzeeVaNdxgcf}z476*izRi{`$BbpgmrpI%OxEVc}O$vWUlUa43QQXr^!R|Yvat~m> z(c0R*0;Jrjdz|e{3{~BR>lXkgTzy|8Jit8>Gpqh~LLD?;8ohT-2b9rnI891A{?&E9 zrMO{$xvNBFNPPOS{XdxaD4d8vB!;R#@i6Q9wQof2XA_a^NF8tToPqd;yYj;u5`lC+Z)Z8%q@lqXD`w34OOD~{F{=F@w z*xA|ZMOlMJEjxxqF@+n8Z2Ez@rav&14x>Ojy5vmW$4+6XZoRP-D|ixwVgNbwFGRh& zGH}x5*~OgDS3~|qGf)~1zK(Vn$MZDA-MiF0(AX`dh(oFmQ!X=kdGWfgmSjTa4;FX8 zY9-wxf6siA!(#HM0rP8h-pb$d$A#DtDI=jt6TbvKcjEaNKTGyD%+n}% z=!-v_cvMp|L3zsyz4M^uDo^T5z!0Sz0-L!Ff9rq%$9K>7iS1=@XJ4sN>NQIkuUL}+ zwXp9)ma8z9f7c?>yLE#`K!d_O@_RmM(O3q|ENwBM$UT~cQ9&_~(-YzUn}FbNUk_H> zD%fVe@^^Vp?tM$6i2rTEH~4s6XG~n(mXFZ*vyva+>F&$Ez$lgOpBCL^;Nz2uxqH$| z$y*L4C5Vi1v;5smmnx!kshc!4im&;LJlp2w__U5M0BjGM0$MbIO6u6`mj6xT_jX)i z+=kk2qDG|ph#m1jmB9)N@(c1G|4+}P%*zi?;zCvRnAJ1yzMihhOct9z9J@D8CgbiQ z(jq#q^82<-fK-+p&HlfIk&?Aa|I^%iCg*`ICUo=}h!6||VfD0qG0Jt{Qi~mg2z;pf zlftM(wnr46(;oT?wOz6>w+7)5a+LC|51+NUsaA>yLcwzJr;~B~G0&8eZ{5O`P&U~d zkOR)cUD)P$oMk@Ow5&48troy(2Xuo)b^1`{0OORS$YI>A;|7zxJEHFF3Sx!<&}eGp zQ|O|sTRthGC!^Ubuc(79vmrRhpu%@>>>|y|XOmIb$p7FqUey@pB{7ut*9ZqsF50-X zqkEO1wl4yXf^PNN-AGuKmB*du7N{TN0qP(7J^0Du;yzkVk1suVc*FN@bG5z?J^4L7 zlbC1zWItgt8nIVo%fZZ4&6HDU2@r*j^&q(7-6${8CmD@>aI7@a_>1qYjwcjsp09_B zX*w zlENN47mVX=iNnZ>oPvoI#5!NWZE}Cc5D8~oCJ_CP&7v| z6EbToWbh8NC@0&%(hL1ylEBIw@P(g~wBhw3ocn(l&8slH(^zxOLd+>d_I|~g`y@1- z+zM9y@7B5|{fk$S14fR#`NwWrxIo$!xs^Q4m=qJ(*0Hs*ktlpA2>?W%3~^i~pDB z{c{~`p_PWKoKI)e)24zmM)(YTiD2$?QVk>3%BUmF`W^hL5jk|PEDR>VJMwX0Q^-`4 zoaTUS6jrVu{nzVzch)`WuOtA2HG>^LP2l4{89qZyN6SlvvzkD%8d}UR|2n=w9unY@ z_%hVFM}l6gg4YjWK#v|eZ*;zk)E0O<;fMTH_HZP^2+rYj+oMjvEg4VmC(<`%aiTU0 zi)h+sNcWOzD(XY0Ld`XBZUwd;^Yk{2miWCx{3!c*1RVe1J)*H*rbq@g_J?)1F=!bU zeG+ff|5|GW)p$SxlF9d}WVm1))g;Ex-Y=OtE;t$Rx7I_KoPb<9Y>b?Ub=b!uy{Kzp zqXrGTw*sv(XKgu;v_IVRW|R`r!S&nMz9!MtsV<5h8Xl_rdAa{pn(8kQfvl$aZF(hX z@fbi6Wwj`nFI~hQ8<0f*64{PF$zr6XP=lj|fBC^JTRVKpRgrAiN;(-I9_ArwP|i57!>j{u6a&KbDMx@*Iz z2)6?w;$5)dk8u7re%oB->z!4668xzXd(os1MxMYrZoz3&9A4v9sA`S9C9EEjd0zsp zXyLBhu!B2AuLLq^Cy#X>34wcy>!BvL&^0d1!#b?F?u83=-giQ)%1Dq>fHn1HwSPHo zA;5zM=7nt{Ka?%In%UuzM97I=3v_hSVq_LN1HLLeGCQ)HjR6W+7JRD*U(8W}-9#u! za>mEdq-MTu2m07)Z);9+pkDPoIpO_nu#zY)zJx`DGit=*L|B~L% zey3M}o;Z;4fLYa7-UI8e$bGr|EGzh`T>10RgWs8=XIQ6+!XmSn_tk*S$vGzS$(w3{ z0aQ3da`~FgK^zYQH*OT&wqQa&l`OoS166(5KGp(L)uyh8<8mkm-n`vLaIM306$8A~ z@e8d#;CWI1lRCM zd3(uwD2afvz)(h&4OUJGTTyvW?5w3SGCcE-FJDQ*V(glrlivOulNLBQc>oO*5(eaB zyG($y>Y%=GlPOZV1HGQo0Pv+scAx#j8p?C!WP?b^_YvgCe-hfTZBy0+z=TRDAQh?* zy+*6W4_yn*-AGPZ>TP2M99eNxX9JpB@!fKw&#x`tQkEkH`Gb_}QA)=%rh_p5)8vlA z0F>>8Z2wrZwb=Eb7x=Owb)lgmn!W&V!)Lx72MR%$<&?1hl$JNG9>R-o8@w%fV^pGY z(q@J24&uJXY>P4P%8rvmTq6vmbKR)VA;L9(LmDZ~XZdG>&+3p}|}T1s??^do@qJ?2r9_ds3!8hnKn$TzV7sh}3-rCnTDCJE(3SM)9c2kn_a&(b z9?T~QV$5P`G<6yBM&wG`S~vpo)mR9+xY9_T3%-_p%X-7uv?q=doLfUAJ;FOV3<`yn z%acu(xE!nd(@*qEtR^`i{g!-r)vf7zag6~cj@S$^>+I)i$Q=)gkWa{$d3RC#bEzkZ zFG2ATQkHZ<$$iJ!e*lDuEc?!OJk?P~N2~sy>lEVK)tBRv7Q!&v)18HqdIM{AiCTa{ zgIU9agL-a@+6w4&d#+N;Bs#O#(w|5hOxD{?MINRa2ral@NamCrhp+*D^+K$aJ|p5F zyC$O->2H1710=084*nPQWTu8aCKYa2>mq}~ZOM!6G=^w=g@~FsIORYSu|3-&enodzUw8cl9@&~iEE7+jVDNj?6G+fz}JPuQ!qg#l>@ze3{w4m*I zf%;KcKCFuNpVBs1S@s{5w}b_kWMVhoC@RFX0*KIGmdoGQ2{yD_KNLcqyh~ugCKB$BhsND-h=WUm!#7L zh`@8^DZJ_HLZRZNclQ&7OfFG<-H(;sv&Cuwn0FjAd z3TF)WKNK=X-!YtwD&ntRm!fd*LP&xl1px<#%&_l3;WKWDvYfHc*X5^i8znv+iSS!hl*P5#f@@B-{AnYR z3CV8*5!1GI&JChtwE-DH@ma<`BbriNNzOqoYHyTWk^yE6tghH1V~-&-i_yezPs!RD zza>=U5rZs1>icokzO63?QzrC9rXkcjimu;WYuhTfD9KU|9n``k12wY5j3*O;WvtSH zk?THkh$5=3Odlft?3Q?L69=KOE?>LLk+`vhvEWT#pVb^VxS-Ja6Xp)9L{>Ra6Nn$- zc77QMk`MBE-73aV4rYQ<`!PkJo}e?2_1$>kwY_S^3JgRO9f?l{$fP;kXRf<&BJ52F z^;1XU@VbkM^4U(7D?Z=jV2!09e%vKxF`{5WS60y+c1oNoZnk%YB5+vydu<k6?7t9`gs|n+jGV({ zm5y~I3*OuLVr&(-V+^*dRC_nuhXnBEt6AX(85U|0L=8#H;^t2z}c zXsCD-Rq%rF+b*3_T2?zEz26&4s0CLcC`XA?7-@_dX7Y^otyM+CV58@6gGLJM0L5!Z)}RJWse zo~fQU8Cgkv4W8>0MeIO_Pw?6%C2iMbiCyR`w(C&+rD;6i&s7#9X#9xR-h~8&tSa3R zx07)&;lNqfX#7Xc6RP@T`IhtS~a z=BY5hSm>{(L4XLGz)~Z;mfdQ-mAtOkVccjw#zZaYKn^Qk{KG(UdXn?L@VbiuAPv^% zR}-HpR&AoTH?{jY07o$Zx{JPVF?0q?=?XmlMi?$5C zMlC!wUIF*tYYhc3uwUcK!&s2|g>|7&C{lQ2eOaa$Wez^J^ zIzeu3LpW_&8v*p(N`gP6#Z7B70!kQuV$9lMpjeCNqC7bu&R$_P-;x6s3hwYLChmG} z0(c?>6Yw1`jXV+MtWXSo5MMX*ksRIfPyjbD5Co@!pmUv@T)dFgYID_-ui2YV#bkyYFVLX>PnknR}Rt!A3XGn19PvoQ_=YpFb&R)zCq8q~X zqhsSrnhaWSw?Aw&Dyq007`!eAStpf2h5E7MkR%9Ed!@o)Ezi2FH<*-Iiwzqls|Tso zCA93;Tq~VillN08FrensaczWkg`STb5K$trUerdiD!5Oj{UFRss3xdRls)d#4qOA^S+=! zP+~%)oI_tP4GqZh5WX;kbNMnU4|SzY^{B;Y;`-#E8TH2%En{!moNQ!MTo8O8f#v}>GpT~?$HVF*h5_6Lc_Y~m4$ zlL97+`tq4FU%bF`V8<(6D#-*Yq|Y=7O{kc?2@!#?l1*_#7aV7(91cy12cKHl2{I$0thZl)d=zfEi)!q31BL{wYn1aHl(gY`c|_f87k&4nPDzwY!FfZdSosSZimd5trcgx`I;>-87`m7#lS*s z3rop!>Ncybyot@o9n#5f;Dk;2*D8VF-7usBEe1KLbl2xoa7aSX!Xb`Av1qmxKyeCj zGb`Trjb75n`&rl+Db(BaJs6vqXwupK1HJrnBYS&NT~rpH@hU}eaXCzSU;`8IL`08%*>xJr8;l1U4L`Tj4n=f!@9L*88^Wk z4grGwaPf1nxgtcs^hhs*13L` zb?-1j@d#gy+sW)G0IPn)9Qzlc%?$=rCH?N2j2;s!DMPDyy5d1iP+AN8TgYaI?zLK! zM@o($SQk`1tgbGJIuL+|rs`e9>k`k5i-;ocBhOL9JkVG2WEA&(8KmOQYg28{zIhx&fnR#$QwjZ z8%+sAv}uHdk7LbJ?X`rvfk;V3)p&+G?76r~qdSs#x^YP^%dTv5&3XXigZJ*VM<;cT z;0gjPCCIE}U$!p<9a%aXZP1xSO*szj)Y$67`L`?!$a+K*VrDCZIRiH9p+j%4uQb~8 z??<_L8nDTmxb1D8vQ#JHf~<_!GqSIx)Kgfk@iC90?Y^s_&We_riFyH`KCKsiP8Ti~ zqO*iof}3&_BbeaB4u{(C>mj0R|V^X9tCr@{g*CG zkxs@*GsU@N@wFxX)&8h!3gUsk0=UuXX`XJ>4!kQ|%x=Fj3~y-}23uD;jNZsK81#?1 z8hHljXJkc&35pMI*IbQiF0&Db#rPeZ2#Dj*g!qg?-XkptBAVkUyl^t6>6QZ|qpFHh z)gCUPb*81zB`wa1=W;_Jxwj1yks*D0R&p`Iu99T%ZX2xQXH6ogVNXu*;)T)-oG^2It<;W`DvMwY2#9igsn+d2wKe z>8i6Q%?4tBbG3k57jcy1773FTMV6$K6a(0%`q{KZ5SpV;qx@I%f8pn}K-To0x-SxP?LwB;D7Bey{Y9{}Ae=NBfm4#f(&&>F+OP2ZN z9gLQ^o1ECE+h$H&!`IXyW~QyK7Z8Sd9?9ZOn1g^UKEI-aL7za|GoeN2D(x+II1@m- zUuy^nSG1I@qfbi)u91E>9@|ql&h3#ba6e_++k0lR5cJ(kE_rt>zv`eK;x~u zYMZtwNL?R~ycGSUhq^vr;2nU5>)!r2C2$4N4aSK2dg*>-Oza55&BX7O>&4JkX&p=> zF4|m4>!e0LJtx~pedS8#*OM;lA%hRak<78}w!t4`DH#gO z-|wkcnsj)E5qu9-toNQ|Kz`SRwMVv7-Ec)OQGVXzO}fvQEe=q6!9ZU3$OF6pB2$Cc zesmOr&r|1gVrmGcn095@*01{jEW{PlUopxrUs+nM6ljzAr%0q%HVRbC)<`%XHrq8* z9dE?{MJ?ZiCX}Sb)4&o^M|LD;?O2s^+?dy=DIGStYAm@JXyOSPsC>Il+!PfTXSJp4ctmzrG8fx}r zD={27BIk@Gq=bYy4El6kIAj;j_$v?Mus6cL)VOQ^D!=xT>0Lq}B5ZA%1%U|M6=t_b z>cjE)L*)%&Psk;XPr$ohtDo09MUwq*&-GBQOGMhC-(5&Hz?##vl?<|78opUY%kBy~ z*WFYU`#J3ai(X_!G6~aJ>CR!vPy;u@{-R|iS-2m-2L^eyfGpcNm1K{vO&!Ut;8?D$ z%={?aI}wi7i33R;{O5FI=$*{(xbcicSMWB-)MI++c|2d;R7EnN^jxTEHoCrYzVSv- zD6MUv@swg4w_fYOT4JEVXp5!)-u8?Lu+pAP?1`U|S(KxZvW&WYa-}Bb&f@tegmE-Y zfqQbIHr4Sln7itx90_DN69d|?0j?x^3@~MqC!w`WXzw%as0+(h*oP94MiZbxD_&sk zCD~uYzsCGej<>;|bI{Y{(ldz?Mx#9lCuf|W@cdloimi3eoh`760DE%@XunFrNZk#^ z#=|b*nl>AR#O$Rww^3LtA!Yn0Yyt-j9O>iu7zV%|(Rm@{JSc(Jmn@U*<+Jy0nZRNX*#}Y%ZuHl)vpMWxb}k&`#uwAIYD5hJO5#dd zJ?8JxtALrs0@9AXS_;hjynria5Dzp_b(qpQn|W@J-JHFkg&tu~|6D^|fMT*i6{Ala>rVFbxcSYWYiPQEU&eC(^OR zH2c5%bkeV6IgW%U#F?8f<$3)tuvVi}+2r;^5$T|AAOxd*eb{d8RZJNY%0X!{1w}%g zi%T=R$Au&77_Zn3L1TuR`$Fl2iXNvgP@g=Yr7?Eftf(+~sZk|Y<)Ez^GaJCADGNfYC1>fmomO=ue z%)?i~u79eASQ=C$n$Qszi>Gq{AAJP|J!`2fN)f+@`Hlp?onV7=c%L_t7^PWhgirEJ zcP&O6JM5eWLx-UK>7L1!Ar6V1jl9XJ(PUT@(HXJ`8!h){IIYjUJ-VT@yj2f+S5gYb@FpY}jdW*B*or_qXgez7k zIm+flNi3kT{dG@=TIpJ%Ljykx>5Op;cn%r)!!Vt=mh@2i5&?rhZ(@NTq(8+4)<(J~ z*h|Z}VYRm7I|j45wL2rey{bxF9FixP!deE80Q4McFrDxsutYoU?{gJa;W!%k==wF2 zc89@?@J12A$kb|7e6AXafV~u@T9WBDlQda*D!Hv?d1cMyg6orF9>}TdlIoQA&zg}y zPm4QeYG}HUSMP?QN@Mtz(x+#8MEg)5J!8wq@#d#c*|QNzH)Cr(l7hluQUZ`wBFtIY zyr%^scr;%G%~I_6gcAG#5#m5wCpSHVM`Y~TvdAdqb4m`6M}}3mQQZHDYxERRAv^Vu zkPkOzFsp0LBS(Bxi2Hi~9*qQ}CF9Ztj!{%E=0?w3YISP2X<$oq$+byEWeg&~q+=EO z)f8QhX)lzy$;&2r7=~lWdEBMla$;u!(mdD^13Nn^>-J$)N$z34N|umpK#yC^=ummF zwe*uM?o^^Plh0327S29AZU3yoJdS`&%3z}*WD^i{9Wu95v~J`52Z_N|Cyw@)?k)iv zl|cj7y8HFki>O}e8!a~N*bM%fZ4`Wa8L0P54NcllUui!pU}c8tTM~uz?sj`axmo}# zk55?YrMNt@9}cn-wNs=?VLiau5W@>O=0z|AzOjHi!z(TBiEvOKG^=i;s-YhFCVau$ zSr*mm;VS!}9GO|&TomiDdX6gw%?Q_pHn~&_WeJf%MQOObw+dg zaN7cOnIRJ4Bk2uXR!6+1i$8LYRUnB4X^WiVf)8Y3(Gv#$Yc8M~%4GvKCEQ?p~n&Z@Iq zSA#H0j)I=Thw!tK89l;;0b(ib>Vnm*O6a>wp@`L7mkGhNc86rR^IJr2W^R9f#@ujSBF+?92MWI{%>*YKp^6mq}^pmb&F30KGhV5TFUpO4`A8itIk z!Ys+4Bs|MJj9T;$5L2TXN*(VAtk|H9IOlAqT0-c4ap}8LvnL`D{#8-6FmB zW)$~%T8XN6?6}=!c++s+;2Gk6#HXAtQZ}QiI3EB$cNTr5dFA|#N8)ZImvGsW@-Rxn z^FSt994h1)dkO*;N&9T5NNPatNR+mQ6k?Kox7YhrCr+cFids|_8!7NCW)#{R-*54x zcJPPG5{og5a)vVqI$V0?{}MI|k%fKg{CF@Pcn%euf@e z!_pp`9XouL4*~nbb9kHBNj(azZLHqS#uvX%z8*KbjKo1%jr?&hm9#ZjjjefP2@A8! zHOGbK?&XTlB^I&xsH6Rq8zg|8>`KN|pSd)YZ>BiejTK%h+#F@FJ)cgw_3<93x^QT#av#D9aR=-m>5B!a}xyF431eZ7oAqqb zLT1`wp#H+Rdtm+Yh{JC+>IyZ&(S`(i?P~4!@g-$l}cQsk0T=GQmT&4~TQl~@%2s9F$Y&HD{ATbsU)0|+H z!RbSCr6dlV1k(1n)Ft`;GBZHJ701@e%QBGoWP|6fh3-=IS3vAmEON~HcQ+B%0-O@L8s4^E`W%B8AbTZX+L+C9Bi@oV*s z)JxI(>}1m(qtTt;!h@}_>t30Bv{JutMVlLUz?;BV0~#>dDmp?*aV&tGAK+5*y+`*uX4v+b-`Ip|S}JA7aTjIs|C=@l!msy~ zu5A{+j^P_j*0m2*M;hWCxx6OI_UA?5QZ*QJ*U1ppOv9g?f@=k*f%Os-;II&=nJld4 z^wT=$Z3rWyr8eNSFLGOAj1ToT$_kwrPGGQCf0OYnVCllgvD^}QET82=GcGEWE+maU ztd_eC?|gI7arIw30S();wK?mZ)P$9L%2eiO_t|!-ThXL~?VV$~f`?aGrbJlv9saI0 zME?N+XE$vP2-zhUj2y`dv>Xt>dBK`FPNpEK;>lhaTHU$*UiarjvO{Mfa!wTB;GiL`_J7=^Obsf%>w)D~`nIowxy2v7SK+u@Mz@0S!T=>4ozp0uX( z^WDHaUWJO`Pb>)2l^$;&T1;5R>5F@zrD_!dVL+`6PL;^o2l4n?*;)`8_MJ>CtCIgD z*A7f#;Lb9kb35e&*~VEr6q-T7wdlrNEd{=+2xK<7$tEX=dVIS+u! zx{_7GeHUv#9xWcBQ6H0phRO0SW;Qi1a5aCVFf@A$z%`W&1T6mTaP18kiax}%%2B4< zt%vGfVdrtj3eJTvP)1<=&OUzZHwr3Y3ZKy=o#1n1{X)Kl8N52 zMW*K}B|ZAzoW+`wxq;ahnPo`C+V(xZt>M?MBT+~T?-dxV9(!K)wR|InnsXZLv|b2@ zP_h*XctdT3CLm)1cF+B_(BrLZKBs~;yK+F?7aQj&An<*OFfpKnKsuxk%ZA@x{&Y}& z*#&w&#>R$8jJUojkyOT{V-sf`lN8%Yz^jee!c%V}^-)i6vIPG)>tJssubmi3OFoOO zl;g!YwA$X_3DcAFa$vqP3+ov;fG{=0mgS|T3Rq1Z45DH_1ghlGt$Bn#8s!`EmZNh9 z!|6lxU*HM2FtQ4b4F49(#lJ`63P%>hkoc>LdRD{mOFdMaiWhfvZmGO6iqijq!{CH` z|MQNulP9NUC=ge}8TpT(b=;t~w`&s`qZTTGl_Hn5!~@uU!`1R8|{AR0jo@XhRy zoGBHxpPysbvH?vSpOegWlLhitsNbQ-iio4lxVgUuV_AqS+j=PZaMw2uc_ z(H0W9yyg)kV@1;&&F8et;O`%>n&HaL`S}pY)IC{8_@-1P2%>9~?$G0}^G~{XTCe=} zjrrCe=RK`HVi0X5#iQEiN90t=l&TeOf}>(%DZGgHmE%E;BbKASPk<^zza+1|6YkVf zCb6^31ovX7jAuRO!W)@8v7r5&m2k4bd64BAwg&?JmVs>o$&+(JEuEoG7$fezOpp_rCU4kNyenuILq7Cw%5;;>aWK3*5XZ=y#Lm9t)B zm~>$hr)ylPe@+#1LR7YVz`nyW9Y`p-k#EaBCpgnA&*(uHIGC7x@xg#1!3UAUnx_Ql z0s!$y)uEH$TpoBhFEGKT#0=6D5H&I{GI!(N0d z23=FR-9X?5C!cvq&FT2shDAS)BJWPRCwQy4OAO+t1eDG}M#CZ?8X;wT2H_(ie>g>V z1gpSHFawaP)|8b!V_}z0K%kRrNj|zp{?oa!DPd?XTOhtaaAlyq&vOcXgnQqf1bMph|<#IC5ZhAi72_$qf`z0+w zzDOpiIWdzf2?yYyZF#X^`n1b5ORhRGDxcG$l#1~<# zRxWA5Taiapt_Da8uE+R;e+|@pPCdo-Urd)m$E|6bE&!b7{Xwqmy(!eB>YP zR=lUCpS!;iH`lBy^&`Wd7k4c!V)41V zFS#B3*1~m4brG{V1}8srXu(Zi8LVz9?dcv=f`@De29zJVv#)KKb83j@+{t7_rbsC}{yL)=zPHUm=tn$GP-N)0qqd zPqM(r5Lnu;KQUZ$xWotVrC#ymc#1e59!h__!TN=B74sR~O!rmm%C1nXr zuD^wlVt*^{6Ai%55K3OM_Hp*83twcqD9wl`FAOWheUBzqMx?z(+49vJC81CNBVUG> zyTCd#W*A;Wl_`dZ7Udw#x;Wy?G^LzAz9IO||7L`Cc+_-b1lYRTA-bPS3ApV{%^s4R zB)j?ln4${zNa-+peEhcoPCPh>=54Bgj0{Zh!=@)+pXWN^>r!)})@nb5I+= zGLaQ(QZs|SQ8jd0jT!+9j`ml4%<)Lfo|pTN zF$geq-b+%bBh!4I8%&vtCg6;i5(>3qDhAPGewEX0Mkg5PhGpf@j8ZrS{k10-Al5Es3M``ze{o}I-J4CG~Eg3aXd-c1E5y**5!9N*oU;rCQK>o_$7J$sNFF z>-XQAd^dSN@mEz)1T(Xo31I%Ux9-o0hm3ksIjsp7qxV+I9N4(uSvUKP_zqCv{{VnG!r}&=h9Vr0;8Hx8^Gi;&d6LWZ9;9g0kW$9WM4qN@2^UiE3ZE zb_HHshyUOv_s7rQ=p6Y3m57o_hri+L@>R=*Yqz|2J~J18>u8g&hjnxP#}`-O;co!v zdks2GoG=G$5dt7y|5*0C@bk3L98Q*!-N0OTW8t=lsN{ep1msscrFjS#B#M8$EuBCZ zzR~7rkc3j~LNy0Mya@~>A_7P!>ARC;8C!2l>Tq#@aY?M-k!#;u>cJRuwbc!zUZ-d$ zd<^>mr2mn`g;8mh;)Qjmbq(?}z!``H6iuYTOSU?PELSSJ;Pyg|5f`mPkCr z>|TwQ`-sds$^cCgg9M!Jf_AJ6Y*fYM+9Cg}ga`iY#EdBvBXld{<$8sl+@;03} zwG&Kz0+gZZiu`j1E0@<}{#L@;^0kV~y;$Nc|2sbx@za4su_&hvyK?MT`z&o&9xUQ+ zj1yiqkIHLl;QGr>J6I8n18fIK+uEs^1Csg7T!)Bp71bzZ|IyAC8EhzX|u9oXbf zyc?%~qNm&S3ci)_zNp^nj)6vmIeXJ1(cP9IrbI8?kfC?V4K89+1dk7xB1x0^JCnR^ zP&ZfMeq=>AwO6?a?euo%Lfulb0GKQkUPN4tfEFN}9s0h^^Rp_P*R4eM_P$pAnD4Ze z4=1`d;y4r^wI5`u2kM$x01Id0d_AV#f24=fJQH2)-b4xd3=Kal*HMoJ7?l{Iy6ofo zax~Ym?=}RUj?8;iptV3`XpxHr3`UA!t6r%6*b#xgpid95F;EW5KGlOiFOM8|7l8}r z%rjj6ak6Vp=ce4VBA2R>xLO&kLB}z7_u=~0azD*OpUvcTVMz}On+ir(>D_{Jxq{&o z(PdW~EY8n96oGLM$Lo%1GeY1b4w4}q=;P!IyyhrZfV-p_LPN81_1R!aMzXh`_V*DWzkn2l0n&> zjS2t@E$_`h(ez%ym}*mSv0G&2uh9>}jca->@DSO$u=GWP=ZU0cp?l2?C-od>zEwHjW+h}ipPV}P(rNzMm&YB77Z+oelpto9 zs#qg5&deqC{{Q2YH)FL`JX1Sv2r&04dOy;pQ0p8Djpg&grrah={gsy8s$rB|1&-4V zrt=L_jz0Q940+xR{8P$P-vd{;jY=My_;3MeB>g-dK4FH$Pf*^=`eOl6hGiDz6YG3S z!H!qh^wQ5(vKDERCD$b)`r>|R_OiTOWKdt-cZB6sC3_Hyk^Kw2+&AKR$Q|d_eTgPm zbRus8u;W!(tqPq`lkbb;oM26}2Q>#lX=x2pU?6hQ|%nZ?;h&x%ZwhvqUx(S2$JQoYP0;L3JeQYpY< zWz1bPEVoI1XuNxXexY`#uYv>fDt?L@MT_J<<^i{Bq@;kkx5VKp%nsdqTHGmZT`787 zFw6VzeH_(jI z8})<=p`#k9+DRy>tC9@2rOLlr1@_G~ zC2AXuMx@NRP{eolNIlYm)Oo~Ly7rv^ol>I#+Pw4oQxPS?tCcVCD(|4GQ?iqM@`DC3COw_)Rop8y~@_{v}I#?5ZJ4v7!;QiJ!Q@Z z_Bb+SS*1O|CT0r{!#Rk#Y1&r8kvOy74o(0aFxP|XY3JW4WDK%C^Affa`?CU6*o)4M<$53YtGceb>M5FoZ{hc|@$AMwet@w8&sKpKb z3%lVhDb`70c6(>^;lM9ij_B9Jm8OUbz5%@GEA-;e2{GtXXX~<}3DfIT)MV2*!pu9} z?1-=Up%~9biv+f{=cvBJF2OqzcY7aXz+v_|@APBV$S}a0fVgT;O$+Hf+_J)#*P<|2 z+|r(Xe&sDNT^V)67d9KgR5=!XUTdZ8ey*-_KQ(c)xOLJ_Q3?ZS0o!A(+zyGtDQREM zjm^eN$>W{}+03{wAsvcvpZM)FjL;2!ygKhtK+OG;GtvrKQ=b}cGiWMLE@temvP^P! zsZNXk3Rv@8c?9TdGy$Ax{Sw>K7hD7Dm zt*3b1kY@^B`P@T#H)t!x0tb39pW0f=S+%V%s4^qSWBy#lIyzk%spAv)E@B5$|b+PVjr12?>P3sUCEiM~^tV;FxKM zP$Z<^s>Lc98$;sA54{JZ9L=^Q)a&ONR(0lQU0fP%hL2Ou{ZEujCbF#vWAFMOhA&Q))wUel#8|BldmmiZet!i5cq?TAmlg z5G+I2OXkqevDeg;*9tO{_jeY^yE|E?-u2BBNaRcCW$NNB^l3 z8i^22`L0<&5jqdlI2#W^bNUPeeNgQHV-ya;S;Q{~2XMtZYR*L=YoVl%1&6e^HPLuB z5sj!sJ|f%Xix^075L||@xghg3Q@A>mtb7; ztk^8<-w5Myj*5MB1V1dBIzvttL<4eLqM7*8t@p(V>u?Y8eWn$LOWH|cZA2I)X(rk_ zP#u9cP%i9^#)o?CzNyYJCek_Np@;MJ0fbfC`DyRUsD`nllMJfDfTFTkv_Ufld2Gbc z470a~7rfg?GYLRVQtYOMz>xNBb#pA)z1e4Iwlox8=p08bDH2;yO)*zphq$zT<-$Pe zukON+FFo9XQ@r&Q=Q`pezMigu1LNks+hxh0F}<`Mc&H%~I}4IRq8D7HHja0e)Fsy^ z)Yi*+Zy5$LzLV@j?lv(Q_e0}6TT68I9?uYS%*X9=%sX#Rco4McPz+mjpGB#)Q#Q>9 zScw>j{Q7C-j+G%}hY5dLO*qGXo*?3lF3Yu}E4ofb@tA&24IUj6>$m;*yNeLOeJgH-P{w3EAY>Br;0iu=~B#Q^cGQM+qz4VVzy@Em`l z({=;&r$VU5QB5O{j50rgk_oGr;oB5AFuvAE)YZE(I5jX3;46g$<8I+WlGu`9P*24Y z9Uxd9)}npU5(h$xR`!(XTm$TN=q6d`U)}Nu-}A9e63>$VCv5vfh4OT;7nZT#8~q#@ z;&{38VsrVoEkcD0cZvxjy`0^8X#m0D#0Au?HlU;CNUyxjcGz&7;WQ}i3ljgoN!>t6I3>N1@)Q@6JI4Oi#ftHFFyNQPGP-x_lq?NA5+Fe&Sg>h`$H*isp$zZA8?i?jgZHT^Mi!76=YizXY~!*#~#;!1U7`ZO6V7RgPO&aA_ByE0_? zt)!Pw`|Z!XRCOdq#A=73PYqF^MhU@_sfH@XpU5sW@&1QOI`y|;(}OcdsV+r~UurT! zx!c0nmR&O(Bj-rB52=JFQNt_8shgn$ts2 z8KP-I*Oa^sbfQTe3W^h6`B&g%FS9KJ8KYAV$9rA$5GgO(kp6Y-ml>r z!?gW&tX5iI8_p#&~Qj^JFd!sW{pI?fKSfhI72k;%GZF+iq z9(0PfO-<7Olnfgc!MQsmYPgbh0$zYv;TUq zB~5k%N!_!z+c+1bR@=ng>_xfV{;%v{a>gFYdfY!WyiI_*iI$Y4-Xm^(AFUFr=X^)x zT*W)Y6TPIAAK;-%$yjTR8@tj!6g`xXhcf>G31g_QXcrqNt2F_dz9tkI8dW%bUEkM} zM$8rVT2(m$7h}ksC7PQd;^?C)R0o1$=hM_m_N$IQCi90}vSa@TWtA2B1n!P_;g|x5 z1e@Lugdk{>0%_Bf+U)c2J0KLoo5Ep<0Ikns{)0jYTlpSt&N3?YQKD9ZQkPCU@}lD6qZ zn;(XeOL21*-`)s<*&$6``2#W=xE0vDw@Il%US|KRK7Vt7%+=mK{`|C-u7+2ZNgOQ( z`l1x({q$i%h7K><5uhT0bEeO?A|;25TeM8+l#G)Zv2tyRT7xD`cL?qXFh!yXr(9AN zIq2?xK9lwVy%QtHd$I&cy_)LzRo+Y#!SZOGwJsu@PCJq%^V?u~&4eJbrg45(Fv(@T zi>RgV&lJUS%4c|W3v1&VxP$y&{Pg6nVk%v3s3M7EW*BsYKu9j}q+vr)+-FMxFnr|G za?)|br$oNqEVnBBQDDH8de^wBF}`$EqSu_+Bcb}#(0C!?-u!de?Zt9Dm=;K&ll8zG zYS?(5hiLllDMuNz&?Z_{vaq9DKIn3GK~FFkM%tr{8(zN zJiDcQf7w=)^9*{WyAQJ$ZYy1ytCS$NtWTm$Ted6r0=N{qc8B~=`A`cADnkMukK3MQ z53&P%UMquy?{!Ul0Tl1$^w@kfe1|n2y0$Bk*&Xyk)!M*V;kW)trY>bNwHbvRE^dR@ ze|{_lY<@O_Tgly49iui~*8kfUUf`tS05vlw-?Waf56siDyUVFMaPF9&Bd&&mI&R6i zFr3(z6WoZ4o7YLwfrp*_q9nHu(aE33ARCtc+$=dF|6nWqQ9G+EvRE=3qBgQ^p5Z+O z%ladN?#ILy2FuqP$QF@Dq1B`$G?Rr`k6YZIG(A5F9?@PU8!(n%(%=&mlxpg|HKyL z68eT64Ik*Nh1d0(N@=#a(Khf-SmLE<>|zuN_J)+%OnF(H0w57+w(GI;o@b3O=%j(3 zRyff~Aom{Wtzc`UBPAg^LPLZ~=LRPb6zW@C7J1!=Z1ycvgB~^|RQ_wT^r}gMEx396 z3$|wSRjE~bWeCLcY+ka;OF;}v{2SjOb$Ox=rQ2N=B0wZk4dD`DS!H5XOtj|W0_sUQ z_FN7x;jPd7gC$CGfxHzT>LS0Xq0~T#@C;ABl(|O^NCCl@IzY*A_x08Q53w0=`Y9#5 zx9&`8#)DA-pW4C7f<`}6c#Ys%AR_?Gq+z<9vk}0ZLpT0g&mU&RmWEob80QGz`o~?| zC&?gk+Gh3Se41nbqrkCQ^E9y6)@4U}Q~_?#`dX zU~y^12l24%K7soq53fG#_Z7VX-kaeJ8>odve;0A8d#d^is^svn^o)6|vc0fdk$iTwxesIZ1W6~o@mBn^`!iXk-c|092bs`xAwRGAn9-G6? z9}~hzmZJBl$&v70>Iihc&(M|l4&X@(FIqcmCoyIBJIr~HRVE7EIDCLxC@G_SXzE8e zYM#oNCTu>Q?uBZGlXbZ&I6T&=FQyqk?1t!z>x(aIx?bL zV&36tr#P$Vh>M+YZ%+V2P$)$Or^O9Z%1Z{pshSL?6g^s*@{JYwnvjj!%% z`0C0OuAk+|q--)TkvZl+cW1)uivd)S*(cn9Tk$_C*(afm32lr56@ zk>ik0$)xo4(4K04*OlaHIS2+k8ry;nSX{q#<|#H$n%i z(kMU)7bNRhA@9TQOKhrUuWBzvrs5_NlE-p!M<*r{)rs~;Wx~(}7!=(xU_m*aqDX_M zAP(89bsOcKaqjHk2thZjB*YG(ToYvvx|%=@{-WLmPQL7_xXA6Fyw&)4cR68Se1`E5 zm0NKj)jLbD*mG3pkLQ6b;S>^?&B9k!ArGkdR!4+!gad;8X`VjwlyG84Av=KF%1;V` zXAqQ7*7Xso_{S`@S~)jYt8q>n>0{JF7}7WWi%F@{w;om8Qp#I()9mqS?T8G?b3uFh zQw|EA!AY5uNoI*N-Cq_(kqv2Kq<=E^^An{77%HNGnsgf95X)SW>hGA(U922|UZ2Nx zk4C74Zd`+|dnOab;T`0BL8^8>|E)YgGbY1QM-MKSG@DnBAn6};NkiamfQxkEJO$Q3 z3jyd64S3TYAYk@4kwu0eQHa;bFbI8>$ti*8j=XZT7$&Grb?X!6E%FGA5xBaDE@%_D zY<~Xu>_GI7yD%z|lZD?`gEw`12?2yw+XGt(WI3F%A|;6}Y_4xAzvq5+vG9Cliu7+W zWNj6uFYZg>UApZBVy5zy9+1HzY-htFz81_| z+#Mqe^|SSdY@~F?JfEFMl6h(>SdT3mY)@J>N4XW#^&Q9i3RYpT5abA;(n_0_Eai6e zbTo6`d9j88OHfrOG50{V85KaSlSvCl=98`H>5c!ZPw=jQD~OPprdY|s4xeV_JXa^u z80ZWb<%Qw?jkb_C0a=NWE>ilfo#%kYGO=BPK1^it3-0pol>bqn_=>N%&Ys)@Tg-?A zZC@8G!#8k#hsroVaJ%)$cvp4gy*$``_6m6m&ZasjN}CVG=-29Pl*3(j3ugZ|b}n7h zxL%kCbep|T+}=ttpeGam=%QXvp=J!)WCGR`B`PYlb?2Pu@Yr~YT|Pym9#;9BoqvrQdWgyaV9o2F%kw2dDLp0>pJ>hg zJ9<%;r7~*jJiipP#%&=K(fr=;2Ol>d5|MLsg2-E<%eD=et^ve;l&-56>#?WK=ov-_ zK&rk^+ ztR!zgzE8bb*YHOZx}^W!)vtu%2b|2H4d7pswEgt_fyi0TH5erdc%84F8po`BF3kER{5#eyAet0}Bb&)cn92$x_J*>(u5w_~} ztOfqrtjNSjMv~fF`a4h&5V>6e3MRh?gVAiLEIk6_Ju7)c2XNs{Q}*aYu`v-BVZYio z``?Aznnj(0fGV90-;&-UBhqv53U9o>N2YXKu2S-1=j(AX za}nd~E(jHSbjfd%uMdioV#Ku{Ol&Onfht8*b0#jpi_*2heH?f;kydUeotz+N@pj7h zDkgks%0V@i8`tsO&3YLa&Pw{X;UgAnOxnvaFdfCjLKnpqzA0&bP$A(_(uV5}o7r;h z1-hvbWtLM4xDMyp?tPDw*!55T7f(jxur%?fNuL0C0vAQdR_>r}=*!)_pHRYzgZI#t ztlGrajlz9bF?w5AD82_amSZI$wb#>EF@XK@#0sk-787}3Md^Sq8e6j}g?UU}8tT?c zPsqtzlzxXf_)JFDQjsZnf|9lfm`w*v>Zm( zquiVj;tA(xju8!)4@(-(*3IPel7Z$yWjw;%ehTSw;5SlAg6ZoGfc?ycCO%s1Xfbcm zirFC;^V18LJqOck5%jijy-I~&3!0xePiH9*S0V>Y5t1#;s9L}dOf zQ{-~Ny18xr(fG7Gu-3G95AxxCZ1r%+z9l%9Sm?T*s1WFB-2e@nzZw5lo6|)I!pkzF z)P6VEnj}UPZ7@Nt-$F+!g$hq#C|fXpC*NUYUj7sJ0yJ-BmMNop+PZBqE)8$V7Swlwjv_SOZ|W55E3f zOChsOT7;^<3X2y?!0mw5!ql>Au9qWj{WebSrDFOZuDjP_ z-07D8i^4{}YHV-4;|Y3ng>5m2`1ms3Yj$Uh3kt}Uy_tHB{V}q96QK}lcy)L$9d&b3 zC3uVBpFvyncM9=Ei))SMOlCV7i(}q!6$%dTja;e=NydBhtX6G!Rx$!O-$sRE9q=uF zR?Q9wuOhM?#kV6Y>pn)av&5rft;}g1(*>$8b*((R7Ce1}T?dpAI%{2u{S!Bu+-MAI zaKu8R?ZUN1Bu)~49$MhiBQ0x{fFbeYsM@a56<~(HXjFis8wB0a+KZLq4=DtxlJmQ2 zh<<4uQ#_~#e_eKLMU^HnOpj+90E=m#_ zHJXaykGSUgokbA7h z$8)ssLYS{#Y0pJA9E@IwdjLAd%k#lIQ~G5vHWe%?%xW=A=VY^O9;}Vmy_sXoIt>qH zE`8t|7*8GS6>mN@%@i5HS|bx}|LNkJGf|(u56)TEWBTjVQ1Y54U@Z$E)_2?qt1sYe zv;b_qYpn>|jv~W6yRBJeSd>1S@(liJ<=f(Fd=(yoUZSxPlv!tc9Wa@DE)6ro-^&=C z6BP|sZokqv1Zjy+qU~|uV%Z(ZZ^`#oHt$i2eOmhDkd+hc*otxW@K?K^&U$-@d++&F{%*zf zV4(|~-+4pqw$SY_<}hhXr$R^v@;JkQ)hbF};*&`B1h3kIv!yJu(nwV~^30Vuz8e~& zKehib8G={&f}LgxZ7|>n!eXHJT0c(bEGobf?~7T+92+HnSqqj^77SyxqrrD9jF*3? zlQ0Ir?#;To))JZHIbVBVcx7W2!f8TtMcH_XcgEr%u3?B4o(jfuMUF0M_8RiK9!Lg` zBdCtIfprubKS`Td$_Ytc&7B);)N@)cFUu{N#V4o2E}j{hQ}Ij`g!c%RjDRvlmIo^v zkbLIo-0(lU_MCbxS1)%N3plc zu&w~m2fVGE=Y(nU{pks6&tCPpGcVx%+k5g)5k>N~vMEnBd{_7kTX_*&ai<(mhW54so4Z?cEemYG z&`>+ce4MnpwmsPqzpqK&>Cu26YaC!p+8aW@k^cOu$~*1~`>*1Ua7| z7~04@o`PTuWn%b+P(Rnm6VRsuKM#GH_ZSusJ(z?Ok%H8@QuhGYUuq8QZZE*FB4-T z!vPX{nYhNg=jiGwWLZYP5eI((G}oVOed2{6g0OuQ{XT4?pE(GRnV*Aa5I!d^_B-m@ zi@Vq3jIk1MielI^Q{rsGIu{d2DAM5_B*(_B*zFF+?O~&TdSTIq1V`sP6&v|WUaJt} zvsEJB^Ar3ZZpf8x7BP?C9|_7xr|db4JV5E@B0Phf-~U*f{hKvwf{Rgyl|?+%BWbfp z-Rt&y2|)2MnHMZ~>1 z;Y71FOQYebwDPSNSCeVG*eOuwUxQM}2u%$Nymr_2UfJ0tTbrH?9UbW5Dh^Dr%*rdu z!PulEX>Y*-lt114mbfitD2D7Tm6C9i#OIKY1_Om7kOWIvP40c90w9xhoO-f(_Qf2C z)Fx*zQW{!|h+!dxkA;8p(RfGxxym>`eF%Emfwkki4(+R&K1C^?aK5F>?W~M2-_VF~ zUz%*Fbv2^ zYoN2YG*WzkIP5+IM>!#t>i9=KKLYz5*%io^%$kCbfhG-SHccGKXw+{W*IO70pABL> z*Gup@Xk0+UkQBdpjg5?5ECDNk+jFU=43v0RynON;Ym3;7;p}x*;I4eYS$2iuCH3ju zE3671S1#^{=#C>RuC1t~_{)b0I73}mCp}Gdxi4+w&*Jo`g~s@xZhNl>MnH)|*wSy_ z93FDBm55=u8mnZeO{8y;Go7Ue8}0#!Ki2Th+RiK^b4Yaz#nFz8hj-J-@;br)E>d~N zbYtBYR9ql#7$twMTTKOF6Vnf$oMs<)()2fb>j-d)Qa4d?ziF8B6hr7lEZtT?cLt#m zHk1q?wBJbw9PrNl|4kK>!|4a{mkV~U0rJ=?%}1nmeq@5$PN1V_3c0B?_9yXHmiLhU z73>_86urrlVSA7$H?aM#JE^Ts*U7OHfZ5S&||Uu@PHhjG@tAR9WBUP`HQIRg*#uC=2Q z^Zoo}I;!L2gSCc9u0*!kTHmQEdmnRk>M?ID2-X^ds@hQbrIhlCe%T&pD2htQ1tWS>|9DaPkXX_l#LX7u7OX7ZCABi=}B1&T1ZmQ6El-fP`I8bW37$= zUZ+YnGEQ96?-15DuBo+OZvh>Ei6Cy^JzS8M{3zefb7wScfKOYkCo)Jxb`s zx;d%9v4BI3j8lE0D$Uw5-20dLvueNB-jv%+`b1dEezS1R{<-PqSvS2h!dW?l_RhU> zAOCbbw3*b&Cka|q{R!&scLs!?G$K4K?Y<1w`B(@t15FZYG7=ur5?jcaJnGcf>3oAt zrx_hs5b6)A!(XOI|5%su&iwME1q_+fx%I9g-Q>U=fj>S~%3{;fQ7np-@JNm|efE)j zTC2*P&rzKd0A2e$#6g&w z)_#vHPI0eFhwK$K=2>2?X14z9@Zqj#Sg9gKtLGcL(}BZ_@b=Tcf@)uG=&5V+l32+i z0edBMcrJdn9nE7?PvZk%Rd$gI2A*PZ58GVzf`^sgAEiI_a89s8$7LFnH`!yv0>z9M zH9*dDb=;kOFtFE-`N8P;hKY~j87cR$-3`!yY6mDWes@`IYrMqEhH970Pvu6?-$#gO z1fo>V>Cx}D@1X)GB`xQ89Cup*c1 z%Y3NZ4;$)P`bP*X;wgv&yh^r70M4Dg-mMiZ_mq;GNo=}rp3NW+V6w=ZxmK2?z$i_o zLvGC1?Rn!8RPvfHjBGOyeZdv|C5`sN%W5!Y&~Xz0@Ku^`;5;RCQjMcHs{J><5l3_< zaORKe=z;Mtnm}qzw$m$m0!gP z6rAJG&Df4Zwh>>FJJ~K(0`d=FCLCgjTK~kpfxzjyDz7(pC>>WGd%oA4IZ8799^ZI= zczfaDg(^AP?RJoqj(K%t#mW&dpm*DybVr^hZk?S;M8Cf^U}&G#POB#GY-38&m14Jo zCp6zZH1xQT#ErR0!V41JrOojY_i>;q7A;qVSBJY-O-;jBVG!n{&Q}jGU5@>Q<(>g08 z#5^ythge3w0pU3QH{ABQkWZX>DCCBDvy=0-al7ELke0ub3;k8RI$zGUU5xRk$^f`> zn!N#83J)*nnhbmhVBU`>nwFC!E04K-t%@q$*6B)J91*#ZKZNQ_YLJh&8m;zrUDfAQ zH;^o}`y$PenR1R(o=}^pbc=57pe8v(ZCdsCd~S9#F?%_S!}waLV!CD?7TjT6d@VE3 zO_+onN~806gyHN=nLV|+ONtY;ZRfA%C1DAS{poMH)d0cKRm>WbCG@q$BbHu33-=X{ zu3l7v3WV=Og^chsi1L(7YKf`b#1gwQOw&?kHB2Bj6tS-EywRWvFKt%GG}C8hQ%yQ& z?*ooi=y0?r@T5f**k%Lpx*{Bt2F>=MSQKFGoa(MMa)(yCM6q7EH%Ee8m7eC?NCP_( z+OU-rs!4psuwSo3JJ7z~+O`EV7m$0}2c*T%FnNi!{A2-gCR1NIA9Ph#Mk>$jh~ZA- z&X`__>B%6vS$HxLT~H$L-HSNhPx?G>XL+vXG1p11H**1QE-iKE{8v`UIlmad@rxc_ zRlJ*Ft#u}XJ95KU?kVc_Z7Y_s0VW0y5wgi__AMK`L&om}BRR6Ihac&chD+7;!TiMPWwEVu!UAa_m0vdE}3@`n7fO2;O z9VXgT8@6W{BEQz-f#!$-GeN1a?WgdZ_ax)&gS`9 z^H1b<#T}}dkB}%~#JWP>4?VW<>JN_P6xFdS>@Dp3a8;i3k+TpsANtGKX9xoRAhL~n zw+`+xsjbB!E*`4?yNvbB!D7G#->I7)7COx?#}+O>Khp|cY5Xusi0w^Z!7~JDox6?p z5gN8bhqh#Q(;q-;K|eAaa!bE$>sbwmT+q{m1mr7TQDk%ugQwo;6whjlM_EhOlh?Epi)yyEOkXWD$NaYQTzt#es^HHxbgY8C|e;HO7QY*gc* zI+z*GmJnl@`+Ya7A06|8;#d<-46p9u{G;A0&_%9K#?ld|9~TBwYkan3oH zs>uO)!T#L8@YI9SrZ6@4qlfmGLuG2>3nBfmG5G?>Ej!K4DjQhzA6vveexqCCCyN-n z`b8YCqHaenw`vf}ha?DL#G0-ZYN<|2iY;&jsZlP%ZQ>?lX^7K2K5nn-p+fAm(7=W% zxo}Q4O*?8gQ2sT&4Ae{o3#$8tFkuwFs%NHjYhR{#C8x~np*?7?MJdp3%gO@m7ZhEx zhl7xm>pXM&3jdB@<`WTp0yK4wm4%+s2I?vD95M`+(2}gg^awpS&S2u`T@%A^rS-;aq}z|3 zZE8OC-v#D6GdxdY!w?>5gDnbY)h!soV+P%89C*Oz$>ojy-c+#i-*?yI6#XyECkOFp zQygW*4ajB<_HNerrI1|cv_$v#S|~H9VPcI(Zk)lDj_{+mp5Q9DTglZt^>~9!$+y)Z z^>7eHhTz0@o!O`E$JkC_UQUyrTh%=~kB_|!3zvc54WNlRt#}yPu^rgqX_|mvHAc_b zt>Ql?)@UC(_N3TG`r`Fel{7dm3MNZ)e!a^^Gj6=3XS*j8>DAaGh424KMhJDnW*=P# zv+{sN0iR>SQ9b6P!I`vD(Yrri}gP6VwzZi^eHM*aKMdLFAJfW;8 zvuaZ)Yu2Ysz+;TbKeHF%s@+%@X4X^?y+uj)?Q!X5iqjKdj812|POT_f6Q$MeB#L8@ zHNW}VLvK>2)CLtMm#8CE=T5=%+8`i1*q}YkGk5Wo&QsuA;a8RY(d0oJpefn}0x`nU zmf#}9g9#+s^`E`;i6bTOxq&LMv;-7ur5>Cv0r9L zh?Qf?A-#gV??v(Z%FC8x@NNeh5ltDF;x5V( znq32p19<3mT(um3`T!bTp&l}|asJr+7RG3455s%GVo_YlVVF$F{j5WiVqGL?Nk&VH z#PYi0r(^jR4H&x2Z`ta-OKFKWy zuV|SPML88vY*T-%xX`;VxoErZu0W3+&f&4JN7YfMn71#?6Q=WeX~8ikqw9gW8>k#K z4XN7mN#VRBGUUY{Uj?UdPf{=9kaGr5Ea+1IxW=(MNq@7_y5HnIIi8M?F?n)*_j!(5#+bV1XLJeIZEAW zNy68K1ree~Xs&`HJ*arji_0xb|NCug+T5lo2_Y z5PoNMn&L*W*9bQ{Yo%3W3SW*lxQe>_9_85;jRj|7wzP&2A{e@%TU)LdVN?#l%+HFf zqpJ>bJ+?(bSkVy-$4zf1bNaG*mkmWzuaR5P5~Mhn;~liEjJGgN1M@$QjVJiH7w;o& zibl1tYPhMKrU$Xe%|O|~e_~1Q-A07zN1%@%KiW-reat@#e>{0(HG5@nCzGT_XJ$Y? zIWFm1;k?2$^mG0Sf0B|Rb5X19m+rBHWMh&dg#tAj%s4BBE8#%pe7;0_@>5{72*5%9 z^&sWG?lJNnyf;~NP;nqnrLXDXWQ%*JoXlh73ej3aB5Q2yAM5uas~^UT5c}2=1iu9C z61TX=>j72c)%w>RL5mk*C%70R`qxY+!L0y^jdJ{7U~F()735r+Fe>_^6QjoXI?uJB zCE_WGML!5>_W3n~`sXeg2SE}W?hsC2Ek+K`|FuHVqSo6#pGC(kYe`RzS&?KKqS&wt z17XY&WYJh}HwTS2@p}!@`YGS5RXqrTS~+(*kO!A%^8l0M%z!%75?SJ$`CYUN>vFa1coEVIN%#fAY$LA*Hl?(x+JM3m zRpmVGz>^2`gK?855t@A}_zU~MYsAOCd_{H(7pK#}iRy-U3cjC~<3jc|$FjX*(3sF* z5;0*Wd8SO56HN5V6zZD9fB2Qi7Uy9Z~auR7>^)1QIuRJ0P-c4pn*$~tvC$#!QZ|Pju4PGoE zG9xP=oU~#9AhK>?Tlq-i1k>|It*)~Mc7cYOIqe>D%`P!!F|^oVb#et6GfoVMBTBg5 zc3Sad;P)k<89>tF&ML@GzP9WTd!Cgl|CBs}Bnp)PMde!bskQZ zn~2W_4w&RI4NOJ;A-VGsG8|5S$_k6+)nc%wVub7M$<=zmatCjnnwgjYAmm?k*emP9 zn|Md#YWO80y00Lps^M!gU&!^4XkK(-QJ-(<1#h{|95+#cq@Cx7Q-m>kzAV6ewnPL@ zU4g>bkPNniWH|B3v_cD*O|VNn$F&#g5e)=Mp{IdG0hai+yZ@Ri2=cBSdk3r5_0~iS zLm);rS>9jECOf9N^PtCC?FT2t1{z~`&RH59eI1r%>*<0csj&!iN><^J9YDis)xr3M zQ@f<9{FdOo_kL+HSX-UP9Pxu}L#(6daD6@hgv%&9U%7HKq84bsPOeGlX8$2p-lmtk zrWjgWCt4hlZVuFwa%S5t&Rm6k~Ij7zN^K>=mJ_awO9;eBKh%brl@PY5t?j9KGbtl(QM!PGl5ttHo-p*Deu7UGjrhLbR%Wm z{b)`ki6jehWa@|`36up-w7aMV3#k+FlTv+^;)`<2fpE#oX3saKoetxFtN}wdK_c? zCE>tk9`28kKREwl&kC9wPT#rrzrl4b$FAA&sDvU&hDv!igdd48c4yn!l>XV0O!f7W z+Q}_%D@|eKnCNmaQ8hkm$wMWpt13JIv3H`atLT*Nx7iO^%K|Ikorc_2iU*U}*4l&%Ibl)e__(PLFNWHM(W)I&+pn9Nnb%sh3d0h^0|<`Y{)> z$6c-HhsYJ^dT~T~ng+k?Sc5ONQF`SxtrlUsI8_CM6Zs`83LGA^&4a;Rczw95Dr+eF z1opTmTF|I3MZcYa_S2mV0%rR!svtsgHs+F&eY!IfyI9(fltYodY`;oR1#69;8}~%4 z6L(w-oO`)yl^Gi&hjy|k9$3xX^JtM5}5t8ad$Fv6Ou zG55&j>1?0So0pI<-vHo8P^<~Dfb~=rx_v6~1A{^D^4g#$+C!uGN;dcMvN}EYu6Fou zI)3_hX^U`^QEvlv%zXP>fJatcMkBS`3S)xF$;nhy3C{Dl1UeeD)gJ9k-S0E{1euZG zX15Wrniv571}u!*;?m#o=nvrr)$OOM$yA~ZTgJWhhVfgR#=qd%+ykp2tN!K?_pVsg zWvu7+pAPc^8c{m@dHu+|V?8ME|LQK%`19}WhBl$VTy>0X68hTE5di;Y zKF`aahTuZHLC^)A9}A*xkdjodo1DMzgOXQXB+Ek{RCWIuM=9)pyF1H+e-M*4MVQDvU_`vVmluwUu|Ih;~B5=9Lfg=m@r zHH1#@tim}{Csi!3$}Rr(M|RGR6C~`+Rt;aH%e3E++TR}P*)Dn~BLOP-!!i333W_M35H$&&QXsObQ+EV3;LlAm)?$w(^XbR3Ll% zb>6%-WrS7>Ag{!GA%D2&*SuLJv7Zmsz6<@8?(zkXERUCKXCzFfg&-w|$uJBPX@u#_ zFd+8d1VCm6x`NO_Q0bQD8NiZfoc9rb`&FDuSV8v zlZg?0l|QmgPZ_{??ckUkE;6QO>6}2ot}2*o^S~aUqF)Kb@|rzy_(@ChSU1ItTX!{> zOIwA>SB*Zj4rt?=jpFTCA`eY+*@S1X24!RmCK+qw<5#@lK)~|$rjz27O{U+ zS{V>$0W=OU6o}PtJfacnkP;)Ht{Zv#{TRSG=F9GtA!4Jdk^_E7Q$|+*#q(t}K%S+w z`t?X>VzPIWkc?fw51lpFFJuPste8V?=RUk}a(ME~k1>+?98%HvICaYihiZElV|tq+ z0@3tRy2{T82fU=8R^p+j8o+j$%d~fVYP*R8>x-~lB$3YaWwM43RVb|e#g;c1 z2hedXu*k@5Pl%bJCqJ^l-|);@i0*fwM06|62DB`>u2%RfEEeXtF-K>)=$%D!pRUyx zp_$e`*>(O2&wll?;)7XB9bBuhp}V^xdXj6&aY4r5YsdvKDh?Bc!ybN&Pza``2+RHb zmre7THy!B5bNQ;gZR(T*;C;ktfRvWndeuwV7Qh9!tBm8~n|b*7R1^iFbbdtPh-hl> zQ!Bj)(-ZJ^;6kDraUM${d!yE`$xNY-JG#)8pz$MwrGmMZeZi{^OpF52E`m*{Gr5-W zDuuy_E|MDDj2-5+qB1VWLury;_f5(1DOd!WJK3$2Ojiuo$32>}CItYBj)gA*`w349 z7omKRo}zKIV00|(7d01S%&aUQvH-6!W>bUc)l;$NqlgCtUp@Tr-UpGRZ#3WWAQFN9~N};H+Q8?S_#)s z#75zIxWB+jcj%?oxvdD*LB}e1|G3wNxQ6)JS~)op2SMQFFCvYR47kgX=WQh5#GiY&&9Y3cRdi- z{-hgs`&PVW^M4VloiStLxR+Y-3ZvIWw}yy!8Z_9d8z{Hy?$bV2<-U_MLr?c#<@J`q zf{~1XykoD?S?|Vi0e}yK;A9wg9Md|e1qa)WqQ#>x?b`_@2%o*xEmC_n^d|PH<3e@yfYAiZ!MV~K zpag)Kd+PBzEHcyu0AnVt>JF%${jM;J5FfC5UTgf|CXC_xBN>IV~UIPd#f0}X~kA!)ug6O1xe$~lDuL_j|i%} z+XDGDdvCiT8Ov`*YF31l^2gf{#ptkGu6&dsb=I&?oL5`#lfs6c46MY8(_QhC6h9SQ zl+wdek{79QaFA*?Q%`Q%vA*lW8~ER69A)#?9f{4ID1_-3!+HFDfB7tTE+1P9*|;Sr zENmp?K_#4lLQ?f;el&cEcOF&o{v`!v4WJP_ zNEz^8(AoyVPm=lOP z8bYO@jC`#S{2RkvtJSpNvU+KpA&19FJe`+V!Qq*5lVDwN*!z#dzD!M{GuZSQ-id#C zpo~p2%&;#*RgW~-$i;_T2%hC_*RVkad^z6G<|tB6$WaA1sCX3Lm-GSo6cr@uA(;EQ zj72OcJIjSUW05Pt>@m%C)BMXga-B7TUvdr!ruhlQs`{PAMs(fcX3T#Lfg??%4iZpv zo+Y#zVpQSl(71g^@dMnZjAg`|u=Hv>oZd;~N34>V9Sttt*cY3q@___>K1K4L^WFQA z-2kT}PzWJqeIdMFdQV~@4(8HrM-*Z4#idUtp`{$28b@LNyIXX^k+G zUjN@C@NqHg#o-wGBrsYsIwEwkDV6uw7Ra!PAqj9!@3op_62=xaHYr2DlYmsem!vE? zB**G0rnkbw&u2;X%CAwg+j!?ah9Z8W!rO0O?N^=@-O5 ziD09mVGW35=ypvYiG=t}YKxeD2H$r-zIZs*Ae2L9FZI2&Mm=-DypfDHgFkkLk+*J; z%~0L(=e-S^ViVFfjPJht^f($2$VCnsx=_@V#R3!FSxnQuj8cK2@6{1pnx3?|njonA z5x}w$ZhTqFb1OxIMPRlT*CX>KaT2y%HrI`OkOqaoVT37Lth(Ctqug&_X!j0CQN${^gOh%7rrHyuwh zKLw|xgPdj(WmVE(19k~P9$+q9Ha3+L0EMINrdE6 zn*j+qEj$T8)7g4-aXYU|R1h-1yv}^MOv_=sEJ2;cIR5r(3CHaRGU=3+pB=V;N0oZO zbaO1l*=2$aA{aP7gf1;7%+r)J)j<_alBgO)I$?LXmw3w7zX7i331%fJpx;)EiMs2E`n<$R(MQp2BxM^GHsO$vd#o?nCty5i?lUdhmTf%JeD@e%+ff}C zeF6^^EmehN5f|+r%M_O6Y_!6sl*4kk$$@Tdl1O*X?DU=xbUNHVs+wL>Y#YopkxM_N zSg|`_!Y=Ue=$#-$2%)*#Nr|$)8iv0W8ViRNlNn3hT^uO5-xF0>tJ>^e#PM!1`hKht z`4|;pLm>6P31;vYegxj=>Qjn;^R#f3RNk(g9q%n@!F%Ck>J-fDjH*Zyto_;h<)DjoDg>-0)0{J0nscP_l( z;({>v(c&k;x~SB7&BQ57Mx!?<@-w($CF#h4;kB8EP%36TiL&^=&XnMkgK?Xc?cbYN z5AdF~OHY*MBbHMK5lcBb6J6I9p!?e>E5RVax*b+A0TP4wao*9$sGqB$?oIX)fOHp{U5F889^fG<`YFb6cP(|Iy?dnq8lVm=&q;2MI98O+k;vQNoFMnQ z7q`wuyLrtJ_>8f7<&Y|zFf3jaCX>~A;TIv)nFfmR#ILl$`_S*S3T0p}^!c+9$+$TRzaKF+IsjR<0w)-qTy`%(DDEhZs8KnlD0cl zDb~yiUHC8nKb|3vS;m0dzFk8n@^eg9Q_sjWXy1s47W?Di=PwHsa3e$m}4vqD291%JS0EDP_5IbxwaH0xd=j;RS39;f&zlr^{dg ztr=%MqEeyXCWWa1avtUyb^4%o9)(lgES7#Zca}n^3{&P>J=XJR8K+BMFV(|GaVL|sz=BON=Y@EpWnc}3c zS0_#USH<7X{-)%spWAEYK^9qMn&b69?-}lE&<_l^uJVg3V ziRGuf1$x|TuSg}0u-x86>D_SsEmv2D_9eBKiq3KXPhbTZP42n3Dgs%O-<}f-w4~qV zND^ci96Nm62UKb2cuBKawc7yE*lO zmWf`!S$23{&J1VQVXnFe(t^=$Rw`7|XCP5!U?eAL=GWo_;d1OkBGsL+dchMPu)}iC z4|6W|F>&3AJ}u-0s|Xb75vu$zNM?C`&pj@|dj$GU71$V}T#N*6`bL6aO6x+3e`lk* z{6=(GE;{(p<~9VttMPfQi;(n~E6eBQIJTlAb9du`&*r(p*h)Z;lsQ!0!tO}NL$TDH z4PH3OxUIlOvobln^z0zp07fIqc1!ljo{+p|xivt8$(ouhm*D;3m;+@o0ulJTT0vCB zHMlf9*q%1=naB0*hBdx(BUKDqf}OmdyfIsDb`qGy$Svv?AZKC@^3@?$Q%(P+YrQ-k zP+`;fOq}tv#sXIL!fjNq?OmSDEg}_;E=62^2D;|>O9p*qzTK>g+rhnsRKNM9$wj#z z$cfLF@{8r;<+kg(Z?xQE#y#=}=wP$1q^xl;y1d4!QaI>`dHwvWW@}98^5P4KPe3}t znGD4gfR+c>z{L(Gq>75V&9f{l@-d+%omhsF)-$Dh$_fb^k?Izejsl)FDl7?87{ap-j)$wqx1#|PuZKL*&lr;j{J9M*;W}+E@M$I zEIelP|5Z7z%=AHFOfg>Q(J-h4!^Jm?ukNjKd%~x&;CEj7UrQDxu}j(3&eZME1f+Al zSBW|FsTQPL(d15)I+X~+(!{V*uFBtuL5JWlSwva4{Bj#e#bx6UDVVdY7bMr$FBF5l z0ove2yGZHbYHqlSzP@xK9h|a>o~E^aballl6)jX5pnr3x^H0!~mqPS<3ia+qp$s~; zqo*b0;VlrHy`~H5{F^ZDwqt=%U8?}Y0(O(&U3#NfeX?Uq8FSEiO@o9=vUREE@T`8W zoqyO)#U^YCn4~UEV=3;JU?*dVas@x!;zsqm%uc(QJ~^z1eKfH`daw=~wu=iPK&nCiuJ&_+Ug0ATBmrZNb&E>~=^5_dn=g zHk$764H_R5nU52OwJlgU!_W{p_87J}Y5jnZwBoxb6jXB;kvf8N>SMxddfj=Jtx^To zwF2FeDbff|0W>oZ4ebFvMo_brm_^=J=f=HM@k|vVGcqyU9^?WOm{XEJ=_(8)y9UCzVh=-MuJntLFnc9}PB5@HqA_$Tuu~m8$Sk(R)495nkZ}4wy){(Li%4F3A@GC1{)6FU< zi`dc7SVqjnWb~#&F{XC7Q*UW@Xm@E2z=Fa;z@0cDsT?t+=6_DCzT|nD7ugNIasloG zN{WYlyHd*k9xWTm!EbMl|36uu8u2OKHj)StlgfJsfCqJO8O^PT=bvWJ??%zld+_4J z2KcQ4S#a7y8@mn$Swe3)P10Bt_mVGa@VVfQ&)lcmM-J5Kb%S28F?E?h;fyhY&asQJ z4yTAw^S2%%%$V2r^@QGxx`rw1>LvOQBlrL7P*vJ?K%%E7^uiE|$}!U}vmTmR=lV=V zk&=Gta>xUtBcFj%Zh12P53H!^delo_qIho@QWy)umC2EOJuaDT259BkFgywe*Zw$7 zhi)%ET8?WD=pxP%0?xL*j~5KAMS~Un(Ecx(ZiXq%lv79bV{9d_%=7Z@zmXqRqYZ-W z5tjs)x-tVI&EFvg+O&}qv!8aLsz%VrJ#omkN;*M*4Oe+#Er2}JOGVRVY1-42&c34? zu~2XNT^BU`0fC?**deC2U*uz47&-%6VbI4xUKuo*%_9I?U2eWwOsKPs*ffh1w}MOU zuD(bn?${%Vl&1}Fx@#24`{X9D&(j)ynM*DT%$3Itl;t8DXEhLw4D$RqXqW|Kiqilv z1A=w3;*APxHwUzhYCKk%=|SvGB7kw_ALnsLWm%mMStmuAv0Wh}e@IA60V5hJ2JvzU zsnen^tbYTAi=Tc7|El|xXy9M9kL*dQ-8{JQ4A!K%J3d5J)be}*hu*~%S{uwd-M+=)uj$Tr6`C`0?Ucg>~+ef)-G${^Dqhg+~-lfaB87(WQ z@(bVXwLl!IZaIz^=&k!!*r{Q8CV6Zh^GzW3LFg7%dPZue|tr1w=xWc_@?Z*TNMA9EzEslBYJg9zCM%0$Esrb zQL|17lk-g(ZrL-QItNV~uXBwZiOjyC?l}mM>Rct826U!vk(rFVFFAIBgfX@faV*__wb*)&yA0qP4-5G$@fqo$7c_Va&>;&l!I3kSIJA-oL{^OVya z{JWaee)pxw-^If`Lq9SC#*QAF>mVq;72;yNXY_-~zEe#5-If^`U}kVNn{a!MpzAQAzN%Pn-(^e)A>D8@C6oZbSlSfE6`R{rbN*gH_*!xa`+N1;? zT-8%KaY~sLyec^Q*KD;o{_87A(vW62`qcCJe1cFvFtI_9@JOZ^Xo0+9o>#H=Wg7udtqJPZr{3hCn>#**cKwX)|oh&td z(9gI~YSxi#Q`g<><^P4r1{lvoFAC%Xz@0+zY?QhF+`9X?fFKoyakonAfek*qM3ru7 zt5|hl?ct_Aq-*jFy%~-%VZ?{?{yfD#kO)~8Ce=K@{xwxm6LH=77{eHYKjm*3PrV?v z<2NM}ktW?A;Wc{|(lnKJ;3^oUe;HnGqpmiC&vY+OGk{(!X0zb5(#I8Y0fkh+Yy5B+ zC^eS3nj@W3!vPUu18#RW4^@U&!GBtn+{ve$`+S>*XZKSF6Vb$9x0kXQlr)JK4*J^Z zq!YEQ$>@Y^tS8vq@%^FY#C6R!b|)Xl#($X~^wLbAb^;M4wxN^$6?OCYi|B3Q)|qY3 z&)w1N{6Z2W0|Q6DwnT3_=8MP0YQKt_ASxgRE zFot%1u@_vB^Kpq1HV2HqGa=|f#ZpWIB+^kvBLPL&X{0-<=wrP$KO*h{uh9~$&F4jU zrqxL5+6ieH{0O5!OO$fcjRfHf&UK*~4TG=11r)!Ljz@R`gEN928&YZW_;Yp%f{VV~ zC&twPtGr9YkC|PMIsh#;>1D$5_kstjqz5^!FS|D@9bH)X_8-UEX^K`gOCez1e{&FC zN0kAJVs4;QAidqs+B0>RNzq;I;mKS1iXxb1SFx?E&Bd;E(NN;UmGf=!fw~ehOVO{r zW0u(@0p4Q4E)VAExq%GcOYqH32#dP%{42IGps;STRB$3cQhN^CwRpZ7D zdgmJ&0^b{`YPOf&eH`J>DUSl=-;K*QsJ1IIBn7$1>NAAdqqzcIvzCyr61Zw;yzdTD z?S5Lanv5ZY8}A7`2Ykw9RZ!!-?{YP5c(Q(`C;T@~(mc0{VeD9&(&nlf-?C5F3TA7p z{VvcOUG6D!aeiU2Keg>cFPPAkds`YS(`c-AQ8KTlTU%ZjCjnN%^UhSf{T6KGWb--N zLV#MlCE@jOzPWW5waIgiL6GJ3KHKcHfIcW=eZC=FE@eLt1J*&mg=b5mAG={BP|npc zq%lJ^o~+~yx_{SU@AP5i!>&+X;%H(JM0Q9F=a`66*;`k9L3aOk6z!*7VR0Tu8=D?2 z5iBX7Qj^=g%1HHz;OO}&+&>Ppx@FSQlV7<(hdNw*^B*vMvH@@AeOr~3nq#+TCJ89& z4aaBzf|ZyMukBBuCv)fl`2UEYBaFj@1(UdxF-4{X;v39p8#AxKGjP%N(a63}tvuc{ zkMj==@@*4PwllCWuh9?(d|E3&CB8^pQkBveb#(NTrTrr8ZwC}v8P^i#*IHT{dqJMz z&uvWhv*P<#HzyxeX}o0;iNf}`-iUF^{MZo<-88(3Fere$fh15s0wU=`Q1mJH;+_+m zXR_-1$vsc23~vEr#wyqp%zqbrCs>ppLlS#qDuPC)sAhcpCk)Q&#ZAIAoB{GC4cUvy z1ftvjW!XbO9YJWg9+Bt1Yq0k`0{MA*F)4q`bt-|pnuph{94`6o0m+X@b!cA>qcb%6c&qnF_yhJjOT+i+gDhV zn}lbxUJ1p*U83XhBzpsZxYv{zJT^x{aY)6(A|Sz78Q^GRD^(It&kp^31GlRaOpjY9 zf;qKfgcU`X1l827tFMg&r z*pMIamHH>XsPgwu-V)3`bm;hoLxqo#nBiMo&{#7=ID4A4`+TxS}t{(p>brgW^sRz*Iop`&~@PGAT+F zN!Db(LAT}SAl7X$SWCS zKEwEg^GAt?wFl^tCgt7dE{hvUN6AuG7C|!k9jj+U_HrVvRMoB`fABL3m4Hn~2@dpd zDC%5f{6#=~shK|1Ypxs{;?pRWQDM;Ef+z6~EUM%b0!e}Z0faqy6DR?ijJj<^!Hn2y zN%@C{mRYs3-;2Fz=vUKZO|*r|xg54*PYA?8t*L6(J=6#AMB`6qF-$z+kWHO4y$ozX zrHM5XK7I1Tqw`=HK;RvHc#xz(P`u;H83Ge3Wu-9O!tYBzJD4wJj$#0x;fF*>r*0Xf zw42{NF-L8$cpEYsn$k+q9Tvyr*^9Hb2Ej++jjN?V#eH&g4HcHVCH4}6M zmftvDsI8{_b8)4{5~Ef=gQF#v_e*3qLi%hbt1w%<{B?X)D9!tld*H9jW@0Vx(OGOEk)JGdG?lBILaK*{ zH$Ma#tkzauo+B>r%c!!DtLl>%j>Z7DE%!Q@&ep^ED(W!d3i_=z#(SuaynZ2j{aXtP z$7yQW;d|dNxKL^T?gozh=-hSz=IJAS!!>4f6iJ!q0F5FR9KPZV+3gCK;8I#VVM0|T zL^^Vs1SSc1KQJ8M_P(ydbXCbaY!{cW?4U+G2Ftwz%aBm1AsvFBQpZ+UyzA318hH=( z_NT&-DqXrkjKZ`!k2-b9fHDB=>=plh$%n7IE_MO&dMi3Gg>#$!@4sg1atzBco8pIg z37;5nzjofaoB6G6*Hx@=C%cJX&yoE;sk&cCC;tMlGl`7X zl!J%w0B*5{znFeSMaYPUPtddX~7Fzpq3I9X4obgCNa(>Ozg}F z;w{-p-$&IY$$Dg{NJm_UNqCL{6VNlROxF9PU#$q&@=p)jA38*IHCHBpcr3CSFi}$- z-+vLY?)7J9S^(%9OkXLa9`5J{ZU{+PH)T7vbQ^rHi`1765PD%O%Vr^$LUN%%?SVtnzmRadUqzK!Rv7eS#yC9f`i9U8*lCmkqP z1KlRJjFYK4YnS{J^Xf-ukE}T?svr^?NO*a5;FW=lS`lOa;CQ!f<&ZhC0ZAkVz{o`~ zB^R9RE|*N<#KU-?_mR_Y`UmzMdE}gKIY`>x7aIFbHA9 zDxT6`@6PBrR6E$@p;PkvRUG9hm()lgzV6TQ5nr%!C-OAnsxry9iAhA9a~4o`XR12% z)3Dgq5=@&!#tA$rXf8u;mSY``P2q=NnH^FYZO{%Dn^A0L4$~Hm@B|Z%+!p2*y_VH5V2Bnang2q(&)IL zHzzwjAk!bU2S7l(1#PM8%#CBNof%{v5xM3%{YBP$042jWl;g$eUkxi&>h~c!*j(gA zD^hB2FotWmZnyQKy3!noFU9vDs)v5AU4sVvL|&KnQBcFUL_ro@+ zu}ufQ8$_^0Nu8cP0^fq6`Q>Hf6>W=8vz8ANv9XMVSwJ8FnCAK`<3St&WXXo!30ObD zx%&u8mlh9ZhL~i>y4Zn#CO*0uvzsF{RRZvbEv|f7BRiUq(vd@uJ#oo{mm@;#hl(`k zVq?}SItbs#S^?Xv83c^IP8ct51DsRu_2$P&F_DK~>!6vfZSk4Y^8v$1G)FXbtR`GE z62~l5)Np$VZh&VdUb(D2XhqU>U8NN$ia-}H-7pX5Q@Y8{Zud~eoP|KL6YOFg-U{R& z$&Y}bwX;SD4JJ&LbjQXFGB+{OT5Mk0kUwvJCSs(7KcbOiUN;RpuFrPOv1^a|dZ1HW zawEO`F)zr=YVHs>mS)5kug+qdY3i2wn59dF^^@>K1G!u{S5;+<1!}N?3oSpqo>xQoIK9JR7}Np#6C=56F@v# zXg_^`u9I`DbLQ%Q!I^kCnb#HfAzSWd-9YgNey-@gg-jABTu)@-Oy4Iw}%iE|n(eP#$P+)7hz;^Zwg=4=HEN}Y` zLMBZ6&h*QS#7+)iE4RFCq_ki#e_fHs{B#qS%#E#=&fcpz-5sEJK)l(;t(KT1AFo~>i8?Z-|`_3*_z0~SN z!;3+OC3Nvqa+qV9C@IO{yQQj5&ke}~xW#p$`mm$4H$7U<6vl=EsJ<-By2;1Xhxka| z)jaiWec5PzMSxC@-*3!OTo`=>FCd6D+HLJ6#>EhkXk0kC?&km+B?IN96xylg{jC5n z{PUY5p0mKpmU>O7N^WhD` zF(AD8;Y_RfwOX@-XT9pW66q6BSJ-j30rk`&;U^r2R_qdqFbe0k zL&7}UEK5v|NMbZQ-~YG2a#li!!EXhzmLCp!q>dUNf_0P6Aa@1V5pQpCu;<7tJ3gNd ziWy|XW|o(uf9J+YFWXOZwjpa;=zz*)#|XjXx5!O-x4o%KQ_-|s1+WP)a6_3qLl92h z95}J>k|SA)ey=1wV7@MVD9_$1(8d$$nli{-*k}QfRFMZ>NbUR$ZkhM4KcViBklC*uzIabx)PgTODuhxdBwWZ1OLtq26O^af?w_ zf#72m4!ALb4|y%8Rk$rME6=$xM}!UrgBcV^bqyRH#N~r{Ls`F0n0B4>JMpfej0|=t z$d(Cl6FV`b<}!2`NWdhRD-Yg_A4|IqvIf|XrUdws2g-G`83rrEkMaUBr8c!0!n)d>V18aq|TQ?$HHfB$19qbN`vTd7^8bdFnmc%aka4LFUh z@>5WaFzdF?>LbP~ z4D^HuoFaQV9!ubGs>yVJ5(zOb{QF#)DA7X#ad{XL(2jg7U}SlHw!8*kHYYAn7qvxE z=B&F7KLkZ5YI>i&8N;qsKPq?A;_K%>iv!Qj@Kg~z ztW7$x_V8=({6Uftz~}HTDTF_D50{|7@tJrtAlqg88m#)6I5r^HTs1VTOox$X@ve@1 zlSv5Bj}p3*AqPCL?N9Nj1MARwNAW4JVBv3vUUlTQdE(6n_wQuxjyk2m1)=9XxPHWR zxT#(^-K^i)1r)f8JC!|fkp4k~y))J=(G+Q9oAXokk!hSsFy;X@P=oPDUUya>346aa;)zQb z6fF37;9eZH&lxQ8oG3vSPRCbIjRB82h79HiUiuX}8z2gT`|{U#9Q~h+`$&RkeyKSS zro?a|!_%%+qO@*mEhE+2zrSo`UXvNma+FF*__6;1C9QFg4Olzg@ux*Xp(NC=(;Y*!W7%xaCQ%#+dumh9 z!pt_!(N19r=Pv>c!(N5oJ_=;I_$JAP)X)9}AXF|uNL98{A{?`dgOjHiWVz6uk&Xag?m zOpuzuPg}H6AT~Zp&|N`48Ca!jp{NR152JE8`~#)yUvn#BE{k2u+9QuikL)Cgi-~Ad zXf&yn__fyPYyEFQ3$U~#QqsO6aM;8t&YvJNSKy_wP&B|r7`Abi$>6+jT4pArdALWo zmI{A_RR(YyiCV(_vtBiA!!)XDz|8^5g+<SPvNX95br#tS!VlG6FIONV_h}oXUy|4v1?T^kb1+TA0$M zn_4}2ZeI2ymN#52L^hjjYrVBjCLFD?#^xBIk_+43Nt9@F+vuvUV8uTZtl{Y9l1eNx zt)53mn#D3p7PGwYsbFMO9q_1v)bsQtj6knHERUndVznT8EHLI%3dO7hl*o}4{W1Q^ zo7SRXxGcMq;c_33$OEWxy0F_D2fijk@vVl(D6^>-g?EtJ@&3D%8W5!Jmsu$|*a>pQ zO^CiZkiq8?!{OO^p)AE->5a;gUnKB~$ipgRRC8J&cmZ$Vh*_;lMMAg+l!WJ8fz+&MU+PBP0iHq8;=2I}m)#{fM(9us_Ukf?s5rR1gpdRa}s-%Te zsp*jw0E}PHYm6!{=McJvhR3VM)kyX3uc50rOzbHTZ1kKe6D%q9dPY^nvrA@sIWtEz zeP&NqfI%@&_9RW?E3t#UkdQepU8yg~Ohdukd7? zvz5i_?CK*8DPmu?jLd#av{i_7=Q`=FxluexJ2uQ8eK3d;@zjIMfREYJ5dFolt%m-? zNsId%(rK5DE@ciD_UdV;1m<{>r2o~D*yh$eTYt|y@Ndna?)nOOEcm?`B-S_fV8)sB z-^#QC;PRF6M0}nd*5`bfD+dXWfRaK_-L2)$%H9xtH1iSP<)MbE1{}`Y8p6F)6T7AH z4OT*}uG`KeyjRVq=dQ2cMzBooOq%)*ipGHhgyb3K4uDxDi}ZpR0slWP&mh=px$s7d zfebxV#5&sG7OSe+~lvblMBzxSO2tj>tt?sQJg$@gy_EceoM5qD z*LO)fuyn*T?CL`epFil*L?#R6JYg8F;jhrV`)I6DJ4D1Tk`Lh15hjsS{>Zv?&W2B( zfXKc0-%dbst^3?AMxb$0Ub-!c^?(P)9hQM9h71E+_moMSsUP47n<+Fi6N#bZT{*~q2==ADn%w3K*~KL3UU&nTnQhEu z`K^=orkT0!L3&0PS=SLzSn<+K*Wr||4^3I!Q18qG8HKeVva7aL*JBWNgCEr?I#HO7&qe~ z`jUn}0204-Dt(Hix@4KRd&(w>8Uj4S>^3W?21Lshet{c)keuV>h880!bH3}#ah0z; zxnij>m!ZzA&O9$SBIs~r%m0EiN}+KH_^gs99!t4DyRzPDS5|T zaf{8O=G1ljxp-E~Zf4jkK821E(L0z8xP;U-fH8ik3ITy~J#m=} z&I(_kBtxcX)2PhUe3z-Nb}qbF3Pb`*;t-p^V3gd$jm4D5G=ox$_GM)IW{124Qwh<# zdA3%%Y$0}mkIjFJ+Jx%sgND^=t4x0XC$_sU9kS8S(*=q}Nb-5hxoj(=`(66vFa)hFION))h(!i}M=$&5WJv8fuA`e%3KO+Yw2TgploV1yh>=NA*4 znArB@`fh~^5JOQj^l8IM4x3UiqPq&zuS_lG3a?)nqV=1>E4@7nkK}xvD_`qjq_Tqy zw6x%TT~z+4u5Ez>E8Jem1Q;ykW9s>vjmzNEu9=zlmpM8G6Sk=>n+%%p^%fDVV619$ z-dE{BGr#7L`CZ2&X>Z<>k`k7KMwPV91w0oXB}OHh^o>D)Y~fBW1k0*K>3|W*Ez-!j zsq!-&Ica+>eK3WGJ0Fbuvvuk^f@f!&Nd-S^LMm$GXiQ+6?h9OapZlj-+6Eg8`VB3+Y>bld|7P)aLK|66Qd4< z!3nGmmB$+GgtN-M@0_tu1cA+pMsc&xGL{N=C>S%N3_rwFBf7upXktpALU#@8>Jsmw zPNOK5L+wW95;03Vp3VQpSOfmZ87gmrI~GK$lDlc(^AbG>yKbh0m?e4W#rj%4)pLb_ z)K9ry+`??j27qXk-v37|Y8`P@&6ASPd_%b034ORUJ2!p@DG!4tA*zwDfln<={e{_P zu$*8Tbb3KJJbv--&*ECPqwu@L1$@R8=&9xfG#QcCoNStI0=~u;rb!@O3!_2&FA~t` zSqa4EDQVhwV{3LkyV;v7@ly;Yzv+lZhwl<+?392bV;wM8x+z?p2GlYSszh2PoMsx} zl4$^I7GC0|37C*kI)BF-hRH2goMyMf<9nk3;5bq~ti4j{dbA-?s}@8*G-WKFaWqgq zk6PB;7r@%vSX_B0$9f^Z!uq-;4xI*B@g-T4-#U_H7#fJOD`}zutdKe(0JTS7Am9_i z`oxtz)>4I(+6re4Zw}yWwCq@AwywYBu@+C@rOre>A3$$8^F&=0^jv@w6sE`kiG^gP z;Vkw~PHB-V>oHkCVlxaXzKX zp?~Eb8Qn+^#%xPN!@p%oaTDdv_V!JMGzJ%{$00LngzNLFxPgyk$Ilton7LOQ!XUxm zUiPALgp^@kogApi;t#AbEITFnFyUQb+1fYD&8OzPSzRquRS+`4Tm2{!ayFaD>l*7& zs&2XBcH^(At(Q7IyowQxjz7&tYebeu9fzJ}@ai50n4qVxVtn57mn1`oexNc&P`H}A zUlVFoNA6@dm0RaUOY8Cu@oGexe~}EyU(K-f|HAo|3{Mo|n|O-3AD|?l{z0f&u6&MMP*=yU3lrBcVg| z@@eYgSfK6x z(&>?aGDV@;P*V1&v+rFl?EANEmLTIMRJ{eBTWat{0yg{${Yj>uHh}7Y+9@~JFY!gM za{e3TXPBHFF#$~QYA_={yi6dz9dR*bS0a0n;^?uxU{uSdO9$QXl?~lm0N;~bS^Ks+ zhDj31^t?Iv5&_2#PZe$DKuZaFDxcYVk#24{L3%D);zCn8<0}ro+3p|Cym<0&OzTws zH}VUmD-`O`fNG_=g6VQ%HsLHfw70N($BOwtV!h>PWzNkLLkM7BfCGZ~Pj{H@nX&NazNt@$EDQH#;SIt!Z2gxhxNZ?7O z)gt!?p0n_1TKhfS(=d%gc66%!L#qmvKq@N`EN1BNFP2fH;J$5=|?l!GSDc zpzK`BqkM2SgUrjw0qnaa(?I^j2UXu=#r>vQ6J^ZLG{$v1lo&-Mw)Pl?% zLq>YE9?Bh*myhA?O|C=qF9}#ZX0*RJ-vVkpmn0hN!T+ zmvaG8w^d{X3bT~RUBb&pP!9q;hay2E?UYp(ufv?(Cw*st4QZP-xj{|Z62IUP*Lpjw z=p^Lk!9!gCDnD@-QkYX&5|${YW|8D|3C%D$sCiq_3=5m-GphxPb@ZMBD285op*3%;{6yx@CLlePVC4dbnZ}@E&QRcspt(N7Z=LF?zhr)(Ekq0gc_NfG~T_(k)q4C?(a1;5ABBvoY>&sI6 zpW2MxkIcI0%2OIq@B%d;v>e`vU-zT~G&p+cImGB6Caz$PSzmVFI2;^K?40TClz#v{ z5BR!~=K~%hI4##LSe(y~9lL7@9|JrPa24v53S{sAVUD;}&9_>32|}&=$zXjGTB4B@ zWxZNKZn~g4N~d9xO#$$MwmgD(4PY6Qgm7U!t0xhNwNxHijO+YK3kV-d7{t6f-P)s4 zE+N8U+0HN*}FVv+Q;lQ`~n_Kq|JU9A5W_03(lCz`)_!UQ=fB~f)fRCx_o&nea$g^D*wws}ZPAo(i zk;+Gpe%KJq;{5&l4+ah__s_6J1ONtT4t?xDV^)3slJB29!_>SlXxS40jlGOsE+f(- nDUhiu1%)Vt-?!1!EFg(cF4N=jrOGI@uZp5Wqaw5J3jhEBqh>pq literal 0 HcmV?d00001 diff --git a/src/app.module.ts b/src/app.module.ts index 99abe42..2ca6c5c 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -45,6 +45,11 @@ import { EquipoMiembro } from './equipo-miembro/entity/equipo_miembro.entity'; import { EmailService } from './email/email.service'; import { EmailController } from './email/email.controller'; import { EmailModule } from './email/email.module'; +import { MulterModule } from '@nestjs/platform-express'; +import { CarouselController } from './carousel/carousel.controller'; +import { CarouselService } from './carousel/carousel.service'; +import { ServeStaticModule } from '@nestjs/serve-static'; +import { join } from 'path'; @Module({ imports: [ @@ -106,13 +111,17 @@ import { EmailModule } from './email/email.module'; ProyectoActividadModule, ActividadModule, EmailModule, + MulterModule.register({ + dest: './uploads', // directorio de destino para guardar los archivos cargados + }), ], controllers: [ AppController, ParticipanteController, InscripcionStatusController, + CarouselController, ], - providers: [AppService, InscripcionStatusService], + providers: [AppService, InscripcionStatusService, CarouselService], }) export class AppModule { static port: number; diff --git a/src/carousel/carousel.controller.spec.ts b/src/carousel/carousel.controller.spec.ts new file mode 100644 index 0000000..8a06408 --- /dev/null +++ b/src/carousel/carousel.controller.spec.ts @@ -0,0 +1,18 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { CarouselController } from './carousel.controller'; + +describe('CarouselController', () => { + let controller: CarouselController; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + controllers: [CarouselController], + }).compile(); + + controller = module.get(CarouselController); + }); + + it('should be defined', () => { + expect(controller).toBeDefined(); + }); +}); diff --git a/src/carousel/carousel.controller.ts b/src/carousel/carousel.controller.ts new file mode 100644 index 0000000..ce22973 --- /dev/null +++ b/src/carousel/carousel.controller.ts @@ -0,0 +1,60 @@ +import { + Controller, + Delete, + Get, + HttpException, + HttpStatus, + Param, + Post, + Res, + UploadedFile, + UseInterceptors, +} from '@nestjs/common'; +import { FileInterceptor } from '@nestjs/platform-express'; +import { Response } from 'express'; +import * as fs from 'fs'; +import { diskStorage } from 'multer'; +import * as path from 'path'; + +@Controller('carousel') +export class CarouselController { + private images: string[] = []; + + @Post('/imagenes') + @UseInterceptors( + FileInterceptor('file', { + storage: diskStorage({ + destination: './public', + filename: function (req, file, cb) { + cb(null, file.originalname); + }, + }), + }), + ) + async addImage(@UploadedFile() file) { + return {msg: 'Imagen guardada con exito :)'} + } + + @Delete('/imagenes/:nombreArchivo') + async deleteImage(@Param('nombreArchivo') nombreArchivo: string) { + try { + await fs.promises.unlink(`./public/${nombreArchivo}`); + return { message: 'Imagen eliminada exitosamente' }; + } catch (err) { + throw new Error('Error al eliminar la imagen'); + } + } + + @Get('/imagenes') + async getImages(@Res() res: Response) { + // Leer el directorio 'public' para obtener el nombre de todos los archivos + const fileNames = await fs.promises.readdir('./public'); + // Generar la URL para cada archivo y agregarla a un arreglo + const baseUrl = 'http://localhost:5089'; // reemplaza con la URL de tu servidor + const imageUrls = fileNames.map( + (fileName) => `${baseUrl}/public/${fileName}`, + ); + // Devolver el arreglo de URLs como respuesta + return res.json(imageUrls); + } +} diff --git a/src/carousel/carousel.service.spec.ts b/src/carousel/carousel.service.spec.ts new file mode 100644 index 0000000..56b5090 --- /dev/null +++ b/src/carousel/carousel.service.spec.ts @@ -0,0 +1,18 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { CarouselService } from './carousel.service'; + +describe('CarouselService', () => { + let service: CarouselService; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + providers: [CarouselService], + }).compile(); + + service = module.get(CarouselService); + }); + + it('should be defined', () => { + expect(service).toBeDefined(); + }); +}); diff --git a/src/carousel/carousel.service.ts b/src/carousel/carousel.service.ts new file mode 100644 index 0000000..b7c996a --- /dev/null +++ b/src/carousel/carousel.service.ts @@ -0,0 +1,9 @@ +import { Injectable } from '@nestjs/common'; + +@Injectable() +export class CarouselService { + + uploadImage(file){ + console.log(file) + } +} diff --git a/src/email/dto/rowInterface.interface.ts b/src/email/dto/rowInterface.interface.ts new file mode 100644 index 0000000..e83f5f9 --- /dev/null +++ b/src/email/dto/rowInterface.interface.ts @@ -0,0 +1,9 @@ +interface Row { + Asistencia: number + Nombre: string + 'Apellido Paterno': string + 'Apellido Materno': string + Carrera: string + 'Institución Procedencia': string + Email: string +} \ No newline at end of file diff --git a/src/email/email.controller.ts b/src/email/email.controller.ts index 1593154..78b49b0 100644 --- a/src/email/email.controller.ts +++ b/src/email/email.controller.ts @@ -1,6 +1,21 @@ -import { Body, Controller, Param, ParseIntPipe, Post } from '@nestjs/common'; +import { + Body, + Controller, + HttpException, + HttpStatus, + Param, + ParseIntPipe, + Post, + Res, + UploadedFile, + UseInterceptors, +} from '@nestjs/common'; +import { FileInterceptor } from '@nestjs/platform-express'; import { EmailDto } from './dto/emailDto.dto'; import { EmailService } from './email.service'; +import { Response } from 'express'; +import * as xlsx from 'xlsx'; + @Controller('email') export class EmailController { @@ -13,4 +28,14 @@ export class EmailController { ): Promise { return this.emailService.sendEmail(id, emailDto); } + + @Post('constancias') + @UseInterceptors(FileInterceptor('file')) + async sendConstancias(@UploadedFile() file, @Body('nombreEvento') nombreEvento: string,) { + if(!file) { + throw new HttpException("No se ha cargado ningun archivo", HttpStatus.BAD_REQUEST) + } + console.log(file) + return this.emailService.sendConstancias(file, nombreEvento); + } } diff --git a/src/email/email.service.ts b/src/email/email.service.ts index f8a7852..e2363d9 100644 --- a/src/email/email.service.ts +++ b/src/email/email.service.ts @@ -1,4 +1,4 @@ -import { Inject, Injectable } from '@nestjs/common'; +import { HttpException, HttpStatus, Inject, Injectable, Res, UploadedFile } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; import { InjectRepository } from '@nestjs/typeorm'; import * as nodemailer from 'nodemailer'; @@ -6,6 +6,13 @@ import { EventosService } from 'src/eventos/eventos.service'; import { Participante } from 'src/participante/participante.entity'; import { Repository } from 'typeorm'; import { EmailDto } from './dto/emailDto.dto'; +import * as xlsx from 'xlsx'; +import * as pdfMake from 'pdfmake/build/pdfmake'; +import * as pdfFonts from 'pdfmake/build/vfs_fonts'; +/* import * as PDFDocument from 'pdfkit'; */ +import * as fs from 'fs'; +import * as path from 'path'; +import { PDFDocument, StandardFonts, rgb } from 'pdf-lib'; @Injectable() export class EmailService { @@ -49,4 +56,80 @@ export class EmailService { return participantes; } + + async sendConstancias(file, nombreEvento) { + console.log(file) + const workbook = xlsx.read(file.buffer); + const worksheet = workbook.Sheets[workbook.SheetNames[0]]; + const data = xlsx.utils.sheet_to_json(worksheet); + + for (const row of data as Row[]) { + const pdfDoc = await PDFDocument.create(); + const page = pdfDoc.addPage(); + page.setSize(792, 612); + + page.drawRectangle({ + x: 0, + y: page.getHeight() - 60, + width: page.getWidth(), + height: 60, + color: rgb(0 / 255, 61 / 255, 121 / 255), + }); + + page.drawRectangle({ + x: 0, + y: 0, + width: page.getWidth(), + height: 60, + color: rgb(213 / 255, 159 / 255, 15 / 255), + }); + + const font = await pdfDoc.embedFont(StandardFonts.HelveticaBold); + const fontSize = 30; + const text = 'Constancia de asistencia'; + const textWidth = font.widthOfTextAtSize(text, fontSize); + const textHeight = font.heightAtSize(fontSize); + + page.drawText(text, { + x: (page.getWidth() - textWidth) / 2, + y: (page.getHeight() - textHeight) / 2, + size: fontSize, + font: font, + color: rgb(0/255, 0/255, 0/255), + }); + + const { width, height } = page.getSize(); + page.drawText( + `Se le otorga la constancia por su asistencia al evento: ${nombreEvento}`, + { + x: 50, + y: height - 50, + size: 12, + font: await pdfDoc.embedFont('Helvetica'), + }, + ); + page.drawText( + `A ${row['Apellido Paterno']} ${row['Apellido Materno']} ${row.Nombre}`, + { + x: 50, + y: height - 80, + size: 12, + font: await pdfDoc.embedFont('Helvetica'), + }, + ); + const pdfBytes = await pdfDoc.save(); + const attachment = { + filename: `Constancia ${nombreEvento} - ${row.Nombre}_${row['Apellido Paterno']}.pdf`, + content: pdfBytes, + }; + /* const blob = new Blob([pdfBytes], { type: 'application/pdf' }); + const url = URL.createObjectURL(blob); */ + this.transporter.sendMail({ + to: row.Email, + subject: 'Constancia de asistencia', + text: 'Hola', + attachments: [attachment], + }); + } + } } diff --git a/src/eventos/eventos.controller.ts b/src/eventos/eventos.controller.ts index 398b30c..858b073 100644 --- a/src/eventos/eventos.controller.ts +++ b/src/eventos/eventos.controller.ts @@ -58,4 +58,9 @@ export class EventosController { return this.eventoService.getEventosDisponibles() } + @Post('disponibles/pendientesDconstancia') + getEventosDisponiblesPendientes(){ + return this.eventoService.geteventosDisponiblesMasDosDias() + } + } diff --git a/src/eventos/eventos.service.ts b/src/eventos/eventos.service.ts index b8bf1ef..dd41556 100644 --- a/src/eventos/eventos.service.ts +++ b/src/eventos/eventos.service.ts @@ -2,7 +2,7 @@ import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { EventoParticipante } from 'src/evento-participante/evento-participante/eventoParticipante.entity'; import { Participante } from 'src/participante/participante.entity'; -import { MoreThanOrEqual, Repository } from 'typeorm'; +import { Between, MoreThanOrEqual, Repository } from 'typeorm'; import { actualizarEventoDto } from './dto/actualizarEvento.dto'; import { crearEventoDto } from './dto/crearEvento.dto'; import { Evento } from './evento.entity'; @@ -186,4 +186,12 @@ export class EventosService { }, }); } + + geteventosDisponiblesMasDosDias(){ + const hoy = new Date(); + return this.eventoRepository.createQueryBuilder("evento") + .where(`DATE_ADD(evento.fecha_fin, INTERVAL 2 DAY) >= :hoy`, { hoy }) + .andWhere('fecha_fin <= :hoy', {hoy}) + .getMany(); + } } diff --git a/src/main.ts b/src/main.ts index 2837580..708d899 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,9 +1,11 @@ import { NestFactory } from '@nestjs/core'; +import { NestExpressApplication } from '@nestjs/platform-express'; import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger'; +import { join } from 'path'; import { AppModule } from './app.module'; async function bootstrap() { - const app = await NestFactory.create(AppModule); + const app = await NestFactory.create(AppModule); const config = new DocumentBuilder() .addBearerAuth() @@ -14,6 +16,10 @@ async function bootstrap() { const document = SwaggerModule.createDocument(app, config); SwaggerModule.setup('api', app, document); + app.useStaticAssets(join(__dirname, '..', 'public'), { + prefix: '/public/', + }); + app.enableCors(); await app.listen(AppModule.port); }