@studious-lms/server 1.3.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/models/class.d.ts +24 -2
  2. package/dist/models/class.d.ts.map +1 -1
  3. package/dist/models/class.js +180 -81
  4. package/dist/models/class.js.map +1 -1
  5. package/dist/models/worksheet.d.ts +34 -34
  6. package/dist/pipelines/aiLabChat.d.ts +57 -2
  7. package/dist/pipelines/aiLabChat.d.ts.map +1 -1
  8. package/dist/pipelines/aiLabChat.js +252 -113
  9. package/dist/pipelines/aiLabChat.js.map +1 -1
  10. package/dist/pipelines/gradeWorksheet.d.ts +4 -4
  11. package/dist/routers/_app.d.ts +138 -56
  12. package/dist/routers/_app.d.ts.map +1 -1
  13. package/dist/routers/class.d.ts +24 -3
  14. package/dist/routers/class.d.ts.map +1 -1
  15. package/dist/routers/class.js +3 -3
  16. package/dist/routers/class.js.map +1 -1
  17. package/dist/routers/labChat.d.ts +10 -1
  18. package/dist/routers/labChat.d.ts.map +1 -1
  19. package/dist/routers/labChat.js +6 -3
  20. package/dist/routers/labChat.js.map +1 -1
  21. package/dist/routers/message.d.ts +11 -0
  22. package/dist/routers/message.d.ts.map +1 -1
  23. package/dist/routers/message.js +10 -3
  24. package/dist/routers/message.js.map +1 -1
  25. package/dist/routers/worksheet.d.ts +24 -24
  26. package/dist/services/class.d.ts +24 -2
  27. package/dist/services/class.d.ts.map +1 -1
  28. package/dist/services/class.js +18 -6
  29. package/dist/services/class.js.map +1 -1
  30. package/dist/services/labChat.d.ts +5 -1
  31. package/dist/services/labChat.d.ts.map +1 -1
  32. package/dist/services/labChat.js +96 -4
  33. package/dist/services/labChat.js.map +1 -1
  34. package/dist/services/message.d.ts +8 -0
  35. package/dist/services/message.d.ts.map +1 -1
  36. package/dist/services/message.js +74 -2
  37. package/dist/services/message.js.map +1 -1
  38. package/dist/services/worksheet.d.ts +18 -18
  39. package/package.json +1 -1
  40. package/prisma/schema.prisma +1 -1
  41. package/src/models/class.ts +189 -84
  42. package/src/pipelines/aiLabChat.ts +291 -118
  43. package/src/routers/class.ts +1 -1
  44. package/src/routers/labChat.ts +7 -0
  45. package/src/routers/message.ts +13 -0
  46. package/src/services/class.ts +14 -7
  47. package/src/services/labChat.ts +108 -2
  48. package/src/services/message.ts +93 -0
@@ -834,18 +834,32 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
834
834
  type: import(".prisma/client").$Enums.AssignmentType;
835
835
  id: string;
836
836
  createdAt: Date | null;
837
+ classId: string;
837
838
  section: {
838
839
  id: string;
839
840
  name: string;
840
841
  } | null;
842
+ worksheets: {
843
+ id: string;
844
+ }[];
841
845
  title: string;
842
846
  dueDate: Date;
843
847
  maxGrade: number | null;
848
+ eventId: string | null;
844
849
  instructions: string;
850
+ teacherId: string;
851
+ acceptFiles: boolean;
852
+ acceptExtendedResponse: boolean;
853
+ acceptWorksheet: boolean;
854
+ gradeWithAI: boolean;
855
+ aiPolicyLevel: number;
856
+ sectionId: string | null;
845
857
  graded: boolean;
846
858
  weight: number;
847
859
  inProgress: boolean;
860
+ markSchemeId: string | null;
848
861
  order: number | null;
862
+ gradingBoundaryId: string | null;
849
863
  markScheme: {
850
864
  id: string;
851
865
  structured: string;
@@ -864,10 +878,18 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
864
878
  }[];
865
879
  worksheets: {
866
880
  id: string;
867
- createdAt: Date;
868
- updatedAt: Date;
869
881
  classId: string;
870
882
  name: string;
883
+ questions: {
884
+ options: import("@prisma/client/runtime/library.js").JsonValue;
885
+ type: import(".prisma/client").$Enums.WorksheetQuestionType;
886
+ order: number | null;
887
+ markScheme: import("@prisma/client/runtime/library.js").JsonValue;
888
+ worksheetId: string;
889
+ question: string;
890
+ answer: string;
891
+ points: number;
892
+ }[];
871
893
  }[];
872
894
  markSchemes: {
873
895
  id: string;
@@ -891,7 +913,6 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
891
913
  }>;
892
914
  importClass: import("@trpc/server").TRPCMutationProcedure<{
893
915
  input: {
894
- [x: string]: unknown;
895
916
  classId: string;
896
917
  year: number;
897
918
  classData?: any;
@@ -4760,6 +4781,17 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
4760
4781
  };
4761
4782
  meta: object;
4762
4783
  }>;
4784
+ markSuggestionCreated: import("@trpc/server").TRPCMutationProcedure<{
4785
+ input: {
4786
+ type: "section" | "assignment" | "worksheet";
4787
+ messageId: string;
4788
+ index: number;
4789
+ };
4790
+ output: {
4791
+ success: boolean;
4792
+ };
4793
+ meta: object;
4794
+ }>;
4763
4795
  getUnreadCount: import("@trpc/server").TRPCQueryProcedure<{
4764
4796
  input: {
4765
4797
  conversationId: string;
@@ -4852,6 +4884,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
4852
4884
  labChatId: string;
4853
4885
  };
4854
4886
  output: {
4887
+ pendingGenerationMessageId: string | null;
4855
4888
  class: {
4856
4889
  id: string;
4857
4890
  name: string;
@@ -4893,7 +4926,6 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
4893
4926
  profilePicture: string | null;
4894
4927
  } | null;
4895
4928
  };
4896
- } & {
4897
4929
  context: string;
4898
4930
  id: string;
4899
4931
  createdAt: Date;
@@ -4977,6 +5009,15 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
4977
5009
  };
4978
5010
  meta: object;
4979
5011
  }>;
5012
+ rerunLastResponse: import("@trpc/server").TRPCMutationProcedure<{
5013
+ input: {
5014
+ labChatId: string;
5015
+ };
5016
+ output: {
5017
+ success: boolean;
5018
+ };
5019
+ meta: object;
5020
+ }>;
4980
5021
  }>>;
4981
5022
  newtonChat: import("@trpc/server").TRPCBuiltRouter<{
4982
5023
  ctx: import("../trpc.js").Context;
@@ -5148,10 +5189,10 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
5148
5189
  updatedAt: Date;
5149
5190
  order: number | null;
5150
5191
  markScheme: import("@prisma/client/runtime/library.js").JsonValue | null;
5151
- question: string;
5152
- points: number;
5153
5192
  worksheetId: string;
5193
+ question: string;
5154
5194
  answer: string;
5195
+ points: number;
5155
5196
  }[];
5156
5197
  } & {
5157
5198
  id: string;
@@ -5232,8 +5273,8 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
5232
5273
  addQuestion: import("@trpc/server").TRPCMutationProcedure<{
5233
5274
  input: {
5234
5275
  type: "ESSAY" | "MULTIPLE_CHOICE" | "TRUE_FALSE" | "SHORT_ANSWER" | "LONG_ANSWER" | "MATH_EXPRESSION";
5235
- question: string;
5236
5276
  worksheetId: string;
5277
+ question: string;
5237
5278
  answer: string;
5238
5279
  options?: any;
5239
5280
  markScheme?: any;
@@ -5247,10 +5288,10 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
5247
5288
  updatedAt: Date;
5248
5289
  order: number | null;
5249
5290
  markScheme: import("@prisma/client/runtime/library.js").JsonValue | null;
5250
- question: string;
5251
- points: number;
5252
5291
  worksheetId: string;
5292
+ question: string;
5253
5293
  answer: string;
5294
+ points: number;
5254
5295
  };
5255
5296
  meta: object;
5256
5297
  }>;
@@ -5268,14 +5309,14 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
5268
5309
  }>;
5269
5310
  updateQuestion: import("@trpc/server").TRPCMutationProcedure<{
5270
5311
  input: {
5271
- questionId: string;
5272
5312
  worksheetId: string;
5313
+ questionId: string;
5273
5314
  options?: any;
5274
5315
  type?: "ESSAY" | "MULTIPLE_CHOICE" | "TRUE_FALSE" | "SHORT_ANSWER" | "LONG_ANSWER" | "MATH_EXPRESSION" | undefined;
5275
5316
  markScheme?: any;
5276
5317
  question?: string | undefined;
5277
- points?: number | undefined;
5278
5318
  answer?: string | undefined;
5319
+ points?: number | undefined;
5279
5320
  };
5280
5321
  output: {
5281
5322
  options: import("@prisma/client/runtime/library.js").JsonValue | null;
@@ -5285,17 +5326,17 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
5285
5326
  updatedAt: Date;
5286
5327
  order: number | null;
5287
5328
  markScheme: import("@prisma/client/runtime/library.js").JsonValue | null;
5288
- question: string;
5289
- points: number;
5290
5329
  worksheetId: string;
5330
+ question: string;
5291
5331
  answer: string;
5332
+ points: number;
5292
5333
  };
5293
5334
  meta: object;
5294
5335
  }>;
5295
5336
  deleteQuestion: import("@trpc/server").TRPCMutationProcedure<{
5296
5337
  input: {
5297
- questionId: string;
5298
5338
  worksheetId: string;
5339
+ questionId: string;
5299
5340
  };
5300
5341
  output: {
5301
5342
  options: import("@prisma/client/runtime/library.js").JsonValue | null;
@@ -5305,10 +5346,10 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
5305
5346
  updatedAt: Date;
5306
5347
  order: number | null;
5307
5348
  markScheme: import("@prisma/client/runtime/library.js").JsonValue | null;
5308
- question: string;
5309
- points: number;
5310
5349
  worksheetId: string;
5350
+ question: string;
5311
5351
  answer: string;
5352
+ points: number;
5312
5353
  };
5313
5354
  meta: object;
5314
5355
  }>;
@@ -5329,12 +5370,12 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
5329
5370
  updatedAt: Date | null;
5330
5371
  feedback: string | null;
5331
5372
  studentId: string;
5373
+ points: number;
5332
5374
  response: string;
5333
5375
  isCorrect: boolean;
5334
5376
  markschemeState: import("@prisma/client/runtime/library.js").JsonValue | null;
5335
- points: number;
5336
- questionId: string;
5337
5377
  studentWorksheetResponseId: string | null;
5378
+ questionId: string;
5338
5379
  })[];
5339
5380
  } & {
5340
5381
  id: string;
@@ -5362,12 +5403,12 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
5362
5403
  updatedAt: Date | null;
5363
5404
  feedback: string | null;
5364
5405
  studentId: string;
5406
+ points: number;
5365
5407
  response: string;
5366
5408
  isCorrect: boolean;
5367
5409
  markschemeState: import("@prisma/client/runtime/library.js").JsonValue | null;
5368
- points: number;
5369
- questionId: string;
5370
5410
  studentWorksheetResponseId: string | null;
5411
+ questionId: string;
5371
5412
  }[];
5372
5413
  } & {
5373
5414
  id: string;
@@ -5393,12 +5434,12 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
5393
5434
  updatedAt: Date | null;
5394
5435
  feedback: string | null;
5395
5436
  studentId: string;
5437
+ points: number;
5396
5438
  response: string;
5397
5439
  isCorrect: boolean;
5398
5440
  markschemeState: import("@prisma/client/runtime/library.js").JsonValue | null;
5399
- points: number;
5400
- questionId: string;
5401
5441
  studentWorksheetResponseId: string | null;
5442
+ questionId: string;
5402
5443
  };
5403
5444
  meta: object;
5404
5445
  }>;
@@ -5414,24 +5455,24 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
5414
5455
  updatedAt: Date | null;
5415
5456
  feedback: string | null;
5416
5457
  studentId: string;
5458
+ points: number;
5417
5459
  response: string;
5418
5460
  isCorrect: boolean;
5419
5461
  markschemeState: import("@prisma/client/runtime/library.js").JsonValue | null;
5420
- points: number;
5421
- questionId: string;
5422
5462
  studentWorksheetResponseId: string | null;
5463
+ questionId: string;
5423
5464
  };
5424
5465
  meta: object;
5425
5466
  }>;
5426
5467
  gradeAnswer: import("@trpc/server").TRPCMutationProcedure<{
5427
5468
  input: {
5428
5469
  isCorrect: boolean;
5429
- questionId: string;
5430
5470
  studentWorksheetResponseId: string;
5471
+ questionId: string;
5431
5472
  feedback?: string | undefined;
5473
+ points?: number | undefined;
5432
5474
  response?: string | undefined;
5433
5475
  markschemeState?: any;
5434
- points?: number | undefined;
5435
5476
  responseId?: string | undefined;
5436
5477
  };
5437
5478
  output: {
@@ -5441,12 +5482,12 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
5441
5482
  updatedAt: Date | null;
5442
5483
  feedback: string | null;
5443
5484
  studentId: string;
5485
+ points: number;
5444
5486
  response: string;
5445
5487
  isCorrect: boolean;
5446
5488
  markschemeState: import("@prisma/client/runtime/library.js").JsonValue | null;
5447
- points: number;
5448
- questionId: string;
5449
5489
  studentWorksheetResponseId: string | null;
5490
+ questionId: string;
5450
5491
  };
5451
5492
  meta: object;
5452
5493
  }>;
@@ -6458,18 +6499,32 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
6458
6499
  type: import(".prisma/client").$Enums.AssignmentType;
6459
6500
  id: string;
6460
6501
  createdAt: Date | null;
6502
+ classId: string;
6461
6503
  section: {
6462
6504
  id: string;
6463
6505
  name: string;
6464
6506
  } | null;
6507
+ worksheets: {
6508
+ id: string;
6509
+ }[];
6465
6510
  title: string;
6466
6511
  dueDate: Date;
6467
6512
  maxGrade: number | null;
6513
+ eventId: string | null;
6468
6514
  instructions: string;
6515
+ teacherId: string;
6516
+ acceptFiles: boolean;
6517
+ acceptExtendedResponse: boolean;
6518
+ acceptWorksheet: boolean;
6519
+ gradeWithAI: boolean;
6520
+ aiPolicyLevel: number;
6521
+ sectionId: string | null;
6469
6522
  graded: boolean;
6470
6523
  weight: number;
6471
6524
  inProgress: boolean;
6525
+ markSchemeId: string | null;
6472
6526
  order: number | null;
6527
+ gradingBoundaryId: string | null;
6473
6528
  markScheme: {
6474
6529
  id: string;
6475
6530
  structured: string;
@@ -6488,10 +6543,18 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
6488
6543
  }[];
6489
6544
  worksheets: {
6490
6545
  id: string;
6491
- createdAt: Date;
6492
- updatedAt: Date;
6493
6546
  classId: string;
6494
6547
  name: string;
6548
+ questions: {
6549
+ options: import("@prisma/client/runtime/library.js").JsonValue;
6550
+ type: import(".prisma/client").$Enums.WorksheetQuestionType;
6551
+ order: number | null;
6552
+ markScheme: import("@prisma/client/runtime/library.js").JsonValue;
6553
+ worksheetId: string;
6554
+ question: string;
6555
+ answer: string;
6556
+ points: number;
6557
+ }[];
6495
6558
  }[];
6496
6559
  markSchemes: {
6497
6560
  id: string;
@@ -6515,7 +6578,6 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
6515
6578
  }>;
6516
6579
  importClass: import("@trpc/server").TRPCMutationProcedure<{
6517
6580
  input: {
6518
- [x: string]: unknown;
6519
6581
  classId: string;
6520
6582
  year: number;
6521
6583
  classData?: any;
@@ -10384,6 +10446,17 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10384
10446
  };
10385
10447
  meta: object;
10386
10448
  }>;
10449
+ markSuggestionCreated: import("@trpc/server").TRPCMutationProcedure<{
10450
+ input: {
10451
+ type: "section" | "assignment" | "worksheet";
10452
+ messageId: string;
10453
+ index: number;
10454
+ };
10455
+ output: {
10456
+ success: boolean;
10457
+ };
10458
+ meta: object;
10459
+ }>;
10387
10460
  getUnreadCount: import("@trpc/server").TRPCQueryProcedure<{
10388
10461
  input: {
10389
10462
  conversationId: string;
@@ -10476,6 +10549,7 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10476
10549
  labChatId: string;
10477
10550
  };
10478
10551
  output: {
10552
+ pendingGenerationMessageId: string | null;
10479
10553
  class: {
10480
10554
  id: string;
10481
10555
  name: string;
@@ -10517,7 +10591,6 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10517
10591
  profilePicture: string | null;
10518
10592
  } | null;
10519
10593
  };
10520
- } & {
10521
10594
  context: string;
10522
10595
  id: string;
10523
10596
  createdAt: Date;
@@ -10601,6 +10674,15 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10601
10674
  };
10602
10675
  meta: object;
10603
10676
  }>;
10677
+ rerunLastResponse: import("@trpc/server").TRPCMutationProcedure<{
10678
+ input: {
10679
+ labChatId: string;
10680
+ };
10681
+ output: {
10682
+ success: boolean;
10683
+ };
10684
+ meta: object;
10685
+ }>;
10604
10686
  }>>;
10605
10687
  newtonChat: import("@trpc/server").TRPCBuiltRouter<{
10606
10688
  ctx: import("../trpc.js").Context;
@@ -10772,10 +10854,10 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10772
10854
  updatedAt: Date;
10773
10855
  order: number | null;
10774
10856
  markScheme: import("@prisma/client/runtime/library.js").JsonValue | null;
10775
- question: string;
10776
- points: number;
10777
10857
  worksheetId: string;
10858
+ question: string;
10778
10859
  answer: string;
10860
+ points: number;
10779
10861
  }[];
10780
10862
  } & {
10781
10863
  id: string;
@@ -10856,8 +10938,8 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10856
10938
  addQuestion: import("@trpc/server").TRPCMutationProcedure<{
10857
10939
  input: {
10858
10940
  type: "ESSAY" | "MULTIPLE_CHOICE" | "TRUE_FALSE" | "SHORT_ANSWER" | "LONG_ANSWER" | "MATH_EXPRESSION";
10859
- question: string;
10860
10941
  worksheetId: string;
10942
+ question: string;
10861
10943
  answer: string;
10862
10944
  options?: any;
10863
10945
  markScheme?: any;
@@ -10871,10 +10953,10 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10871
10953
  updatedAt: Date;
10872
10954
  order: number | null;
10873
10955
  markScheme: import("@prisma/client/runtime/library.js").JsonValue | null;
10874
- question: string;
10875
- points: number;
10876
10956
  worksheetId: string;
10957
+ question: string;
10877
10958
  answer: string;
10959
+ points: number;
10878
10960
  };
10879
10961
  meta: object;
10880
10962
  }>;
@@ -10892,14 +10974,14 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10892
10974
  }>;
10893
10975
  updateQuestion: import("@trpc/server").TRPCMutationProcedure<{
10894
10976
  input: {
10895
- questionId: string;
10896
10977
  worksheetId: string;
10978
+ questionId: string;
10897
10979
  options?: any;
10898
10980
  type?: "ESSAY" | "MULTIPLE_CHOICE" | "TRUE_FALSE" | "SHORT_ANSWER" | "LONG_ANSWER" | "MATH_EXPRESSION" | undefined;
10899
10981
  markScheme?: any;
10900
10982
  question?: string | undefined;
10901
- points?: number | undefined;
10902
10983
  answer?: string | undefined;
10984
+ points?: number | undefined;
10903
10985
  };
10904
10986
  output: {
10905
10987
  options: import("@prisma/client/runtime/library.js").JsonValue | null;
@@ -10909,17 +10991,17 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10909
10991
  updatedAt: Date;
10910
10992
  order: number | null;
10911
10993
  markScheme: import("@prisma/client/runtime/library.js").JsonValue | null;
10912
- question: string;
10913
- points: number;
10914
10994
  worksheetId: string;
10995
+ question: string;
10915
10996
  answer: string;
10997
+ points: number;
10916
10998
  };
10917
10999
  meta: object;
10918
11000
  }>;
10919
11001
  deleteQuestion: import("@trpc/server").TRPCMutationProcedure<{
10920
11002
  input: {
10921
- questionId: string;
10922
11003
  worksheetId: string;
11004
+ questionId: string;
10923
11005
  };
10924
11006
  output: {
10925
11007
  options: import("@prisma/client/runtime/library.js").JsonValue | null;
@@ -10929,10 +11011,10 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10929
11011
  updatedAt: Date;
10930
11012
  order: number | null;
10931
11013
  markScheme: import("@prisma/client/runtime/library.js").JsonValue | null;
10932
- question: string;
10933
- points: number;
10934
11014
  worksheetId: string;
11015
+ question: string;
10935
11016
  answer: string;
11017
+ points: number;
10936
11018
  };
10937
11019
  meta: object;
10938
11020
  }>;
@@ -10953,12 +11035,12 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10953
11035
  updatedAt: Date | null;
10954
11036
  feedback: string | null;
10955
11037
  studentId: string;
11038
+ points: number;
10956
11039
  response: string;
10957
11040
  isCorrect: boolean;
10958
11041
  markschemeState: import("@prisma/client/runtime/library.js").JsonValue | null;
10959
- points: number;
10960
- questionId: string;
10961
11042
  studentWorksheetResponseId: string | null;
11043
+ questionId: string;
10962
11044
  })[];
10963
11045
  } & {
10964
11046
  id: string;
@@ -10986,12 +11068,12 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
10986
11068
  updatedAt: Date | null;
10987
11069
  feedback: string | null;
10988
11070
  studentId: string;
11071
+ points: number;
10989
11072
  response: string;
10990
11073
  isCorrect: boolean;
10991
11074
  markschemeState: import("@prisma/client/runtime/library.js").JsonValue | null;
10992
- points: number;
10993
- questionId: string;
10994
11075
  studentWorksheetResponseId: string | null;
11076
+ questionId: string;
10995
11077
  }[];
10996
11078
  } & {
10997
11079
  id: string;
@@ -11017,12 +11099,12 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
11017
11099
  updatedAt: Date | null;
11018
11100
  feedback: string | null;
11019
11101
  studentId: string;
11102
+ points: number;
11020
11103
  response: string;
11021
11104
  isCorrect: boolean;
11022
11105
  markschemeState: import("@prisma/client/runtime/library.js").JsonValue | null;
11023
- points: number;
11024
- questionId: string;
11025
11106
  studentWorksheetResponseId: string | null;
11107
+ questionId: string;
11026
11108
  };
11027
11109
  meta: object;
11028
11110
  }>;
@@ -11038,24 +11120,24 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
11038
11120
  updatedAt: Date | null;
11039
11121
  feedback: string | null;
11040
11122
  studentId: string;
11123
+ points: number;
11041
11124
  response: string;
11042
11125
  isCorrect: boolean;
11043
11126
  markschemeState: import("@prisma/client/runtime/library.js").JsonValue | null;
11044
- points: number;
11045
- questionId: string;
11046
11127
  studentWorksheetResponseId: string | null;
11128
+ questionId: string;
11047
11129
  };
11048
11130
  meta: object;
11049
11131
  }>;
11050
11132
  gradeAnswer: import("@trpc/server").TRPCMutationProcedure<{
11051
11133
  input: {
11052
11134
  isCorrect: boolean;
11053
- questionId: string;
11054
11135
  studentWorksheetResponseId: string;
11136
+ questionId: string;
11055
11137
  feedback?: string | undefined;
11138
+ points?: number | undefined;
11056
11139
  response?: string | undefined;
11057
11140
  markschemeState?: any;
11058
- points?: number | undefined;
11059
11141
  responseId?: string | undefined;
11060
11142
  };
11061
11143
  output: {
@@ -11065,12 +11147,12 @@ export declare const createCaller: import("@trpc/server").TRPCRouterCaller<{
11065
11147
  updatedAt: Date | null;
11066
11148
  feedback: string | null;
11067
11149
  studentId: string;
11150
+ points: number;
11068
11151
  response: string;
11069
11152
  isCorrect: boolean;
11070
11153
  markschemeState: import("@prisma/client/runtime/library.js").JsonValue | null;
11071
- points: number;
11072
- questionId: string;
11073
11154
  studentWorksheetResponseId: string | null;
11155
+ questionId: string;
11074
11156
  };
11075
11157
  meta: object;
11076
11158
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"_app.d.ts","sourceRoot":"/","sources":["routers/_app.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAiB1E,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoBpB,CAAC;AAGH,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC;AACzC,MAAM,MAAM,YAAY,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;AACxD,MAAM,MAAM,aAAa,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;AAG1D,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAiC,CAAC"}
1
+ {"version":3,"file":"_app.d.ts","sourceRoot":"/","sources":["routers/_app.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAiB1E,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoBpB,CAAC;AAGH,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC;AACzC,MAAM,MAAM,YAAY,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;AACxD,MAAM,MAAM,aAAa,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;AAG1D,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAiC,CAAC"}