@kl1/contracts 1.2.59-uat → 1.2.60-uat

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. package/dist/api-contracts/src/channel/index.d.ts +791 -0
  2. package/dist/api-contracts/src/channel/index.d.ts.map +1 -1
  3. package/dist/api-contracts/src/chat/index.d.ts +285 -169
  4. package/dist/api-contracts/src/chat/index.d.ts.map +1 -1
  5. package/dist/api-contracts/src/chat/schema.d.ts +70 -45
  6. package/dist/api-contracts/src/chat/schema.d.ts.map +1 -1
  7. package/dist/api-contracts/src/chat/validation.d.ts +72 -56
  8. package/dist/api-contracts/src/chat/validation.d.ts.map +1 -1
  9. package/dist/api-contracts/src/contract.d.ts +2366 -639
  10. package/dist/api-contracts/src/contract.d.ts.map +1 -1
  11. package/dist/api-contracts/src/facebook-feed/index.d.ts +59 -43
  12. package/dist/api-contracts/src/facebook-feed/index.d.ts.map +1 -1
  13. package/dist/api-contracts/src/facebook-feed/schema.d.ts +3 -3
  14. package/dist/api-contracts/src/instagram/index.d.ts +49 -33
  15. package/dist/api-contracts/src/instagram/index.d.ts.map +1 -1
  16. package/dist/api-contracts/src/line/index.d.ts +54 -38
  17. package/dist/api-contracts/src/line/index.d.ts.map +1 -1
  18. package/dist/api-contracts/src/line/validation.d.ts +5 -5
  19. package/dist/api-contracts/src/messenger/index.d.ts +49 -33
  20. package/dist/api-contracts/src/messenger/index.d.ts.map +1 -1
  21. package/dist/api-contracts/src/sms/index.d.ts +5 -5
  22. package/dist/api-contracts/src/telegram/index.d.ts +49 -33
  23. package/dist/api-contracts/src/telegram/index.d.ts.map +1 -1
  24. package/dist/api-contracts/src/viber/index.d.ts +49 -33
  25. package/dist/api-contracts/src/viber/index.d.ts.map +1 -1
  26. package/dist/api-contracts/src/webchat/index.d.ts +49 -33
  27. package/dist/api-contracts/src/webchat/index.d.ts.map +1 -1
  28. package/dist/api-contracts/src/whatsapp/index.d.ts +49 -33
  29. package/dist/api-contracts/src/whatsapp/index.d.ts.map +1 -1
  30. package/dist/api-contracts/src/workflow-rule/index.d.ts +29 -12
  31. package/dist/api-contracts/src/workflow-rule/index.d.ts.map +1 -1
  32. package/dist/entities/src/enums/chat.d.ts +12 -0
  33. package/dist/entities/src/enums/chat.d.ts.map +1 -1
  34. package/dist/index.js +19 -0
  35. package/dist/index.js.map +1 -1
  36. package/dist/index.mjs +19 -0
  37. package/dist/index.mjs.map +1 -1
  38. 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", "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", "csat", "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" | "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" | "csat" | "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" | "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" | "csat" | "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" | "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" | "csat" | "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" | "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" | "csat" | "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", "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", "csat", "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,6 +2473,7 @@ export declare const instagramContract: {
2473
2473
  channelId: string;
2474
2474
  socialPlatformId: string;
2475
2475
  }>;
2476
+ csatStatus: z.ZodNullable<z.ZodString>;
2476
2477
  actor: z.ZodObject<{
2477
2478
  id: z.ZodString;
2478
2479
  createdAt: z.ZodDate;
@@ -4315,6 +4316,7 @@ export declare const instagramContract: {
4315
4316
  closedAt: Date;
4316
4317
  lastMessageAt: Date | null;
4317
4318
  isBotRoom: boolean;
4319
+ csatStatus: string | null;
4318
4320
  cxlog: {
4319
4321
  id: string;
4320
4322
  channel: string | null;
@@ -4742,6 +4744,7 @@ export declare const instagramContract: {
4742
4744
  closedAt: Date;
4743
4745
  lastMessageAt: Date | null;
4744
4746
  isBotRoom: boolean;
4747
+ csatStatus: string | null;
4745
4748
  cxlog: {
4746
4749
  id: string;
4747
4750
  channel: string | null;
@@ -4882,7 +4885,7 @@ export declare const instagramContract: {
4882
4885
  deletedAt: z.ZodNullable<z.ZodDate>;
4883
4886
  message: z.ZodString;
4884
4887
  direction: z.ZodEnum<["incoming", "outgoing", "system"]>;
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"]>;
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"]>;
4886
4889
  readAt: z.ZodDate;
4887
4890
  metadata: z.ZodAny;
4888
4891
  platformId: z.ZodString;
@@ -5540,7 +5543,7 @@ export declare const instagramContract: {
5540
5543
  };
5541
5544
  }>;
5542
5545
  }, "strip", z.ZodTypeAny, {
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";
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";
5544
5547
  message: string;
5545
5548
  id: string;
5546
5549
  url: string;
@@ -5702,7 +5705,7 @@ export declare const instagramContract: {
5702
5705
  metadata?: any;
5703
5706
  template?: any;
5704
5707
  }, {
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";
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";
5706
5709
  message: string;
5707
5710
  id: string;
5708
5711
  url: string;
@@ -6076,7 +6079,7 @@ export declare const instagramContract: {
6076
6079
  deletedAt: z.ZodNullable<z.ZodDate>;
6077
6080
  message: z.ZodString;
6078
6081
  direction: z.ZodEnum<["incoming", "outgoing", "system"]>;
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"]>;
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"]>;
6080
6083
  readAt: z.ZodDate;
6081
6084
  metadata: z.ZodAny;
6082
6085
  platformId: z.ZodString;
@@ -7150,6 +7153,7 @@ export declare const instagramContract: {
7150
7153
  channelId: string;
7151
7154
  socialPlatformId: string;
7152
7155
  }>;
7156
+ csatStatus: z.ZodNullable<z.ZodString>;
7153
7157
  actor: z.ZodObject<{
7154
7158
  id: z.ZodString;
7155
7159
  createdAt: z.ZodDate;
@@ -8992,6 +8996,7 @@ export declare const instagramContract: {
8992
8996
  closedAt: Date;
8993
8997
  lastMessageAt: Date | null;
8994
8998
  isBotRoom: boolean;
8999
+ csatStatus: string | null;
8995
9000
  cxlog: {
8996
9001
  id: string;
8997
9002
  channel: string | null;
@@ -9419,6 +9424,7 @@ export declare const instagramContract: {
9419
9424
  closedAt: Date;
9420
9425
  lastMessageAt: Date | null;
9421
9426
  isBotRoom: boolean;
9427
+ csatStatus: string | null;
9422
9428
  cxlog: {
9423
9429
  id: string;
9424
9430
  channel: string | null;
@@ -9562,7 +9568,7 @@ export declare const instagramContract: {
9562
9568
  deletedAt: z.ZodNullable<z.ZodDate>;
9563
9569
  message: z.ZodString;
9564
9570
  direction: z.ZodEnum<["incoming", "outgoing", "system"]>;
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"]>;
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"]>;
9566
9572
  readAt: z.ZodDate;
9567
9573
  metadata: z.ZodAny;
9568
9574
  platformId: z.ZodString;
@@ -10220,7 +10226,7 @@ export declare const instagramContract: {
10220
10226
  };
10221
10227
  }>;
10222
10228
  }, "strip", z.ZodTypeAny, {
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";
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";
10224
10230
  message: string;
10225
10231
  id: string;
10226
10232
  url: string;
@@ -10382,7 +10388,7 @@ export declare const instagramContract: {
10382
10388
  metadata?: any;
10383
10389
  template?: any;
10384
10390
  }, {
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";
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";
10386
10392
  message: string;
10387
10393
  id: string;
10388
10394
  url: string;
@@ -11184,7 +11190,7 @@ export declare const instagramContract: {
11184
11190
  editedMessageid: z.ZodString;
11185
11191
  label: z.ZodOptional<z.ZodString>;
11186
11192
  }, "strip", z.ZodTypeAny, {
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";
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";
11188
11194
  message: string;
11189
11195
  id: string;
11190
11196
  url: string;
@@ -11619,6 +11625,7 @@ export declare const instagramContract: {
11619
11625
  closedAt: Date;
11620
11626
  lastMessageAt: Date | null;
11621
11627
  isBotRoom: boolean;
11628
+ csatStatus: string | null;
11622
11629
  cxlog: {
11623
11630
  id: string;
11624
11631
  channel: string | null;
@@ -11737,7 +11744,7 @@ export declare const instagramContract: {
11737
11744
  previewUrl: string;
11738
11745
  imageSetId: string;
11739
11746
  repliedMessage: {
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";
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";
11741
11748
  message: string;
11742
11749
  id: string;
11743
11750
  url: string;
@@ -11948,7 +11955,7 @@ export declare const instagramContract: {
11948
11955
  template?: any;
11949
11956
  label?: string | undefined;
11950
11957
  }, {
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";
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";
11952
11959
  message: string;
11953
11960
  id: string;
11954
11961
  url: string;
@@ -12383,6 +12390,7 @@ export declare const instagramContract: {
12383
12390
  closedAt: Date;
12384
12391
  lastMessageAt: Date | null;
12385
12392
  isBotRoom: boolean;
12393
+ csatStatus: string | null;
12386
12394
  cxlog: {
12387
12395
  id: string;
12388
12396
  channel: string | null;
@@ -12501,7 +12509,7 @@ export declare const instagramContract: {
12501
12509
  previewUrl: string;
12502
12510
  imageSetId: string;
12503
12511
  repliedMessage: {
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";
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";
12505
12513
  message: string;
12506
12514
  id: string;
12507
12515
  url: string;
@@ -12713,7 +12721,7 @@ export declare const instagramContract: {
12713
12721
  label?: string | undefined;
12714
12722
  }>>>;
12715
12723
  }, "strip", z.ZodTypeAny, {
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";
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";
12717
12725
  message: string;
12718
12726
  id: string;
12719
12727
  url: string;
@@ -13148,6 +13156,7 @@ export declare const instagramContract: {
13148
13156
  closedAt: Date;
13149
13157
  lastMessageAt: Date | null;
13150
13158
  isBotRoom: boolean;
13159
+ csatStatus: string | null;
13151
13160
  cxlog: {
13152
13161
  id: string;
13153
13162
  channel: string | null;
@@ -13266,7 +13275,7 @@ export declare const instagramContract: {
13266
13275
  previewUrl: string;
13267
13276
  imageSetId: string;
13268
13277
  repliedMessage: {
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";
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";
13270
13279
  message: string;
13271
13280
  id: string;
13272
13281
  url: string;
@@ -13477,7 +13486,7 @@ export declare const instagramContract: {
13477
13486
  template?: any;
13478
13487
  metadata?: any;
13479
13488
  fromMessage?: {
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";
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";
13481
13490
  message: string;
13482
13491
  id: string;
13483
13492
  url: string;
@@ -13912,6 +13921,7 @@ export declare const instagramContract: {
13912
13921
  closedAt: Date;
13913
13922
  lastMessageAt: Date | null;
13914
13923
  isBotRoom: boolean;
13924
+ csatStatus: string | null;
13915
13925
  cxlog: {
13916
13926
  id: string;
13917
13927
  channel: string | null;
@@ -14030,7 +14040,7 @@ export declare const instagramContract: {
14030
14040
  previewUrl: string;
14031
14041
  imageSetId: string;
14032
14042
  repliedMessage: {
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";
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";
14034
14044
  message: string;
14035
14045
  id: string;
14036
14046
  url: string;
@@ -14242,7 +14252,7 @@ export declare const instagramContract: {
14242
14252
  label?: string | undefined;
14243
14253
  } | null | undefined;
14244
14254
  }, {
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";
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";
14246
14256
  message: string;
14247
14257
  id: string;
14248
14258
  url: string;
@@ -14677,6 +14687,7 @@ export declare const instagramContract: {
14677
14687
  closedAt: Date;
14678
14688
  lastMessageAt: Date | null;
14679
14689
  isBotRoom: boolean;
14690
+ csatStatus: string | null;
14680
14691
  cxlog: {
14681
14692
  id: string;
14682
14693
  channel: string | null;
@@ -14795,7 +14806,7 @@ export declare const instagramContract: {
14795
14806
  previewUrl: string;
14796
14807
  imageSetId: string;
14797
14808
  repliedMessage: {
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";
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";
14799
14810
  message: string;
14800
14811
  id: string;
14801
14812
  url: string;
@@ -15006,7 +15017,7 @@ export declare const instagramContract: {
15006
15017
  template?: any;
15007
15018
  metadata?: any;
15008
15019
  fromMessage?: {
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";
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";
15010
15021
  message: string;
15011
15022
  id: string;
15012
15023
  url: string;
@@ -15441,6 +15452,7 @@ export declare const instagramContract: {
15441
15452
  closedAt: Date;
15442
15453
  lastMessageAt: Date | null;
15443
15454
  isBotRoom: boolean;
15455
+ csatStatus: string | null;
15444
15456
  cxlog: {
15445
15457
  id: string;
15446
15458
  channel: string | null;
@@ -15559,7 +15571,7 @@ export declare const instagramContract: {
15559
15571
  previewUrl: string;
15560
15572
  imageSetId: string;
15561
15573
  repliedMessage: {
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";
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";
15563
15575
  message: string;
15564
15576
  id: string;
15565
15577
  url: string;
@@ -15773,7 +15785,7 @@ export declare const instagramContract: {
15773
15785
  }>;
15774
15786
  }, "strip", z.ZodTypeAny, {
15775
15787
  data: {
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";
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";
15777
15789
  message: string;
15778
15790
  id: string;
15779
15791
  url: string;
@@ -16208,6 +16220,7 @@ export declare const instagramContract: {
16208
16220
  closedAt: Date;
16209
16221
  lastMessageAt: Date | null;
16210
16222
  isBotRoom: boolean;
16223
+ csatStatus: string | null;
16211
16224
  cxlog: {
16212
16225
  id: string;
16213
16226
  channel: string | null;
@@ -16326,7 +16339,7 @@ export declare const instagramContract: {
16326
16339
  previewUrl: string;
16327
16340
  imageSetId: string;
16328
16341
  repliedMessage: {
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";
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";
16330
16343
  message: string;
16331
16344
  id: string;
16332
16345
  url: string;
@@ -16537,7 +16550,7 @@ export declare const instagramContract: {
16537
16550
  template?: any;
16538
16551
  metadata?: any;
16539
16552
  fromMessage?: {
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";
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";
16541
16554
  message: string;
16542
16555
  id: string;
16543
16556
  url: string;
@@ -16972,6 +16985,7 @@ export declare const instagramContract: {
16972
16985
  closedAt: Date;
16973
16986
  lastMessageAt: Date | null;
16974
16987
  isBotRoom: boolean;
16988
+ csatStatus: string | null;
16975
16989
  cxlog: {
16976
16990
  id: string;
16977
16991
  channel: string | null;
@@ -17090,7 +17104,7 @@ export declare const instagramContract: {
17090
17104
  previewUrl: string;
17091
17105
  imageSetId: string;
17092
17106
  repliedMessage: {
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";
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";
17094
17108
  message: string;
17095
17109
  id: string;
17096
17110
  url: string;
@@ -17305,7 +17319,7 @@ export declare const instagramContract: {
17305
17319
  requestId: string;
17306
17320
  }, {
17307
17321
  data: {
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";
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";
17309
17323
  message: string;
17310
17324
  id: string;
17311
17325
  url: string;
@@ -17740,6 +17754,7 @@ export declare const instagramContract: {
17740
17754
  closedAt: Date;
17741
17755
  lastMessageAt: Date | null;
17742
17756
  isBotRoom: boolean;
17757
+ csatStatus: string | null;
17743
17758
  cxlog: {
17744
17759
  id: string;
17745
17760
  channel: string | null;
@@ -17858,7 +17873,7 @@ export declare const instagramContract: {
17858
17873
  previewUrl: string;
17859
17874
  imageSetId: string;
17860
17875
  repliedMessage: {
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";
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";
17862
17877
  message: string;
17863
17878
  id: string;
17864
17879
  url: string;
@@ -18069,7 +18084,7 @@ export declare const instagramContract: {
18069
18084
  template?: any;
18070
18085
  metadata?: any;
18071
18086
  fromMessage?: {
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";
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";
18073
18088
  message: string;
18074
18089
  id: string;
18075
18090
  url: string;
@@ -18504,6 +18519,7 @@ export declare const instagramContract: {
18504
18519
  closedAt: Date;
18505
18520
  lastMessageAt: Date | null;
18506
18521
  isBotRoom: boolean;
18522
+ csatStatus: string | null;
18507
18523
  cxlog: {
18508
18524
  id: string;
18509
18525
  channel: string | null;
@@ -18622,7 +18638,7 @@ export declare const instagramContract: {
18622
18638
  previewUrl: string;
18623
18639
  imageSetId: string;
18624
18640
  repliedMessage: {
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";
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";
18626
18642
  message: string;
18627
18643
  id: string;
18628
18644
  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"}