@kl1/contracts 1.2.60-uat → 1.2.62-uat

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. package/dist/api-contracts/src/channel/index.d.ts +2629 -2687
  2. package/dist/api-contracts/src/channel/index.d.ts.map +1 -1
  3. package/dist/api-contracts/src/channel/validation.d.ts +10 -0
  4. package/dist/api-contracts/src/channel/validation.d.ts.map +1 -1
  5. package/dist/api-contracts/src/chat/index.d.ts +189 -285
  6. package/dist/api-contracts/src/chat/index.d.ts.map +1 -1
  7. package/dist/api-contracts/src/chat/schema.d.ts +45 -70
  8. package/dist/api-contracts/src/chat/schema.d.ts.map +1 -1
  9. package/dist/api-contracts/src/chat/validation.d.ts +72 -72
  10. package/dist/api-contracts/src/chat/validation.d.ts.map +1 -1
  11. package/dist/api-contracts/src/contract.d.ts +3632 -4224
  12. package/dist/api-contracts/src/contract.d.ts.map +1 -1
  13. package/dist/api-contracts/src/dashboard/index.d.ts +1 -290
  14. package/dist/api-contracts/src/dashboard/index.d.ts.map +1 -1
  15. package/dist/api-contracts/src/dashboard/schema.d.ts +0 -71
  16. package/dist/api-contracts/src/dashboard/schema.d.ts.map +1 -1
  17. package/dist/api-contracts/src/facebook-feed/index.d.ts +43 -59
  18. package/dist/api-contracts/src/facebook-feed/index.d.ts.map +1 -1
  19. package/dist/api-contracts/src/facebook-feed/schema.d.ts +3 -3
  20. package/dist/api-contracts/src/instagram/index.d.ts +33 -49
  21. package/dist/api-contracts/src/instagram/index.d.ts.map +1 -1
  22. package/dist/api-contracts/src/line/index.d.ts +40 -56
  23. package/dist/api-contracts/src/line/index.d.ts.map +1 -1
  24. package/dist/api-contracts/src/line/validation.d.ts +5 -5
  25. package/dist/api-contracts/src/messenger/index.d.ts +33 -49
  26. package/dist/api-contracts/src/messenger/index.d.ts.map +1 -1
  27. package/dist/api-contracts/src/sms/index.d.ts +5 -5
  28. package/dist/api-contracts/src/telegram/index.d.ts +33 -49
  29. package/dist/api-contracts/src/telegram/index.d.ts.map +1 -1
  30. package/dist/api-contracts/src/viber/index.d.ts +33 -49
  31. package/dist/api-contracts/src/viber/index.d.ts.map +1 -1
  32. package/dist/api-contracts/src/webchat/index.d.ts +33 -49
  33. package/dist/api-contracts/src/webchat/index.d.ts.map +1 -1
  34. package/dist/api-contracts/src/whatsapp/index.d.ts +39 -96
  35. package/dist/api-contracts/src/whatsapp/index.d.ts.map +1 -1
  36. package/dist/api-contracts/src/whatsapp/validation.d.ts +3 -3
  37. package/dist/api-contracts/src/workflow-rule/index.d.ts +12 -29
  38. package/dist/api-contracts/src/workflow-rule/index.d.ts.map +1 -1
  39. package/dist/entities/src/enums/chat.d.ts +0 -12
  40. package/dist/entities/src/enums/chat.d.ts.map +1 -1
  41. package/dist/index.js +39 -137
  42. package/dist/index.js.map +1 -1
  43. package/dist/index.mjs +39 -137
  44. package/dist/index.mjs.map +1 -1
  45. package/package.json +1 -1
@@ -564,7 +564,7 @@ export declare const instagramContract: {
564
564
  id: z.ZodOptional<z.ZodString>;
565
565
  message: z.ZodOptional<z.ZodString>;
566
566
  direction: z.ZodEnum<["incoming", "outgoing", "system"]>;
567
- type: z.ZodEnum<["text", "image", "video", "audio", "file", "imagemap", "group", "fallback", "location", "sticker", "carousel", "card", "choice", "dropdown", "text_with_image", "reaction", "contacts", "carousel", "card", "choice", "dropdown", "csat", "assign", "solve", "resolved", "reopen", "open", "closed", "handed_over", "updated", "started", "hold", "unhold", "auto_unhold", "edited", "deleted", "unsupported"]>;
567
+ type: z.ZodEnum<["text", "image", "video", "audio", "file", "imagemap", "group", "fallback", "location", "sticker", "carousel", "card", "choice", "dropdown", "text_with_image", "reaction", "contacts", "carousel", "card", "choice", "dropdown", "assign", "solve", "resolved", "reopen", "open", "closed", "handed_over", "updated", "started", "hold", "unhold", "auto_unhold", "edited", "deleted", "unsupported"]>;
568
568
  readAt: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodDate, z.ZodString]>>>;
569
569
  metadata: z.ZodOptional<z.ZodAny>;
570
570
  platformId: z.ZodOptional<z.ZodString>;
@@ -620,7 +620,7 @@ export declare const instagramContract: {
620
620
  editedAt: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodDate, z.ZodString]>>>;
621
621
  label: z.ZodOptional<z.ZodString>;
622
622
  }, "strip", z.ZodTypeAny, {
623
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
623
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
624
624
  direction: "incoming" | "outgoing" | "system";
625
625
  id?: string | undefined;
626
626
  message?: string | undefined;
@@ -655,7 +655,7 @@ export declare const instagramContract: {
655
655
  editedAt?: string | Date | null | undefined;
656
656
  label?: string | undefined;
657
657
  }, {
658
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
658
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
659
659
  direction: "incoming" | "outgoing" | "system";
660
660
  id?: string | undefined;
661
661
  message?: string | undefined;
@@ -692,7 +692,7 @@ export declare const instagramContract: {
692
692
  }>;
693
693
  }, "strip", z.ZodTypeAny, {
694
694
  message: {
695
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
695
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
696
696
  direction: "incoming" | "outgoing" | "system";
697
697
  id?: string | undefined;
698
698
  message?: string | undefined;
@@ -822,7 +822,7 @@ export declare const instagramContract: {
822
822
  isBot: boolean | null;
823
823
  }, {
824
824
  message: {
825
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
825
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
826
826
  direction: "incoming" | "outgoing" | "system";
827
827
  id?: string | undefined;
828
828
  message?: string | undefined;
@@ -956,7 +956,7 @@ export declare const instagramContract: {
956
956
  200: z.ZodObject<{
957
957
  requestId: z.ZodString;
958
958
  data: z.ZodObject<{
959
- type: z.ZodEnum<["text", "image", "video", "audio", "file", "imagemap", "group", "fallback", "location", "sticker", "carousel", "card", "choice", "dropdown", "text_with_image", "reaction", "contacts", "carousel", "card", "choice", "dropdown", "csat", "assign", "solve", "resolved", "reopen", "open", "closed", "handed_over", "updated", "started", "hold", "unhold", "auto_unhold", "edited", "deleted", "unsupported"]>;
959
+ type: z.ZodEnum<["text", "image", "video", "audio", "file", "imagemap", "group", "fallback", "location", "sticker", "carousel", "card", "choice", "dropdown", "text_with_image", "reaction", "contacts", "carousel", "card", "choice", "dropdown", "assign", "solve", "resolved", "reopen", "open", "closed", "handed_over", "updated", "started", "hold", "unhold", "auto_unhold", "edited", "deleted", "unsupported"]>;
960
960
  message: z.ZodString;
961
961
  id: z.ZodString;
962
962
  url: z.ZodString;
@@ -2473,7 +2473,6 @@ export declare const instagramContract: {
2473
2473
  channelId: string;
2474
2474
  socialPlatformId: string;
2475
2475
  }>;
2476
- csatStatus: z.ZodNullable<z.ZodString>;
2477
2476
  actor: z.ZodObject<{
2478
2477
  id: z.ZodString;
2479
2478
  createdAt: z.ZodDate;
@@ -4316,7 +4315,6 @@ export declare const instagramContract: {
4316
4315
  closedAt: Date;
4317
4316
  lastMessageAt: Date | null;
4318
4317
  isBotRoom: boolean;
4319
- csatStatus: string | null;
4320
4318
  cxlog: {
4321
4319
  id: string;
4322
4320
  channel: string | null;
@@ -4744,7 +4742,6 @@ export declare const instagramContract: {
4744
4742
  closedAt: Date;
4745
4743
  lastMessageAt: Date | null;
4746
4744
  isBotRoom: boolean;
4747
- csatStatus: string | null;
4748
4745
  cxlog: {
4749
4746
  id: string;
4750
4747
  channel: string | null;
@@ -4885,7 +4882,7 @@ export declare const instagramContract: {
4885
4882
  deletedAt: z.ZodNullable<z.ZodDate>;
4886
4883
  message: z.ZodString;
4887
4884
  direction: z.ZodEnum<["incoming", "outgoing", "system"]>;
4888
- type: z.ZodEnum<["text", "image", "video", "audio", "file", "imagemap", "group", "fallback", "location", "sticker", "carousel", "card", "choice", "dropdown", "text_with_image", "reaction", "contacts", "carousel", "card", "choice", "dropdown", "csat", "assign", "solve", "resolved", "reopen", "open", "closed", "handed_over", "updated", "started", "hold", "unhold", "auto_unhold", "edited", "deleted", "unsupported"]>;
4885
+ type: z.ZodEnum<["text", "image", "video", "audio", "file", "imagemap", "group", "fallback", "location", "sticker", "carousel", "card", "choice", "dropdown", "text_with_image", "reaction", "contacts", "carousel", "card", "choice", "dropdown", "assign", "solve", "resolved", "reopen", "open", "closed", "handed_over", "updated", "started", "hold", "unhold", "auto_unhold", "edited", "deleted", "unsupported"]>;
4889
4886
  readAt: z.ZodDate;
4890
4887
  metadata: z.ZodAny;
4891
4888
  platformId: z.ZodString;
@@ -5543,7 +5540,7 @@ export declare const instagramContract: {
5543
5540
  };
5544
5541
  }>;
5545
5542
  }, "strip", z.ZodTypeAny, {
5546
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
5543
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
5547
5544
  message: string;
5548
5545
  id: string;
5549
5546
  url: string;
@@ -5705,7 +5702,7 @@ export declare const instagramContract: {
5705
5702
  metadata?: any;
5706
5703
  template?: any;
5707
5704
  }, {
5708
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
5705
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
5709
5706
  message: string;
5710
5707
  id: string;
5711
5708
  url: string;
@@ -6079,7 +6076,7 @@ export declare const instagramContract: {
6079
6076
  deletedAt: z.ZodNullable<z.ZodDate>;
6080
6077
  message: z.ZodString;
6081
6078
  direction: z.ZodEnum<["incoming", "outgoing", "system"]>;
6082
- type: z.ZodEnum<["text", "image", "video", "audio", "file", "imagemap", "group", "fallback", "location", "sticker", "carousel", "card", "choice", "dropdown", "text_with_image", "reaction", "contacts", "carousel", "card", "choice", "dropdown", "csat", "assign", "solve", "resolved", "reopen", "open", "closed", "handed_over", "updated", "started", "hold", "unhold", "auto_unhold", "edited", "deleted", "unsupported"]>;
6079
+ type: z.ZodEnum<["text", "image", "video", "audio", "file", "imagemap", "group", "fallback", "location", "sticker", "carousel", "card", "choice", "dropdown", "text_with_image", "reaction", "contacts", "carousel", "card", "choice", "dropdown", "assign", "solve", "resolved", "reopen", "open", "closed", "handed_over", "updated", "started", "hold", "unhold", "auto_unhold", "edited", "deleted", "unsupported"]>;
6083
6080
  readAt: z.ZodDate;
6084
6081
  metadata: z.ZodAny;
6085
6082
  platformId: z.ZodString;
@@ -7153,7 +7150,6 @@ export declare const instagramContract: {
7153
7150
  channelId: string;
7154
7151
  socialPlatformId: string;
7155
7152
  }>;
7156
- csatStatus: z.ZodNullable<z.ZodString>;
7157
7153
  actor: z.ZodObject<{
7158
7154
  id: z.ZodString;
7159
7155
  createdAt: z.ZodDate;
@@ -8996,7 +8992,6 @@ export declare const instagramContract: {
8996
8992
  closedAt: Date;
8997
8993
  lastMessageAt: Date | null;
8998
8994
  isBotRoom: boolean;
8999
- csatStatus: string | null;
9000
8995
  cxlog: {
9001
8996
  id: string;
9002
8997
  channel: string | null;
@@ -9424,7 +9419,6 @@ export declare const instagramContract: {
9424
9419
  closedAt: Date;
9425
9420
  lastMessageAt: Date | null;
9426
9421
  isBotRoom: boolean;
9427
- csatStatus: string | null;
9428
9422
  cxlog: {
9429
9423
  id: string;
9430
9424
  channel: string | null;
@@ -9568,7 +9562,7 @@ export declare const instagramContract: {
9568
9562
  deletedAt: z.ZodNullable<z.ZodDate>;
9569
9563
  message: z.ZodString;
9570
9564
  direction: z.ZodEnum<["incoming", "outgoing", "system"]>;
9571
- type: z.ZodEnum<["text", "image", "video", "audio", "file", "imagemap", "group", "fallback", "location", "sticker", "carousel", "card", "choice", "dropdown", "text_with_image", "reaction", "contacts", "carousel", "card", "choice", "dropdown", "csat", "assign", "solve", "resolved", "reopen", "open", "closed", "handed_over", "updated", "started", "hold", "unhold", "auto_unhold", "edited", "deleted", "unsupported"]>;
9565
+ type: z.ZodEnum<["text", "image", "video", "audio", "file", "imagemap", "group", "fallback", "location", "sticker", "carousel", "card", "choice", "dropdown", "text_with_image", "reaction", "contacts", "carousel", "card", "choice", "dropdown", "assign", "solve", "resolved", "reopen", "open", "closed", "handed_over", "updated", "started", "hold", "unhold", "auto_unhold", "edited", "deleted", "unsupported"]>;
9572
9566
  readAt: z.ZodDate;
9573
9567
  metadata: z.ZodAny;
9574
9568
  platformId: z.ZodString;
@@ -10226,7 +10220,7 @@ export declare const instagramContract: {
10226
10220
  };
10227
10221
  }>;
10228
10222
  }, "strip", z.ZodTypeAny, {
10229
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
10223
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
10230
10224
  message: string;
10231
10225
  id: string;
10232
10226
  url: string;
@@ -10388,7 +10382,7 @@ export declare const instagramContract: {
10388
10382
  metadata?: any;
10389
10383
  template?: any;
10390
10384
  }, {
10391
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
10385
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
10392
10386
  message: string;
10393
10387
  id: string;
10394
10388
  url: string;
@@ -11190,7 +11184,7 @@ export declare const instagramContract: {
11190
11184
  editedMessageid: z.ZodString;
11191
11185
  label: z.ZodOptional<z.ZodString>;
11192
11186
  }, "strip", z.ZodTypeAny, {
11193
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
11187
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
11194
11188
  message: string;
11195
11189
  id: string;
11196
11190
  url: string;
@@ -11625,7 +11619,6 @@ export declare const instagramContract: {
11625
11619
  closedAt: Date;
11626
11620
  lastMessageAt: Date | null;
11627
11621
  isBotRoom: boolean;
11628
- csatStatus: string | null;
11629
11622
  cxlog: {
11630
11623
  id: string;
11631
11624
  channel: string | null;
@@ -11744,7 +11737,7 @@ export declare const instagramContract: {
11744
11737
  previewUrl: string;
11745
11738
  imageSetId: string;
11746
11739
  repliedMessage: {
11747
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
11740
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
11748
11741
  message: string;
11749
11742
  id: string;
11750
11743
  url: string;
@@ -11955,7 +11948,7 @@ export declare const instagramContract: {
11955
11948
  template?: any;
11956
11949
  label?: string | undefined;
11957
11950
  }, {
11958
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
11951
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
11959
11952
  message: string;
11960
11953
  id: string;
11961
11954
  url: string;
@@ -12390,7 +12383,6 @@ export declare const instagramContract: {
12390
12383
  closedAt: Date;
12391
12384
  lastMessageAt: Date | null;
12392
12385
  isBotRoom: boolean;
12393
- csatStatus: string | null;
12394
12386
  cxlog: {
12395
12387
  id: string;
12396
12388
  channel: string | null;
@@ -12509,7 +12501,7 @@ export declare const instagramContract: {
12509
12501
  previewUrl: string;
12510
12502
  imageSetId: string;
12511
12503
  repliedMessage: {
12512
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
12504
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
12513
12505
  message: string;
12514
12506
  id: string;
12515
12507
  url: string;
@@ -12721,7 +12713,7 @@ export declare const instagramContract: {
12721
12713
  label?: string | undefined;
12722
12714
  }>>>;
12723
12715
  }, "strip", z.ZodTypeAny, {
12724
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
12716
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
12725
12717
  message: string;
12726
12718
  id: string;
12727
12719
  url: string;
@@ -13156,7 +13148,6 @@ export declare const instagramContract: {
13156
13148
  closedAt: Date;
13157
13149
  lastMessageAt: Date | null;
13158
13150
  isBotRoom: boolean;
13159
- csatStatus: string | null;
13160
13151
  cxlog: {
13161
13152
  id: string;
13162
13153
  channel: string | null;
@@ -13275,7 +13266,7 @@ export declare const instagramContract: {
13275
13266
  previewUrl: string;
13276
13267
  imageSetId: string;
13277
13268
  repliedMessage: {
13278
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
13269
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
13279
13270
  message: string;
13280
13271
  id: string;
13281
13272
  url: string;
@@ -13486,7 +13477,7 @@ export declare const instagramContract: {
13486
13477
  template?: any;
13487
13478
  metadata?: any;
13488
13479
  fromMessage?: {
13489
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
13480
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
13490
13481
  message: string;
13491
13482
  id: string;
13492
13483
  url: string;
@@ -13921,7 +13912,6 @@ export declare const instagramContract: {
13921
13912
  closedAt: Date;
13922
13913
  lastMessageAt: Date | null;
13923
13914
  isBotRoom: boolean;
13924
- csatStatus: string | null;
13925
13915
  cxlog: {
13926
13916
  id: string;
13927
13917
  channel: string | null;
@@ -14040,7 +14030,7 @@ export declare const instagramContract: {
14040
14030
  previewUrl: string;
14041
14031
  imageSetId: string;
14042
14032
  repliedMessage: {
14043
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
14033
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
14044
14034
  message: string;
14045
14035
  id: string;
14046
14036
  url: string;
@@ -14252,7 +14242,7 @@ export declare const instagramContract: {
14252
14242
  label?: string | undefined;
14253
14243
  } | null | undefined;
14254
14244
  }, {
14255
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
14245
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
14256
14246
  message: string;
14257
14247
  id: string;
14258
14248
  url: string;
@@ -14687,7 +14677,6 @@ export declare const instagramContract: {
14687
14677
  closedAt: Date;
14688
14678
  lastMessageAt: Date | null;
14689
14679
  isBotRoom: boolean;
14690
- csatStatus: string | null;
14691
14680
  cxlog: {
14692
14681
  id: string;
14693
14682
  channel: string | null;
@@ -14806,7 +14795,7 @@ export declare const instagramContract: {
14806
14795
  previewUrl: string;
14807
14796
  imageSetId: string;
14808
14797
  repliedMessage: {
14809
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
14798
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
14810
14799
  message: string;
14811
14800
  id: string;
14812
14801
  url: string;
@@ -15017,7 +15006,7 @@ export declare const instagramContract: {
15017
15006
  template?: any;
15018
15007
  metadata?: any;
15019
15008
  fromMessage?: {
15020
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
15009
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
15021
15010
  message: string;
15022
15011
  id: string;
15023
15012
  url: string;
@@ -15452,7 +15441,6 @@ export declare const instagramContract: {
15452
15441
  closedAt: Date;
15453
15442
  lastMessageAt: Date | null;
15454
15443
  isBotRoom: boolean;
15455
- csatStatus: string | null;
15456
15444
  cxlog: {
15457
15445
  id: string;
15458
15446
  channel: string | null;
@@ -15571,7 +15559,7 @@ export declare const instagramContract: {
15571
15559
  previewUrl: string;
15572
15560
  imageSetId: string;
15573
15561
  repliedMessage: {
15574
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
15562
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
15575
15563
  message: string;
15576
15564
  id: string;
15577
15565
  url: string;
@@ -15785,7 +15773,7 @@ export declare const instagramContract: {
15785
15773
  }>;
15786
15774
  }, "strip", z.ZodTypeAny, {
15787
15775
  data: {
15788
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
15776
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
15789
15777
  message: string;
15790
15778
  id: string;
15791
15779
  url: string;
@@ -16220,7 +16208,6 @@ export declare const instagramContract: {
16220
16208
  closedAt: Date;
16221
16209
  lastMessageAt: Date | null;
16222
16210
  isBotRoom: boolean;
16223
- csatStatus: string | null;
16224
16211
  cxlog: {
16225
16212
  id: string;
16226
16213
  channel: string | null;
@@ -16339,7 +16326,7 @@ export declare const instagramContract: {
16339
16326
  previewUrl: string;
16340
16327
  imageSetId: string;
16341
16328
  repliedMessage: {
16342
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
16329
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
16343
16330
  message: string;
16344
16331
  id: string;
16345
16332
  url: string;
@@ -16550,7 +16537,7 @@ export declare const instagramContract: {
16550
16537
  template?: any;
16551
16538
  metadata?: any;
16552
16539
  fromMessage?: {
16553
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
16540
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
16554
16541
  message: string;
16555
16542
  id: string;
16556
16543
  url: string;
@@ -16985,7 +16972,6 @@ export declare const instagramContract: {
16985
16972
  closedAt: Date;
16986
16973
  lastMessageAt: Date | null;
16987
16974
  isBotRoom: boolean;
16988
- csatStatus: string | null;
16989
16975
  cxlog: {
16990
16976
  id: string;
16991
16977
  channel: string | null;
@@ -17104,7 +17090,7 @@ export declare const instagramContract: {
17104
17090
  previewUrl: string;
17105
17091
  imageSetId: string;
17106
17092
  repliedMessage: {
17107
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
17093
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
17108
17094
  message: string;
17109
17095
  id: string;
17110
17096
  url: string;
@@ -17319,7 +17305,7 @@ export declare const instagramContract: {
17319
17305
  requestId: string;
17320
17306
  }, {
17321
17307
  data: {
17322
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
17308
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
17323
17309
  message: string;
17324
17310
  id: string;
17325
17311
  url: string;
@@ -17754,7 +17740,6 @@ export declare const instagramContract: {
17754
17740
  closedAt: Date;
17755
17741
  lastMessageAt: Date | null;
17756
17742
  isBotRoom: boolean;
17757
- csatStatus: string | null;
17758
17743
  cxlog: {
17759
17744
  id: string;
17760
17745
  channel: string | null;
@@ -17873,7 +17858,7 @@ export declare const instagramContract: {
17873
17858
  previewUrl: string;
17874
17859
  imageSetId: string;
17875
17860
  repliedMessage: {
17876
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
17861
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
17877
17862
  message: string;
17878
17863
  id: string;
17879
17864
  url: string;
@@ -18084,7 +18069,7 @@ export declare const instagramContract: {
18084
18069
  template?: any;
18085
18070
  metadata?: any;
18086
18071
  fromMessage?: {
18087
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
18072
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
18088
18073
  message: string;
18089
18074
  id: string;
18090
18075
  url: string;
@@ -18519,7 +18504,6 @@ export declare const instagramContract: {
18519
18504
  closedAt: Date;
18520
18505
  lastMessageAt: Date | null;
18521
18506
  isBotRoom: boolean;
18522
- csatStatus: string | null;
18523
18507
  cxlog: {
18524
18508
  id: string;
18525
18509
  channel: string | null;
@@ -18638,7 +18622,7 @@ export declare const instagramContract: {
18638
18622
  previewUrl: string;
18639
18623
  imageSetId: string;
18640
18624
  repliedMessage: {
18641
- type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "csat" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
18625
+ type: "fallback" | "location" | "file" | "closed" | "open" | "audio" | "video" | "image" | "text" | "group" | "imagemap" | "sticker" | "carousel" | "card" | "choice" | "dropdown" | "text_with_image" | "reaction" | "contacts" | "assign" | "solve" | "resolved" | "reopen" | "handed_over" | "updated" | "started" | "hold" | "unhold" | "auto_unhold" | "edited" | "deleted" | "unsupported";
18642
18626
  message: string;
18643
18627
  id: string;
18644
18628
  url: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/instagram/index.ts"],"names":[],"mappings":"AACA,OAAO,CAAC,MAAM,KAAK,CAAC;AAWpB,OAAO,EACL,4BAA4B,EAC5B,uBAAuB,EAExB,MAAM,cAAc,CAAC;AAEtB,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAChF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAC1C,OAAO,4BAA4B,CACpC,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2F5B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/instagram/index.ts"],"names":[],"mappings":"AACA,OAAO,CAAC,MAAM,KAAK,CAAC;AAWpB,OAAO,EACL,4BAA4B,EAC5B,uBAAuB,EAExB,MAAM,cAAc,CAAC;AAEtB,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAChF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAC1C,OAAO,4BAA4B,CACpC,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2F5B,CAAC"}