common-tg-service 1.1.49 → 1.1.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/dist/app.module.js +2 -0
  2. package/dist/app.module.js.map +1 -1
  3. package/dist/components/buffer-clients/buffer-client.service.js +14 -7
  4. package/dist/components/buffer-clients/buffer-client.service.js.map +1 -1
  5. package/dist/components/clients/client.controller.d.ts +88 -2
  6. package/dist/components/clients/client.controller.js +272 -13
  7. package/dist/components/clients/client.controller.js.map +1 -1
  8. package/dist/components/clients/client.module.js +7 -1
  9. package/dist/components/clients/client.module.js.map +1 -1
  10. package/dist/components/clients/client.service.d.ts +113 -1
  11. package/dist/components/clients/client.service.js +580 -34
  12. package/dist/components/clients/client.service.js.map +1 -1
  13. package/dist/components/clients/dto/create-client.dto.d.ts +3 -1
  14. package/dist/components/clients/dto/create-client.dto.js +12 -4
  15. package/dist/components/clients/dto/create-client.dto.js.map +1 -1
  16. package/dist/components/clients/dto/search-client.dto.d.ts +1 -1
  17. package/dist/components/clients/dto/search-client.dto.js +7 -8
  18. package/dist/components/clients/dto/search-client.dto.js.map +1 -1
  19. package/dist/components/clients/schemas/client.schema.d.ts +1 -1
  20. package/dist/components/clients/schemas/client.schema.js +5 -5
  21. package/dist/components/clients/schemas/client.schema.js.map +1 -1
  22. package/dist/components/index.d.ts +1 -0
  23. package/dist/components/index.js +1 -0
  24. package/dist/components/index.js.map +1 -1
  25. package/dist/components/ip-management/client-ip-integration.controller.d.ts +21 -0
  26. package/dist/components/ip-management/client-ip-integration.controller.js +168 -0
  27. package/dist/components/ip-management/client-ip-integration.controller.js.map +1 -0
  28. package/dist/components/ip-management/client-ip-integration.service.d.ts +74 -0
  29. package/dist/components/ip-management/client-ip-integration.service.js +237 -0
  30. package/dist/components/ip-management/client-ip-integration.service.js.map +1 -0
  31. package/dist/components/ip-management/dto/assign-ip.dto.d.ts +12 -0
  32. package/dist/components/ip-management/dto/assign-ip.dto.js +56 -0
  33. package/dist/components/ip-management/dto/assign-ip.dto.js.map +1 -0
  34. package/dist/components/ip-management/dto/create-ip-mobile-mapping.dto.d.ts +6 -0
  35. package/dist/components/ip-management/dto/create-ip-mobile-mapping.dto.js +39 -0
  36. package/dist/components/ip-management/dto/create-ip-mobile-mapping.dto.js.map +1 -0
  37. package/dist/components/ip-management/dto/create-proxy-ip.dto.d.ts +9 -0
  38. package/dist/components/ip-management/dto/create-proxy-ip.dto.js +57 -0
  39. package/dist/components/ip-management/dto/create-proxy-ip.dto.js.map +1 -0
  40. package/dist/components/ip-management/dto/search-ip.dto.d.ts +16 -0
  41. package/dist/components/ip-management/dto/search-ip.dto.js +93 -0
  42. package/dist/components/ip-management/dto/search-ip.dto.js.map +1 -0
  43. package/dist/components/ip-management/dto/update-ip-mobile-mapping.dto.d.ts +5 -0
  44. package/dist/components/ip-management/dto/update-ip-mobile-mapping.dto.js +9 -0
  45. package/dist/components/ip-management/dto/update-ip-mobile-mapping.dto.js.map +1 -0
  46. package/dist/components/ip-management/dto/update-proxy-ip.dto.d.ts +5 -0
  47. package/dist/components/ip-management/dto/update-proxy-ip.dto.js +9 -0
  48. package/dist/components/ip-management/dto/update-proxy-ip.dto.js.map +1 -0
  49. package/dist/components/ip-management/index.d.ts +13 -0
  50. package/dist/components/ip-management/index.js +30 -0
  51. package/dist/components/ip-management/index.js.map +1 -0
  52. package/dist/components/ip-management/ip-management.controller.d.ts +45 -0
  53. package/dist/components/ip-management/ip-management.controller.js +249 -0
  54. package/dist/components/ip-management/ip-management.controller.js.map +1 -0
  55. package/dist/components/ip-management/ip-management.module.d.ts +2 -0
  56. package/dist/components/ip-management/ip-management.module.js +38 -0
  57. package/dist/components/ip-management/ip-management.module.js.map +1 -0
  58. package/dist/components/ip-management/ip-management.service.d.ts +41 -0
  59. package/dist/components/ip-management/ip-management.service.js +211 -0
  60. package/dist/components/ip-management/ip-management.service.js.map +1 -0
  61. package/dist/components/ip-management/schemas/ip-mobile-mapping.schema.d.ts +17 -0
  62. package/dist/components/ip-management/schemas/ip-mobile-mapping.schema.js +56 -0
  63. package/dist/components/ip-management/schemas/ip-mobile-mapping.schema.js.map +1 -0
  64. package/dist/components/ip-management/schemas/proxy-ip.schema.d.ts +21 -0
  65. package/dist/components/ip-management/schemas/proxy-ip.schema.js +76 -0
  66. package/dist/components/ip-management/schemas/proxy-ip.schema.js.map +1 -0
  67. package/dist/components/promote-clients/dto/create-promote-client.dto.d.ts +4 -0
  68. package/dist/components/promote-clients/dto/create-promote-client.dto.js +42 -0
  69. package/dist/components/promote-clients/dto/create-promote-client.dto.js.map +1 -1
  70. package/dist/components/promote-clients/dto/search-promote-client.dto.js +1 -0
  71. package/dist/components/promote-clients/dto/search-promote-client.dto.js.map +1 -1
  72. package/dist/components/promote-clients/migration.service.d.ts +50 -0
  73. package/dist/components/promote-clients/migration.service.js +280 -0
  74. package/dist/components/promote-clients/migration.service.js.map +1 -0
  75. package/dist/components/promote-clients/promote-client.controller.d.ts +55 -2
  76. package/dist/components/promote-clients/promote-client.controller.js +272 -8
  77. package/dist/components/promote-clients/promote-client.controller.js.map +1 -1
  78. package/dist/components/promote-clients/promote-client.module.js +4 -3
  79. package/dist/components/promote-clients/promote-client.module.js.map +1 -1
  80. package/dist/components/promote-clients/promote-client.service.d.ts +49 -2
  81. package/dist/components/promote-clients/promote-client.service.js +418 -107
  82. package/dist/components/promote-clients/promote-client.service.js.map +1 -1
  83. package/dist/components/promote-clients/schemas/promote-client.schema.d.ts +4 -0
  84. package/dist/components/promote-clients/schemas/promote-client.schema.js +17 -0
  85. package/dist/components/promote-clients/schemas/promote-client.schema.js.map +1 -1
  86. package/dist/components/session-manager/session.controller.js +10 -15
  87. package/dist/components/session-manager/session.controller.js.map +1 -1
  88. package/dist/migrations/migrate-promote-clients-round-robin.d.ts +35 -0
  89. package/dist/migrations/migrate-promote-clients-round-robin.js +271 -0
  90. package/dist/migrations/migrate-promote-clients-round-robin.js.map +1 -0
  91. package/dist/migrations/migration.module.d.ts +2 -0
  92. package/dist/migrations/migration.module.js +28 -0
  93. package/dist/migrations/migration.module.js.map +1 -0
  94. package/dist/migrations/test-round-robin.d.ts +7 -0
  95. package/dist/migrations/test-round-robin.js +112 -0
  96. package/dist/migrations/test-round-robin.js.map +1 -0
  97. package/dist/migrations/validate-promote-clients.d.ts +21 -0
  98. package/dist/migrations/validate-promote-clients.js +182 -0
  99. package/dist/migrations/validate-promote-clients.js.map +1 -0
  100. package/dist/tsconfig.build.tsbuildinfo +1 -1
  101. package/dist/tsconfig.tsbuildinfo +1 -1
  102. package/package.json +1 -1
@@ -33,6 +33,7 @@ const timestamp_module_1 = require("./components/timestamps/timestamp.module");
33
33
  const dynamic_data_module_1 = require("./components/dynamic-data/dynamic-data.module");
34
34
  const memory_cleanup_service_1 = require("./memory-cleanup.service");
35
35
  const session_manager_1 = require("./components/session-manager");
36
+ const ip_management_module_1 = require("./components/ip-management/ip-management.module");
36
37
  let AppModule = class AppModule {
37
38
  configure(consumer) {
38
39
  consumer.apply(logger_middleware_1.LoggerMiddleware).forRoutes('*');
@@ -47,6 +48,7 @@ exports.AppModule = AppModule = __decorate([
47
48
  active_channels_module_1.ActiveChannelsModule,
48
49
  client_module_1.ClientModule,
49
50
  session_manager_1.SessionModule,
51
+ ip_management_module_1.IpManagementModule,
50
52
  user_data_module_1.UserDataModule,
51
53
  users_module_1.UsersModule,
52
54
  buffer_client_module_1.BufferClientModule,
@@ -1 +1 @@
1
- {"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwE;AACxE,kEAA8D;AAC9D,8EAAyE;AACzE,sEAAkE;AAClE,2EAAuE;AACvE,2FAAsF;AACtF,gGAA2F;AAC3F,iGAA4F;AAC5F,4EAAwE;AACxE,2EAAuE;AACvE,qDAAiD;AACjD,uEAAmE;AACnE,mEAA+D;AAC/D,wEAAkE;AAClE,uFAAiF;AACjF,gEAA4D;AAC5D,mEAA+D;AAC/D,wFAAmF;AACnF,8FAAyF;AACzF,6EAAwE;AACxE,qFAAiF;AACjF,sEAAkE;AAClE,+EAA2E;AAC3E,uFAAkF;AAClF,qEAAgE;AAChE,kEAA6D;AA4CtD,IAAM,SAAS,GAAf,MAAM,SAAS;IACpB,SAAS,CAAC,QAA4B;QACpC,QAAQ,CAAC,KAAK,CAAC,oCAAgB,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAClD,CAAC;CACF,CAAA;AAJY,8BAAS;oBAAT,SAAS;IA1CrB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,wBAAU;YACV,gCAAc;YACd,6CAAoB;YACpB,4BAAY;YACZ,+BAAa;YACb,iCAAc;YACd,0BAAW;YACX,yCAAkB;YAClB,6CAAoB;YACpB,gCAAc;YACd,2CAAmB;YACnB,0BAAW;YACX,4BAAW;YACX,sCAAgB;YAChB,uCAAiB;YACjB,wBAAU;YACV,0BAAW;YACX,iCAAc;YACd,sCAAiB;YACjB,4BAAY;YACZ,kCAAe;YACf,uCAAiB;SAClB;QACD,SAAS,EAAE,CAAC,6CAAoB,CAAC;QACjC,WAAW,EAAE,CAAC,8BAAa,CAAC;QAC5B,OAAO,EAAE;YACP,gCAAc;YACd,6CAAoB;YACpB,4BAAY;YACZ,iCAAc;YACd,0BAAW;YACX,yCAAkB;YAClB,6CAAoB;YACpB,gCAAc;YACd,2CAAmB;YACnB,iCAAc;YACd,sCAAiB;YACjB,kCAAe;SAChB;KACF,CAAC;GACW,SAAS,CAIrB"}
1
+ {"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwE;AACxE,kEAA8D;AAC9D,8EAAyE;AACzE,sEAAkE;AAClE,2EAAuE;AACvE,2FAAsF;AACtF,gGAA2F;AAC3F,iGAA4F;AAC5F,4EAAwE;AACxE,2EAAuE;AACvE,qDAAiD;AACjD,uEAAmE;AACnE,mEAA+D;AAC/D,wEAAkE;AAClE,uFAAiF;AACjF,gEAA4D;AAC5D,mEAA+D;AAC/D,wFAAmF;AACnF,8FAAyF;AACzF,6EAAwE;AACxE,qFAAiF;AACjF,sEAAkE;AAClE,+EAA2E;AAC3E,uFAAkF;AAClF,qEAAgE;AAChE,kEAA6D;AAC7D,0FAAqF;AA6C9E,IAAM,SAAS,GAAf,MAAM,SAAS;IACpB,SAAS,CAAC,QAA4B;QACpC,QAAQ,CAAC,KAAK,CAAC,oCAAgB,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAClD,CAAC;CACF,CAAA;AAJY,8BAAS;oBAAT,SAAS;IA3CrB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,wBAAU;YACV,gCAAc;YACd,6CAAoB;YACpB,4BAAY;YACZ,+BAAa;YACb,yCAAkB;YAClB,iCAAc;YACd,0BAAW;YACX,yCAAkB;YAClB,6CAAoB;YACpB,gCAAc;YACd,2CAAmB;YACnB,0BAAW;YACX,4BAAW;YACX,sCAAgB;YAChB,uCAAiB;YACjB,wBAAU;YACV,0BAAW;YACX,iCAAc;YACd,sCAAiB;YACjB,4BAAY;YACZ,kCAAe;YACf,uCAAiB;SAClB;QACD,SAAS,EAAE,CAAC,6CAAoB,CAAC;QACjC,WAAW,EAAE,CAAC,8BAAa,CAAC;QAC5B,OAAO,EAAE;YACP,gCAAc;YACd,6CAAoB;YACpB,4BAAY;YACZ,iCAAc;YACd,0BAAW;YACX,yCAAkB;YAClB,6CAAoB;YACpB,gCAAc;YACd,2CAAmB;YACnB,iCAAc;YACd,sCAAiB;YACjB,kCAAe;SAChB;KACF,CAAC;GACW,SAAS,CAIrB"}
@@ -148,7 +148,7 @@ let BufferClientService = BufferClientService_1 = class BufferClientService {
148
148
  this.clearLeaveChannelInterval();
149
149
  await (0, Helpers_1.sleep)(2000);
150
150
  const existingkeys = skipExisting ? [] : Array.from(this.joinChannelMap.keys());
151
- const clients = await this.bufferClientModel.find({ channels: { "$lt": 350 }, mobile: { $nin: existingkeys } }).sort({ channels: 1 }).limit(8);
151
+ const clients = await this.bufferClientModel.find({ channels: { "$lt": 350 }, mobile: { $nin: existingkeys } }).sort({ channels: 1 }).limit(4);
152
152
  this.logger.debug(`Found ${clients.length} clients to process for joining channels`);
153
153
  if (clients.length > 0) {
154
154
  for (const document of clients) {
@@ -404,8 +404,12 @@ let BufferClientService = BufferClientService_1 = class BufferClientService {
404
404
  }
405
405
  const clients = await this.clientService.findAll();
406
406
  const clientMobiles = clients.map(client => client?.mobile);
407
- const clientPromoteMobiles = clients.flatMap(client => client?.promoteMobile);
408
- if (!clientPromoteMobiles.includes(mobile) && !clientMobiles.includes(mobile)) {
407
+ const allPromoteMobiles = [];
408
+ for (const client of clients) {
409
+ const clientPromoteMobiles = await this.clientService.getPromoteMobiles(client.clientId);
410
+ allPromoteMobiles.push(...clientPromoteMobiles);
411
+ }
412
+ if (!allPromoteMobiles.includes(mobile) && !clientMobiles.includes(mobile)) {
409
413
  try {
410
414
  const telegramClient = await connection_manager_1.connectionManager.getClient(mobile, { autoDisconnect: false });
411
415
  await telegramClient.set2fa();
@@ -455,10 +459,13 @@ let BufferClientService = BufferClientService_1 = class BufferClientService {
455
459
  }
456
460
  const clients = await this.clientService.findAll();
457
461
  const promoteclients = await this.promoteClientService.findAll();
458
- const clientIds = [
459
- ...clients.map(c => c.mobile),
460
- ...clients.flatMap(c => c.promoteMobile),
461
- ].filter(Boolean);
462
+ const clientMainMobiles = clients.map(c => c.mobile);
463
+ const allPromoteMobiles = [];
464
+ for (const client of clients) {
465
+ const clientPromoteMobiles = await this.clientService.getPromoteMobiles(client.clientId);
466
+ allPromoteMobiles.push(...clientPromoteMobiles);
467
+ }
468
+ const clientIds = [...clientMainMobiles, ...allPromoteMobiles].filter(Boolean);
462
469
  const promoteclientIds = promoteclients.map(c => c.mobile);
463
470
  const today = new Date().toISOString().split('T')[0];
464
471
  const toProcess = bufferclients.filter(doc => !clientIds.includes(doc.mobile) &&
@@ -1 +1 @@
1
- {"version":3,"file":"buffer-client.service.js","sourceRoot":"","sources":["../../../src/components/buffer-clients/buffer-client.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buffer-client.service.js","sourceRoot":"","sources":["../../../src/components/buffer-clients/buffer-client.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qEAAiE;AAEjE,2CAGwB;AACxB,+CAA+C;AAC/C,uCAAiC;AAGjC,mEAA+D;AAC/D,8CAAyC;AACzC,0DAAsD;AACtD,wFAAmF;AACnF,8DAA0D;AAE1D,sFAAiF;AACjF,uDAAoD;AACpD,mEAAgE;AAChE,iDAA+C;AAC/C,6EAAyE;AACzE,wDAAoD;AAG7C,IAAM,mBAAmB,2BAAzB,MAAM,mBAAmB;IAY5B,YAA+C,iBAAsD,EAEjG,eAAwC,EAExC,YAAkC,EAElC,qBAAoD,EAEpD,aAAoC,EAEpC,eAAwC,EAExC,oBAAkD,EAElD,cAAsC;QAda,sBAAiB,GAAjB,iBAAiB,CAA6B;QAEzF,oBAAe,GAAf,eAAe,CAAiB;QAEhC,iBAAY,GAAZ,YAAY,CAAc;QAE1B,0BAAqB,GAArB,qBAAqB,CAAuB;QAE5C,kBAAa,GAAb,aAAa,CAAe;QAE5B,oBAAe,GAAf,eAAe,CAAiB;QAEhC,yBAAoB,GAApB,oBAAoB,CAAsB;QAE1C,mBAAc,GAAd,cAAc,CAAgB;QAzBzB,WAAM,GAAG,IAAI,eAAM,CAAC,qBAAmB,CAAC,IAAI,CAAC,CAAC;QACvD,mBAAc,GAA2B,IAAI,GAAG,EAAE,CAAC;QAEnD,oBAAe,GAA0B,IAAI,GAAG,EAAE,CAAC;QAEnD,4BAAuB,GAAY,KAAK,CAAC;QACzC,6BAAwB,GAAY,KAAK,CAAC;QACjC,0BAAqB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QACtC,2BAAsB,GAAG,EAAE,GAAG,IAAI,CAAC;QACnC,6BAAwB,GAAG,EAAE,CAAC;IAiB5C,CAAC;IACJ,KAAK,CAAC,eAAe;QACjB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QAC7D,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,MAAM,sCAAiB,CAAC,aAAa,EAAE,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,YAAmC;QAC5C,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;QACzD,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,OAAO;QACT,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,WAAoB,IAAI;QAClD,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;QACjF,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC;YACpB,MAAM,IAAI,0BAAiB,CAAC,4BAA4B,MAAM,YAAY,CAAC,CAAC;QAChF,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAGD,KAAK,CAAC,MAAM,CAAC,MAAc,EAAE,eAAsC;QAC/D,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAC7D,EAAE,MAAM,EAAE,EACV,EAAE,IAAI,EAAE,eAAe,EAAE,EACzB,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,CACvD,CAAC,IAAI,EAAE,CAAC;QAET,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,MAAM,IAAI,0BAAiB,CAAC,oBAAoB,MAAM,YAAY,CAAC,CAAC;QACxE,CAAC;QAED,OAAO,WAAW,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAc,EAAE,qBAAoE;QACrG,MAAM,YAAY,GAAG,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;QACzF,IAAI,YAAY,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YACvB,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,qBAA8C,CAAC,CAAC;QAC5F,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YACvB,OAAO,IAAI,CAAC,MAAM,CAAC,qBAA8C,CAAC,CAAC;QACvE,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAc;QACvB,IAAI,CAAC;YACD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACvD,IAAI,CAAC,YAAY,EAAE,CAAC;gBAChB,MAAM,IAAI,0BAAiB,CAAC,4BAA4B,MAAM,YAAY,CAAC,CAAC;YAChF,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,sCAAsC,MAAM,EAAE,CAAC,CAAC;YAChE,MAAM,IAAA,mCAAgB,EAAC,GAAG,IAAA,kBAAQ,GAAE,SAAS,kBAAkB,CAAC,4BAA4B,MAAM,cAAc,YAAY,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;YAC3I,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,YAAY,GAAG,IAAA,uBAAU,EAAC,KAAK,CAAC,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2CAA2C,MAAM,KAAK,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC;YAChG,MAAM,IAAI,sBAAa,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,MAAM,uBAAuB,CAAC,CAAC;IAC/E,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,MAAW;QACpB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACnB,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,CAAC,SAAS,GAAG,EAAE,MAAM,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,CAAA;QACpE,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACnB,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAU,EAAE,IAAU,EAAE,KAAc,EAAE,IAAa;QACpE,IAAI,CAAC;YAED,IAAI,CAAC,KAAK,EAAE,CAAC;gBACT,MAAM,IAAI,4BAAmB,CAAC,mBAAmB,CAAC,CAAC;YACvD,CAAC;YACD,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrD,IAAI,IAAI,EAAE,CAAC;gBACP,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;YAED,IAAI,KAAK,EAAE,CAAC;gBACR,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;YAED,IAAI,IAAI,EAAE,CAAC;gBACP,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;YAED,OAAO,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,qCAA4B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1D,CAAC;IACL,CAAC;IAED,mBAAmB,CAAC,GAAW;QAC3B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,cAAc;QACV,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACjC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,wBAAwB,EAAE,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,2BAA2B,CAAC,eAAwB,IAAI;QAC1D,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,oBAAoB,EAAE,EAAE,CAAC;YAC/C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;YACjD,MAAM,sCAAiB,CAAC,aAAa,EAAE,CAAC;YAGxC,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAChC,IAAI,CAAC,yBAAyB,EAAE,CAAC;YAEjC,MAAM,IAAA,eAAK,EAAC,IAAI,CAAC,CAAC;YAClB,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAA;YAC/E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAE/I,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,OAAO,CAAC,MAAM,0CAA0C,CAAC,CAAC;YAErF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE,CAAC;oBAC7B,IAAI,CAAC;wBACD,MAAM,MAAM,GAAG,MAAM,sCAAiB,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;wBAC7G,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,uCAAuC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;wBAE1E,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;wBAChD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,QAAQ,CAAC,MAAM,QAAQ,QAAQ,CAAC,GAAG,CAAC,MAAM,oBAAoB,CAAC,CAAC;wBAE5F,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;wBACtE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,QAAQ,CAAC,MAAM,QAAQ,QAAQ,CAAC,iBAAiB,CAAC,MAAM,oCAAoC,CAAC,CAAC;wBAE1H,IAAI,MAAM,GAAG,EAAE,CAAC;wBAChB,IAAI,QAAQ,CAAC,iBAAiB,GAAG,EAAE,EAAE,CAAC;4BAClC,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;gCAC5B,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;4BAChF,CAAC;iCAAM,CAAC;gCACJ,MAAM,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;4BACtF,CAAC;4BACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,MAAM,CAAC,MAAM,mCAAmC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;4BAC/F,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;4BACjD,IAAI,CAAC,gBAAgB,EAAE,CAAC;4BACxB,MAAM,sCAAiB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;wBAC9D,CAAC;6BAAM,CAAC;4BACJ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,QAAQ,CAAC,MAAM,6DAA6D,QAAQ,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC;4BAC5I,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;4BAC5C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAC;4BACtE,IAAI,CAAC,iBAAiB,EAAE,CAAC;4BACzB,MAAM,sCAAiB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;wBAE9D,CAAC;oBAIL,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACb,IAAI,KAAK,CAAC,OAAO,KAAK,iBAAiB;4BACnC,KAAK,CAAC,OAAO,KAAK,uBAAuB;4BACzC,KAAK,CAAC,OAAO,KAAK,kBAAkB;4BACpC,KAAK,CAAC,OAAO,KAAK,sBAAsB,EAAE,CAAC;4BAC3C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,mBAAmB,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;4BAC1F,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;4BACnC,MAAM,sCAAiB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;wBAC9D,CAAC;wBACD,IAAA,uBAAU,EAAC,KAAK,CAAC,CAAA;oBACrB,CAAC;gBACL,CAAC;YACL,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,sCAAsC,OAAO,CAAC,MAAM,UAAU,CAAC,CAAC;YAChF,OAAO,8BAA8B,OAAO,CAAC,MAAM,EAAE,CAAA;QACzD,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;QAC3F,CAAC;IACL,CAAC;IAED,KAAK,CAAC,gBAAgB;QAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,IAAI,IAAI,CAAC,uBAAuB,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;YAC5D,OAAO;QACX,CAAC;QAED,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5D,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;YAC7D,OAAO;QACX,CAAC;QAED,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;QACpC,IAAI,CAAC,qBAAqB,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;YAChD,IAAI,cAA8B,CAAC;YACnC,IAAI,CAAC;gBACD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;gBACpD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACpB,IAAI,CAAC,wBAAwB,EAAE,CAAC;oBAChC,OAAO;gBACX,CAAC;gBAGD,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;oBAC9D,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBACpC,CAAC,EAAE,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAC;gBAEtC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,MAAM,gCAAgC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;gBAE5J,KAAK,MAAM,MAAM,IAAI,IAAI,EAAE,CAAC;oBACxB,IAAI,cAAc,GAAmB,IAAI,CAAC;oBAC1C,IAAI,CAAC;wBACD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;wBACjD,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;4BACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,MAAM,uBAAuB,CAAC,CAAC;4BACjF,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;4BACjC,SAAS;wBACb,CAAC;wBAED,cAAc,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;wBAClC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,QAAQ,QAAQ,CAAC,MAAM,2BAA2B,CAAC,CAAC;wBAC/E,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;wBAE1C,MAAM,MAAM,GAAG,MAAM,sCAAiB,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;wBACpG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,iCAAiC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;wBACvF,MAAM,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;wBACrE,MAAM,sCAAiB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;oBACrD,CAAC;oBAAC,OAAO,KAAU,EAAE,CAAC;wBAClB,MAAM,YAAY,GAAG,IAAA,uBAAU,EAAC,KAAK,EAAE,GAAG,MAAM,IAAI,cAAc,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,KAAK,CAAC,CAAC;wBAClI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,MAAM,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;wBAE3E,IAAI,YAAY,CAAC,KAAK,KAAK,gBAAgB,IAAI,KAAK,CAAC,YAAY,KAAK,mBAAmB,EAAE,CAAC;4BACxF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,sEAAsE,CAAC,CAAC;4BAClG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;4BACjC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;4BAC7E,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;wBACrE,CAAC;wBAED,IAAI,KAAK,CAAC,YAAY,KAAK,iBAAiB;4BACxC,KAAK,CAAC,YAAY,KAAK,uBAAuB;4BAC9C,KAAK,CAAC,YAAY,KAAK,kBAAkB;4BACzC,KAAK,CAAC,YAAY,KAAK,sBAAsB;4BAC7C,KAAK,CAAC,YAAY,KAAK,uBAAuB,EAAE,CAAC;4BACjD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,MAAM,mBAAmB,CAAC,CAAC;4BACpE,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;4BACjC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;wBAC9B,CAAC;wBAED,IAAI,CAAC;4BACD,MAAM,sCAAiB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;wBACrD,CAAC;wBAAC,OAAO,eAAe,EAAE,CAAC;4BACvB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,MAAM,KAAK,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC;wBAC1F,CAAC;oBACL,CAAC;gBACL,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;gBAC3D,IAAI,CAAC,wBAAwB,EAAE,CAAC;YACpC,CAAC;oBAAS,CAAC;gBACP,IAAI,cAAc,EAAE,CAAC;oBACjB,YAAY,CAAC,cAAc,CAAC,CAAC;gBACjC,CAAC;YACL,CAAC;QACL,CAAC,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAE/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gDAAgD,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACpG,CAAC;IAED,wBAAwB;QACpB,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;YACnF,aAAa,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAC1C,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;YAClC,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;YAGrC,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBAC/B,UAAU,CAAC,GAAG,EAAE;oBACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;oBAC1D,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC;gBAC5C,CAAC,EAAE,KAAK,CAAC,CAAC;YACd,CAAC;QACL,CAAC;IACL,CAAC;IAED,kBAAkB,CAAC,GAAW;QAC1B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACrC,CAAC;IACL,CAAC;IAED,aAAa;QACT,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAChC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,yBAAyB,EAAE,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,iBAAiB;QACnB,IAAI,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC/D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;YAC7D,OAAO;QACX,CAAC;QAED,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7D,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;YAC9D,OAAO;QACX,CAAC;QAED,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;QACrC,IAAI,CAAC,sBAAsB,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;YACjD,IAAI,cAA8B,CAAC;YACnC,IAAI,CAAC;gBACD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;gBACrD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;oBAC3D,IAAI,CAAC,yBAAyB,EAAE,CAAC;oBACjC,OAAO;gBACX,CAAC;gBAGD,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;oBAC/D,IAAI,CAAC,yBAAyB,EAAE,CAAC;gBACrC,CAAC,EAAE,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC;gBAEvC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,MAAM,gCAAgC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;gBAE9J,KAAK,MAAM,MAAM,IAAI,IAAI,EAAE,CAAC;oBACxB,IAAI,CAAC;wBACD,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;wBAClD,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;4BACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,MAAM,uBAAuB,CAAC,CAAC;4BAClF,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;4BAChC,SAAS;wBACb,CAAC;wBAED,MAAM,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;wBAC5E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,QAAQ,QAAQ,CAAC,MAAM,4BAA4B,CAAC,CAAC;wBAGhF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACtB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;wBAC/C,CAAC;6BAAM,CAAC;4BACJ,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;wBACpC,CAAC;wBAED,MAAM,MAAM,GAAG,MAAM,sCAAiB,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;wBACpG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,wBAAwB,iBAAiB,CAAC,MAAM,WAAW,CAAC,CAAC;wBACxF,MAAM,MAAM,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;wBAC9C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,6BAA6B,CAAC,CAAC;wBAC1D,MAAM,sCAAiB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;oBACrD,CAAC;oBAAC,OAAO,KAAU,EAAE,CAAC;wBAClB,MAAM,YAAY,GAAG,IAAA,uBAAU,EAAC,KAAK,EAAE,GAAG,MAAM,sBAAsB,EAAE,KAAK,CAAC,CAAC;wBAC/E,IACI,YAAY,CAAC,OAAO,KAAK,iBAAiB;4BAC1C,YAAY,CAAC,OAAO,KAAK,uBAAuB;4BAChD,YAAY,CAAC,OAAO,KAAK,kBAAkB;4BAC3C,YAAY,CAAC,OAAO,KAAK,sBAAsB,EACjD,CAAC;4BACC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,MAAM,mBAAmB,CAAC,CAAC;4BACpE,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;4BAC1B,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;wBACpC,CAAC;wBAED,IAAI,CAAC;4BACD,MAAM,sCAAiB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;wBACrD,CAAC;wBAAC,OAAO,eAAe,EAAE,CAAC;4BACvB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,MAAM,KAAK,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC;wBAC1F,CAAC;oBACL,CAAC;gBACL,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;gBAC5D,IAAI,CAAC,yBAAyB,EAAE,CAAC;YACrC,CAAC;oBAAS,CAAC;gBACP,IAAI,cAAc,EAAE,CAAC;oBACjB,YAAY,CAAC,cAAc,CAAC,CAAC;gBACjC,CAAC;YACL,CAAC;QACL,CAAC,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAEhC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iDAAiD,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;IACtG,CAAC;IAED,yBAAyB;QACrB,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;YACrF,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YAC3C,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;QACvC,CAAC;QACD,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAClF,CAAC;IAED,KAAK,CAAC,iBAAiB,CACnB,MAAc,EACd,gBAAwB,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAElG,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,MAAM,IAAI,4BAAmB,CAAC,gBAAgB,CAAC,CAAC;QACpD,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QACjD,IAAI,OAAO,EAAE,CAAC;YACV,MAAM,IAAI,0BAAiB,CAAC,4BAA4B,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;QACnD,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAG5D,MAAM,iBAAiB,GAAG,EAAE,CAAC;QAC7B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC3B,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACzF,iBAAiB,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACzE,IAAI,CAAC;gBACD,MAAM,cAAc,GAAG,MAAM,sCAAiB,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAA;gBAC3F,MAAM,cAAc,CAAC,MAAM,EAAE,CAAC;gBAC9B,MAAM,IAAA,eAAK,EAAC,KAAK,CAAC,CAAA;gBAClB,MAAM,cAAc,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;gBACxC,MAAM,IAAA,eAAK,EAAC,IAAI,CAAC,CAAA;gBACjB,MAAM,cAAc,CAAC,8BAA8B,EAAE,CAAC;gBACtD,MAAM,IAAA,eAAK,EAAC,IAAI,CAAC,CAAA;gBACjB,MAAM,cAAc,CAAC,aAAa,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;gBACzE,MAAM,IAAA,eAAK,EAAC,IAAI,CAAC,CAAA;gBACjB,MAAM,cAAc,CAAC,mBAAmB,EAAE,CAAC;gBAC3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;gBACxE,MAAM,YAAY,GAAG;oBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,aAAa;oBACb,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM;iBAChC,CAAA;gBACD,MAAM,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACnI,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,MAAM,YAAY,GAAG,IAAA,uBAAU,EAAC,KAAK,CAAC,CAAA;gBACtC,MAAM,IAAI,sBAAa,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,CAAA;YACtE,CAAC;YACD,MAAM,sCAAiB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;YAChD,OAAO,mCAAmC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,4BAAmB,CAAC,2BAA2B,CAAC,CAAA;QAC9D,CAAC;IACL,CAAC;IAED,KAAK,CAAC,kBAAkB;QACpB,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,EAAE,EAAE,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;YACvF,OAAO;QACX,CAAC;QAED,MAAM,sCAAiB,CAAC,aAAa,EAAE,CAAC;QACxC,MAAM,IAAA,eAAK,EAAC,IAAI,CAAC,CAAC;QAElB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,OAAO,GAAa,EAAE,CAAC;QAE3B,IAAI,aAAa,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACjD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC9B,CAAC;QACL,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;QACnD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC;QAGjE,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACrD,MAAM,iBAAiB,GAAG,EAAE,CAAC;QAC7B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC3B,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACzF,iBAAiB,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,CAAC;QACpD,CAAC;QACD,MAAM,SAAS,GAAG,CAAC,GAAG,iBAAiB,EAAE,GAAG,iBAAiB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAE/E,MAAM,gBAAgB,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC3D,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAErD,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CACzC,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;YAC/B,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CACzC,CAAC;QAEF,MAAM,aAAa,GAAG,CAAC,CAAC;QACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,aAAa,EAAE,CAAC;YACvD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC;YACpD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;YAC3G,MAAM,IAAA,eAAK,EAAC,IAAI,CAAC,CAAC;QACtB,CAAC;QAGD,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;YAC9B,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;gBAC/C,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACzB,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAClC,CAAC;QACL,CAAC;QAED,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,SAAS,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,OAAO,CAAC,MAAM,aAAa,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1E,MAAM,IAAI,CAAC,0BAA0B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,GAAQ,EAAE,MAAgB,EAAE,OAAiB;QAC3E,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,sCAAiB,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YAEpG,IAAI,CAAC;gBACD,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;gBAE7B,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;oBACd,MAAM,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;oBAC1D,MAAM,IAAA,eAAK,EAAC,IAAI,CAAC,CAAC;gBACtB,CAAC;gBAED,IAAI,EAAE,CAAC,SAAS,KAAK,iBAAiB,EAAE,CAAC;oBACrC,MAAM,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC;oBAC/E,MAAM,IAAA,eAAK,EAAC,IAAI,CAAC,CAAC;gBACtB,CAAC;gBAED,MAAM,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC3D,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC;gBAE5C,IAAI,CAAC,WAAW,EAAE,CAAC;oBACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;oBAClD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC5B,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC;oBAC9C,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC7B,CAAC;YACL,CAAC;YAAC,OAAO,UAAe,EAAE,CAAC;gBACvB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,GAAG,CAAC,MAAM,KAAK,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;gBAClF,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACxB,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAClC,CAAC;oBAAS,CAAC;gBACP,MAAM,sCAAiB,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACzD,CAAC;YAED,MAAM,IAAA,eAAK,EAAC,IAAI,CAAC,CAAC;QAEtB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACvE,IAAA,uBAAU,EAAC,KAAK,CAAC,CAAC;YAClB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACxB,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC9B,IAAI,CAAC;gBACD,MAAM,sCAAiB,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACzD,CAAC;YAAC,OAAO,eAAe,EAAE,CAAC;gBACvB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,GAAG,CAAC,MAAM,KAAK,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC;YAC9F,CAAC;QACL,CAAC;IACL,CAAC;IAGD,KAAK,CAAC,0BAA0B,CAAC,MAAgB,EAAE,OAAiB;QAChE,MAAM,YAAY,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACvG,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAClD;YACI,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;YACzB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK;YACZ,UAAU,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE;YACjC,UAAU,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE;SAC3B,EACD,EAAE,IAAI,EAAE,CAAC,EAAE,EACX,MAAM,CAAC,MAAM,GAAG,CAAC,CACpB,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;QAE3E,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;YACnC,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACvE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;gBACrD,SAAS;YACb,CAAC;YAED,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,sCAAiB,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC7F,IAAI,CAAC;oBACD,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;oBAC/C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,QAAQ,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC,CAAC;oBAExE,IAAI,CAAC,WAAW,EAAE,CAAC;wBACf,MAAM,MAAM,CAAC,gBAAgB,EAAE,CAAC;wBAChC,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;wBACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;wBAC7C,MAAM,IAAA,eAAK,EAAC,KAAK,CAAC,CAAC;wBAEnB,MAAM,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;wBAChC,MAAM,IAAA,eAAK,EAAC,IAAI,CAAC,CAAC;wBAElB,MAAM,MAAM,CAAC,8BAA8B,EAAE,CAAC;wBAC9C,MAAM,IAAA,eAAK,EAAC,IAAI,CAAC,CAAC;wBAElB,MAAM,MAAM,CAAC,aAAa,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;wBACjE,MAAM,IAAA,eAAK,EAAC,IAAI,CAAC,CAAC;wBAElB,MAAM,MAAM,CAAC,mBAAmB,EAAE,CAAC;wBACnC,MAAM,IAAA,eAAK,EAAC,IAAI,CAAC,CAAC;wBAElB,MAAM,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;wBAC7D,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;wBAEhD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;wBACrD,MAAM,YAAY,GAAG;4BACjB,IAAI,EAAE,QAAQ,CAAC,IAAI;4BACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;4BACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;4BACvB,aAAa,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;4BACzF,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM;yBAChC,CAAC;wBACF,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC;wBAC9F,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;wBAChC,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;wBAC/D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;wBACpE,MAAM,CAAC,GAAG,EAAE,CAAC;oBACjB,CAAC;yBAAM,CAAC;wBACJ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;wBAClE,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;oBACnE,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAU,EAAE,CAAC;oBAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,QAAQ,CAAC,MAAM,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;oBAClF,IAAA,uBAAU,EAAC,KAAK,CAAC,CAAC;gBACtB,CAAC;wBAAS,CAAC;oBACP,IAAI,CAAC;wBACD,MAAM,sCAAiB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBAC9D,CAAC;oBAAC,OAAO,eAAoB,EAAE,CAAC;wBAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,QAAQ,CAAC,MAAM,KAAK,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC;oBACnG,CAAC;gBACL,CAAC;YACL,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wCAAwC,QAAQ,CAAC,MAAM,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC/F,IAAA,uBAAU,EAAC,KAAK,CAAC,CAAC;YACtB,CAAC;QACL,CAAC;QAGD,UAAU,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;YACtD,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACvC,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IACtB,CAAC;CACJ,CAAA;AAvqBY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,mBAAU,GAAE;IAaI,WAAA,IAAA,sBAAW,EAAC,oBAAoB,CAAC,CAAA;IACzC,WAAA,IAAA,eAAM,EAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,kCAAe,CAAC,CAAC,CAAA;IAEzC,WAAA,IAAA,eAAM,EAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,4BAAY,CAAC,CAAC,CAAA;IAEtC,WAAA,IAAA,eAAM,EAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,+CAAqB,CAAC,CAAC,CAAA;IAE/C,WAAA,IAAA,eAAM,EAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,8BAAa,CAAC,CAAC,CAAA;IAEvC,WAAA,IAAA,eAAM,EAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,+CAAqB,CAAC,CAAC,CAAA;IAE/C,WAAA,IAAA,eAAM,EAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,6CAAoB,CAAC,CAAC,CAAA;IAE9C,WAAA,IAAA,eAAM,EAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,gCAAc,CAAC,CAAC,CAAA;qCAb6B,gBAAK;QAElD,kCAAe;QAElB,4BAAY;QAEH,+CAAqB;QAE7B,8BAAa;QAEX,kCAAe;QAEV,6CAAoB;QAE1B,gCAAc;GA1BjC,mBAAmB,CAuqB/B"}
@@ -8,6 +8,23 @@ export declare class ClientController {
8
8
  constructor(clientService: ClientService);
9
9
  create(createClientDto: CreateClientDto): Promise<Client>;
10
10
  search(query: SearchClientDto): Promise<Client[]>;
11
+ searchByPromoteMobile(mobile: string): Promise<{
12
+ clients: Client[];
13
+ matches: Array<{
14
+ clientId: string;
15
+ mobile: string;
16
+ }>;
17
+ searchedMobile: string;
18
+ }>;
19
+ enhancedSearch(query: any): Promise<{
20
+ clients: Client[];
21
+ searchType: string;
22
+ promoteMobileMatches?: Array<{
23
+ clientId: string;
24
+ mobile: string;
25
+ }>;
26
+ totalResults: number;
27
+ }>;
11
28
  updateClient(clientId: string): Promise<string>;
12
29
  findAllMasked(): Promise<Partial<Client>[]>;
13
30
  findAll(): Promise<Client[]>;
@@ -16,6 +33,75 @@ export declare class ClientController {
16
33
  update(clientId: string, updateClientDto: UpdateClientDto): Promise<Client>;
17
34
  remove(clientId: string): Promise<Client>;
18
35
  executeQuery(requestBody: any): Promise<any>;
19
- addPromoteMobile(clientId: string, mobileNumber: string): Promise<Client>;
20
- removePromoteMobile(clientId: string, mobileNumber: string): Promise<Client>;
36
+ addPromoteMobile(clientId: string, body: {
37
+ mobileNumber: string;
38
+ }): Promise<Client>;
39
+ removePromoteMobile(clientId: string, body: {
40
+ mobileNumber: string;
41
+ }): Promise<Client>;
42
+ getClientIpInfo(clientId: string): Promise<{
43
+ clientId: string;
44
+ mobiles: {
45
+ mainMobile?: {
46
+ mobile: string;
47
+ hasIp: boolean;
48
+ ipAddress?: string;
49
+ };
50
+ promoteMobiles: {
51
+ mobile: string;
52
+ hasIp: boolean;
53
+ ipAddress?: string;
54
+ }[];
55
+ };
56
+ needingAssignment: {
57
+ mainMobile?: string;
58
+ promoteMobiles: string[];
59
+ };
60
+ }>;
61
+ getIpForMobile(mobile: string, clientId?: string): Promise<{
62
+ mobile: string;
63
+ ipAddress: string | null;
64
+ hasAssignment: boolean;
65
+ }>;
66
+ autoAssignIpsToClient(clientId: string): Promise<any>;
67
+ getMobilesNeedingIpAssignment(clientId: string): Promise<{
68
+ clientId: string;
69
+ mobilesNeedingIps: {
70
+ mainMobile?: string;
71
+ promoteMobiles: string[];
72
+ };
73
+ summary: {
74
+ totalNeedingAssignment: number;
75
+ mainMobileNeedsIp: boolean;
76
+ promoteMobilesNeedingIp: number;
77
+ };
78
+ }>;
79
+ releaseIpFromMobile(mobile: string): Promise<{
80
+ success: boolean;
81
+ message: string;
82
+ }>;
83
+ checkMigrationStatus(): Promise<{
84
+ isLegacyData: boolean;
85
+ legacyClientsCount: number;
86
+ modernClientsCount: number;
87
+ totalPromoteClients: number;
88
+ recommendations: string[];
89
+ }>;
90
+ migratePromoteMobiles(): Promise<{
91
+ success: boolean;
92
+ message: string;
93
+ results: any;
94
+ }>;
95
+ verifyMigration(): Promise<{
96
+ success: boolean;
97
+ message: string;
98
+ verification: any;
99
+ }>;
100
+ rollbackMigration(body: {
101
+ backupCollectionName: string;
102
+ }): Promise<{
103
+ success: boolean;
104
+ message: string;
105
+ restored: number;
106
+ }>;
21
107
  }
@@ -39,6 +39,33 @@ let ClientController = class ClientController {
39
39
  throw new common_1.HttpException(error.message, common_1.HttpStatus.BAD_REQUEST);
40
40
  }
41
41
  }
42
+ async searchByPromoteMobile(mobile) {
43
+ try {
44
+ const result = await this.clientService.enhancedSearch({ promoteMobileNumber: mobile });
45
+ return {
46
+ clients: result.clients,
47
+ matches: result.promoteMobileMatches || [],
48
+ searchedMobile: mobile
49
+ };
50
+ }
51
+ catch (error) {
52
+ throw new common_1.HttpException(error.message, common_1.HttpStatus.BAD_REQUEST);
53
+ }
54
+ }
55
+ async enhancedSearch(query) {
56
+ try {
57
+ const result = await this.clientService.enhancedSearch(query);
58
+ return {
59
+ clients: result.clients,
60
+ searchType: result.searchType,
61
+ promoteMobileMatches: result.promoteMobileMatches,
62
+ totalResults: result.clients.length
63
+ };
64
+ }
65
+ catch (error) {
66
+ throw new common_1.HttpException(error.message, common_1.HttpStatus.BAD_REQUEST);
67
+ }
68
+ }
42
69
  async updateClient(clientId) {
43
70
  this.clientService.updateClient(clientId);
44
71
  return "Update client initiated";
@@ -100,20 +127,136 @@ let ClientController = class ClientController {
100
127
  throw new common_1.HttpException(error.message, common_1.HttpStatus.BAD_REQUEST);
101
128
  }
102
129
  }
103
- async addPromoteMobile(clientId, mobileNumber) {
130
+ async addPromoteMobile(clientId, body) {
131
+ return this.clientService.addPromoteMobile(clientId, body.mobileNumber);
132
+ }
133
+ async removePromoteMobile(clientId, body) {
104
134
  try {
105
- return await this.clientService.addPromoteMobile(clientId, mobileNumber);
135
+ return await this.clientService.removePromoteMobile(clientId, body.mobileNumber);
106
136
  }
107
137
  catch (error) {
108
138
  throw new common_1.HttpException(error.message, common_1.HttpStatus.NOT_FOUND);
109
139
  }
110
140
  }
111
- async removePromoteMobile(clientId, mobileNumber) {
141
+ async getClientIpInfo(clientId) {
112
142
  try {
113
- return await this.clientService.removePromoteMobile(clientId, mobileNumber);
143
+ const client = await this.clientService.findOne(clientId);
144
+ const needingAssignment = await this.clientService.getMobilesNeedingIpAssignment(clientId);
145
+ const result = {
146
+ clientId,
147
+ mobiles: {
148
+ mainMobile: undefined,
149
+ promoteMobiles: []
150
+ },
151
+ needingAssignment
152
+ };
153
+ if (client.mobile) {
154
+ const hasIp = await this.clientService.hasMobileAssignedIp(client.mobile);
155
+ const ipAddress = hasIp ? await this.clientService.getIpForMobile(client.mobile) : undefined;
156
+ result.mobiles.mainMobile = {
157
+ mobile: client.mobile,
158
+ hasIp,
159
+ ipAddress: ipAddress || undefined
160
+ };
161
+ }
162
+ const promoteMobiles = await this.clientService.getPromoteMobiles(clientId);
163
+ for (const mobile of promoteMobiles) {
164
+ const hasIp = await this.clientService.hasMobileAssignedIp(mobile);
165
+ const ipAddress = hasIp ? await this.clientService.getIpForMobile(mobile) : undefined;
166
+ result.mobiles.promoteMobiles.push({
167
+ mobile,
168
+ hasIp,
169
+ ipAddress: ipAddress || undefined
170
+ });
171
+ }
172
+ return result;
114
173
  }
115
174
  catch (error) {
116
- throw new common_1.HttpException(error.message, common_1.HttpStatus.NOT_FOUND);
175
+ throw new common_1.HttpException(error.message, common_1.HttpStatus.BAD_REQUEST);
176
+ }
177
+ }
178
+ async getIpForMobile(mobile, clientId) {
179
+ try {
180
+ const ipAddress = await this.clientService.getIpForMobile(mobile, clientId);
181
+ return {
182
+ mobile,
183
+ ipAddress,
184
+ hasAssignment: ipAddress !== null
185
+ };
186
+ }
187
+ catch (error) {
188
+ throw new common_1.HttpException(error.message, common_1.HttpStatus.BAD_REQUEST);
189
+ }
190
+ }
191
+ async autoAssignIpsToClient(clientId) {
192
+ try {
193
+ const result = await this.clientService.autoAssignIpsToClient(clientId);
194
+ return {
195
+ success: true,
196
+ message: `Auto-assigned IPs to ${result.summary.assigned}/${result.summary.totalMobiles} mobiles`,
197
+ data: result
198
+ };
199
+ }
200
+ catch (error) {
201
+ throw new common_1.HttpException(error.message, common_1.HttpStatus.BAD_REQUEST);
202
+ }
203
+ }
204
+ async getMobilesNeedingIpAssignment(clientId) {
205
+ try {
206
+ const mobilesNeedingIps = await this.clientService.getMobilesNeedingIpAssignment(clientId);
207
+ const totalNeedingAssignment = (mobilesNeedingIps.mainMobile ? 1 : 0) + mobilesNeedingIps.promoteMobiles.length;
208
+ return {
209
+ clientId,
210
+ mobilesNeedingIps,
211
+ summary: {
212
+ totalNeedingAssignment,
213
+ mainMobileNeedsIp: !!mobilesNeedingIps.mainMobile,
214
+ promoteMobilesNeedingIp: mobilesNeedingIps.promoteMobiles.length
215
+ }
216
+ };
217
+ }
218
+ catch (error) {
219
+ throw new common_1.HttpException(error.message, common_1.HttpStatus.BAD_REQUEST);
220
+ }
221
+ }
222
+ async releaseIpFromMobile(mobile) {
223
+ try {
224
+ return await this.clientService.releaseIpFromMobile(mobile);
225
+ }
226
+ catch (error) {
227
+ throw new common_1.HttpException(error.message, common_1.HttpStatus.BAD_REQUEST);
228
+ }
229
+ }
230
+ async checkMigrationStatus() {
231
+ try {
232
+ return await this.clientService.checkPromoteMobileMigrationStatus();
233
+ }
234
+ catch (error) {
235
+ throw new common_1.HttpException(error.message, common_1.HttpStatus.INTERNAL_SERVER_ERROR);
236
+ }
237
+ }
238
+ async migratePromoteMobiles() {
239
+ try {
240
+ return await this.clientService.migratePromoteMobilesToClientId();
241
+ }
242
+ catch (error) {
243
+ throw new common_1.HttpException(error.message, common_1.HttpStatus.INTERNAL_SERVER_ERROR);
244
+ }
245
+ }
246
+ async verifyMigration() {
247
+ try {
248
+ return await this.clientService.verifyPromoteMobileMigration();
249
+ }
250
+ catch (error) {
251
+ throw new common_1.HttpException(error.message, common_1.HttpStatus.INTERNAL_SERVER_ERROR);
252
+ }
253
+ }
254
+ async rollbackMigration(body) {
255
+ try {
256
+ return await this.clientService.rollbackPromoteMobileMigration(body.backupCollectionName);
257
+ }
258
+ catch (error) {
259
+ throw new common_1.HttpException(error.message, common_1.HttpStatus.INTERNAL_SERVER_ERROR);
117
260
  }
118
261
  }
119
262
  };
@@ -141,6 +284,27 @@ __decorate([
141
284
  __metadata("design:paramtypes", [search_client_dto_1.SearchClientDto]),
142
285
  __metadata("design:returntype", Promise)
143
286
  ], ClientController.prototype, "search", null);
287
+ __decorate([
288
+ (0, common_1.Get)('search/promote-mobile'),
289
+ (0, swagger_1.ApiOperation)({ summary: 'Search clients by promote mobile numbers' }),
290
+ (0, swagger_1.ApiQuery)({ name: 'mobile', required: true, description: 'Promote mobile number to search for' }),
291
+ (0, swagger_1.ApiResponse)({ status: 200, description: 'Clients with matching promote mobiles returned successfully.' }),
292
+ __param(0, (0, common_1.Query)('mobile')),
293
+ __metadata("design:type", Function),
294
+ __metadata("design:paramtypes", [String]),
295
+ __metadata("design:returntype", Promise)
296
+ ], ClientController.prototype, "searchByPromoteMobile", null);
297
+ __decorate([
298
+ (0, common_1.Get)('search/enhanced'),
299
+ (0, swagger_1.ApiOperation)({ summary: 'Enhanced search with promote mobile support' }),
300
+ (0, swagger_1.ApiQuery)({ name: 'promoteMobileNumber', required: false, description: 'Promote mobile number to search for' }),
301
+ (0, swagger_1.ApiQuery)({ name: 'hasPromoteMobiles', required: false, description: 'Filter by clients that have promote mobiles (true/false)' }),
302
+ (0, swagger_1.ApiResponse)({ status: 200, description: 'Enhanced search results with promote mobile context.' }),
303
+ __param(0, (0, common_1.Query)()),
304
+ __metadata("design:type", Function),
305
+ __metadata("design:paramtypes", [Object]),
306
+ __metadata("design:returntype", Promise)
307
+ ], ClientController.prototype, "enhancedSearch", null);
144
308
  __decorate([
145
309
  (0, common_1.Get)('updateClient/:clientId'),
146
310
  (0, swagger_1.ApiOperation)({ summary: 'Get user data by ID' }),
@@ -218,30 +382,125 @@ __decorate([
218
382
  ], ClientController.prototype, "executeQuery", null);
219
383
  __decorate([
220
384
  (0, common_1.Patch)(':clientId/promoteMobile/add'),
221
- (0, swagger_1.ApiOperation)({ summary: 'Add a mobile number to the promoteMobile array for a specific client' }),
385
+ (0, swagger_1.ApiOperation)({ summary: 'Add a mobile number as a promote mobile for a specific client' }),
222
386
  (0, swagger_1.ApiParam)({ name: 'clientId', description: 'The unique identifier of the client' }),
223
387
  (0, swagger_1.ApiBody)({ schema: { properties: { mobileNumber: { type: 'string', example: '916265240911' } } } }),
224
- (0, swagger_1.ApiResponse)({ status: 200, description: 'Mobile number added successfully.' }),
388
+ (0, swagger_1.ApiResponse)({ status: 200, description: 'Mobile number assigned as promote mobile successfully.' }),
225
389
  (0, swagger_1.ApiResponse)({ status: 404, description: 'Client not found.' }),
226
390
  __param(0, (0, common_1.Param)('clientId')),
227
- __param(1, (0, common_1.Body)('mobileNumber')),
391
+ __param(1, (0, common_1.Body)()),
228
392
  __metadata("design:type", Function),
229
- __metadata("design:paramtypes", [String, String]),
393
+ __metadata("design:paramtypes", [String, Object]),
230
394
  __metadata("design:returntype", Promise)
231
395
  ], ClientController.prototype, "addPromoteMobile", null);
232
396
  __decorate([
233
397
  (0, common_1.Patch)(':clientId/promoteMobile/remove'),
234
- (0, swagger_1.ApiOperation)({ summary: 'Remove a mobile number from the promoteMobile array for a specific client' }),
398
+ (0, swagger_1.ApiOperation)({ summary: 'Remove a promote mobile assignment from a specific client' }),
235
399
  (0, swagger_1.ApiParam)({ name: 'clientId', description: 'The unique identifier of the client' }),
236
400
  (0, swagger_1.ApiBody)({ schema: { properties: { mobileNumber: { type: 'string', example: '916265240911' } } } }),
237
- (0, swagger_1.ApiResponse)({ status: 200, description: 'Mobile number removed successfully.' }),
401
+ (0, swagger_1.ApiResponse)({ status: 200, description: 'Promote mobile assignment removed successfully.' }),
238
402
  (0, swagger_1.ApiResponse)({ status: 404, description: 'Client not found.' }),
239
403
  __param(0, (0, common_1.Param)('clientId')),
240
- __param(1, (0, common_1.Body)('mobileNumber')),
404
+ __param(1, (0, common_1.Body)()),
241
405
  __metadata("design:type", Function),
242
- __metadata("design:paramtypes", [String, String]),
406
+ __metadata("design:paramtypes", [String, Object]),
243
407
  __metadata("design:returntype", Promise)
244
408
  ], ClientController.prototype, "removePromoteMobile", null);
409
+ __decorate([
410
+ (0, common_1.Get)(':clientId/ip-info'),
411
+ (0, swagger_1.ApiOperation)({ summary: 'Get IP assignment information for a client' }),
412
+ (0, swagger_1.ApiParam)({ name: 'clientId', description: 'Client ID' }),
413
+ (0, swagger_1.ApiResponse)({ status: 200, description: 'IP information retrieved successfully' }),
414
+ __param(0, (0, common_1.Param)('clientId')),
415
+ __metadata("design:type", Function),
416
+ __metadata("design:paramtypes", [String]),
417
+ __metadata("design:returntype", Promise)
418
+ ], ClientController.prototype, "getClientIpInfo", null);
419
+ __decorate([
420
+ (0, common_1.Get)('mobile/:mobile/ip'),
421
+ (0, swagger_1.ApiOperation)({ summary: 'Get IP address for a specific mobile number' }),
422
+ (0, swagger_1.ApiParam)({ name: 'mobile', description: 'Mobile number' }),
423
+ (0, swagger_1.ApiQuery)({ name: 'clientId', required: false, description: 'Client ID for context' }),
424
+ (0, swagger_1.ApiResponse)({ status: 200, description: 'IP address retrieved successfully' }),
425
+ __param(0, (0, common_1.Param)('mobile')),
426
+ __param(1, (0, common_1.Query)('clientId')),
427
+ __metadata("design:type", Function),
428
+ __metadata("design:paramtypes", [String, String]),
429
+ __metadata("design:returntype", Promise)
430
+ ], ClientController.prototype, "getIpForMobile", null);
431
+ __decorate([
432
+ (0, common_1.Post)(':clientId/auto-assign-ips'),
433
+ (0, swagger_1.ApiOperation)({ summary: 'Auto-assign IPs to all client mobile numbers (Simplified System)' }),
434
+ (0, swagger_1.ApiParam)({ name: 'clientId', description: 'Client ID' }),
435
+ (0, swagger_1.ApiResponse)({ status: 200, description: 'IPs assigned successfully' }),
436
+ (0, swagger_1.ApiResponse)({ status: 400, description: 'Assignment failed' }),
437
+ __param(0, (0, common_1.Param)('clientId')),
438
+ __metadata("design:type", Function),
439
+ __metadata("design:paramtypes", [String]),
440
+ __metadata("design:returntype", Promise)
441
+ ], ClientController.prototype, "autoAssignIpsToClient", null);
442
+ __decorate([
443
+ (0, common_1.Get)(':clientId/mobiles-needing-ips'),
444
+ (0, swagger_1.ApiOperation)({ summary: 'Get mobile numbers that need IP assignment' }),
445
+ (0, swagger_1.ApiParam)({ name: 'clientId', description: 'Client ID' }),
446
+ (0, swagger_1.ApiResponse)({ status: 200, description: 'Mobile numbers needing IP assignment' }),
447
+ __param(0, (0, common_1.Param)('clientId')),
448
+ __metadata("design:type", Function),
449
+ __metadata("design:paramtypes", [String]),
450
+ __metadata("design:returntype", Promise)
451
+ ], ClientController.prototype, "getMobilesNeedingIpAssignment", null);
452
+ __decorate([
453
+ (0, common_1.Delete)('mobile/:mobile/ip'),
454
+ (0, swagger_1.ApiOperation)({ summary: 'Release IP from a mobile number' }),
455
+ (0, swagger_1.ApiParam)({ name: 'mobile', description: 'Mobile number to release IP from' }),
456
+ (0, swagger_1.ApiResponse)({ status: 200, description: 'IP released successfully' }),
457
+ __param(0, (0, common_1.Param)('mobile')),
458
+ __metadata("design:type", Function),
459
+ __metadata("design:paramtypes", [String]),
460
+ __metadata("design:returntype", Promise)
461
+ ], ClientController.prototype, "releaseIpFromMobile", null);
462
+ __decorate([
463
+ (0, common_1.Get)('migration/status'),
464
+ (0, swagger_1.ApiOperation)({ summary: 'Check promote mobile migration status' }),
465
+ (0, swagger_1.ApiResponse)({ status: 200, description: 'Migration status retrieved successfully' }),
466
+ __metadata("design:type", Function),
467
+ __metadata("design:paramtypes", []),
468
+ __metadata("design:returntype", Promise)
469
+ ], ClientController.prototype, "checkMigrationStatus", null);
470
+ __decorate([
471
+ (0, common_1.Post)('migration/migrate'),
472
+ (0, swagger_1.ApiOperation)({ summary: 'Migrate promote mobiles from array to clientId reference' }),
473
+ (0, swagger_1.ApiResponse)({ status: 200, description: 'Migration completed successfully' }),
474
+ __metadata("design:type", Function),
475
+ __metadata("design:paramtypes", []),
476
+ __metadata("design:returntype", Promise)
477
+ ], ClientController.prototype, "migratePromoteMobiles", null);
478
+ __decorate([
479
+ (0, common_1.Post)('migration/verify'),
480
+ (0, swagger_1.ApiOperation)({ summary: 'Verify promote mobile migration' }),
481
+ (0, swagger_1.ApiResponse)({ status: 200, description: 'Migration verification completed' }),
482
+ __metadata("design:type", Function),
483
+ __metadata("design:paramtypes", []),
484
+ __metadata("design:returntype", Promise)
485
+ ], ClientController.prototype, "verifyMigration", null);
486
+ __decorate([
487
+ (0, common_1.Post)('migration/rollback'),
488
+ (0, swagger_1.ApiOperation)({ summary: 'Rollback promote mobile migration' }),
489
+ (0, swagger_1.ApiBody)({
490
+ schema: {
491
+ type: 'object',
492
+ properties: {
493
+ backupCollectionName: { type: 'string', description: 'Name of backup collection to restore from' }
494
+ },
495
+ required: ['backupCollectionName']
496
+ }
497
+ }),
498
+ (0, swagger_1.ApiResponse)({ status: 200, description: 'Migration rollback completed' }),
499
+ __param(0, (0, common_1.Body)()),
500
+ __metadata("design:type", Function),
501
+ __metadata("design:paramtypes", [Object]),
502
+ __metadata("design:returntype", Promise)
503
+ ], ClientController.prototype, "rollbackMigration", null);
245
504
  exports.ClientController = ClientController = __decorate([
246
505
  (0, swagger_1.ApiTags)('Clients'),
247
506
  (0, common_1.Controller)('clients'),