@futdevpro/nts-dynamo 1.15.137 → 1.15.140

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 (986) hide show
  1. package/README.md +33 -0
  2. package/SKILLS.md +75 -0
  3. package/__documentations/2026-08-18-mongo-transaction-control-service.md +82 -0
  4. package/build/_models/interfaces/mongo-transaction-settings.interface.d.ts +9 -0
  5. package/build/_models/interfaces/mongo-transaction-settings.interface.d.ts.map +1 -0
  6. package/build/_models/interfaces/mongo-transaction-settings.interface.js +3 -0
  7. package/build/_models/interfaces/mongo-transaction-settings.interface.js.map +1 -0
  8. package/build/_modules/socket/_services/socket-server.service.js +1 -1
  9. package/build/_modules/socket/_services/socket-server.service.js.map +1 -1
  10. package/build/_services/core/mongo-transaction.control-service.d.ts +19 -0
  11. package/build/_services/core/mongo-transaction.control-service.d.ts.map +1 -0
  12. package/build/_services/core/mongo-transaction.control-service.js +95 -0
  13. package/build/_services/core/mongo-transaction.control-service.js.map +1 -0
  14. package/build/index.d.ts +2 -0
  15. package/build/index.d.ts.map +1 -1
  16. package/build/index.js +2 -0
  17. package/build/index.js.map +1 -1
  18. package/package.json +3 -3
  19. package/src/_models/interfaces/mongo-transaction-settings.interface.ts +9 -0
  20. package/src/_modules/socket/_services/socket-server.service.spec.ts +40 -1
  21. package/src/_modules/socket/_services/socket-server.service.ts +1 -1
  22. package/src/_services/core/mongo-transaction.control-service.spec.ts +165 -0
  23. package/src/_services/core/mongo-transaction.control-service.ts +148 -0
  24. package/src/index.ts +2 -1
  25. package/build/_collections/app-version-header.util.spec.d.ts +0 -2
  26. package/build/_collections/app-version-header.util.spec.d.ts.map +0 -1
  27. package/build/_collections/app-version-header.util.spec.js +0 -82
  28. package/build/_collections/app-version-header.util.spec.js.map +0 -1
  29. package/build/_collections/archive.util.spec.d.ts +0 -2
  30. package/build/_collections/archive.util.spec.d.ts.map +0 -1
  31. package/build/_collections/archive.util.spec.js +0 -51
  32. package/build/_collections/archive.util.spec.js.map +0 -1
  33. package/build/_collections/client-safe-error.util.spec.d.ts +0 -2
  34. package/build/_collections/client-safe-error.util.spec.d.ts.map +0 -1
  35. package/build/_collections/client-safe-error.util.spec.js +0 -124
  36. package/build/_collections/client-safe-error.util.spec.js.map +0 -1
  37. package/build/_collections/default-fallback-cache-max-age.const.spec.d.ts +0 -2
  38. package/build/_collections/default-fallback-cache-max-age.const.spec.d.ts.map +0 -1
  39. package/build/_collections/default-fallback-cache-max-age.const.spec.js +0 -12
  40. package/build/_collections/default-fallback-cache-max-age.const.spec.js.map +0 -1
  41. package/build/_collections/default-not-found-page.const.spec.d.ts +0 -2
  42. package/build/_collections/default-not-found-page.const.spec.d.ts.map +0 -1
  43. package/build/_collections/default-not-found-page.const.spec.js +0 -19
  44. package/build/_collections/default-not-found-page.const.spec.js.map +0 -1
  45. package/build/_collections/default-socket-path.const.spec.d.ts +0 -2
  46. package/build/_collections/default-socket-path.const.spec.d.ts.map +0 -1
  47. package/build/_collections/default-socket-path.const.spec.js +0 -13
  48. package/build/_collections/default-socket-path.const.spec.js.map +0 -1
  49. package/build/_collections/field-encryption.util.spec.d.ts +0 -2
  50. package/build/_collections/field-encryption.util.spec.d.ts.map +0 -1
  51. package/build/_collections/field-encryption.util.spec.js +0 -156
  52. package/build/_collections/field-encryption.util.spec.js.map +0 -1
  53. package/build/_collections/get-environment-settings.util.spec.d.ts +0 -2
  54. package/build/_collections/get-environment-settings.util.spec.d.ts.map +0 -1
  55. package/build/_collections/get-environment-settings.util.spec.js +0 -165
  56. package/build/_collections/get-environment-settings.util.spec.js.map +0 -1
  57. package/build/_collections/load-shed.util.spec.d.ts +0 -2
  58. package/build/_collections/load-shed.util.spec.d.ts.map +0 -1
  59. package/build/_collections/load-shed.util.spec.js +0 -48
  60. package/build/_collections/load-shed.util.spec.js.map +0 -1
  61. package/build/_collections/mongo-reconnect-guard.util.spec.d.ts +0 -2
  62. package/build/_collections/mongo-reconnect-guard.util.spec.d.ts.map +0 -1
  63. package/build/_collections/mongo-reconnect-guard.util.spec.js +0 -46
  64. package/build/_collections/mongo-reconnect-guard.util.spec.js.map +0 -1
  65. package/build/_collections/security-headers.util.spec.d.ts +0 -2
  66. package/build/_collections/security-headers.util.spec.d.ts.map +0 -1
  67. package/build/_collections/security-headers.util.spec.js +0 -66
  68. package/build/_collections/security-headers.util.spec.js.map +0 -1
  69. package/build/_collections/signed-url.util.spec.d.ts +0 -2
  70. package/build/_collections/signed-url.util.spec.d.ts.map +0 -1
  71. package/build/_collections/signed-url.util.spec.js +0 -161
  72. package/build/_collections/signed-url.util.spec.js.map +0 -1
  73. package/build/_collections/star.controller.spec.d.ts +0 -2
  74. package/build/_collections/star.controller.spec.d.ts.map +0 -1
  75. package/build/_collections/star.controller.spec.js +0 -194
  76. package/build/_collections/star.controller.spec.js.map +0 -1
  77. package/build/_collections/static-cache-control.util.spec.d.ts +0 -2
  78. package/build/_collections/static-cache-control.util.spec.d.ts.map +0 -1
  79. package/build/_collections/static-cache-control.util.spec.js +0 -41
  80. package/build/_collections/static-cache-control.util.spec.js.map +0 -1
  81. package/build/_models/control-models/api-call-params.control-model.spec.d.ts +0 -2
  82. package/build/_models/control-models/api-call-params.control-model.spec.d.ts.map +0 -1
  83. package/build/_models/control-models/api-call-params.control-model.spec.js +0 -128
  84. package/build/_models/control-models/api-call-params.control-model.spec.js.map +0 -1
  85. package/build/_models/control-models/app-ext-system-controls.control-model.spec.d.ts +0 -2
  86. package/build/_models/control-models/app-ext-system-controls.control-model.spec.d.ts.map +0 -1
  87. package/build/_models/control-models/app-ext-system-controls.control-model.spec.js +0 -43
  88. package/build/_models/control-models/app-ext-system-controls.control-model.spec.js.map +0 -1
  89. package/build/_models/control-models/app-params.control-model.spec.d.ts +0 -2
  90. package/build/_models/control-models/app-params.control-model.spec.d.ts.map +0 -1
  91. package/build/_models/control-models/app-params.control-model.spec.js +0 -180
  92. package/build/_models/control-models/app-params.control-model.spec.js.map +0 -1
  93. package/build/_models/control-models/app-system-controls.control-model.spec.d.ts +0 -2
  94. package/build/_models/control-models/app-system-controls.control-model.spec.d.ts.map +0 -1
  95. package/build/_models/control-models/app-system-controls.control-model.spec.js +0 -26
  96. package/build/_models/control-models/app-system-controls.control-model.spec.js.map +0 -1
  97. package/build/_models/control-models/endpoint-params.control-model.spec.d.ts +0 -2
  98. package/build/_models/control-models/endpoint-params.control-model.spec.d.ts.map +0 -1
  99. package/build/_models/control-models/endpoint-params.control-model.spec.js +0 -569
  100. package/build/_models/control-models/endpoint-params.control-model.spec.js.map +0 -1
  101. package/build/_models/control-models/http-settings.control-model.spec.d.ts +0 -2
  102. package/build/_models/control-models/http-settings.control-model.spec.d.ts.map +0 -1
  103. package/build/_models/control-models/http-settings.control-model.spec.js +0 -71
  104. package/build/_models/control-models/http-settings.control-model.spec.js.map +0 -1
  105. package/build/_models/control-models/system-control.control-model.spec.d.ts +0 -2
  106. package/build/_models/control-models/system-control.control-model.spec.d.ts.map +0 -1
  107. package/build/_models/control-models/system-control.control-model.spec.js +0 -24
  108. package/build/_models/control-models/system-control.control-model.spec.js.map +0 -1
  109. package/build/_models/interfaces/cors-settings.interface.spec.d.ts +0 -2
  110. package/build/_models/interfaces/cors-settings.interface.spec.d.ts.map +0 -1
  111. package/build/_models/interfaces/cors-settings.interface.spec.js +0 -48
  112. package/build/_models/interfaces/cors-settings.interface.spec.js.map +0 -1
  113. package/build/_models/interfaces/static-client-settings.interface.spec.d.ts +0 -2
  114. package/build/_models/interfaces/static-client-settings.interface.spec.d.ts.map +0 -1
  115. package/build/_models/interfaces/static-client-settings.interface.spec.js +0 -28
  116. package/build/_models/interfaces/static-client-settings.interface.spec.js.map +0 -1
  117. package/build/_modules/admin-auth/admin-api-key.auth-service.spec.d.ts +0 -2
  118. package/build/_modules/admin-auth/admin-api-key.auth-service.spec.d.ts.map +0 -1
  119. package/build/_modules/admin-auth/admin-api-key.auth-service.spec.js +0 -185
  120. package/build/_modules/admin-auth/admin-api-key.auth-service.spec.js.map +0 -1
  121. package/build/_modules/ai/_collections/ai-model-config-validator.util.spec.d.ts +0 -2
  122. package/build/_modules/ai/_collections/ai-model-config-validator.util.spec.d.ts.map +0 -1
  123. package/build/_modules/ai/_collections/ai-model-config-validator.util.spec.js +0 -132
  124. package/build/_modules/ai/_collections/ai-model-config-validator.util.spec.js.map +0 -1
  125. package/build/_modules/ai/_modules/ai-mock/_collections/aim-default-collection.util.spec.d.ts +0 -2
  126. package/build/_modules/ai/_modules/ai-mock/_collections/aim-default-collection.util.spec.d.ts.map +0 -1
  127. package/build/_modules/ai/_modules/ai-mock/_collections/aim-default-collection.util.spec.js +0 -56
  128. package/build/_modules/ai/_modules/ai-mock/_collections/aim-default-collection.util.spec.js.map +0 -1
  129. package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-match.util.spec.d.ts +0 -2
  130. package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-match.util.spec.d.ts.map +0 -1
  131. package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-match.util.spec.js +0 -43
  132. package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-match.util.spec.js.map +0 -1
  133. package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-serializer.util.spec.d.ts +0 -2
  134. package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-serializer.util.spec.d.ts.map +0 -1
  135. package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-serializer.util.spec.js +0 -47
  136. package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-serializer.util.spec.js.map +0 -1
  137. package/build/_modules/ai/_modules/ai-mock/_services/ai-embedding-mock.service.spec.d.ts +0 -2
  138. package/build/_modules/ai/_modules/ai-mock/_services/ai-embedding-mock.service.spec.d.ts.map +0 -1
  139. package/build/_modules/ai/_modules/ai-mock/_services/ai-embedding-mock.service.spec.js +0 -98
  140. package/build/_modules/ai/_modules/ai-mock/_services/ai-embedding-mock.service.spec.js.map +0 -1
  141. package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-harness.service.spec.d.ts +0 -2
  142. package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-harness.service.spec.d.ts.map +0 -1
  143. package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-harness.service.spec.js +0 -117
  144. package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-harness.service.spec.js.map +0 -1
  145. package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-pipeline.spec.d.ts +0 -2
  146. package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-pipeline.spec.d.ts.map +0 -1
  147. package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-pipeline.spec.js +0 -87
  148. package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-pipeline.spec.js.map +0 -1
  149. package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-store.service.spec.d.ts +0 -2
  150. package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-store.service.spec.d.ts.map +0 -1
  151. package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-store.service.spec.js +0 -42
  152. package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-store.service.spec.js.map +0 -1
  153. package/build/_modules/ai/_modules/ai-mock/_services/aim-integration-proof.spec.d.ts +0 -2
  154. package/build/_modules/ai/_modules/ai-mock/_services/aim-integration-proof.spec.d.ts.map +0 -1
  155. package/build/_modules/ai/_modules/ai-mock/_services/aim-integration-proof.spec.js +0 -74
  156. package/build/_modules/ai/_modules/ai-mock/_services/aim-integration-proof.spec.js.map +0 -1
  157. package/build/_modules/ai/_modules/ai-mock/_services/aim-mock.service.spec.d.ts +0 -2
  158. package/build/_modules/ai/_modules/ai-mock/_services/aim-mock.service.spec.d.ts.map +0 -1
  159. package/build/_modules/ai/_modules/ai-mock/_services/aim-mock.service.spec.js +0 -95
  160. package/build/_modules/ai/_modules/ai-mock/_services/aim-mock.service.spec.js.map +0 -1
  161. package/build/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.spec.d.ts +0 -2
  162. package/build/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.spec.d.ts.map +0 -1
  163. package/build/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.spec.js +0 -207
  164. package/build/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.spec.js.map +0 -1
  165. package/build/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.spec.d.ts +0 -2
  166. package/build/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.spec.d.ts.map +0 -1
  167. package/build/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.spec.js +0 -244
  168. package/build/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.spec.js.map +0 -1
  169. package/build/_modules/ai/_modules/document-ai/_collections/dai-document.util.spec.d.ts +0 -2
  170. package/build/_modules/ai/_modules/document-ai/_collections/dai-document.util.spec.d.ts.map +0 -1
  171. package/build/_modules/ai/_modules/document-ai/_collections/dai-document.util.spec.js +0 -162
  172. package/build/_modules/ai/_modules/document-ai/_collections/dai-document.util.spec.js.map +0 -1
  173. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.spec.d.ts +0 -2
  174. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.spec.d.ts.map +0 -1
  175. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.spec.js +0 -279
  176. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.spec.js.map +0 -1
  177. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.spec.d.ts +0 -2
  178. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.spec.d.ts.map +0 -1
  179. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.spec.js +0 -452
  180. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.spec.js.map +0 -1
  181. package/build/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.spec.d.ts +0 -2
  182. package/build/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.spec.d.ts.map +0 -1
  183. package/build/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.spec.js +0 -293
  184. package/build/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.spec.js.map +0 -1
  185. package/build/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.spec.d.ts +0 -2
  186. package/build/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.spec.d.ts.map +0 -1
  187. package/build/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.spec.js +0 -395
  188. package/build/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.spec.js.map +0 -1
  189. package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.spec.d.ts +0 -2
  190. package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.spec.d.ts.map +0 -1
  191. package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.spec.js +0 -411
  192. package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.spec.js.map +0 -1
  193. package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.tools.spec.d.ts +0 -2
  194. package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.tools.spec.d.ts.map +0 -1
  195. package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.tools.spec.js +0 -143
  196. package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.tools.spec.js.map +0 -1
  197. package/build/_modules/ai/_services/ai-embedding-provider.registry.spec.d.ts +0 -2
  198. package/build/_modules/ai/_services/ai-embedding-provider.registry.spec.d.ts.map +0 -1
  199. package/build/_modules/ai/_services/ai-embedding-provider.registry.spec.js +0 -98
  200. package/build/_modules/ai/_services/ai-embedding-provider.registry.spec.js.map +0 -1
  201. package/build/_modules/ai/_services/ai-embedding.service-base.spec.d.ts +0 -2
  202. package/build/_modules/ai/_services/ai-embedding.service-base.spec.d.ts.map +0 -1
  203. package/build/_modules/ai/_services/ai-embedding.service-base.spec.js +0 -80
  204. package/build/_modules/ai/_services/ai-embedding.service-base.spec.js.map +0 -1
  205. package/build/_modules/ai/_services/ai-llm-chat.service-base.spec.d.ts +0 -2
  206. package/build/_modules/ai/_services/ai-llm-chat.service-base.spec.d.ts.map +0 -1
  207. package/build/_modules/ai/_services/ai-llm-chat.service-base.spec.js +0 -186
  208. package/build/_modules/ai/_services/ai-llm-chat.service-base.spec.js.map +0 -1
  209. package/build/_modules/ai/_services/ai-llm.service-base.reconciler.spec.d.ts +0 -2
  210. package/build/_modules/ai/_services/ai-llm.service-base.reconciler.spec.d.ts.map +0 -1
  211. package/build/_modules/ai/_services/ai-llm.service-base.reconciler.spec.js +0 -108
  212. package/build/_modules/ai/_services/ai-llm.service-base.reconciler.spec.js.map +0 -1
  213. package/build/_modules/ai/_services/ai-llm.service-base.spec.d.ts +0 -2
  214. package/build/_modules/ai/_services/ai-llm.service-base.spec.d.ts.map +0 -1
  215. package/build/_modules/ai/_services/ai-llm.service-base.spec.js +0 -185
  216. package/build/_modules/ai/_services/ai-llm.service-base.spec.js.map +0 -1
  217. package/build/_modules/ai/_services/ai-provider.service-base.spec.d.ts +0 -2
  218. package/build/_modules/ai/_services/ai-provider.service-base.spec.d.ts.map +0 -1
  219. package/build/_modules/ai/_services/ai-provider.service-base.spec.js +0 -128
  220. package/build/_modules/ai/_services/ai-provider.service-base.spec.js.map +0 -1
  221. package/build/_modules/ai/_services/lmstudio-embedding.control-service.spec.d.ts +0 -2
  222. package/build/_modules/ai/_services/lmstudio-embedding.control-service.spec.d.ts.map +0 -1
  223. package/build/_modules/ai/_services/lmstudio-embedding.control-service.spec.js +0 -159
  224. package/build/_modules/ai/_services/lmstudio-embedding.control-service.spec.js.map +0 -1
  225. package/build/_modules/assistant/_collections/ass.util.spec.d.ts +0 -2
  226. package/build/_modules/assistant/_collections/ass.util.spec.d.ts.map +0 -1
  227. package/build/_modules/assistant/_collections/ass.util.spec.js +0 -153
  228. package/build/_modules/assistant/_collections/ass.util.spec.js.map +0 -1
  229. package/build/_modules/assistant/_services/ass-io.control-service.spec.d.ts +0 -2
  230. package/build/_modules/assistant/_services/ass-io.control-service.spec.d.ts.map +0 -1
  231. package/build/_modules/assistant/_services/ass-io.control-service.spec.js +0 -99
  232. package/build/_modules/assistant/_services/ass-io.control-service.spec.js.map +0 -1
  233. package/build/_modules/assistant/_services/ass-main.control-service.spec.d.ts +0 -2
  234. package/build/_modules/assistant/_services/ass-main.control-service.spec.d.ts.map +0 -1
  235. package/build/_modules/assistant/_services/ass-main.control-service.spec.js +0 -146
  236. package/build/_modules/assistant/_services/ass-main.control-service.spec.js.map +0 -1
  237. package/build/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.spec.d.ts +0 -2
  238. package/build/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.spec.d.ts.map +0 -1
  239. package/build/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.spec.js +0 -356
  240. package/build/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.spec.js.map +0 -1
  241. package/build/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.spec.d.ts +0 -2
  242. package/build/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.spec.d.ts.map +0 -1
  243. package/build/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.spec.js +0 -93
  244. package/build/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.spec.js.map +0 -1
  245. package/build/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.spec.d.ts +0 -2
  246. package/build/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.spec.d.ts.map +0 -1
  247. package/build/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.spec.js +0 -304
  248. package/build/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.spec.js.map +0 -1
  249. package/build/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.spec.d.ts +0 -2
  250. package/build/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.spec.d.ts.map +0 -1
  251. package/build/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.spec.js +0 -336
  252. package/build/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.spec.js.map +0 -1
  253. package/build/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.spec.d.ts +0 -2
  254. package/build/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.spec.d.ts.map +0 -1
  255. package/build/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.spec.js +0 -337
  256. package/build/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.spec.js.map +0 -1
  257. package/build/_modules/bot/_services/bot-commands.control-service.spec.d.ts +0 -2
  258. package/build/_modules/bot/_services/bot-commands.control-service.spec.d.ts.map +0 -1
  259. package/build/_modules/bot/_services/bot-commands.control-service.spec.js +0 -84
  260. package/build/_modules/bot/_services/bot-commands.control-service.spec.js.map +0 -1
  261. package/build/_modules/bot/_services/bot-io.control-service.spec.d.ts +0 -2
  262. package/build/_modules/bot/_services/bot-io.control-service.spec.d.ts.map +0 -1
  263. package/build/_modules/bot/_services/bot-io.control-service.spec.js +0 -228
  264. package/build/_modules/bot/_services/bot-io.control-service.spec.js.map +0 -1
  265. package/build/_modules/bot/_services/bot-main.control-service.spec.d.ts +0 -2
  266. package/build/_modules/bot/_services/bot-main.control-service.spec.d.ts.map +0 -1
  267. package/build/_modules/bot/_services/bot-main.control-service.spec.js +0 -164
  268. package/build/_modules/bot/_services/bot-main.control-service.spec.js.map +0 -1
  269. package/build/_modules/bot/_services/bot-messaging-provider.service-base.spec.d.ts +0 -2
  270. package/build/_modules/bot/_services/bot-messaging-provider.service-base.spec.d.ts.map +0 -1
  271. package/build/_modules/bot/_services/bot-messaging-provider.service-base.spec.js +0 -267
  272. package/build/_modules/bot/_services/bot-messaging-provider.service-base.spec.js.map +0 -1
  273. package/build/_modules/bot/_services/bot-routines.control-service.spec.d.ts +0 -2
  274. package/build/_modules/bot/_services/bot-routines.control-service.spec.d.ts.map +0 -1
  275. package/build/_modules/bot/_services/bot-routines.control-service.spec.js +0 -82
  276. package/build/_modules/bot/_services/bot-routines.control-service.spec.js.map +0 -1
  277. package/build/_modules/custom-data/custom-data.controller.spec.d.ts +0 -2
  278. package/build/_modules/custom-data/custom-data.controller.spec.d.ts.map +0 -1
  279. package/build/_modules/custom-data/custom-data.controller.spec.js +0 -38
  280. package/build/_modules/custom-data/custom-data.controller.spec.js.map +0 -1
  281. package/build/_modules/custom-data/custom-data.data-service.spec.d.ts +0 -2
  282. package/build/_modules/custom-data/custom-data.data-service.spec.d.ts.map +0 -1
  283. package/build/_modules/custom-data/custom-data.data-service.spec.js +0 -45
  284. package/build/_modules/custom-data/custom-data.data-service.spec.js.map +0 -1
  285. package/build/_modules/custom-data/get-custom-data-routing-module.util.spec.d.ts +0 -2
  286. package/build/_modules/custom-data/get-custom-data-routing-module.util.spec.d.ts.map +0 -1
  287. package/build/_modules/custom-data/get-custom-data-routing-module.util.spec.js +0 -23
  288. package/build/_modules/custom-data/get-custom-data-routing-module.util.spec.js.map +0 -1
  289. package/build/_modules/data-readers/_collections/dynts-sqlite-reader.util.spec.d.ts +0 -2
  290. package/build/_modules/data-readers/_collections/dynts-sqlite-reader.util.spec.d.ts.map +0 -1
  291. package/build/_modules/data-readers/_collections/dynts-sqlite-reader.util.spec.js +0 -124
  292. package/build/_modules/data-readers/_collections/dynts-sqlite-reader.util.spec.js.map +0 -1
  293. package/build/_modules/defaults/_services/default-auth.service.spec.d.ts +0 -2
  294. package/build/_modules/defaults/_services/default-auth.service.spec.d.ts.map +0 -1
  295. package/build/_modules/defaults/_services/default-auth.service.spec.js +0 -210
  296. package/build/_modules/defaults/_services/default-auth.service.spec.js.map +0 -1
  297. package/build/_modules/defaults/_services/default-socket-events.service.spec.d.ts +0 -2
  298. package/build/_modules/defaults/_services/default-socket-events.service.spec.d.ts.map +0 -1
  299. package/build/_modules/defaults/_services/default-socket-events.service.spec.js +0 -34
  300. package/build/_modules/defaults/_services/default-socket-events.service.spec.js.map +0 -1
  301. package/build/_modules/defaults/_services/default-user.data-service.spec.d.ts +0 -2
  302. package/build/_modules/defaults/_services/default-user.data-service.spec.d.ts.map +0 -1
  303. package/build/_modules/defaults/_services/default-user.data-service.spec.js +0 -133
  304. package/build/_modules/defaults/_services/default-user.data-service.spec.js.map +0 -1
  305. package/build/_modules/discord-assistant/_collections/dias.util.spec.d.ts +0 -2
  306. package/build/_modules/discord-assistant/_collections/dias.util.spec.d.ts.map +0 -1
  307. package/build/_modules/discord-assistant/_collections/dias.util.spec.js +0 -307
  308. package/build/_modules/discord-assistant/_collections/dias.util.spec.js.map +0 -1
  309. package/build/_modules/discord-assistant/_services/dias-io.control-service.spec.d.ts +0 -2
  310. package/build/_modules/discord-assistant/_services/dias-io.control-service.spec.d.ts.map +0 -1
  311. package/build/_modules/discord-assistant/_services/dias-io.control-service.spec.js +0 -76
  312. package/build/_modules/discord-assistant/_services/dias-io.control-service.spec.js.map +0 -1
  313. package/build/_modules/discord-assistant/_services/dias-main.control-service.spec.d.ts +0 -2
  314. package/build/_modules/discord-assistant/_services/dias-main.control-service.spec.d.ts.map +0 -1
  315. package/build/_modules/discord-assistant/_services/dias-main.control-service.spec.js +0 -17
  316. package/build/_modules/discord-assistant/_services/dias-main.control-service.spec.js.map +0 -1
  317. package/build/_modules/discord-assistant/_services/dias.service-base.spec.d.ts +0 -2
  318. package/build/_modules/discord-assistant/_services/dias.service-base.spec.d.ts.map +0 -1
  319. package/build/_modules/discord-assistant/_services/dias.service-base.spec.js +0 -151
  320. package/build/_modules/discord-assistant/_services/dias.service-base.spec.js.map +0 -1
  321. package/build/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.spec.d.ts +0 -2
  322. package/build/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.spec.d.ts.map +0 -1
  323. package/build/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.spec.js +0 -29
  324. package/build/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.spec.js.map +0 -1
  325. package/build/_modules/discord-bot/_collections/dibo-operations.util.spec.d.ts +0 -2
  326. package/build/_modules/discord-bot/_collections/dibo-operations.util.spec.d.ts.map +0 -1
  327. package/build/_modules/discord-bot/_collections/dibo-operations.util.spec.js +0 -172
  328. package/build/_modules/discord-bot/_collections/dibo-operations.util.spec.js.map +0 -1
  329. package/build/_modules/discord-bot/_services/dibo-commands.control-service.spec.d.ts +0 -2
  330. package/build/_modules/discord-bot/_services/dibo-commands.control-service.spec.d.ts.map +0 -1
  331. package/build/_modules/discord-bot/_services/dibo-commands.control-service.spec.js +0 -133
  332. package/build/_modules/discord-bot/_services/dibo-commands.control-service.spec.js.map +0 -1
  333. package/build/_modules/discord-bot/_services/dibo-io.control-service.spec.d.ts +0 -2
  334. package/build/_modules/discord-bot/_services/dibo-io.control-service.spec.d.ts.map +0 -1
  335. package/build/_modules/discord-bot/_services/dibo-io.control-service.spec.js +0 -215
  336. package/build/_modules/discord-bot/_services/dibo-io.control-service.spec.js.map +0 -1
  337. package/build/_modules/discord-bot/_services/dibo-main.control-service.spec.d.ts +0 -2
  338. package/build/_modules/discord-bot/_services/dibo-main.control-service.spec.d.ts.map +0 -1
  339. package/build/_modules/discord-bot/_services/dibo-main.control-service.spec.js +0 -342
  340. package/build/_modules/discord-bot/_services/dibo-main.control-service.spec.js.map +0 -1
  341. package/build/_modules/discord-bot/_services/dibo-routines.control-service.spec.d.ts +0 -2
  342. package/build/_modules/discord-bot/_services/dibo-routines.control-service.spec.d.ts.map +0 -1
  343. package/build/_modules/discord-bot/_services/dibo-routines.control-service.spec.js +0 -87
  344. package/build/_modules/discord-bot/_services/dibo-routines.control-service.spec.js.map +0 -1
  345. package/build/_modules/local-vector-search/_services/lvs-bm25.util.spec.d.ts +0 -2
  346. package/build/_modules/local-vector-search/_services/lvs-bm25.util.spec.d.ts.map +0 -1
  347. package/build/_modules/local-vector-search/_services/lvs-bm25.util.spec.js +0 -137
  348. package/build/_modules/local-vector-search/_services/lvs-bm25.util.spec.js.map +0 -1
  349. package/build/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.spec.d.ts +0 -2
  350. package/build/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.spec.d.ts.map +0 -1
  351. package/build/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.spec.js +0 -345
  352. package/build/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.spec.js.map +0 -1
  353. package/build/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.spec.d.ts +0 -2
  354. package/build/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.spec.d.ts.map +0 -1
  355. package/build/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.spec.js +0 -407
  356. package/build/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.spec.js.map +0 -1
  357. package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.spec.d.ts +0 -2
  358. package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.spec.d.ts.map +0 -1
  359. package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.spec.js +0 -160
  360. package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.spec.js.map +0 -1
  361. package/build/_modules/local-vector-search/_services/lvs-vector-persist.data-service.spec.d.ts +0 -2
  362. package/build/_modules/local-vector-search/_services/lvs-vector-persist.data-service.spec.d.ts.map +0 -1
  363. package/build/_modules/local-vector-search/_services/lvs-vector-persist.data-service.spec.js +0 -122
  364. package/build/_modules/local-vector-search/_services/lvs-vector-persist.data-service.spec.js.map +0 -1
  365. package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.spec.d.ts +0 -2
  366. package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.spec.d.ts.map +0 -1
  367. package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.spec.js +0 -388
  368. package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.spec.js.map +0 -1
  369. package/build/_modules/logs/file-log.service.spec.d.ts +0 -2
  370. package/build/_modules/logs/file-log.service.spec.d.ts.map +0 -1
  371. package/build/_modules/logs/file-log.service.spec.js +0 -300
  372. package/build/_modules/logs/file-log.service.spec.js.map +0 -1
  373. package/build/_modules/logs/file-logs.controller.spec.d.ts +0 -2
  374. package/build/_modules/logs/file-logs.controller.spec.d.ts.map +0 -1
  375. package/build/_modules/logs/file-logs.controller.spec.js +0 -203
  376. package/build/_modules/logs/file-logs.controller.spec.js.map +0 -1
  377. package/build/_modules/mcp/_services/dynts-mcp-server.service-base.spec.d.ts +0 -2
  378. package/build/_modules/mcp/_services/dynts-mcp-server.service-base.spec.d.ts.map +0 -1
  379. package/build/_modules/mcp/_services/dynts-mcp-server.service-base.spec.js +0 -125
  380. package/build/_modules/mcp/_services/dynts-mcp-server.service-base.spec.js.map +0 -1
  381. package/build/_modules/messaging/_collections/msg.util.spec.d.ts +0 -2
  382. package/build/_modules/messaging/_collections/msg.util.spec.d.ts.map +0 -1
  383. package/build/_modules/messaging/_collections/msg.util.spec.js +0 -157
  384. package/build/_modules/messaging/_collections/msg.util.spec.js.map +0 -1
  385. package/build/_modules/messaging/_services/msg-events.service.spec.d.ts +0 -2
  386. package/build/_modules/messaging/_services/msg-events.service.spec.d.ts.map +0 -1
  387. package/build/_modules/messaging/_services/msg-events.service.spec.js +0 -122
  388. package/build/_modules/messaging/_services/msg-events.service.spec.js.map +0 -1
  389. package/build/_modules/messaging/_services/msg-main.control-service.spec.d.ts +0 -2
  390. package/build/_modules/messaging/_services/msg-main.control-service.spec.d.ts.map +0 -1
  391. package/build/_modules/messaging/_services/msg-main.control-service.spec.js +0 -121
  392. package/build/_modules/messaging/_services/msg-main.control-service.spec.js.map +0 -1
  393. package/build/_modules/messaging/_services/msg.controller.spec.d.ts +0 -2
  394. package/build/_modules/messaging/_services/msg.controller.spec.d.ts.map +0 -1
  395. package/build/_modules/messaging/_services/msg.controller.spec.js +0 -165
  396. package/build/_modules/messaging/_services/msg.controller.spec.js.map +0 -1
  397. package/build/_modules/mock/app-params.mock.spec.d.ts +0 -2
  398. package/build/_modules/mock/app-params.mock.spec.d.ts.map +0 -1
  399. package/build/_modules/mock/app-params.mock.spec.js +0 -19
  400. package/build/_modules/mock/app-params.mock.spec.js.map +0 -1
  401. package/build/_modules/mock/auth-service.mock.spec.d.ts +0 -2
  402. package/build/_modules/mock/auth-service.mock.spec.d.ts.map +0 -1
  403. package/build/_modules/mock/auth-service.mock.spec.js +0 -40
  404. package/build/_modules/mock/auth-service.mock.spec.js.map +0 -1
  405. package/build/_modules/mock/controller.mock.spec.d.ts +0 -2
  406. package/build/_modules/mock/controller.mock.spec.d.ts.map +0 -1
  407. package/build/_modules/mock/controller.mock.spec.js +0 -23
  408. package/build/_modules/mock/controller.mock.spec.js.map +0 -1
  409. package/build/_modules/mock/data-model.mock.spec.d.ts +0 -2
  410. package/build/_modules/mock/data-model.mock.spec.d.ts.map +0 -1
  411. package/build/_modules/mock/data-model.mock.spec.js +0 -101
  412. package/build/_modules/mock/data-model.mock.spec.js.map +0 -1
  413. package/build/_modules/mock/email-service-collection.mock.spec.d.ts +0 -2
  414. package/build/_modules/mock/email-service-collection.mock.spec.d.ts.map +0 -1
  415. package/build/_modules/mock/email-service-collection.mock.spec.js +0 -21
  416. package/build/_modules/mock/email-service-collection.mock.spec.js.map +0 -1
  417. package/build/_modules/mock/email-service.mock.spec.d.ts +0 -2
  418. package/build/_modules/mock/email-service.mock.spec.d.ts.map +0 -1
  419. package/build/_modules/mock/email-service.mock.spec.js +0 -14
  420. package/build/_modules/mock/email-service.mock.spec.js.map +0 -1
  421. package/build/_modules/mock/socket-client.mock.spec.d.ts +0 -2
  422. package/build/_modules/mock/socket-client.mock.spec.d.ts.map +0 -1
  423. package/build/_modules/mock/socket-client.mock.spec.js +0 -32
  424. package/build/_modules/mock/socket-client.mock.spec.js.map +0 -1
  425. package/build/_modules/mock/socket-server.mock.spec.d.ts +0 -2
  426. package/build/_modules/mock/socket-server.mock.spec.d.ts.map +0 -1
  427. package/build/_modules/mock/socket-server.mock.spec.js +0 -36
  428. package/build/_modules/mock/socket-server.mock.spec.js.map +0 -1
  429. package/build/_modules/oauth2/_routes/oauth2.controller.spec.d.ts +0 -2
  430. package/build/_modules/oauth2/_routes/oauth2.controller.spec.d.ts.map +0 -1
  431. package/build/_modules/oauth2/_routes/oauth2.controller.spec.js +0 -89
  432. package/build/_modules/oauth2/_routes/oauth2.controller.spec.js.map +0 -1
  433. package/build/_modules/oauth2/_services/oauth2.auth-service.spec.d.ts +0 -2
  434. package/build/_modules/oauth2/_services/oauth2.auth-service.spec.d.ts.map +0 -1
  435. package/build/_modules/oauth2/_services/oauth2.auth-service.spec.js +0 -195
  436. package/build/_modules/oauth2/_services/oauth2.auth-service.spec.js.map +0 -1
  437. package/build/_modules/oauth2/_services/oauth2.control-service.spec.d.ts +0 -2
  438. package/build/_modules/oauth2/_services/oauth2.control-service.spec.d.ts.map +0 -1
  439. package/build/_modules/oauth2/_services/oauth2.control-service.spec.js +0 -432
  440. package/build/_modules/oauth2/_services/oauth2.control-service.spec.js.map +0 -1
  441. package/build/_modules/rate-limit/rate-limit.middleware.spec.d.ts +0 -2
  442. package/build/_modules/rate-limit/rate-limit.middleware.spec.d.ts.map +0 -1
  443. package/build/_modules/rate-limit/rate-limit.middleware.spec.js +0 -277
  444. package/build/_modules/rate-limit/rate-limit.middleware.spec.js.map +0 -1
  445. package/build/_modules/scheduler/scheduler.controller.spec.d.ts +0 -2
  446. package/build/_modules/scheduler/scheduler.controller.spec.d.ts.map +0 -1
  447. package/build/_modules/scheduler/scheduler.controller.spec.js +0 -35
  448. package/build/_modules/scheduler/scheduler.controller.spec.js.map +0 -1
  449. package/build/_modules/scheduler/scheduler.service.spec.d.ts +0 -2
  450. package/build/_modules/scheduler/scheduler.service.spec.d.ts.map +0 -1
  451. package/build/_modules/scheduler/scheduler.service.spec.js +0 -123
  452. package/build/_modules/scheduler/scheduler.service.spec.js.map +0 -1
  453. package/build/_modules/scoped-config/_services/dynts-scoped-config.control-service.spec.d.ts +0 -2
  454. package/build/_modules/scoped-config/_services/dynts-scoped-config.control-service.spec.d.ts.map +0 -1
  455. package/build/_modules/scoped-config/_services/dynts-scoped-config.control-service.spec.js +0 -229
  456. package/build/_modules/scoped-config/_services/dynts-scoped-config.control-service.spec.js.map +0 -1
  457. package/build/_modules/scoped-config/_services/dynts-scoped-config.data-service.spec.d.ts +0 -2
  458. package/build/_modules/scoped-config/_services/dynts-scoped-config.data-service.spec.d.ts.map +0 -1
  459. package/build/_modules/scoped-config/_services/dynts-scoped-config.data-service.spec.js +0 -88
  460. package/build/_modules/scoped-config/_services/dynts-scoped-config.data-service.spec.js.map +0 -1
  461. package/build/_modules/server/errors/errors.control-service.spec.d.ts +0 -2
  462. package/build/_modules/server/errors/errors.control-service.spec.d.ts.map +0 -1
  463. package/build/_modules/server/errors/errors.control-service.spec.js +0 -198
  464. package/build/_modules/server/errors/errors.control-service.spec.js.map +0 -1
  465. package/build/_modules/server/errors/errors.controller.spec.d.ts +0 -2
  466. package/build/_modules/server/errors/errors.controller.spec.d.ts.map +0 -1
  467. package/build/_modules/server/errors/errors.controller.spec.js +0 -287
  468. package/build/_modules/server/errors/errors.controller.spec.js.map +0 -1
  469. package/build/_modules/server/errors/errors.data-service.spec.d.ts +0 -2
  470. package/build/_modules/server/errors/errors.data-service.spec.d.ts.map +0 -1
  471. package/build/_modules/server/errors/errors.data-service.spec.js +0 -390
  472. package/build/_modules/server/errors/errors.data-service.spec.js.map +0 -1
  473. package/build/_modules/server/server-status/server-status-snapshot.control-service.spec.d.ts +0 -2
  474. package/build/_modules/server/server-status/server-status-snapshot.control-service.spec.d.ts.map +0 -1
  475. package/build/_modules/server/server-status/server-status-snapshot.control-service.spec.js +0 -59
  476. package/build/_modules/server/server-status/server-status-snapshot.control-service.spec.js.map +0 -1
  477. package/build/_modules/server/server-status/server-status-snapshot.data-service.spec.d.ts +0 -2
  478. package/build/_modules/server/server-status/server-status-snapshot.data-service.spec.d.ts.map +0 -1
  479. package/build/_modules/server/server-status/server-status-snapshot.data-service.spec.js +0 -58
  480. package/build/_modules/server/server-status/server-status-snapshot.data-service.spec.js.map +0 -1
  481. package/build/_modules/server/server-status/server-status.control-service.spec.d.ts +0 -2
  482. package/build/_modules/server/server-status/server-status.control-service.spec.d.ts.map +0 -1
  483. package/build/_modules/server/server-status/server-status.control-service.spec.js +0 -537
  484. package/build/_modules/server/server-status/server-status.control-service.spec.js.map +0 -1
  485. package/build/_modules/server/server-status/server-status.controller.spec.d.ts +0 -2
  486. package/build/_modules/server/server-status/server-status.controller.spec.d.ts.map +0 -1
  487. package/build/_modules/server/server-status/server-status.controller.spec.js +0 -223
  488. package/build/_modules/server/server-status/server-status.controller.spec.js.map +0 -1
  489. package/build/_modules/socket/_models/socket-client-service-params.control-model.spec.d.ts +0 -2
  490. package/build/_modules/socket/_models/socket-client-service-params.control-model.spec.d.ts.map +0 -1
  491. package/build/_modules/socket/_models/socket-client-service-params.control-model.spec.js +0 -25
  492. package/build/_modules/socket/_models/socket-client-service-params.control-model.spec.js.map +0 -1
  493. package/build/_modules/socket/_models/socket-presence.control-model.spec.d.ts +0 -2
  494. package/build/_modules/socket/_models/socket-presence.control-model.spec.d.ts.map +0 -1
  495. package/build/_modules/socket/_models/socket-presence.control-model.spec.js +0 -137
  496. package/build/_modules/socket/_models/socket-presence.control-model.spec.js.map +0 -1
  497. package/build/_modules/socket/_models/socket-server-service-params.control-model.spec.d.ts +0 -2
  498. package/build/_modules/socket/_models/socket-server-service-params.control-model.spec.d.ts.map +0 -1
  499. package/build/_modules/socket/_models/socket-server-service-params.control-model.spec.js +0 -58
  500. package/build/_modules/socket/_models/socket-server-service-params.control-model.spec.js.map +0 -1
  501. package/build/_modules/socket/_services/socket-client.service.spec.d.ts +0 -2
  502. package/build/_modules/socket/_services/socket-client.service.spec.d.ts.map +0 -1
  503. package/build/_modules/socket/_services/socket-client.service.spec.js +0 -12
  504. package/build/_modules/socket/_services/socket-client.service.spec.js.map +0 -1
  505. package/build/_modules/socket/_services/socket-server.service.spec.d.ts +0 -2
  506. package/build/_modules/socket/_services/socket-server.service.spec.d.ts.map +0 -1
  507. package/build/_modules/socket/_services/socket-server.service.spec.js +0 -126
  508. package/build/_modules/socket/_services/socket-server.service.spec.js.map +0 -1
  509. package/build/_modules/socket/app-extended.integration.spec.d.ts +0 -2
  510. package/build/_modules/socket/app-extended.integration.spec.d.ts.map +0 -1
  511. package/build/_modules/socket/app-extended.integration.spec.js +0 -76
  512. package/build/_modules/socket/app-extended.integration.spec.js.map +0 -1
  513. package/build/_modules/test/get-test-routing-module.util.spec.d.ts +0 -2
  514. package/build/_modules/test/get-test-routing-module.util.spec.d.ts.map +0 -1
  515. package/build/_modules/test/get-test-routing-module.util.spec.js +0 -23
  516. package/build/_modules/test/get-test-routing-module.util.spec.js.map +0 -1
  517. package/build/_modules/test/test.controller.spec.d.ts +0 -2
  518. package/build/_modules/test/test.controller.spec.d.ts.map +0 -1
  519. package/build/_modules/test/test.controller.spec.js +0 -54
  520. package/build/_modules/test/test.controller.spec.js.map +0 -1
  521. package/build/_modules/test-email-sink/_services/dynts-test-email-sink.service.spec.d.ts +0 -2
  522. package/build/_modules/test-email-sink/_services/dynts-test-email-sink.service.spec.d.ts.map +0 -1
  523. package/build/_modules/test-email-sink/_services/dynts-test-email-sink.service.spec.js +0 -91
  524. package/build/_modules/test-email-sink/_services/dynts-test-email-sink.service.spec.js.map +0 -1
  525. package/build/_modules/usage/usage.controller.spec.d.ts +0 -2
  526. package/build/_modules/usage/usage.controller.spec.d.ts.map +0 -1
  527. package/build/_modules/usage/usage.controller.spec.js +0 -82
  528. package/build/_modules/usage/usage.controller.spec.js.map +0 -1
  529. package/build/_modules/usage/usage.data-service.spec.d.ts +0 -2
  530. package/build/_modules/usage/usage.data-service.spec.d.ts.map +0 -1
  531. package/build/_modules/usage/usage.data-service.spec.js +0 -284
  532. package/build/_modules/usage/usage.data-service.spec.js.map +0 -1
  533. package/build/_services/base/api.service-base.spec.d.ts +0 -2
  534. package/build/_services/base/api.service-base.spec.d.ts.map +0 -1
  535. package/build/_services/base/api.service-base.spec.js +0 -91
  536. package/build/_services/base/api.service-base.spec.js.map +0 -1
  537. package/build/_services/base/archive-data.service.spec.d.ts +0 -2
  538. package/build/_services/base/archive-data.service.spec.d.ts.map +0 -1
  539. package/build/_services/base/archive-data.service.spec.js +0 -149
  540. package/build/_services/base/archive-data.service.spec.js.map +0 -1
  541. package/build/_services/base/data.service.spec.d.ts +0 -2
  542. package/build/_services/base/data.service.spec.d.ts.map +0 -1
  543. package/build/_services/base/data.service.spec.js +0 -614
  544. package/build/_services/base/data.service.spec.js.map +0 -1
  545. package/build/_services/base/db.service.encryption.spec.d.ts +0 -2
  546. package/build/_services/base/db.service.encryption.spec.d.ts.map +0 -1
  547. package/build/_services/base/db.service.encryption.spec.js +0 -66
  548. package/build/_services/base/db.service.encryption.spec.js.map +0 -1
  549. package/build/_services/base/db.service.spec.d.ts +0 -2
  550. package/build/_services/base/db.service.spec.d.ts.map +0 -1
  551. package/build/_services/base/db.service.spec.js +0 -127
  552. package/build/_services/base/db.service.spec.js.map +0 -1
  553. package/build/_services/base/singleton.service-base.spec.d.ts +0 -2
  554. package/build/_services/base/singleton.service-base.spec.d.ts.map +0 -1
  555. package/build/_services/base/singleton.service-base.spec.js +0 -24
  556. package/build/_services/base/singleton.service-base.spec.js.map +0 -1
  557. package/build/_services/base/singleton.service.spec.d.ts +0 -2
  558. package/build/_services/base/singleton.service.spec.d.ts.map +0 -1
  559. package/build/_services/base/singleton.service.spec.js +0 -88
  560. package/build/_services/base/singleton.service.spec.js.map +0 -1
  561. package/build/_services/core/api.service.spec.d.ts +0 -2
  562. package/build/_services/core/api.service.spec.d.ts.map +0 -1
  563. package/build/_services/core/api.service.spec.js +0 -150
  564. package/build/_services/core/api.service.spec.js.map +0 -1
  565. package/build/_services/core/auth.service.spec.d.ts +0 -2
  566. package/build/_services/core/auth.service.spec.d.ts.map +0 -1
  567. package/build/_services/core/auth.service.spec.js +0 -129
  568. package/build/_services/core/auth.service.spec.js.map +0 -1
  569. package/build/_services/core/collection-growth-monitor.service.spec.d.ts +0 -2
  570. package/build/_services/core/collection-growth-monitor.service.spec.d.ts.map +0 -1
  571. package/build/_services/core/collection-growth-monitor.service.spec.js +0 -51
  572. package/build/_services/core/collection-growth-monitor.service.spec.js.map +0 -1
  573. package/build/_services/core/diagnostics.service.spec.d.ts +0 -2
  574. package/build/_services/core/diagnostics.service.spec.d.ts.map +0 -1
  575. package/build/_services/core/diagnostics.service.spec.js +0 -40
  576. package/build/_services/core/diagnostics.service.spec.js.map +0 -1
  577. package/build/_services/core/email.service.spec.d.ts +0 -2
  578. package/build/_services/core/email.service.spec.d.ts.map +0 -1
  579. package/build/_services/core/email.service.spec.js +0 -77
  580. package/build/_services/core/email.service.spec.js.map +0 -1
  581. package/build/_services/core/event-loop-diag.service.spec.d.ts +0 -2
  582. package/build/_services/core/event-loop-diag.service.spec.d.ts.map +0 -1
  583. package/build/_services/core/event-loop-diag.service.spec.js +0 -18
  584. package/build/_services/core/event-loop-diag.service.spec.js.map +0 -1
  585. package/build/_services/core/global.service.spec.d.ts +0 -2
  586. package/build/_services/core/global.service.spec.d.ts.map +0 -1
  587. package/build/_services/core/global.service.spec.js +0 -235
  588. package/build/_services/core/global.service.spec.js.map +0 -1
  589. package/build/_services/core/memory-guard.service.spec.d.ts +0 -2
  590. package/build/_services/core/memory-guard.service.spec.d.ts.map +0 -1
  591. package/build/_services/core/memory-guard.service.spec.js +0 -219
  592. package/build/_services/core/memory-guard.service.spec.js.map +0 -1
  593. package/build/_services/core/migration-runner.service.spec.d.ts +0 -2
  594. package/build/_services/core/migration-runner.service.spec.d.ts.map +0 -1
  595. package/build/_services/core/migration-runner.service.spec.js +0 -77
  596. package/build/_services/core/migration-runner.service.spec.js.map +0 -1
  597. package/build/_services/core/request-hunter.service.spec.d.ts +0 -2
  598. package/build/_services/core/request-hunter.service.spec.d.ts.map +0 -1
  599. package/build/_services/core/request-hunter.service.spec.js +0 -101
  600. package/build/_services/core/request-hunter.service.spec.js.map +0 -1
  601. package/build/_services/core/service-collection.service.spec.d.ts +0 -2
  602. package/build/_services/core/service-collection.service.spec.d.ts.map +0 -1
  603. package/build/_services/core/service-collection.service.spec.js +0 -39
  604. package/build/_services/core/service-collection.service.spec.js.map +0 -1
  605. package/build/_services/route/controller.service.spec.d.ts +0 -2
  606. package/build/_services/route/controller.service.spec.d.ts.map +0 -1
  607. package/build/_services/route/controller.service.spec.js +0 -48
  608. package/build/_services/route/controller.service.spec.js.map +0 -1
  609. package/build/_services/route/routing-module.service.spec.d.ts +0 -2
  610. package/build/_services/route/routing-module.service.spec.d.ts.map +0 -1
  611. package/build/_services/route/routing-module.service.spec.js +0 -81
  612. package/build/_services/route/routing-module.service.spec.js.map +0 -1
  613. package/build/_services/server/app.server-retention.spec.d.ts +0 -2
  614. package/build/_services/server/app.server-retention.spec.d.ts.map +0 -1
  615. package/build/_services/server/app.server-retention.spec.js +0 -93
  616. package/build/_services/server/app.server-retention.spec.js.map +0 -1
  617. package/build/_services/shared.static-service.spec.d.ts +0 -2
  618. package/build/_services/shared.static-service.spec.d.ts.map +0 -1
  619. package/build/_services/shared.static-service.spec.js +0 -82
  620. package/build/_services/shared.static-service.spec.js.map +0 -1
  621. package/coverage/_collections/archive.util.ts.html +0 -139
  622. package/coverage/_collections/get-environment-settings.util.ts.html +0 -229
  623. package/coverage/_collections/index.html +0 -146
  624. package/coverage/_collections/star.controller.ts.html +0 -472
  625. package/coverage/_models/control-models/api-call-params.control-model.ts.html +0 -511
  626. package/coverage/_models/control-models/app-ext-system-controls.control-model.ts.html +0 -112
  627. package/coverage/_models/control-models/app-params.control-model.ts.html +0 -475
  628. package/coverage/_models/control-models/app-system-controls.control-model.ts.html +0 -112
  629. package/coverage/_models/control-models/endpoint-params.control-model.ts.html +0 -1618
  630. package/coverage/_models/control-models/http-settings.control-model.ts.html +0 -172
  631. package/coverage/_models/control-models/index.html +0 -206
  632. package/coverage/_models/control-models/system-control.control-model.ts.html +0 -121
  633. package/coverage/_modules/ai/_models/ai-input-interfaces.ts.html +0 -436
  634. package/coverage/_modules/ai/_models/index.html +0 -116
  635. package/coverage/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.ts.html +0 -1993
  636. package/coverage/_modules/ai/_modules/document-ai/_collections/dai-document.util.ts.html +0 -340
  637. package/coverage/_modules/ai/_modules/document-ai/_collections/index.html +0 -131
  638. package/coverage/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-chunk.data-model.ts.html +0 -523
  639. package/coverage/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-page.data-model.ts.html +0 -571
  640. package/coverage/_modules/ai/_modules/document-ai/_models/data-models/dai-document.data-model.ts.html +0 -382
  641. package/coverage/_modules/ai/_modules/document-ai/_models/data-models/index.html +0 -146
  642. package/coverage/_modules/ai/_modules/open-ai/_collections/index.html +0 -131
  643. package/coverage/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests-hu.conts.ts.html +0 -331
  644. package/coverage/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests.conts.ts.html +0 -310
  645. package/coverage/_modules/ai/_modules/open-ai/_services/data-services/index.html +0 -161
  646. package/coverage/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-chunk-data.service.ts.html +0 -958
  647. package/coverage/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-page.data-service.ts.html +0 -1801
  648. package/coverage/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.ts.html +0 -1390
  649. package/coverage/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.ts.html +0 -1915
  650. package/coverage/_modules/ai/_modules/open-ai/_services/index.html +0 -146
  651. package/coverage/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.ts.html +0 -334
  652. package/coverage/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.ts.html +0 -1822
  653. package/coverage/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.ts.html +0 -2584
  654. package/coverage/_modules/ai/_services/ai-embedding.service-base.ts.html +0 -208
  655. package/coverage/_modules/ai/_services/ai-llm-chat.service-base.ts.html +0 -289
  656. package/coverage/_modules/ai/_services/ai-llm.service-base.ts.html +0 -1060
  657. package/coverage/_modules/ai/_services/ai-provider.service-base.ts.html +0 -172
  658. package/coverage/_modules/ai/_services/index.html +0 -161
  659. package/coverage/_modules/assistant/_collections/ass.util.ts.html +0 -235
  660. package/coverage/_modules/assistant/_collections/index.html +0 -116
  661. package/coverage/_modules/assistant/_services/ass-io.control-service.ts.html +0 -307
  662. package/coverage/_modules/assistant/_services/ass-main.control-service.ts.html +0 -406
  663. package/coverage/_modules/assistant/_services/index.html +0 -131
  664. package/coverage/_modules/bot/_modules/discord-bot/_models/dib-platform.types.ts.html +0 -112
  665. package/coverage/_modules/bot/_modules/discord-bot/_models/index.html +0 -116
  666. package/coverage/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.ts.html +0 -1978
  667. package/coverage/_modules/bot/_modules/discord-bot/_services/index.html +0 -116
  668. package/coverage/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.ts.html +0 -250
  669. package/coverage/_modules/bot/_modules/dynamo-bot/_collections/index.html +0 -116
  670. package/coverage/_modules/bot/_modules/dynamo-bot/_models/dyb-platform.types.ts.html +0 -130
  671. package/coverage/_modules/bot/_modules/dynamo-bot/_models/index.html +0 -116
  672. package/coverage/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.ts.html +0 -1414
  673. package/coverage/_modules/bot/_modules/dynamo-bot/_services/index.html +0 -116
  674. package/coverage/_modules/bot/_modules/slack-bot/_models/index.html +0 -116
  675. package/coverage/_modules/bot/_modules/slack-bot/_models/slb-platform.types.ts.html +0 -112
  676. package/coverage/_modules/bot/_modules/slack-bot/_services/index.html +0 -116
  677. package/coverage/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.ts.html +0 -664
  678. package/coverage/_modules/bot/_modules/teams-bot/_models/index.html +0 -116
  679. package/coverage/_modules/bot/_modules/teams-bot/_models/teb-platform.types.ts.html +0 -112
  680. package/coverage/_modules/bot/_modules/teams-bot/_services/index.html +0 -116
  681. package/coverage/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.ts.html +0 -664
  682. package/coverage/_modules/bot/_services/bot-commands.control-service.ts.html +0 -559
  683. package/coverage/_modules/bot/_services/bot-io.control-service.ts.html +0 -1072
  684. package/coverage/_modules/bot/_services/bot-main.control-service.ts.html +0 -1552
  685. package/coverage/_modules/bot/_services/bot-messaging-provider.service-base.ts.html +0 -556
  686. package/coverage/_modules/bot/_services/bot-routines.control-service.ts.html +0 -319
  687. package/coverage/_modules/bot/_services/index.html +0 -176
  688. package/coverage/_modules/custom-data/custom-data.controller.ts.html +0 -292
  689. package/coverage/_modules/custom-data/custom-data.data-service.ts.html +0 -148
  690. package/coverage/_modules/custom-data/get-custom-data-routing-module.util.ts.html +0 -157
  691. package/coverage/_modules/custom-data/index.html +0 -146
  692. package/coverage/_modules/defaults/_models/default-user.data-model.ts.html +0 -301
  693. package/coverage/_modules/defaults/_models/index.html +0 -116
  694. package/coverage/_modules/defaults/_services/default-auth.service.ts.html +0 -616
  695. package/coverage/_modules/defaults/_services/default-socket-events.service.ts.html +0 -268
  696. package/coverage/_modules/defaults/_services/default-user.data-service.ts.html +0 -379
  697. package/coverage/_modules/defaults/_services/index.html +0 -146
  698. package/coverage/_modules/discord-assistant/_collections/dias.util.ts.html +0 -481
  699. package/coverage/_modules/discord-assistant/_collections/index.html +0 -116
  700. package/coverage/_modules/discord-assistant/_models/dias-knowledge.data-model.ts.html +0 -241
  701. package/coverage/_modules/discord-assistant/_models/index.html +0 -116
  702. package/coverage/_modules/discord-assistant/_services/dias-chunk.data-service.ts.html +0 -616
  703. package/coverage/_modules/discord-assistant/_services/dias-io.control-service.ts.html +0 -292
  704. package/coverage/_modules/discord-assistant/_services/dias-main.control-service.ts.html +0 -166
  705. package/coverage/_modules/discord-assistant/_services/dias.service-base.ts.html +0 -313
  706. package/coverage/_modules/discord-assistant/_services/index.html +0 -161
  707. package/coverage/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.ts.html +0 -118
  708. package/coverage/_modules/discord-assistant-voiced/_services/index.html +0 -116
  709. package/coverage/_modules/discord-bot/_collections/dibo-global-settings.conts.ts.html +0 -250
  710. package/coverage/_modules/discord-bot/_collections/dibo-operations.util.ts.html +0 -1246
  711. package/coverage/_modules/discord-bot/_collections/index.html +0 -131
  712. package/coverage/_modules/discord-bot/_models/dibo-last-mention-date.inteface.ts.html +0 -106
  713. package/coverage/_modules/discord-bot/_models/index.html +0 -116
  714. package/coverage/_modules/discord-bot/_services/dibo-commands.control-service.ts.html +0 -544
  715. package/coverage/_modules/discord-bot/_services/dibo-io.control-service.ts.html +0 -1003
  716. package/coverage/_modules/discord-bot/_services/dibo-main.control-service.ts.html +0 -1546
  717. package/coverage/_modules/discord-bot/_services/dibo-routines.control-service.ts.html +0 -376
  718. package/coverage/_modules/discord-bot/_services/index.html +0 -161
  719. package/coverage/_modules/messaging/_collections/get-messaging-routing-module.util.ts.html +0 -163
  720. package/coverage/_modules/messaging/_collections/index.html +0 -131
  721. package/coverage/_modules/messaging/_collections/msg.util.ts.html +0 -334
  722. package/coverage/_modules/messaging/_services/index.html +0 -191
  723. package/coverage/_modules/messaging/_services/msg-conversation.data-service.ts.html +0 -523
  724. package/coverage/_modules/messaging/_services/msg-events.service.ts.html +0 -886
  725. package/coverage/_modules/messaging/_services/msg-integration.control-service.ts.html +0 -622
  726. package/coverage/_modules/messaging/_services/msg-main.control-service.ts.html +0 -1738
  727. package/coverage/_modules/messaging/_services/msg-message.data-service.ts.html +0 -472
  728. package/coverage/_modules/messaging/_services/msg.controller.ts.html +0 -1195
  729. package/coverage/_modules/mock/app-extended-server.mock.ts.html +0 -688
  730. package/coverage/_modules/mock/app-params.mock.ts.html +0 -112
  731. package/coverage/_modules/mock/app-server.mock.ts.html +0 -649
  732. package/coverage/_modules/mock/auth-service.mock.ts.html +0 -169
  733. package/coverage/_modules/mock/controller.mock.ts.html +0 -133
  734. package/coverage/_modules/mock/data-model.mock.ts.html +0 -331
  735. package/coverage/_modules/mock/email-service-collection.mock.ts.html +0 -130
  736. package/coverage/_modules/mock/email-service.mock.ts.html +0 -145
  737. package/coverage/_modules/mock/endpoint.mock.ts.html +0 -358
  738. package/coverage/_modules/mock/index.html +0 -266
  739. package/coverage/_modules/mock/socket-client.mock.ts.html +0 -220
  740. package/coverage/_modules/mock/socket-server.mock.ts.html +0 -247
  741. package/coverage/_modules/oauth2/_routes/index.html +0 -116
  742. package/coverage/_modules/oauth2/_routes/oauth2.controller.ts.html +0 -379
  743. package/coverage/_modules/oauth2/_services/index.html +0 -131
  744. package/coverage/_modules/oauth2/_services/oauth2.auth-service.ts.html +0 -781
  745. package/coverage/_modules/oauth2/_services/oauth2.control-service.ts.html +0 -2044
  746. package/coverage/_modules/server/errors/errors.control-service.ts.html +0 -292
  747. package/coverage/_modules/server/errors/errors.controller.ts.html +0 -895
  748. package/coverage/_modules/server/errors/errors.data-service.ts.html +0 -1666
  749. package/coverage/_modules/server/errors/index.html +0 -146
  750. package/coverage/_modules/server/server-status/index.html +0 -161
  751. package/coverage/_modules/server/server-status/server-status-snapshot.control-service.ts.html +0 -136
  752. package/coverage/_modules/server/server-status/server-status-snapshot.data-service.ts.html +0 -196
  753. package/coverage/_modules/server/server-status/server-status.control-service.ts.html +0 -1093
  754. package/coverage/_modules/server/server-status/server-status.controller.ts.html +0 -478
  755. package/coverage/_modules/socket/_models/index.html +0 -146
  756. package/coverage/_modules/socket/_models/socket-client-service-params.control-model.ts.html +0 -151
  757. package/coverage/_modules/socket/_models/socket-presence.control-model.ts.html +0 -715
  758. package/coverage/_modules/socket/_models/socket-server-service-params.control-model.ts.html +0 -145
  759. package/coverage/_modules/socket/_services/index.html +0 -131
  760. package/coverage/_modules/socket/_services/socket-client.service.ts.html +0 -862
  761. package/coverage/_modules/socket/_services/socket-server.service.ts.html +0 -3196
  762. package/coverage/_modules/socket/app-extended.server.ts.html +0 -1954
  763. package/coverage/_modules/socket/index.html +0 -116
  764. package/coverage/_modules/test/get-test-routing-module.util.ts.html +0 -154
  765. package/coverage/_modules/test/index.html +0 -131
  766. package/coverage/_modules/test/test.controller.ts.html +0 -430
  767. package/coverage/_modules/usage/get-usage-routing-module.util.ts.html +0 -151
  768. package/coverage/_modules/usage/index.html +0 -146
  769. package/coverage/_modules/usage/usage.controller.ts.html +0 -463
  770. package/coverage/_modules/usage/usage.data-service.ts.html +0 -640
  771. package/coverage/_services/base/api.service-base.ts.html +0 -307
  772. package/coverage/_services/base/archive-data.service.ts.html +0 -727
  773. package/coverage/_services/base/data.service.ts.html +0 -7033
  774. package/coverage/_services/base/db.service.ts.html +0 -4786
  775. package/coverage/_services/base/index.html +0 -191
  776. package/coverage/_services/base/singleton.service-base.ts.html +0 -157
  777. package/coverage/_services/base/singleton.service.ts.html +0 -190
  778. package/coverage/_services/core/api.service.ts.html +0 -1900
  779. package/coverage/_services/core/auth.service.ts.html +0 -607
  780. package/coverage/_services/core/email.service.ts.html +0 -2302
  781. package/coverage/_services/core/global.service.ts.html +0 -1363
  782. package/coverage/_services/core/index.html +0 -176
  783. package/coverage/_services/core/service-collection.service.ts.html +0 -103
  784. package/coverage/_services/index.html +0 -116
  785. package/coverage/_services/route/controller.service.ts.html +0 -475
  786. package/coverage/_services/route/index.html +0 -131
  787. package/coverage/_services/route/routing-module.service.ts.html +0 -1075
  788. package/coverage/_services/server/app.server.ts.html +0 -4408
  789. package/coverage/_services/server/index.html +0 -116
  790. package/coverage/_services/shared.static-service.ts.html +0 -319
  791. package/coverage/base.css +0 -224
  792. package/coverage/block-navigation.js +0 -87
  793. package/coverage/favicon.png +0 -0
  794. package/coverage/index.html +0 -821
  795. package/coverage/lcov-report/_collections/archive.util.ts.html +0 -139
  796. package/coverage/lcov-report/_collections/get-environment-settings.util.ts.html +0 -229
  797. package/coverage/lcov-report/_collections/index.html +0 -146
  798. package/coverage/lcov-report/_collections/star.controller.ts.html +0 -472
  799. package/coverage/lcov-report/_models/control-models/api-call-params.control-model.ts.html +0 -511
  800. package/coverage/lcov-report/_models/control-models/app-ext-system-controls.control-model.ts.html +0 -112
  801. package/coverage/lcov-report/_models/control-models/app-params.control-model.ts.html +0 -475
  802. package/coverage/lcov-report/_models/control-models/app-system-controls.control-model.ts.html +0 -112
  803. package/coverage/lcov-report/_models/control-models/endpoint-params.control-model.ts.html +0 -1618
  804. package/coverage/lcov-report/_models/control-models/http-settings.control-model.ts.html +0 -172
  805. package/coverage/lcov-report/_models/control-models/index.html +0 -206
  806. package/coverage/lcov-report/_models/control-models/system-control.control-model.ts.html +0 -121
  807. package/coverage/lcov-report/_modules/ai/_models/ai-input-interfaces.ts.html +0 -436
  808. package/coverage/lcov-report/_modules/ai/_models/index.html +0 -116
  809. package/coverage/lcov-report/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.ts.html +0 -1993
  810. package/coverage/lcov-report/_modules/ai/_modules/document-ai/_collections/dai-document.util.ts.html +0 -340
  811. package/coverage/lcov-report/_modules/ai/_modules/document-ai/_collections/index.html +0 -131
  812. package/coverage/lcov-report/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-chunk.data-model.ts.html +0 -523
  813. package/coverage/lcov-report/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-page.data-model.ts.html +0 -571
  814. package/coverage/lcov-report/_modules/ai/_modules/document-ai/_models/data-models/dai-document.data-model.ts.html +0 -382
  815. package/coverage/lcov-report/_modules/ai/_modules/document-ai/_models/data-models/index.html +0 -146
  816. package/coverage/lcov-report/_modules/ai/_modules/open-ai/_collections/index.html +0 -131
  817. package/coverage/lcov-report/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests-hu.conts.ts.html +0 -331
  818. package/coverage/lcov-report/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests.conts.ts.html +0 -310
  819. package/coverage/lcov-report/_modules/ai/_modules/open-ai/_services/data-services/index.html +0 -161
  820. package/coverage/lcov-report/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-chunk-data.service.ts.html +0 -958
  821. package/coverage/lcov-report/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-page.data-service.ts.html +0 -1801
  822. package/coverage/lcov-report/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.ts.html +0 -1390
  823. package/coverage/lcov-report/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.ts.html +0 -1915
  824. package/coverage/lcov-report/_modules/ai/_modules/open-ai/_services/index.html +0 -146
  825. package/coverage/lcov-report/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.ts.html +0 -334
  826. package/coverage/lcov-report/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.ts.html +0 -1822
  827. package/coverage/lcov-report/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.ts.html +0 -2584
  828. package/coverage/lcov-report/_modules/ai/_services/ai-embedding.service-base.ts.html +0 -208
  829. package/coverage/lcov-report/_modules/ai/_services/ai-llm-chat.service-base.ts.html +0 -289
  830. package/coverage/lcov-report/_modules/ai/_services/ai-llm.service-base.ts.html +0 -1060
  831. package/coverage/lcov-report/_modules/ai/_services/ai-provider.service-base.ts.html +0 -172
  832. package/coverage/lcov-report/_modules/ai/_services/index.html +0 -161
  833. package/coverage/lcov-report/_modules/assistant/_collections/ass.util.ts.html +0 -235
  834. package/coverage/lcov-report/_modules/assistant/_collections/index.html +0 -116
  835. package/coverage/lcov-report/_modules/assistant/_services/ass-io.control-service.ts.html +0 -307
  836. package/coverage/lcov-report/_modules/assistant/_services/ass-main.control-service.ts.html +0 -406
  837. package/coverage/lcov-report/_modules/assistant/_services/index.html +0 -131
  838. package/coverage/lcov-report/_modules/bot/_modules/discord-bot/_models/dib-platform.types.ts.html +0 -112
  839. package/coverage/lcov-report/_modules/bot/_modules/discord-bot/_models/index.html +0 -116
  840. package/coverage/lcov-report/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.ts.html +0 -1978
  841. package/coverage/lcov-report/_modules/bot/_modules/discord-bot/_services/index.html +0 -116
  842. package/coverage/lcov-report/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.ts.html +0 -250
  843. package/coverage/lcov-report/_modules/bot/_modules/dynamo-bot/_collections/index.html +0 -116
  844. package/coverage/lcov-report/_modules/bot/_modules/dynamo-bot/_models/dyb-platform.types.ts.html +0 -130
  845. package/coverage/lcov-report/_modules/bot/_modules/dynamo-bot/_models/index.html +0 -116
  846. package/coverage/lcov-report/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.ts.html +0 -1414
  847. package/coverage/lcov-report/_modules/bot/_modules/dynamo-bot/_services/index.html +0 -116
  848. package/coverage/lcov-report/_modules/bot/_modules/slack-bot/_models/index.html +0 -116
  849. package/coverage/lcov-report/_modules/bot/_modules/slack-bot/_models/slb-platform.types.ts.html +0 -112
  850. package/coverage/lcov-report/_modules/bot/_modules/slack-bot/_services/index.html +0 -116
  851. package/coverage/lcov-report/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.ts.html +0 -664
  852. package/coverage/lcov-report/_modules/bot/_modules/teams-bot/_models/index.html +0 -116
  853. package/coverage/lcov-report/_modules/bot/_modules/teams-bot/_models/teb-platform.types.ts.html +0 -112
  854. package/coverage/lcov-report/_modules/bot/_modules/teams-bot/_services/index.html +0 -116
  855. package/coverage/lcov-report/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.ts.html +0 -664
  856. package/coverage/lcov-report/_modules/bot/_services/bot-commands.control-service.ts.html +0 -559
  857. package/coverage/lcov-report/_modules/bot/_services/bot-io.control-service.ts.html +0 -1072
  858. package/coverage/lcov-report/_modules/bot/_services/bot-main.control-service.ts.html +0 -1552
  859. package/coverage/lcov-report/_modules/bot/_services/bot-messaging-provider.service-base.ts.html +0 -556
  860. package/coverage/lcov-report/_modules/bot/_services/bot-routines.control-service.ts.html +0 -319
  861. package/coverage/lcov-report/_modules/bot/_services/index.html +0 -176
  862. package/coverage/lcov-report/_modules/custom-data/custom-data.controller.ts.html +0 -292
  863. package/coverage/lcov-report/_modules/custom-data/custom-data.data-service.ts.html +0 -148
  864. package/coverage/lcov-report/_modules/custom-data/get-custom-data-routing-module.util.ts.html +0 -157
  865. package/coverage/lcov-report/_modules/custom-data/index.html +0 -146
  866. package/coverage/lcov-report/_modules/defaults/_models/default-user.data-model.ts.html +0 -301
  867. package/coverage/lcov-report/_modules/defaults/_models/index.html +0 -116
  868. package/coverage/lcov-report/_modules/defaults/_services/default-auth.service.ts.html +0 -616
  869. package/coverage/lcov-report/_modules/defaults/_services/default-socket-events.service.ts.html +0 -268
  870. package/coverage/lcov-report/_modules/defaults/_services/default-user.data-service.ts.html +0 -379
  871. package/coverage/lcov-report/_modules/defaults/_services/index.html +0 -146
  872. package/coverage/lcov-report/_modules/discord-assistant/_collections/dias.util.ts.html +0 -481
  873. package/coverage/lcov-report/_modules/discord-assistant/_collections/index.html +0 -116
  874. package/coverage/lcov-report/_modules/discord-assistant/_models/dias-knowledge.data-model.ts.html +0 -241
  875. package/coverage/lcov-report/_modules/discord-assistant/_models/index.html +0 -116
  876. package/coverage/lcov-report/_modules/discord-assistant/_services/dias-chunk.data-service.ts.html +0 -616
  877. package/coverage/lcov-report/_modules/discord-assistant/_services/dias-io.control-service.ts.html +0 -292
  878. package/coverage/lcov-report/_modules/discord-assistant/_services/dias-main.control-service.ts.html +0 -166
  879. package/coverage/lcov-report/_modules/discord-assistant/_services/dias.service-base.ts.html +0 -313
  880. package/coverage/lcov-report/_modules/discord-assistant/_services/index.html +0 -161
  881. package/coverage/lcov-report/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.ts.html +0 -118
  882. package/coverage/lcov-report/_modules/discord-assistant-voiced/_services/index.html +0 -116
  883. package/coverage/lcov-report/_modules/discord-bot/_collections/dibo-global-settings.conts.ts.html +0 -250
  884. package/coverage/lcov-report/_modules/discord-bot/_collections/dibo-operations.util.ts.html +0 -1246
  885. package/coverage/lcov-report/_modules/discord-bot/_collections/index.html +0 -131
  886. package/coverage/lcov-report/_modules/discord-bot/_models/dibo-last-mention-date.inteface.ts.html +0 -106
  887. package/coverage/lcov-report/_modules/discord-bot/_models/index.html +0 -116
  888. package/coverage/lcov-report/_modules/discord-bot/_services/dibo-commands.control-service.ts.html +0 -544
  889. package/coverage/lcov-report/_modules/discord-bot/_services/dibo-io.control-service.ts.html +0 -1003
  890. package/coverage/lcov-report/_modules/discord-bot/_services/dibo-main.control-service.ts.html +0 -1546
  891. package/coverage/lcov-report/_modules/discord-bot/_services/dibo-routines.control-service.ts.html +0 -376
  892. package/coverage/lcov-report/_modules/discord-bot/_services/index.html +0 -161
  893. package/coverage/lcov-report/_modules/messaging/_collections/get-messaging-routing-module.util.ts.html +0 -163
  894. package/coverage/lcov-report/_modules/messaging/_collections/index.html +0 -131
  895. package/coverage/lcov-report/_modules/messaging/_collections/msg.util.ts.html +0 -334
  896. package/coverage/lcov-report/_modules/messaging/_services/index.html +0 -191
  897. package/coverage/lcov-report/_modules/messaging/_services/msg-conversation.data-service.ts.html +0 -523
  898. package/coverage/lcov-report/_modules/messaging/_services/msg-events.service.ts.html +0 -886
  899. package/coverage/lcov-report/_modules/messaging/_services/msg-integration.control-service.ts.html +0 -622
  900. package/coverage/lcov-report/_modules/messaging/_services/msg-main.control-service.ts.html +0 -1738
  901. package/coverage/lcov-report/_modules/messaging/_services/msg-message.data-service.ts.html +0 -472
  902. package/coverage/lcov-report/_modules/messaging/_services/msg.controller.ts.html +0 -1195
  903. package/coverage/lcov-report/_modules/mock/app-extended-server.mock.ts.html +0 -688
  904. package/coverage/lcov-report/_modules/mock/app-params.mock.ts.html +0 -112
  905. package/coverage/lcov-report/_modules/mock/app-server.mock.ts.html +0 -649
  906. package/coverage/lcov-report/_modules/mock/auth-service.mock.ts.html +0 -169
  907. package/coverage/lcov-report/_modules/mock/controller.mock.ts.html +0 -133
  908. package/coverage/lcov-report/_modules/mock/data-model.mock.ts.html +0 -331
  909. package/coverage/lcov-report/_modules/mock/email-service-collection.mock.ts.html +0 -130
  910. package/coverage/lcov-report/_modules/mock/email-service.mock.ts.html +0 -145
  911. package/coverage/lcov-report/_modules/mock/endpoint.mock.ts.html +0 -358
  912. package/coverage/lcov-report/_modules/mock/index.html +0 -266
  913. package/coverage/lcov-report/_modules/mock/socket-client.mock.ts.html +0 -220
  914. package/coverage/lcov-report/_modules/mock/socket-server.mock.ts.html +0 -247
  915. package/coverage/lcov-report/_modules/oauth2/_routes/index.html +0 -116
  916. package/coverage/lcov-report/_modules/oauth2/_routes/oauth2.controller.ts.html +0 -379
  917. package/coverage/lcov-report/_modules/oauth2/_services/index.html +0 -131
  918. package/coverage/lcov-report/_modules/oauth2/_services/oauth2.auth-service.ts.html +0 -781
  919. package/coverage/lcov-report/_modules/oauth2/_services/oauth2.control-service.ts.html +0 -2044
  920. package/coverage/lcov-report/_modules/server/errors/errors.control-service.ts.html +0 -292
  921. package/coverage/lcov-report/_modules/server/errors/errors.controller.ts.html +0 -895
  922. package/coverage/lcov-report/_modules/server/errors/errors.data-service.ts.html +0 -1666
  923. package/coverage/lcov-report/_modules/server/errors/index.html +0 -146
  924. package/coverage/lcov-report/_modules/server/server-status/index.html +0 -161
  925. package/coverage/lcov-report/_modules/server/server-status/server-status-snapshot.control-service.ts.html +0 -136
  926. package/coverage/lcov-report/_modules/server/server-status/server-status-snapshot.data-service.ts.html +0 -196
  927. package/coverage/lcov-report/_modules/server/server-status/server-status.control-service.ts.html +0 -1093
  928. package/coverage/lcov-report/_modules/server/server-status/server-status.controller.ts.html +0 -478
  929. package/coverage/lcov-report/_modules/socket/_models/index.html +0 -146
  930. package/coverage/lcov-report/_modules/socket/_models/socket-client-service-params.control-model.ts.html +0 -151
  931. package/coverage/lcov-report/_modules/socket/_models/socket-presence.control-model.ts.html +0 -715
  932. package/coverage/lcov-report/_modules/socket/_models/socket-server-service-params.control-model.ts.html +0 -145
  933. package/coverage/lcov-report/_modules/socket/_services/index.html +0 -131
  934. package/coverage/lcov-report/_modules/socket/_services/socket-client.service.ts.html +0 -862
  935. package/coverage/lcov-report/_modules/socket/_services/socket-server.service.ts.html +0 -3196
  936. package/coverage/lcov-report/_modules/socket/app-extended.server.ts.html +0 -1954
  937. package/coverage/lcov-report/_modules/socket/index.html +0 -116
  938. package/coverage/lcov-report/_modules/test/get-test-routing-module.util.ts.html +0 -154
  939. package/coverage/lcov-report/_modules/test/index.html +0 -131
  940. package/coverage/lcov-report/_modules/test/test.controller.ts.html +0 -430
  941. package/coverage/lcov-report/_modules/usage/get-usage-routing-module.util.ts.html +0 -151
  942. package/coverage/lcov-report/_modules/usage/index.html +0 -146
  943. package/coverage/lcov-report/_modules/usage/usage.controller.ts.html +0 -463
  944. package/coverage/lcov-report/_modules/usage/usage.data-service.ts.html +0 -640
  945. package/coverage/lcov-report/_services/base/api.service-base.ts.html +0 -307
  946. package/coverage/lcov-report/_services/base/archive-data.service.ts.html +0 -727
  947. package/coverage/lcov-report/_services/base/data.service.ts.html +0 -7033
  948. package/coverage/lcov-report/_services/base/db.service.ts.html +0 -4786
  949. package/coverage/lcov-report/_services/base/index.html +0 -191
  950. package/coverage/lcov-report/_services/base/singleton.service-base.ts.html +0 -157
  951. package/coverage/lcov-report/_services/base/singleton.service.ts.html +0 -190
  952. package/coverage/lcov-report/_services/core/api.service.ts.html +0 -1900
  953. package/coverage/lcov-report/_services/core/auth.service.ts.html +0 -607
  954. package/coverage/lcov-report/_services/core/email.service.ts.html +0 -2302
  955. package/coverage/lcov-report/_services/core/global.service.ts.html +0 -1363
  956. package/coverage/lcov-report/_services/core/index.html +0 -176
  957. package/coverage/lcov-report/_services/core/service-collection.service.ts.html +0 -103
  958. package/coverage/lcov-report/_services/index.html +0 -116
  959. package/coverage/lcov-report/_services/route/controller.service.ts.html +0 -475
  960. package/coverage/lcov-report/_services/route/index.html +0 -131
  961. package/coverage/lcov-report/_services/route/routing-module.service.ts.html +0 -1075
  962. package/coverage/lcov-report/_services/server/app.server.ts.html +0 -4408
  963. package/coverage/lcov-report/_services/server/index.html +0 -116
  964. package/coverage/lcov-report/_services/shared.static-service.ts.html +0 -319
  965. package/coverage/lcov-report/base.css +0 -224
  966. package/coverage/lcov-report/block-navigation.js +0 -87
  967. package/coverage/lcov-report/favicon.png +0 -0
  968. package/coverage/lcov-report/index.html +0 -821
  969. package/coverage/lcov-report/prettify.css +0 -1
  970. package/coverage/lcov-report/prettify.js +0 -2
  971. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  972. package/coverage/lcov-report/sorter.js +0 -210
  973. package/coverage/lcov.info +0 -29957
  974. package/coverage/prettify.css +0 -1
  975. package/coverage/prettify.js +0 -2
  976. package/coverage/sort-arrow-sprite.png +0 -0
  977. package/coverage/sorter.js +0 -210
  978. package/coverage/tmp/coverage-111712-1762988673351-0.json +0 -1
  979. package/coverage/tmp/coverage-112308-1762988673527-0.json +0 -1
  980. package/coverage/tmp/coverage-112324-1762988615026-0.json +0 -1
  981. package/coverage/tmp/coverage-112436-1762988615438-0.json +0 -1
  982. package/coverage/tmp/coverage-112512-1762988673477-0.json +0 -1
  983. package/logs/cicd-job.json +0 -3
  984. package/logs/cicd-output.log +0 -31
  985. package/logs/cicd-report.json +0 -148
  986. package/logs/cicd-status.json +0 -70
@@ -1,3196 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for _modules/socket/_services/socket-server.service.ts</title>
7
- <meta charset="utf-8" />
8
- <link rel="stylesheet" href="../../../prettify.css" />
9
- <link rel="stylesheet" href="../../../base.css" />
10
- <link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
11
- <meta name="viewport" content="width=device-width, initial-scale=1" />
12
- <style type='text/css'>
13
- .coverage-summary .sorter {
14
- background-image: url(../../../sort-arrow-sprite.png);
15
- }
16
- </style>
17
- </head>
18
-
19
- <body>
20
- <div class='wrapper'>
21
- <div class='pad1'>
22
- <h1><a href="../../../index.html">All files</a> / <a href="index.html">_modules/socket/_services</a> socket-server.service.ts</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">30.56% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>317/1037</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">55.17% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>16/29</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">36% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>9/25</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">30.56% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>317/1037</span>
50
- </div>
51
-
52
-
53
- </div>
54
- <p class="quiet">
55
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
- </p>
57
- <template id="filterTemplate">
58
- <div class="quiet">
59
- Filter:
60
- <input type="search" id="fileSearch">
61
- </div>
62
- </template>
63
- </div>
64
- <div class='status-line low'></div>
65
- <pre><table class="coverage">
66
- <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
- <a name='L2'></a><a href='#L2'>2</a>
68
- <a name='L3'></a><a href='#L3'>3</a>
69
- <a name='L4'></a><a href='#L4'>4</a>
70
- <a name='L5'></a><a href='#L5'>5</a>
71
- <a name='L6'></a><a href='#L6'>6</a>
72
- <a name='L7'></a><a href='#L7'>7</a>
73
- <a name='L8'></a><a href='#L8'>8</a>
74
- <a name='L9'></a><a href='#L9'>9</a>
75
- <a name='L10'></a><a href='#L10'>10</a>
76
- <a name='L11'></a><a href='#L11'>11</a>
77
- <a name='L12'></a><a href='#L12'>12</a>
78
- <a name='L13'></a><a href='#L13'>13</a>
79
- <a name='L14'></a><a href='#L14'>14</a>
80
- <a name='L15'></a><a href='#L15'>15</a>
81
- <a name='L16'></a><a href='#L16'>16</a>
82
- <a name='L17'></a><a href='#L17'>17</a>
83
- <a name='L18'></a><a href='#L18'>18</a>
84
- <a name='L19'></a><a href='#L19'>19</a>
85
- <a name='L20'></a><a href='#L20'>20</a>
86
- <a name='L21'></a><a href='#L21'>21</a>
87
- <a name='L22'></a><a href='#L22'>22</a>
88
- <a name='L23'></a><a href='#L23'>23</a>
89
- <a name='L24'></a><a href='#L24'>24</a>
90
- <a name='L25'></a><a href='#L25'>25</a>
91
- <a name='L26'></a><a href='#L26'>26</a>
92
- <a name='L27'></a><a href='#L27'>27</a>
93
- <a name='L28'></a><a href='#L28'>28</a>
94
- <a name='L29'></a><a href='#L29'>29</a>
95
- <a name='L30'></a><a href='#L30'>30</a>
96
- <a name='L31'></a><a href='#L31'>31</a>
97
- <a name='L32'></a><a href='#L32'>32</a>
98
- <a name='L33'></a><a href='#L33'>33</a>
99
- <a name='L34'></a><a href='#L34'>34</a>
100
- <a name='L35'></a><a href='#L35'>35</a>
101
- <a name='L36'></a><a href='#L36'>36</a>
102
- <a name='L37'></a><a href='#L37'>37</a>
103
- <a name='L38'></a><a href='#L38'>38</a>
104
- <a name='L39'></a><a href='#L39'>39</a>
105
- <a name='L40'></a><a href='#L40'>40</a>
106
- <a name='L41'></a><a href='#L41'>41</a>
107
- <a name='L42'></a><a href='#L42'>42</a>
108
- <a name='L43'></a><a href='#L43'>43</a>
109
- <a name='L44'></a><a href='#L44'>44</a>
110
- <a name='L45'></a><a href='#L45'>45</a>
111
- <a name='L46'></a><a href='#L46'>46</a>
112
- <a name='L47'></a><a href='#L47'>47</a>
113
- <a name='L48'></a><a href='#L48'>48</a>
114
- <a name='L49'></a><a href='#L49'>49</a>
115
- <a name='L50'></a><a href='#L50'>50</a>
116
- <a name='L51'></a><a href='#L51'>51</a>
117
- <a name='L52'></a><a href='#L52'>52</a>
118
- <a name='L53'></a><a href='#L53'>53</a>
119
- <a name='L54'></a><a href='#L54'>54</a>
120
- <a name='L55'></a><a href='#L55'>55</a>
121
- <a name='L56'></a><a href='#L56'>56</a>
122
- <a name='L57'></a><a href='#L57'>57</a>
123
- <a name='L58'></a><a href='#L58'>58</a>
124
- <a name='L59'></a><a href='#L59'>59</a>
125
- <a name='L60'></a><a href='#L60'>60</a>
126
- <a name='L61'></a><a href='#L61'>61</a>
127
- <a name='L62'></a><a href='#L62'>62</a>
128
- <a name='L63'></a><a href='#L63'>63</a>
129
- <a name='L64'></a><a href='#L64'>64</a>
130
- <a name='L65'></a><a href='#L65'>65</a>
131
- <a name='L66'></a><a href='#L66'>66</a>
132
- <a name='L67'></a><a href='#L67'>67</a>
133
- <a name='L68'></a><a href='#L68'>68</a>
134
- <a name='L69'></a><a href='#L69'>69</a>
135
- <a name='L70'></a><a href='#L70'>70</a>
136
- <a name='L71'></a><a href='#L71'>71</a>
137
- <a name='L72'></a><a href='#L72'>72</a>
138
- <a name='L73'></a><a href='#L73'>73</a>
139
- <a name='L74'></a><a href='#L74'>74</a>
140
- <a name='L75'></a><a href='#L75'>75</a>
141
- <a name='L76'></a><a href='#L76'>76</a>
142
- <a name='L77'></a><a href='#L77'>77</a>
143
- <a name='L78'></a><a href='#L78'>78</a>
144
- <a name='L79'></a><a href='#L79'>79</a>
145
- <a name='L80'></a><a href='#L80'>80</a>
146
- <a name='L81'></a><a href='#L81'>81</a>
147
- <a name='L82'></a><a href='#L82'>82</a>
148
- <a name='L83'></a><a href='#L83'>83</a>
149
- <a name='L84'></a><a href='#L84'>84</a>
150
- <a name='L85'></a><a href='#L85'>85</a>
151
- <a name='L86'></a><a href='#L86'>86</a>
152
- <a name='L87'></a><a href='#L87'>87</a>
153
- <a name='L88'></a><a href='#L88'>88</a>
154
- <a name='L89'></a><a href='#L89'>89</a>
155
- <a name='L90'></a><a href='#L90'>90</a>
156
- <a name='L91'></a><a href='#L91'>91</a>
157
- <a name='L92'></a><a href='#L92'>92</a>
158
- <a name='L93'></a><a href='#L93'>93</a>
159
- <a name='L94'></a><a href='#L94'>94</a>
160
- <a name='L95'></a><a href='#L95'>95</a>
161
- <a name='L96'></a><a href='#L96'>96</a>
162
- <a name='L97'></a><a href='#L97'>97</a>
163
- <a name='L98'></a><a href='#L98'>98</a>
164
- <a name='L99'></a><a href='#L99'>99</a>
165
- <a name='L100'></a><a href='#L100'>100</a>
166
- <a name='L101'></a><a href='#L101'>101</a>
167
- <a name='L102'></a><a href='#L102'>102</a>
168
- <a name='L103'></a><a href='#L103'>103</a>
169
- <a name='L104'></a><a href='#L104'>104</a>
170
- <a name='L105'></a><a href='#L105'>105</a>
171
- <a name='L106'></a><a href='#L106'>106</a>
172
- <a name='L107'></a><a href='#L107'>107</a>
173
- <a name='L108'></a><a href='#L108'>108</a>
174
- <a name='L109'></a><a href='#L109'>109</a>
175
- <a name='L110'></a><a href='#L110'>110</a>
176
- <a name='L111'></a><a href='#L111'>111</a>
177
- <a name='L112'></a><a href='#L112'>112</a>
178
- <a name='L113'></a><a href='#L113'>113</a>
179
- <a name='L114'></a><a href='#L114'>114</a>
180
- <a name='L115'></a><a href='#L115'>115</a>
181
- <a name='L116'></a><a href='#L116'>116</a>
182
- <a name='L117'></a><a href='#L117'>117</a>
183
- <a name='L118'></a><a href='#L118'>118</a>
184
- <a name='L119'></a><a href='#L119'>119</a>
185
- <a name='L120'></a><a href='#L120'>120</a>
186
- <a name='L121'></a><a href='#L121'>121</a>
187
- <a name='L122'></a><a href='#L122'>122</a>
188
- <a name='L123'></a><a href='#L123'>123</a>
189
- <a name='L124'></a><a href='#L124'>124</a>
190
- <a name='L125'></a><a href='#L125'>125</a>
191
- <a name='L126'></a><a href='#L126'>126</a>
192
- <a name='L127'></a><a href='#L127'>127</a>
193
- <a name='L128'></a><a href='#L128'>128</a>
194
- <a name='L129'></a><a href='#L129'>129</a>
195
- <a name='L130'></a><a href='#L130'>130</a>
196
- <a name='L131'></a><a href='#L131'>131</a>
197
- <a name='L132'></a><a href='#L132'>132</a>
198
- <a name='L133'></a><a href='#L133'>133</a>
199
- <a name='L134'></a><a href='#L134'>134</a>
200
- <a name='L135'></a><a href='#L135'>135</a>
201
- <a name='L136'></a><a href='#L136'>136</a>
202
- <a name='L137'></a><a href='#L137'>137</a>
203
- <a name='L138'></a><a href='#L138'>138</a>
204
- <a name='L139'></a><a href='#L139'>139</a>
205
- <a name='L140'></a><a href='#L140'>140</a>
206
- <a name='L141'></a><a href='#L141'>141</a>
207
- <a name='L142'></a><a href='#L142'>142</a>
208
- <a name='L143'></a><a href='#L143'>143</a>
209
- <a name='L144'></a><a href='#L144'>144</a>
210
- <a name='L145'></a><a href='#L145'>145</a>
211
- <a name='L146'></a><a href='#L146'>146</a>
212
- <a name='L147'></a><a href='#L147'>147</a>
213
- <a name='L148'></a><a href='#L148'>148</a>
214
- <a name='L149'></a><a href='#L149'>149</a>
215
- <a name='L150'></a><a href='#L150'>150</a>
216
- <a name='L151'></a><a href='#L151'>151</a>
217
- <a name='L152'></a><a href='#L152'>152</a>
218
- <a name='L153'></a><a href='#L153'>153</a>
219
- <a name='L154'></a><a href='#L154'>154</a>
220
- <a name='L155'></a><a href='#L155'>155</a>
221
- <a name='L156'></a><a href='#L156'>156</a>
222
- <a name='L157'></a><a href='#L157'>157</a>
223
- <a name='L158'></a><a href='#L158'>158</a>
224
- <a name='L159'></a><a href='#L159'>159</a>
225
- <a name='L160'></a><a href='#L160'>160</a>
226
- <a name='L161'></a><a href='#L161'>161</a>
227
- <a name='L162'></a><a href='#L162'>162</a>
228
- <a name='L163'></a><a href='#L163'>163</a>
229
- <a name='L164'></a><a href='#L164'>164</a>
230
- <a name='L165'></a><a href='#L165'>165</a>
231
- <a name='L166'></a><a href='#L166'>166</a>
232
- <a name='L167'></a><a href='#L167'>167</a>
233
- <a name='L168'></a><a href='#L168'>168</a>
234
- <a name='L169'></a><a href='#L169'>169</a>
235
- <a name='L170'></a><a href='#L170'>170</a>
236
- <a name='L171'></a><a href='#L171'>171</a>
237
- <a name='L172'></a><a href='#L172'>172</a>
238
- <a name='L173'></a><a href='#L173'>173</a>
239
- <a name='L174'></a><a href='#L174'>174</a>
240
- <a name='L175'></a><a href='#L175'>175</a>
241
- <a name='L176'></a><a href='#L176'>176</a>
242
- <a name='L177'></a><a href='#L177'>177</a>
243
- <a name='L178'></a><a href='#L178'>178</a>
244
- <a name='L179'></a><a href='#L179'>179</a>
245
- <a name='L180'></a><a href='#L180'>180</a>
246
- <a name='L181'></a><a href='#L181'>181</a>
247
- <a name='L182'></a><a href='#L182'>182</a>
248
- <a name='L183'></a><a href='#L183'>183</a>
249
- <a name='L184'></a><a href='#L184'>184</a>
250
- <a name='L185'></a><a href='#L185'>185</a>
251
- <a name='L186'></a><a href='#L186'>186</a>
252
- <a name='L187'></a><a href='#L187'>187</a>
253
- <a name='L188'></a><a href='#L188'>188</a>
254
- <a name='L189'></a><a href='#L189'>189</a>
255
- <a name='L190'></a><a href='#L190'>190</a>
256
- <a name='L191'></a><a href='#L191'>191</a>
257
- <a name='L192'></a><a href='#L192'>192</a>
258
- <a name='L193'></a><a href='#L193'>193</a>
259
- <a name='L194'></a><a href='#L194'>194</a>
260
- <a name='L195'></a><a href='#L195'>195</a>
261
- <a name='L196'></a><a href='#L196'>196</a>
262
- <a name='L197'></a><a href='#L197'>197</a>
263
- <a name='L198'></a><a href='#L198'>198</a>
264
- <a name='L199'></a><a href='#L199'>199</a>
265
- <a name='L200'></a><a href='#L200'>200</a>
266
- <a name='L201'></a><a href='#L201'>201</a>
267
- <a name='L202'></a><a href='#L202'>202</a>
268
- <a name='L203'></a><a href='#L203'>203</a>
269
- <a name='L204'></a><a href='#L204'>204</a>
270
- <a name='L205'></a><a href='#L205'>205</a>
271
- <a name='L206'></a><a href='#L206'>206</a>
272
- <a name='L207'></a><a href='#L207'>207</a>
273
- <a name='L208'></a><a href='#L208'>208</a>
274
- <a name='L209'></a><a href='#L209'>209</a>
275
- <a name='L210'></a><a href='#L210'>210</a>
276
- <a name='L211'></a><a href='#L211'>211</a>
277
- <a name='L212'></a><a href='#L212'>212</a>
278
- <a name='L213'></a><a href='#L213'>213</a>
279
- <a name='L214'></a><a href='#L214'>214</a>
280
- <a name='L215'></a><a href='#L215'>215</a>
281
- <a name='L216'></a><a href='#L216'>216</a>
282
- <a name='L217'></a><a href='#L217'>217</a>
283
- <a name='L218'></a><a href='#L218'>218</a>
284
- <a name='L219'></a><a href='#L219'>219</a>
285
- <a name='L220'></a><a href='#L220'>220</a>
286
- <a name='L221'></a><a href='#L221'>221</a>
287
- <a name='L222'></a><a href='#L222'>222</a>
288
- <a name='L223'></a><a href='#L223'>223</a>
289
- <a name='L224'></a><a href='#L224'>224</a>
290
- <a name='L225'></a><a href='#L225'>225</a>
291
- <a name='L226'></a><a href='#L226'>226</a>
292
- <a name='L227'></a><a href='#L227'>227</a>
293
- <a name='L228'></a><a href='#L228'>228</a>
294
- <a name='L229'></a><a href='#L229'>229</a>
295
- <a name='L230'></a><a href='#L230'>230</a>
296
- <a name='L231'></a><a href='#L231'>231</a>
297
- <a name='L232'></a><a href='#L232'>232</a>
298
- <a name='L233'></a><a href='#L233'>233</a>
299
- <a name='L234'></a><a href='#L234'>234</a>
300
- <a name='L235'></a><a href='#L235'>235</a>
301
- <a name='L236'></a><a href='#L236'>236</a>
302
- <a name='L237'></a><a href='#L237'>237</a>
303
- <a name='L238'></a><a href='#L238'>238</a>
304
- <a name='L239'></a><a href='#L239'>239</a>
305
- <a name='L240'></a><a href='#L240'>240</a>
306
- <a name='L241'></a><a href='#L241'>241</a>
307
- <a name='L242'></a><a href='#L242'>242</a>
308
- <a name='L243'></a><a href='#L243'>243</a>
309
- <a name='L244'></a><a href='#L244'>244</a>
310
- <a name='L245'></a><a href='#L245'>245</a>
311
- <a name='L246'></a><a href='#L246'>246</a>
312
- <a name='L247'></a><a href='#L247'>247</a>
313
- <a name='L248'></a><a href='#L248'>248</a>
314
- <a name='L249'></a><a href='#L249'>249</a>
315
- <a name='L250'></a><a href='#L250'>250</a>
316
- <a name='L251'></a><a href='#L251'>251</a>
317
- <a name='L252'></a><a href='#L252'>252</a>
318
- <a name='L253'></a><a href='#L253'>253</a>
319
- <a name='L254'></a><a href='#L254'>254</a>
320
- <a name='L255'></a><a href='#L255'>255</a>
321
- <a name='L256'></a><a href='#L256'>256</a>
322
- <a name='L257'></a><a href='#L257'>257</a>
323
- <a name='L258'></a><a href='#L258'>258</a>
324
- <a name='L259'></a><a href='#L259'>259</a>
325
- <a name='L260'></a><a href='#L260'>260</a>
326
- <a name='L261'></a><a href='#L261'>261</a>
327
- <a name='L262'></a><a href='#L262'>262</a>
328
- <a name='L263'></a><a href='#L263'>263</a>
329
- <a name='L264'></a><a href='#L264'>264</a>
330
- <a name='L265'></a><a href='#L265'>265</a>
331
- <a name='L266'></a><a href='#L266'>266</a>
332
- <a name='L267'></a><a href='#L267'>267</a>
333
- <a name='L268'></a><a href='#L268'>268</a>
334
- <a name='L269'></a><a href='#L269'>269</a>
335
- <a name='L270'></a><a href='#L270'>270</a>
336
- <a name='L271'></a><a href='#L271'>271</a>
337
- <a name='L272'></a><a href='#L272'>272</a>
338
- <a name='L273'></a><a href='#L273'>273</a>
339
- <a name='L274'></a><a href='#L274'>274</a>
340
- <a name='L275'></a><a href='#L275'>275</a>
341
- <a name='L276'></a><a href='#L276'>276</a>
342
- <a name='L277'></a><a href='#L277'>277</a>
343
- <a name='L278'></a><a href='#L278'>278</a>
344
- <a name='L279'></a><a href='#L279'>279</a>
345
- <a name='L280'></a><a href='#L280'>280</a>
346
- <a name='L281'></a><a href='#L281'>281</a>
347
- <a name='L282'></a><a href='#L282'>282</a>
348
- <a name='L283'></a><a href='#L283'>283</a>
349
- <a name='L284'></a><a href='#L284'>284</a>
350
- <a name='L285'></a><a href='#L285'>285</a>
351
- <a name='L286'></a><a href='#L286'>286</a>
352
- <a name='L287'></a><a href='#L287'>287</a>
353
- <a name='L288'></a><a href='#L288'>288</a>
354
- <a name='L289'></a><a href='#L289'>289</a>
355
- <a name='L290'></a><a href='#L290'>290</a>
356
- <a name='L291'></a><a href='#L291'>291</a>
357
- <a name='L292'></a><a href='#L292'>292</a>
358
- <a name='L293'></a><a href='#L293'>293</a>
359
- <a name='L294'></a><a href='#L294'>294</a>
360
- <a name='L295'></a><a href='#L295'>295</a>
361
- <a name='L296'></a><a href='#L296'>296</a>
362
- <a name='L297'></a><a href='#L297'>297</a>
363
- <a name='L298'></a><a href='#L298'>298</a>
364
- <a name='L299'></a><a href='#L299'>299</a>
365
- <a name='L300'></a><a href='#L300'>300</a>
366
- <a name='L301'></a><a href='#L301'>301</a>
367
- <a name='L302'></a><a href='#L302'>302</a>
368
- <a name='L303'></a><a href='#L303'>303</a>
369
- <a name='L304'></a><a href='#L304'>304</a>
370
- <a name='L305'></a><a href='#L305'>305</a>
371
- <a name='L306'></a><a href='#L306'>306</a>
372
- <a name='L307'></a><a href='#L307'>307</a>
373
- <a name='L308'></a><a href='#L308'>308</a>
374
- <a name='L309'></a><a href='#L309'>309</a>
375
- <a name='L310'></a><a href='#L310'>310</a>
376
- <a name='L311'></a><a href='#L311'>311</a>
377
- <a name='L312'></a><a href='#L312'>312</a>
378
- <a name='L313'></a><a href='#L313'>313</a>
379
- <a name='L314'></a><a href='#L314'>314</a>
380
- <a name='L315'></a><a href='#L315'>315</a>
381
- <a name='L316'></a><a href='#L316'>316</a>
382
- <a name='L317'></a><a href='#L317'>317</a>
383
- <a name='L318'></a><a href='#L318'>318</a>
384
- <a name='L319'></a><a href='#L319'>319</a>
385
- <a name='L320'></a><a href='#L320'>320</a>
386
- <a name='L321'></a><a href='#L321'>321</a>
387
- <a name='L322'></a><a href='#L322'>322</a>
388
- <a name='L323'></a><a href='#L323'>323</a>
389
- <a name='L324'></a><a href='#L324'>324</a>
390
- <a name='L325'></a><a href='#L325'>325</a>
391
- <a name='L326'></a><a href='#L326'>326</a>
392
- <a name='L327'></a><a href='#L327'>327</a>
393
- <a name='L328'></a><a href='#L328'>328</a>
394
- <a name='L329'></a><a href='#L329'>329</a>
395
- <a name='L330'></a><a href='#L330'>330</a>
396
- <a name='L331'></a><a href='#L331'>331</a>
397
- <a name='L332'></a><a href='#L332'>332</a>
398
- <a name='L333'></a><a href='#L333'>333</a>
399
- <a name='L334'></a><a href='#L334'>334</a>
400
- <a name='L335'></a><a href='#L335'>335</a>
401
- <a name='L336'></a><a href='#L336'>336</a>
402
- <a name='L337'></a><a href='#L337'>337</a>
403
- <a name='L338'></a><a href='#L338'>338</a>
404
- <a name='L339'></a><a href='#L339'>339</a>
405
- <a name='L340'></a><a href='#L340'>340</a>
406
- <a name='L341'></a><a href='#L341'>341</a>
407
- <a name='L342'></a><a href='#L342'>342</a>
408
- <a name='L343'></a><a href='#L343'>343</a>
409
- <a name='L344'></a><a href='#L344'>344</a>
410
- <a name='L345'></a><a href='#L345'>345</a>
411
- <a name='L346'></a><a href='#L346'>346</a>
412
- <a name='L347'></a><a href='#L347'>347</a>
413
- <a name='L348'></a><a href='#L348'>348</a>
414
- <a name='L349'></a><a href='#L349'>349</a>
415
- <a name='L350'></a><a href='#L350'>350</a>
416
- <a name='L351'></a><a href='#L351'>351</a>
417
- <a name='L352'></a><a href='#L352'>352</a>
418
- <a name='L353'></a><a href='#L353'>353</a>
419
- <a name='L354'></a><a href='#L354'>354</a>
420
- <a name='L355'></a><a href='#L355'>355</a>
421
- <a name='L356'></a><a href='#L356'>356</a>
422
- <a name='L357'></a><a href='#L357'>357</a>
423
- <a name='L358'></a><a href='#L358'>358</a>
424
- <a name='L359'></a><a href='#L359'>359</a>
425
- <a name='L360'></a><a href='#L360'>360</a>
426
- <a name='L361'></a><a href='#L361'>361</a>
427
- <a name='L362'></a><a href='#L362'>362</a>
428
- <a name='L363'></a><a href='#L363'>363</a>
429
- <a name='L364'></a><a href='#L364'>364</a>
430
- <a name='L365'></a><a href='#L365'>365</a>
431
- <a name='L366'></a><a href='#L366'>366</a>
432
- <a name='L367'></a><a href='#L367'>367</a>
433
- <a name='L368'></a><a href='#L368'>368</a>
434
- <a name='L369'></a><a href='#L369'>369</a>
435
- <a name='L370'></a><a href='#L370'>370</a>
436
- <a name='L371'></a><a href='#L371'>371</a>
437
- <a name='L372'></a><a href='#L372'>372</a>
438
- <a name='L373'></a><a href='#L373'>373</a>
439
- <a name='L374'></a><a href='#L374'>374</a>
440
- <a name='L375'></a><a href='#L375'>375</a>
441
- <a name='L376'></a><a href='#L376'>376</a>
442
- <a name='L377'></a><a href='#L377'>377</a>
443
- <a name='L378'></a><a href='#L378'>378</a>
444
- <a name='L379'></a><a href='#L379'>379</a>
445
- <a name='L380'></a><a href='#L380'>380</a>
446
- <a name='L381'></a><a href='#L381'>381</a>
447
- <a name='L382'></a><a href='#L382'>382</a>
448
- <a name='L383'></a><a href='#L383'>383</a>
449
- <a name='L384'></a><a href='#L384'>384</a>
450
- <a name='L385'></a><a href='#L385'>385</a>
451
- <a name='L386'></a><a href='#L386'>386</a>
452
- <a name='L387'></a><a href='#L387'>387</a>
453
- <a name='L388'></a><a href='#L388'>388</a>
454
- <a name='L389'></a><a href='#L389'>389</a>
455
- <a name='L390'></a><a href='#L390'>390</a>
456
- <a name='L391'></a><a href='#L391'>391</a>
457
- <a name='L392'></a><a href='#L392'>392</a>
458
- <a name='L393'></a><a href='#L393'>393</a>
459
- <a name='L394'></a><a href='#L394'>394</a>
460
- <a name='L395'></a><a href='#L395'>395</a>
461
- <a name='L396'></a><a href='#L396'>396</a>
462
- <a name='L397'></a><a href='#L397'>397</a>
463
- <a name='L398'></a><a href='#L398'>398</a>
464
- <a name='L399'></a><a href='#L399'>399</a>
465
- <a name='L400'></a><a href='#L400'>400</a>
466
- <a name='L401'></a><a href='#L401'>401</a>
467
- <a name='L402'></a><a href='#L402'>402</a>
468
- <a name='L403'></a><a href='#L403'>403</a>
469
- <a name='L404'></a><a href='#L404'>404</a>
470
- <a name='L405'></a><a href='#L405'>405</a>
471
- <a name='L406'></a><a href='#L406'>406</a>
472
- <a name='L407'></a><a href='#L407'>407</a>
473
- <a name='L408'></a><a href='#L408'>408</a>
474
- <a name='L409'></a><a href='#L409'>409</a>
475
- <a name='L410'></a><a href='#L410'>410</a>
476
- <a name='L411'></a><a href='#L411'>411</a>
477
- <a name='L412'></a><a href='#L412'>412</a>
478
- <a name='L413'></a><a href='#L413'>413</a>
479
- <a name='L414'></a><a href='#L414'>414</a>
480
- <a name='L415'></a><a href='#L415'>415</a>
481
- <a name='L416'></a><a href='#L416'>416</a>
482
- <a name='L417'></a><a href='#L417'>417</a>
483
- <a name='L418'></a><a href='#L418'>418</a>
484
- <a name='L419'></a><a href='#L419'>419</a>
485
- <a name='L420'></a><a href='#L420'>420</a>
486
- <a name='L421'></a><a href='#L421'>421</a>
487
- <a name='L422'></a><a href='#L422'>422</a>
488
- <a name='L423'></a><a href='#L423'>423</a>
489
- <a name='L424'></a><a href='#L424'>424</a>
490
- <a name='L425'></a><a href='#L425'>425</a>
491
- <a name='L426'></a><a href='#L426'>426</a>
492
- <a name='L427'></a><a href='#L427'>427</a>
493
- <a name='L428'></a><a href='#L428'>428</a>
494
- <a name='L429'></a><a href='#L429'>429</a>
495
- <a name='L430'></a><a href='#L430'>430</a>
496
- <a name='L431'></a><a href='#L431'>431</a>
497
- <a name='L432'></a><a href='#L432'>432</a>
498
- <a name='L433'></a><a href='#L433'>433</a>
499
- <a name='L434'></a><a href='#L434'>434</a>
500
- <a name='L435'></a><a href='#L435'>435</a>
501
- <a name='L436'></a><a href='#L436'>436</a>
502
- <a name='L437'></a><a href='#L437'>437</a>
503
- <a name='L438'></a><a href='#L438'>438</a>
504
- <a name='L439'></a><a href='#L439'>439</a>
505
- <a name='L440'></a><a href='#L440'>440</a>
506
- <a name='L441'></a><a href='#L441'>441</a>
507
- <a name='L442'></a><a href='#L442'>442</a>
508
- <a name='L443'></a><a href='#L443'>443</a>
509
- <a name='L444'></a><a href='#L444'>444</a>
510
- <a name='L445'></a><a href='#L445'>445</a>
511
- <a name='L446'></a><a href='#L446'>446</a>
512
- <a name='L447'></a><a href='#L447'>447</a>
513
- <a name='L448'></a><a href='#L448'>448</a>
514
- <a name='L449'></a><a href='#L449'>449</a>
515
- <a name='L450'></a><a href='#L450'>450</a>
516
- <a name='L451'></a><a href='#L451'>451</a>
517
- <a name='L452'></a><a href='#L452'>452</a>
518
- <a name='L453'></a><a href='#L453'>453</a>
519
- <a name='L454'></a><a href='#L454'>454</a>
520
- <a name='L455'></a><a href='#L455'>455</a>
521
- <a name='L456'></a><a href='#L456'>456</a>
522
- <a name='L457'></a><a href='#L457'>457</a>
523
- <a name='L458'></a><a href='#L458'>458</a>
524
- <a name='L459'></a><a href='#L459'>459</a>
525
- <a name='L460'></a><a href='#L460'>460</a>
526
- <a name='L461'></a><a href='#L461'>461</a>
527
- <a name='L462'></a><a href='#L462'>462</a>
528
- <a name='L463'></a><a href='#L463'>463</a>
529
- <a name='L464'></a><a href='#L464'>464</a>
530
- <a name='L465'></a><a href='#L465'>465</a>
531
- <a name='L466'></a><a href='#L466'>466</a>
532
- <a name='L467'></a><a href='#L467'>467</a>
533
- <a name='L468'></a><a href='#L468'>468</a>
534
- <a name='L469'></a><a href='#L469'>469</a>
535
- <a name='L470'></a><a href='#L470'>470</a>
536
- <a name='L471'></a><a href='#L471'>471</a>
537
- <a name='L472'></a><a href='#L472'>472</a>
538
- <a name='L473'></a><a href='#L473'>473</a>
539
- <a name='L474'></a><a href='#L474'>474</a>
540
- <a name='L475'></a><a href='#L475'>475</a>
541
- <a name='L476'></a><a href='#L476'>476</a>
542
- <a name='L477'></a><a href='#L477'>477</a>
543
- <a name='L478'></a><a href='#L478'>478</a>
544
- <a name='L479'></a><a href='#L479'>479</a>
545
- <a name='L480'></a><a href='#L480'>480</a>
546
- <a name='L481'></a><a href='#L481'>481</a>
547
- <a name='L482'></a><a href='#L482'>482</a>
548
- <a name='L483'></a><a href='#L483'>483</a>
549
- <a name='L484'></a><a href='#L484'>484</a>
550
- <a name='L485'></a><a href='#L485'>485</a>
551
- <a name='L486'></a><a href='#L486'>486</a>
552
- <a name='L487'></a><a href='#L487'>487</a>
553
- <a name='L488'></a><a href='#L488'>488</a>
554
- <a name='L489'></a><a href='#L489'>489</a>
555
- <a name='L490'></a><a href='#L490'>490</a>
556
- <a name='L491'></a><a href='#L491'>491</a>
557
- <a name='L492'></a><a href='#L492'>492</a>
558
- <a name='L493'></a><a href='#L493'>493</a>
559
- <a name='L494'></a><a href='#L494'>494</a>
560
- <a name='L495'></a><a href='#L495'>495</a>
561
- <a name='L496'></a><a href='#L496'>496</a>
562
- <a name='L497'></a><a href='#L497'>497</a>
563
- <a name='L498'></a><a href='#L498'>498</a>
564
- <a name='L499'></a><a href='#L499'>499</a>
565
- <a name='L500'></a><a href='#L500'>500</a>
566
- <a name='L501'></a><a href='#L501'>501</a>
567
- <a name='L502'></a><a href='#L502'>502</a>
568
- <a name='L503'></a><a href='#L503'>503</a>
569
- <a name='L504'></a><a href='#L504'>504</a>
570
- <a name='L505'></a><a href='#L505'>505</a>
571
- <a name='L506'></a><a href='#L506'>506</a>
572
- <a name='L507'></a><a href='#L507'>507</a>
573
- <a name='L508'></a><a href='#L508'>508</a>
574
- <a name='L509'></a><a href='#L509'>509</a>
575
- <a name='L510'></a><a href='#L510'>510</a>
576
- <a name='L511'></a><a href='#L511'>511</a>
577
- <a name='L512'></a><a href='#L512'>512</a>
578
- <a name='L513'></a><a href='#L513'>513</a>
579
- <a name='L514'></a><a href='#L514'>514</a>
580
- <a name='L515'></a><a href='#L515'>515</a>
581
- <a name='L516'></a><a href='#L516'>516</a>
582
- <a name='L517'></a><a href='#L517'>517</a>
583
- <a name='L518'></a><a href='#L518'>518</a>
584
- <a name='L519'></a><a href='#L519'>519</a>
585
- <a name='L520'></a><a href='#L520'>520</a>
586
- <a name='L521'></a><a href='#L521'>521</a>
587
- <a name='L522'></a><a href='#L522'>522</a>
588
- <a name='L523'></a><a href='#L523'>523</a>
589
- <a name='L524'></a><a href='#L524'>524</a>
590
- <a name='L525'></a><a href='#L525'>525</a>
591
- <a name='L526'></a><a href='#L526'>526</a>
592
- <a name='L527'></a><a href='#L527'>527</a>
593
- <a name='L528'></a><a href='#L528'>528</a>
594
- <a name='L529'></a><a href='#L529'>529</a>
595
- <a name='L530'></a><a href='#L530'>530</a>
596
- <a name='L531'></a><a href='#L531'>531</a>
597
- <a name='L532'></a><a href='#L532'>532</a>
598
- <a name='L533'></a><a href='#L533'>533</a>
599
- <a name='L534'></a><a href='#L534'>534</a>
600
- <a name='L535'></a><a href='#L535'>535</a>
601
- <a name='L536'></a><a href='#L536'>536</a>
602
- <a name='L537'></a><a href='#L537'>537</a>
603
- <a name='L538'></a><a href='#L538'>538</a>
604
- <a name='L539'></a><a href='#L539'>539</a>
605
- <a name='L540'></a><a href='#L540'>540</a>
606
- <a name='L541'></a><a href='#L541'>541</a>
607
- <a name='L542'></a><a href='#L542'>542</a>
608
- <a name='L543'></a><a href='#L543'>543</a>
609
- <a name='L544'></a><a href='#L544'>544</a>
610
- <a name='L545'></a><a href='#L545'>545</a>
611
- <a name='L546'></a><a href='#L546'>546</a>
612
- <a name='L547'></a><a href='#L547'>547</a>
613
- <a name='L548'></a><a href='#L548'>548</a>
614
- <a name='L549'></a><a href='#L549'>549</a>
615
- <a name='L550'></a><a href='#L550'>550</a>
616
- <a name='L551'></a><a href='#L551'>551</a>
617
- <a name='L552'></a><a href='#L552'>552</a>
618
- <a name='L553'></a><a href='#L553'>553</a>
619
- <a name='L554'></a><a href='#L554'>554</a>
620
- <a name='L555'></a><a href='#L555'>555</a>
621
- <a name='L556'></a><a href='#L556'>556</a>
622
- <a name='L557'></a><a href='#L557'>557</a>
623
- <a name='L558'></a><a href='#L558'>558</a>
624
- <a name='L559'></a><a href='#L559'>559</a>
625
- <a name='L560'></a><a href='#L560'>560</a>
626
- <a name='L561'></a><a href='#L561'>561</a>
627
- <a name='L562'></a><a href='#L562'>562</a>
628
- <a name='L563'></a><a href='#L563'>563</a>
629
- <a name='L564'></a><a href='#L564'>564</a>
630
- <a name='L565'></a><a href='#L565'>565</a>
631
- <a name='L566'></a><a href='#L566'>566</a>
632
- <a name='L567'></a><a href='#L567'>567</a>
633
- <a name='L568'></a><a href='#L568'>568</a>
634
- <a name='L569'></a><a href='#L569'>569</a>
635
- <a name='L570'></a><a href='#L570'>570</a>
636
- <a name='L571'></a><a href='#L571'>571</a>
637
- <a name='L572'></a><a href='#L572'>572</a>
638
- <a name='L573'></a><a href='#L573'>573</a>
639
- <a name='L574'></a><a href='#L574'>574</a>
640
- <a name='L575'></a><a href='#L575'>575</a>
641
- <a name='L576'></a><a href='#L576'>576</a>
642
- <a name='L577'></a><a href='#L577'>577</a>
643
- <a name='L578'></a><a href='#L578'>578</a>
644
- <a name='L579'></a><a href='#L579'>579</a>
645
- <a name='L580'></a><a href='#L580'>580</a>
646
- <a name='L581'></a><a href='#L581'>581</a>
647
- <a name='L582'></a><a href='#L582'>582</a>
648
- <a name='L583'></a><a href='#L583'>583</a>
649
- <a name='L584'></a><a href='#L584'>584</a>
650
- <a name='L585'></a><a href='#L585'>585</a>
651
- <a name='L586'></a><a href='#L586'>586</a>
652
- <a name='L587'></a><a href='#L587'>587</a>
653
- <a name='L588'></a><a href='#L588'>588</a>
654
- <a name='L589'></a><a href='#L589'>589</a>
655
- <a name='L590'></a><a href='#L590'>590</a>
656
- <a name='L591'></a><a href='#L591'>591</a>
657
- <a name='L592'></a><a href='#L592'>592</a>
658
- <a name='L593'></a><a href='#L593'>593</a>
659
- <a name='L594'></a><a href='#L594'>594</a>
660
- <a name='L595'></a><a href='#L595'>595</a>
661
- <a name='L596'></a><a href='#L596'>596</a>
662
- <a name='L597'></a><a href='#L597'>597</a>
663
- <a name='L598'></a><a href='#L598'>598</a>
664
- <a name='L599'></a><a href='#L599'>599</a>
665
- <a name='L600'></a><a href='#L600'>600</a>
666
- <a name='L601'></a><a href='#L601'>601</a>
667
- <a name='L602'></a><a href='#L602'>602</a>
668
- <a name='L603'></a><a href='#L603'>603</a>
669
- <a name='L604'></a><a href='#L604'>604</a>
670
- <a name='L605'></a><a href='#L605'>605</a>
671
- <a name='L606'></a><a href='#L606'>606</a>
672
- <a name='L607'></a><a href='#L607'>607</a>
673
- <a name='L608'></a><a href='#L608'>608</a>
674
- <a name='L609'></a><a href='#L609'>609</a>
675
- <a name='L610'></a><a href='#L610'>610</a>
676
- <a name='L611'></a><a href='#L611'>611</a>
677
- <a name='L612'></a><a href='#L612'>612</a>
678
- <a name='L613'></a><a href='#L613'>613</a>
679
- <a name='L614'></a><a href='#L614'>614</a>
680
- <a name='L615'></a><a href='#L615'>615</a>
681
- <a name='L616'></a><a href='#L616'>616</a>
682
- <a name='L617'></a><a href='#L617'>617</a>
683
- <a name='L618'></a><a href='#L618'>618</a>
684
- <a name='L619'></a><a href='#L619'>619</a>
685
- <a name='L620'></a><a href='#L620'>620</a>
686
- <a name='L621'></a><a href='#L621'>621</a>
687
- <a name='L622'></a><a href='#L622'>622</a>
688
- <a name='L623'></a><a href='#L623'>623</a>
689
- <a name='L624'></a><a href='#L624'>624</a>
690
- <a name='L625'></a><a href='#L625'>625</a>
691
- <a name='L626'></a><a href='#L626'>626</a>
692
- <a name='L627'></a><a href='#L627'>627</a>
693
- <a name='L628'></a><a href='#L628'>628</a>
694
- <a name='L629'></a><a href='#L629'>629</a>
695
- <a name='L630'></a><a href='#L630'>630</a>
696
- <a name='L631'></a><a href='#L631'>631</a>
697
- <a name='L632'></a><a href='#L632'>632</a>
698
- <a name='L633'></a><a href='#L633'>633</a>
699
- <a name='L634'></a><a href='#L634'>634</a>
700
- <a name='L635'></a><a href='#L635'>635</a>
701
- <a name='L636'></a><a href='#L636'>636</a>
702
- <a name='L637'></a><a href='#L637'>637</a>
703
- <a name='L638'></a><a href='#L638'>638</a>
704
- <a name='L639'></a><a href='#L639'>639</a>
705
- <a name='L640'></a><a href='#L640'>640</a>
706
- <a name='L641'></a><a href='#L641'>641</a>
707
- <a name='L642'></a><a href='#L642'>642</a>
708
- <a name='L643'></a><a href='#L643'>643</a>
709
- <a name='L644'></a><a href='#L644'>644</a>
710
- <a name='L645'></a><a href='#L645'>645</a>
711
- <a name='L646'></a><a href='#L646'>646</a>
712
- <a name='L647'></a><a href='#L647'>647</a>
713
- <a name='L648'></a><a href='#L648'>648</a>
714
- <a name='L649'></a><a href='#L649'>649</a>
715
- <a name='L650'></a><a href='#L650'>650</a>
716
- <a name='L651'></a><a href='#L651'>651</a>
717
- <a name='L652'></a><a href='#L652'>652</a>
718
- <a name='L653'></a><a href='#L653'>653</a>
719
- <a name='L654'></a><a href='#L654'>654</a>
720
- <a name='L655'></a><a href='#L655'>655</a>
721
- <a name='L656'></a><a href='#L656'>656</a>
722
- <a name='L657'></a><a href='#L657'>657</a>
723
- <a name='L658'></a><a href='#L658'>658</a>
724
- <a name='L659'></a><a href='#L659'>659</a>
725
- <a name='L660'></a><a href='#L660'>660</a>
726
- <a name='L661'></a><a href='#L661'>661</a>
727
- <a name='L662'></a><a href='#L662'>662</a>
728
- <a name='L663'></a><a href='#L663'>663</a>
729
- <a name='L664'></a><a href='#L664'>664</a>
730
- <a name='L665'></a><a href='#L665'>665</a>
731
- <a name='L666'></a><a href='#L666'>666</a>
732
- <a name='L667'></a><a href='#L667'>667</a>
733
- <a name='L668'></a><a href='#L668'>668</a>
734
- <a name='L669'></a><a href='#L669'>669</a>
735
- <a name='L670'></a><a href='#L670'>670</a>
736
- <a name='L671'></a><a href='#L671'>671</a>
737
- <a name='L672'></a><a href='#L672'>672</a>
738
- <a name='L673'></a><a href='#L673'>673</a>
739
- <a name='L674'></a><a href='#L674'>674</a>
740
- <a name='L675'></a><a href='#L675'>675</a>
741
- <a name='L676'></a><a href='#L676'>676</a>
742
- <a name='L677'></a><a href='#L677'>677</a>
743
- <a name='L678'></a><a href='#L678'>678</a>
744
- <a name='L679'></a><a href='#L679'>679</a>
745
- <a name='L680'></a><a href='#L680'>680</a>
746
- <a name='L681'></a><a href='#L681'>681</a>
747
- <a name='L682'></a><a href='#L682'>682</a>
748
- <a name='L683'></a><a href='#L683'>683</a>
749
- <a name='L684'></a><a href='#L684'>684</a>
750
- <a name='L685'></a><a href='#L685'>685</a>
751
- <a name='L686'></a><a href='#L686'>686</a>
752
- <a name='L687'></a><a href='#L687'>687</a>
753
- <a name='L688'></a><a href='#L688'>688</a>
754
- <a name='L689'></a><a href='#L689'>689</a>
755
- <a name='L690'></a><a href='#L690'>690</a>
756
- <a name='L691'></a><a href='#L691'>691</a>
757
- <a name='L692'></a><a href='#L692'>692</a>
758
- <a name='L693'></a><a href='#L693'>693</a>
759
- <a name='L694'></a><a href='#L694'>694</a>
760
- <a name='L695'></a><a href='#L695'>695</a>
761
- <a name='L696'></a><a href='#L696'>696</a>
762
- <a name='L697'></a><a href='#L697'>697</a>
763
- <a name='L698'></a><a href='#L698'>698</a>
764
- <a name='L699'></a><a href='#L699'>699</a>
765
- <a name='L700'></a><a href='#L700'>700</a>
766
- <a name='L701'></a><a href='#L701'>701</a>
767
- <a name='L702'></a><a href='#L702'>702</a>
768
- <a name='L703'></a><a href='#L703'>703</a>
769
- <a name='L704'></a><a href='#L704'>704</a>
770
- <a name='L705'></a><a href='#L705'>705</a>
771
- <a name='L706'></a><a href='#L706'>706</a>
772
- <a name='L707'></a><a href='#L707'>707</a>
773
- <a name='L708'></a><a href='#L708'>708</a>
774
- <a name='L709'></a><a href='#L709'>709</a>
775
- <a name='L710'></a><a href='#L710'>710</a>
776
- <a name='L711'></a><a href='#L711'>711</a>
777
- <a name='L712'></a><a href='#L712'>712</a>
778
- <a name='L713'></a><a href='#L713'>713</a>
779
- <a name='L714'></a><a href='#L714'>714</a>
780
- <a name='L715'></a><a href='#L715'>715</a>
781
- <a name='L716'></a><a href='#L716'>716</a>
782
- <a name='L717'></a><a href='#L717'>717</a>
783
- <a name='L718'></a><a href='#L718'>718</a>
784
- <a name='L719'></a><a href='#L719'>719</a>
785
- <a name='L720'></a><a href='#L720'>720</a>
786
- <a name='L721'></a><a href='#L721'>721</a>
787
- <a name='L722'></a><a href='#L722'>722</a>
788
- <a name='L723'></a><a href='#L723'>723</a>
789
- <a name='L724'></a><a href='#L724'>724</a>
790
- <a name='L725'></a><a href='#L725'>725</a>
791
- <a name='L726'></a><a href='#L726'>726</a>
792
- <a name='L727'></a><a href='#L727'>727</a>
793
- <a name='L728'></a><a href='#L728'>728</a>
794
- <a name='L729'></a><a href='#L729'>729</a>
795
- <a name='L730'></a><a href='#L730'>730</a>
796
- <a name='L731'></a><a href='#L731'>731</a>
797
- <a name='L732'></a><a href='#L732'>732</a>
798
- <a name='L733'></a><a href='#L733'>733</a>
799
- <a name='L734'></a><a href='#L734'>734</a>
800
- <a name='L735'></a><a href='#L735'>735</a>
801
- <a name='L736'></a><a href='#L736'>736</a>
802
- <a name='L737'></a><a href='#L737'>737</a>
803
- <a name='L738'></a><a href='#L738'>738</a>
804
- <a name='L739'></a><a href='#L739'>739</a>
805
- <a name='L740'></a><a href='#L740'>740</a>
806
- <a name='L741'></a><a href='#L741'>741</a>
807
- <a name='L742'></a><a href='#L742'>742</a>
808
- <a name='L743'></a><a href='#L743'>743</a>
809
- <a name='L744'></a><a href='#L744'>744</a>
810
- <a name='L745'></a><a href='#L745'>745</a>
811
- <a name='L746'></a><a href='#L746'>746</a>
812
- <a name='L747'></a><a href='#L747'>747</a>
813
- <a name='L748'></a><a href='#L748'>748</a>
814
- <a name='L749'></a><a href='#L749'>749</a>
815
- <a name='L750'></a><a href='#L750'>750</a>
816
- <a name='L751'></a><a href='#L751'>751</a>
817
- <a name='L752'></a><a href='#L752'>752</a>
818
- <a name='L753'></a><a href='#L753'>753</a>
819
- <a name='L754'></a><a href='#L754'>754</a>
820
- <a name='L755'></a><a href='#L755'>755</a>
821
- <a name='L756'></a><a href='#L756'>756</a>
822
- <a name='L757'></a><a href='#L757'>757</a>
823
- <a name='L758'></a><a href='#L758'>758</a>
824
- <a name='L759'></a><a href='#L759'>759</a>
825
- <a name='L760'></a><a href='#L760'>760</a>
826
- <a name='L761'></a><a href='#L761'>761</a>
827
- <a name='L762'></a><a href='#L762'>762</a>
828
- <a name='L763'></a><a href='#L763'>763</a>
829
- <a name='L764'></a><a href='#L764'>764</a>
830
- <a name='L765'></a><a href='#L765'>765</a>
831
- <a name='L766'></a><a href='#L766'>766</a>
832
- <a name='L767'></a><a href='#L767'>767</a>
833
- <a name='L768'></a><a href='#L768'>768</a>
834
- <a name='L769'></a><a href='#L769'>769</a>
835
- <a name='L770'></a><a href='#L770'>770</a>
836
- <a name='L771'></a><a href='#L771'>771</a>
837
- <a name='L772'></a><a href='#L772'>772</a>
838
- <a name='L773'></a><a href='#L773'>773</a>
839
- <a name='L774'></a><a href='#L774'>774</a>
840
- <a name='L775'></a><a href='#L775'>775</a>
841
- <a name='L776'></a><a href='#L776'>776</a>
842
- <a name='L777'></a><a href='#L777'>777</a>
843
- <a name='L778'></a><a href='#L778'>778</a>
844
- <a name='L779'></a><a href='#L779'>779</a>
845
- <a name='L780'></a><a href='#L780'>780</a>
846
- <a name='L781'></a><a href='#L781'>781</a>
847
- <a name='L782'></a><a href='#L782'>782</a>
848
- <a name='L783'></a><a href='#L783'>783</a>
849
- <a name='L784'></a><a href='#L784'>784</a>
850
- <a name='L785'></a><a href='#L785'>785</a>
851
- <a name='L786'></a><a href='#L786'>786</a>
852
- <a name='L787'></a><a href='#L787'>787</a>
853
- <a name='L788'></a><a href='#L788'>788</a>
854
- <a name='L789'></a><a href='#L789'>789</a>
855
- <a name='L790'></a><a href='#L790'>790</a>
856
- <a name='L791'></a><a href='#L791'>791</a>
857
- <a name='L792'></a><a href='#L792'>792</a>
858
- <a name='L793'></a><a href='#L793'>793</a>
859
- <a name='L794'></a><a href='#L794'>794</a>
860
- <a name='L795'></a><a href='#L795'>795</a>
861
- <a name='L796'></a><a href='#L796'>796</a>
862
- <a name='L797'></a><a href='#L797'>797</a>
863
- <a name='L798'></a><a href='#L798'>798</a>
864
- <a name='L799'></a><a href='#L799'>799</a>
865
- <a name='L800'></a><a href='#L800'>800</a>
866
- <a name='L801'></a><a href='#L801'>801</a>
867
- <a name='L802'></a><a href='#L802'>802</a>
868
- <a name='L803'></a><a href='#L803'>803</a>
869
- <a name='L804'></a><a href='#L804'>804</a>
870
- <a name='L805'></a><a href='#L805'>805</a>
871
- <a name='L806'></a><a href='#L806'>806</a>
872
- <a name='L807'></a><a href='#L807'>807</a>
873
- <a name='L808'></a><a href='#L808'>808</a>
874
- <a name='L809'></a><a href='#L809'>809</a>
875
- <a name='L810'></a><a href='#L810'>810</a>
876
- <a name='L811'></a><a href='#L811'>811</a>
877
- <a name='L812'></a><a href='#L812'>812</a>
878
- <a name='L813'></a><a href='#L813'>813</a>
879
- <a name='L814'></a><a href='#L814'>814</a>
880
- <a name='L815'></a><a href='#L815'>815</a>
881
- <a name='L816'></a><a href='#L816'>816</a>
882
- <a name='L817'></a><a href='#L817'>817</a>
883
- <a name='L818'></a><a href='#L818'>818</a>
884
- <a name='L819'></a><a href='#L819'>819</a>
885
- <a name='L820'></a><a href='#L820'>820</a>
886
- <a name='L821'></a><a href='#L821'>821</a>
887
- <a name='L822'></a><a href='#L822'>822</a>
888
- <a name='L823'></a><a href='#L823'>823</a>
889
- <a name='L824'></a><a href='#L824'>824</a>
890
- <a name='L825'></a><a href='#L825'>825</a>
891
- <a name='L826'></a><a href='#L826'>826</a>
892
- <a name='L827'></a><a href='#L827'>827</a>
893
- <a name='L828'></a><a href='#L828'>828</a>
894
- <a name='L829'></a><a href='#L829'>829</a>
895
- <a name='L830'></a><a href='#L830'>830</a>
896
- <a name='L831'></a><a href='#L831'>831</a>
897
- <a name='L832'></a><a href='#L832'>832</a>
898
- <a name='L833'></a><a href='#L833'>833</a>
899
- <a name='L834'></a><a href='#L834'>834</a>
900
- <a name='L835'></a><a href='#L835'>835</a>
901
- <a name='L836'></a><a href='#L836'>836</a>
902
- <a name='L837'></a><a href='#L837'>837</a>
903
- <a name='L838'></a><a href='#L838'>838</a>
904
- <a name='L839'></a><a href='#L839'>839</a>
905
- <a name='L840'></a><a href='#L840'>840</a>
906
- <a name='L841'></a><a href='#L841'>841</a>
907
- <a name='L842'></a><a href='#L842'>842</a>
908
- <a name='L843'></a><a href='#L843'>843</a>
909
- <a name='L844'></a><a href='#L844'>844</a>
910
- <a name='L845'></a><a href='#L845'>845</a>
911
- <a name='L846'></a><a href='#L846'>846</a>
912
- <a name='L847'></a><a href='#L847'>847</a>
913
- <a name='L848'></a><a href='#L848'>848</a>
914
- <a name='L849'></a><a href='#L849'>849</a>
915
- <a name='L850'></a><a href='#L850'>850</a>
916
- <a name='L851'></a><a href='#L851'>851</a>
917
- <a name='L852'></a><a href='#L852'>852</a>
918
- <a name='L853'></a><a href='#L853'>853</a>
919
- <a name='L854'></a><a href='#L854'>854</a>
920
- <a name='L855'></a><a href='#L855'>855</a>
921
- <a name='L856'></a><a href='#L856'>856</a>
922
- <a name='L857'></a><a href='#L857'>857</a>
923
- <a name='L858'></a><a href='#L858'>858</a>
924
- <a name='L859'></a><a href='#L859'>859</a>
925
- <a name='L860'></a><a href='#L860'>860</a>
926
- <a name='L861'></a><a href='#L861'>861</a>
927
- <a name='L862'></a><a href='#L862'>862</a>
928
- <a name='L863'></a><a href='#L863'>863</a>
929
- <a name='L864'></a><a href='#L864'>864</a>
930
- <a name='L865'></a><a href='#L865'>865</a>
931
- <a name='L866'></a><a href='#L866'>866</a>
932
- <a name='L867'></a><a href='#L867'>867</a>
933
- <a name='L868'></a><a href='#L868'>868</a>
934
- <a name='L869'></a><a href='#L869'>869</a>
935
- <a name='L870'></a><a href='#L870'>870</a>
936
- <a name='L871'></a><a href='#L871'>871</a>
937
- <a name='L872'></a><a href='#L872'>872</a>
938
- <a name='L873'></a><a href='#L873'>873</a>
939
- <a name='L874'></a><a href='#L874'>874</a>
940
- <a name='L875'></a><a href='#L875'>875</a>
941
- <a name='L876'></a><a href='#L876'>876</a>
942
- <a name='L877'></a><a href='#L877'>877</a>
943
- <a name='L878'></a><a href='#L878'>878</a>
944
- <a name='L879'></a><a href='#L879'>879</a>
945
- <a name='L880'></a><a href='#L880'>880</a>
946
- <a name='L881'></a><a href='#L881'>881</a>
947
- <a name='L882'></a><a href='#L882'>882</a>
948
- <a name='L883'></a><a href='#L883'>883</a>
949
- <a name='L884'></a><a href='#L884'>884</a>
950
- <a name='L885'></a><a href='#L885'>885</a>
951
- <a name='L886'></a><a href='#L886'>886</a>
952
- <a name='L887'></a><a href='#L887'>887</a>
953
- <a name='L888'></a><a href='#L888'>888</a>
954
- <a name='L889'></a><a href='#L889'>889</a>
955
- <a name='L890'></a><a href='#L890'>890</a>
956
- <a name='L891'></a><a href='#L891'>891</a>
957
- <a name='L892'></a><a href='#L892'>892</a>
958
- <a name='L893'></a><a href='#L893'>893</a>
959
- <a name='L894'></a><a href='#L894'>894</a>
960
- <a name='L895'></a><a href='#L895'>895</a>
961
- <a name='L896'></a><a href='#L896'>896</a>
962
- <a name='L897'></a><a href='#L897'>897</a>
963
- <a name='L898'></a><a href='#L898'>898</a>
964
- <a name='L899'></a><a href='#L899'>899</a>
965
- <a name='L900'></a><a href='#L900'>900</a>
966
- <a name='L901'></a><a href='#L901'>901</a>
967
- <a name='L902'></a><a href='#L902'>902</a>
968
- <a name='L903'></a><a href='#L903'>903</a>
969
- <a name='L904'></a><a href='#L904'>904</a>
970
- <a name='L905'></a><a href='#L905'>905</a>
971
- <a name='L906'></a><a href='#L906'>906</a>
972
- <a name='L907'></a><a href='#L907'>907</a>
973
- <a name='L908'></a><a href='#L908'>908</a>
974
- <a name='L909'></a><a href='#L909'>909</a>
975
- <a name='L910'></a><a href='#L910'>910</a>
976
- <a name='L911'></a><a href='#L911'>911</a>
977
- <a name='L912'></a><a href='#L912'>912</a>
978
- <a name='L913'></a><a href='#L913'>913</a>
979
- <a name='L914'></a><a href='#L914'>914</a>
980
- <a name='L915'></a><a href='#L915'>915</a>
981
- <a name='L916'></a><a href='#L916'>916</a>
982
- <a name='L917'></a><a href='#L917'>917</a>
983
- <a name='L918'></a><a href='#L918'>918</a>
984
- <a name='L919'></a><a href='#L919'>919</a>
985
- <a name='L920'></a><a href='#L920'>920</a>
986
- <a name='L921'></a><a href='#L921'>921</a>
987
- <a name='L922'></a><a href='#L922'>922</a>
988
- <a name='L923'></a><a href='#L923'>923</a>
989
- <a name='L924'></a><a href='#L924'>924</a>
990
- <a name='L925'></a><a href='#L925'>925</a>
991
- <a name='L926'></a><a href='#L926'>926</a>
992
- <a name='L927'></a><a href='#L927'>927</a>
993
- <a name='L928'></a><a href='#L928'>928</a>
994
- <a name='L929'></a><a href='#L929'>929</a>
995
- <a name='L930'></a><a href='#L930'>930</a>
996
- <a name='L931'></a><a href='#L931'>931</a>
997
- <a name='L932'></a><a href='#L932'>932</a>
998
- <a name='L933'></a><a href='#L933'>933</a>
999
- <a name='L934'></a><a href='#L934'>934</a>
1000
- <a name='L935'></a><a href='#L935'>935</a>
1001
- <a name='L936'></a><a href='#L936'>936</a>
1002
- <a name='L937'></a><a href='#L937'>937</a>
1003
- <a name='L938'></a><a href='#L938'>938</a>
1004
- <a name='L939'></a><a href='#L939'>939</a>
1005
- <a name='L940'></a><a href='#L940'>940</a>
1006
- <a name='L941'></a><a href='#L941'>941</a>
1007
- <a name='L942'></a><a href='#L942'>942</a>
1008
- <a name='L943'></a><a href='#L943'>943</a>
1009
- <a name='L944'></a><a href='#L944'>944</a>
1010
- <a name='L945'></a><a href='#L945'>945</a>
1011
- <a name='L946'></a><a href='#L946'>946</a>
1012
- <a name='L947'></a><a href='#L947'>947</a>
1013
- <a name='L948'></a><a href='#L948'>948</a>
1014
- <a name='L949'></a><a href='#L949'>949</a>
1015
- <a name='L950'></a><a href='#L950'>950</a>
1016
- <a name='L951'></a><a href='#L951'>951</a>
1017
- <a name='L952'></a><a href='#L952'>952</a>
1018
- <a name='L953'></a><a href='#L953'>953</a>
1019
- <a name='L954'></a><a href='#L954'>954</a>
1020
- <a name='L955'></a><a href='#L955'>955</a>
1021
- <a name='L956'></a><a href='#L956'>956</a>
1022
- <a name='L957'></a><a href='#L957'>957</a>
1023
- <a name='L958'></a><a href='#L958'>958</a>
1024
- <a name='L959'></a><a href='#L959'>959</a>
1025
- <a name='L960'></a><a href='#L960'>960</a>
1026
- <a name='L961'></a><a href='#L961'>961</a>
1027
- <a name='L962'></a><a href='#L962'>962</a>
1028
- <a name='L963'></a><a href='#L963'>963</a>
1029
- <a name='L964'></a><a href='#L964'>964</a>
1030
- <a name='L965'></a><a href='#L965'>965</a>
1031
- <a name='L966'></a><a href='#L966'>966</a>
1032
- <a name='L967'></a><a href='#L967'>967</a>
1033
- <a name='L968'></a><a href='#L968'>968</a>
1034
- <a name='L969'></a><a href='#L969'>969</a>
1035
- <a name='L970'></a><a href='#L970'>970</a>
1036
- <a name='L971'></a><a href='#L971'>971</a>
1037
- <a name='L972'></a><a href='#L972'>972</a>
1038
- <a name='L973'></a><a href='#L973'>973</a>
1039
- <a name='L974'></a><a href='#L974'>974</a>
1040
- <a name='L975'></a><a href='#L975'>975</a>
1041
- <a name='L976'></a><a href='#L976'>976</a>
1042
- <a name='L977'></a><a href='#L977'>977</a>
1043
- <a name='L978'></a><a href='#L978'>978</a>
1044
- <a name='L979'></a><a href='#L979'>979</a>
1045
- <a name='L980'></a><a href='#L980'>980</a>
1046
- <a name='L981'></a><a href='#L981'>981</a>
1047
- <a name='L982'></a><a href='#L982'>982</a>
1048
- <a name='L983'></a><a href='#L983'>983</a>
1049
- <a name='L984'></a><a href='#L984'>984</a>
1050
- <a name='L985'></a><a href='#L985'>985</a>
1051
- <a name='L986'></a><a href='#L986'>986</a>
1052
- <a name='L987'></a><a href='#L987'>987</a>
1053
- <a name='L988'></a><a href='#L988'>988</a>
1054
- <a name='L989'></a><a href='#L989'>989</a>
1055
- <a name='L990'></a><a href='#L990'>990</a>
1056
- <a name='L991'></a><a href='#L991'>991</a>
1057
- <a name='L992'></a><a href='#L992'>992</a>
1058
- <a name='L993'></a><a href='#L993'>993</a>
1059
- <a name='L994'></a><a href='#L994'>994</a>
1060
- <a name='L995'></a><a href='#L995'>995</a>
1061
- <a name='L996'></a><a href='#L996'>996</a>
1062
- <a name='L997'></a><a href='#L997'>997</a>
1063
- <a name='L998'></a><a href='#L998'>998</a>
1064
- <a name='L999'></a><a href='#L999'>999</a>
1065
- <a name='L1000'></a><a href='#L1000'>1000</a>
1066
- <a name='L1001'></a><a href='#L1001'>1001</a>
1067
- <a name='L1002'></a><a href='#L1002'>1002</a>
1068
- <a name='L1003'></a><a href='#L1003'>1003</a>
1069
- <a name='L1004'></a><a href='#L1004'>1004</a>
1070
- <a name='L1005'></a><a href='#L1005'>1005</a>
1071
- <a name='L1006'></a><a href='#L1006'>1006</a>
1072
- <a name='L1007'></a><a href='#L1007'>1007</a>
1073
- <a name='L1008'></a><a href='#L1008'>1008</a>
1074
- <a name='L1009'></a><a href='#L1009'>1009</a>
1075
- <a name='L1010'></a><a href='#L1010'>1010</a>
1076
- <a name='L1011'></a><a href='#L1011'>1011</a>
1077
- <a name='L1012'></a><a href='#L1012'>1012</a>
1078
- <a name='L1013'></a><a href='#L1013'>1013</a>
1079
- <a name='L1014'></a><a href='#L1014'>1014</a>
1080
- <a name='L1015'></a><a href='#L1015'>1015</a>
1081
- <a name='L1016'></a><a href='#L1016'>1016</a>
1082
- <a name='L1017'></a><a href='#L1017'>1017</a>
1083
- <a name='L1018'></a><a href='#L1018'>1018</a>
1084
- <a name='L1019'></a><a href='#L1019'>1019</a>
1085
- <a name='L1020'></a><a href='#L1020'>1020</a>
1086
- <a name='L1021'></a><a href='#L1021'>1021</a>
1087
- <a name='L1022'></a><a href='#L1022'>1022</a>
1088
- <a name='L1023'></a><a href='#L1023'>1023</a>
1089
- <a name='L1024'></a><a href='#L1024'>1024</a>
1090
- <a name='L1025'></a><a href='#L1025'>1025</a>
1091
- <a name='L1026'></a><a href='#L1026'>1026</a>
1092
- <a name='L1027'></a><a href='#L1027'>1027</a>
1093
- <a name='L1028'></a><a href='#L1028'>1028</a>
1094
- <a name='L1029'></a><a href='#L1029'>1029</a>
1095
- <a name='L1030'></a><a href='#L1030'>1030</a>
1096
- <a name='L1031'></a><a href='#L1031'>1031</a>
1097
- <a name='L1032'></a><a href='#L1032'>1032</a>
1098
- <a name='L1033'></a><a href='#L1033'>1033</a>
1099
- <a name='L1034'></a><a href='#L1034'>1034</a>
1100
- <a name='L1035'></a><a href='#L1035'>1035</a>
1101
- <a name='L1036'></a><a href='#L1036'>1036</a>
1102
- <a name='L1037'></a><a href='#L1037'>1037</a>
1103
- <a name='L1038'></a><a href='#L1038'>1038</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
1104
- <span class="cline-any cline-yes">1x</span>
1105
- <span class="cline-any cline-yes">1x</span>
1106
- <span class="cline-any cline-yes">1x</span>
1107
- <span class="cline-any cline-yes">1x</span>
1108
- <span class="cline-any cline-yes">1x</span>
1109
- <span class="cline-any cline-yes">1x</span>
1110
- <span class="cline-any cline-yes">1x</span>
1111
- <span class="cline-any cline-yes">1x</span>
1112
- <span class="cline-any cline-yes">1x</span>
1113
- <span class="cline-any cline-yes">1x</span>
1114
- <span class="cline-any cline-yes">1x</span>
1115
- <span class="cline-any cline-yes">1x</span>
1116
- <span class="cline-any cline-yes">1x</span>
1117
- <span class="cline-any cline-yes">1x</span>
1118
- <span class="cline-any cline-yes">1x</span>
1119
- <span class="cline-any cline-yes">1x</span>
1120
- <span class="cline-any cline-yes">1x</span>
1121
- <span class="cline-any cline-yes">1x</span>
1122
- <span class="cline-any cline-yes">1x</span>
1123
- <span class="cline-any cline-yes">1x</span>
1124
- <span class="cline-any cline-yes">1x</span>
1125
- <span class="cline-any cline-yes">1x</span>
1126
- <span class="cline-any cline-yes">1x</span>
1127
- <span class="cline-any cline-yes">1x</span>
1128
- <span class="cline-any cline-yes">1x</span>
1129
- <span class="cline-any cline-yes">1x</span>
1130
- <span class="cline-any cline-yes">1x</span>
1131
- <span class="cline-any cline-yes">1x</span>
1132
- <span class="cline-any cline-yes">1x</span>
1133
- <span class="cline-any cline-yes">1x</span>
1134
- <span class="cline-any cline-yes">1x</span>
1135
- <span class="cline-any cline-yes">1x</span>
1136
- <span class="cline-any cline-yes">1x</span>
1137
- <span class="cline-any cline-yes">1x</span>
1138
- <span class="cline-any cline-yes">1x</span>
1139
- <span class="cline-any cline-yes">1x</span>
1140
- <span class="cline-any cline-yes">1x</span>
1141
- <span class="cline-any cline-yes">1x</span>
1142
- <span class="cline-any cline-yes">1x</span>
1143
- <span class="cline-any cline-yes">1x</span>
1144
- <span class="cline-any cline-yes">1x</span>
1145
- <span class="cline-any cline-yes">1x</span>
1146
- <span class="cline-any cline-yes">1x</span>
1147
- <span class="cline-any cline-yes">1x</span>
1148
- <span class="cline-any cline-yes">1x</span>
1149
- <span class="cline-any cline-yes">1x</span>
1150
- <span class="cline-any cline-yes">1x</span>
1151
- <span class="cline-any cline-yes">1x</span>
1152
- <span class="cline-any cline-yes">1x</span>
1153
- <span class="cline-any cline-yes">1x</span>
1154
- <span class="cline-any cline-yes">1x</span>
1155
- <span class="cline-any cline-yes">1x</span>
1156
- <span class="cline-any cline-yes">1x</span>
1157
- <span class="cline-any cline-yes">1x</span>
1158
- <span class="cline-any cline-yes">1x</span>
1159
- <span class="cline-any cline-yes">1x</span>
1160
- <span class="cline-any cline-yes">1x</span>
1161
- <span class="cline-any cline-yes">1x</span>
1162
- <span class="cline-any cline-yes">1x</span>
1163
- <span class="cline-any cline-yes">1x</span>
1164
- <span class="cline-any cline-yes">1x</span>
1165
- <span class="cline-any cline-yes">1x</span>
1166
- <span class="cline-any cline-yes">1x</span>
1167
- <span class="cline-any cline-yes">1x</span>
1168
- <span class="cline-any cline-yes">1x</span>
1169
- <span class="cline-any cline-yes">1x</span>
1170
- <span class="cline-any cline-yes">1x</span>
1171
- <span class="cline-any cline-yes">1x</span>
1172
- <span class="cline-any cline-yes">1x</span>
1173
- <span class="cline-any cline-yes">1x</span>
1174
- <span class="cline-any cline-yes">1x</span>
1175
- <span class="cline-any cline-yes">1x</span>
1176
- <span class="cline-any cline-yes">1x</span>
1177
- <span class="cline-any cline-no">&nbsp;</span>
1178
- <span class="cline-any cline-no">&nbsp;</span>
1179
- <span class="cline-any cline-no">&nbsp;</span>
1180
- <span class="cline-any cline-no">&nbsp;</span>
1181
- <span class="cline-any cline-yes">1x</span>
1182
- <span class="cline-any cline-yes">1x</span>
1183
- <span class="cline-any cline-yes">1x</span>
1184
- <span class="cline-any cline-yes">1x</span>
1185
- <span class="cline-any cline-yes">1x</span>
1186
- <span class="cline-any cline-yes">1x</span>
1187
- <span class="cline-any cline-yes">1x</span>
1188
- <span class="cline-any cline-yes">1x</span>
1189
- <span class="cline-any cline-yes">1x</span>
1190
- <span class="cline-any cline-yes">1x</span>
1191
- <span class="cline-any cline-yes">1x</span>
1192
- <span class="cline-any cline-yes">1x</span>
1193
- <span class="cline-any cline-yes">1x</span>
1194
- <span class="cline-any cline-yes">1x</span>
1195
- <span class="cline-any cline-yes">1x</span>
1196
- <span class="cline-any cline-yes">1x</span>
1197
- <span class="cline-any cline-yes">1x</span>
1198
- <span class="cline-any cline-yes">1x</span>
1199
- <span class="cline-any cline-yes">1x</span>
1200
- <span class="cline-any cline-yes">1x</span>
1201
- <span class="cline-any cline-no">&nbsp;</span>
1202
- <span class="cline-any cline-no">&nbsp;</span>
1203
- <span class="cline-any cline-no">&nbsp;</span>
1204
- <span class="cline-any cline-yes">1x</span>
1205
- <span class="cline-any cline-no">&nbsp;</span>
1206
- <span class="cline-any cline-no">&nbsp;</span>
1207
- <span class="cline-any cline-no">&nbsp;</span>
1208
- <span class="cline-any cline-no">&nbsp;</span>
1209
- <span class="cline-any cline-no">&nbsp;</span>
1210
- <span class="cline-any cline-no">&nbsp;</span>
1211
- <span class="cline-any cline-no">&nbsp;</span>
1212
- <span class="cline-any cline-no">&nbsp;</span>
1213
- <span class="cline-any cline-no">&nbsp;</span>
1214
- <span class="cline-any cline-no">&nbsp;</span>
1215
- <span class="cline-any cline-yes">1x</span>
1216
- <span class="cline-any cline-yes">1x</span>
1217
- <span class="cline-any cline-yes">1x</span>
1218
- <span class="cline-any cline-yes">1x</span>
1219
- <span class="cline-any cline-yes">1x</span>
1220
- <span class="cline-any cline-yes">1x</span>
1221
- <span class="cline-any cline-yes">1x</span>
1222
- <span class="cline-any cline-yes">1x</span>
1223
- <span class="cline-any cline-yes">1x</span>
1224
- <span class="cline-any cline-yes">1x</span>
1225
- <span class="cline-any cline-yes">1x</span>
1226
- <span class="cline-any cline-yes">1x</span>
1227
- <span class="cline-any cline-yes">1x</span>
1228
- <span class="cline-any cline-yes">1x</span>
1229
- <span class="cline-any cline-yes">1x</span>
1230
- <span class="cline-any cline-yes">1x</span>
1231
- <span class="cline-any cline-yes">1x</span>
1232
- <span class="cline-any cline-yes">1x</span>
1233
- <span class="cline-any cline-yes">1x</span>
1234
- <span class="cline-any cline-yes">1x</span>
1235
- <span class="cline-any cline-yes">1x</span>
1236
- <span class="cline-any cline-yes">1x</span>
1237
- <span class="cline-any cline-yes">1x</span>
1238
- <span class="cline-any cline-no">&nbsp;</span>
1239
- <span class="cline-any cline-no">&nbsp;</span>
1240
- <span class="cline-any cline-no">&nbsp;</span>
1241
- <span class="cline-any cline-no">&nbsp;</span>
1242
- <span class="cline-any cline-no">&nbsp;</span>
1243
- <span class="cline-any cline-yes">1x</span>
1244
- <span class="cline-any cline-yes">1x</span>
1245
- <span class="cline-any cline-yes">1x</span>
1246
- <span class="cline-any cline-yes">1x</span>
1247
- <span class="cline-any cline-yes">1x</span>
1248
- <span class="cline-any cline-yes">1x</span>
1249
- <span class="cline-any cline-yes">1x</span>
1250
- <span class="cline-any cline-yes">1x</span>
1251
- <span class="cline-any cline-yes">1x</span>
1252
- <span class="cline-any cline-yes">1x</span>
1253
- <span class="cline-any cline-yes">1x</span>
1254
- <span class="cline-any cline-no">&nbsp;</span>
1255
- <span class="cline-any cline-yes">1x</span>
1256
- <span class="cline-any cline-no">&nbsp;</span>
1257
- <span class="cline-any cline-no">&nbsp;</span>
1258
- <span class="cline-any cline-no">&nbsp;</span>
1259
- <span class="cline-any cline-no">&nbsp;</span>
1260
- <span class="cline-any cline-no">&nbsp;</span>
1261
- <span class="cline-any cline-no">&nbsp;</span>
1262
- <span class="cline-any cline-yes">1x</span>
1263
- <span class="cline-any cline-yes">1x</span>
1264
- <span class="cline-any cline-yes">1x</span>
1265
- <span class="cline-any cline-no">&nbsp;</span>
1266
- <span class="cline-any cline-yes">1x</span>
1267
- <span class="cline-any cline-yes">1x</span>
1268
- <span class="cline-any cline-yes">1x</span>
1269
- <span class="cline-any cline-yes">1x</span>
1270
- <span class="cline-any cline-yes">1x</span>
1271
- <span class="cline-any cline-yes">1x</span>
1272
- <span class="cline-any cline-yes">1x</span>
1273
- <span class="cline-any cline-yes">1x</span>
1274
- <span class="cline-any cline-yes">1x</span>
1275
- <span class="cline-any cline-yes">1x</span>
1276
- <span class="cline-any cline-yes">1x</span>
1277
- <span class="cline-any cline-no">&nbsp;</span>
1278
- <span class="cline-any cline-no">&nbsp;</span>
1279
- <span class="cline-any cline-no">&nbsp;</span>
1280
- <span class="cline-any cline-no">&nbsp;</span>
1281
- <span class="cline-any cline-no">&nbsp;</span>
1282
- <span class="cline-any cline-yes">1x</span>
1283
- <span class="cline-any cline-yes">1x</span>
1284
- <span class="cline-any cline-yes">1x</span>
1285
- <span class="cline-any cline-yes">1x</span>
1286
- <span class="cline-any cline-yes">1x</span>
1287
- <span class="cline-any cline-yes">1x</span>
1288
- <span class="cline-any cline-yes">1x</span>
1289
- <span class="cline-any cline-yes">1x</span>
1290
- <span class="cline-any cline-yes">1x</span>
1291
- <span class="cline-any cline-yes">1x</span>
1292
- <span class="cline-any cline-yes">1x</span>
1293
- <span class="cline-any cline-yes">1x</span>
1294
- <span class="cline-any cline-no">&nbsp;</span>
1295
- <span class="cline-any cline-no">&nbsp;</span>
1296
- <span class="cline-any cline-no">&nbsp;</span>
1297
- <span class="cline-any cline-no">&nbsp;</span>
1298
- <span class="cline-any cline-no">&nbsp;</span>
1299
- <span class="cline-any cline-no">&nbsp;</span>
1300
- <span class="cline-any cline-no">&nbsp;</span>
1301
- <span class="cline-any cline-yes">1x</span>
1302
- <span class="cline-any cline-yes">1x</span>
1303
- <span class="cline-any cline-yes">1x</span>
1304
- <span class="cline-any cline-yes">1x</span>
1305
- <span class="cline-any cline-yes">1x</span>
1306
- <span class="cline-any cline-yes">1x</span>
1307
- <span class="cline-any cline-yes">1x</span>
1308
- <span class="cline-any cline-yes">1x</span>
1309
- <span class="cline-any cline-yes">1x</span>
1310
- <span class="cline-any cline-yes">1x</span>
1311
- <span class="cline-any cline-yes">1x</span>
1312
- <span class="cline-any cline-yes">1x</span>
1313
- <span class="cline-any cline-no">&nbsp;</span>
1314
- <span class="cline-any cline-no">&nbsp;</span>
1315
- <span class="cline-any cline-no">&nbsp;</span>
1316
- <span class="cline-any cline-no">&nbsp;</span>
1317
- <span class="cline-any cline-no">&nbsp;</span>
1318
- <span class="cline-any cline-no">&nbsp;</span>
1319
- <span class="cline-any cline-yes">1x</span>
1320
- <span class="cline-any cline-yes">1x</span>
1321
- <span class="cline-any cline-yes">1x</span>
1322
- <span class="cline-any cline-yes">1x</span>
1323
- <span class="cline-any cline-yes">1x</span>
1324
- <span class="cline-any cline-yes">1x</span>
1325
- <span class="cline-any cline-yes">1x</span>
1326
- <span class="cline-any cline-yes">1x</span>
1327
- <span class="cline-any cline-yes">1x</span>
1328
- <span class="cline-any cline-yes">2x</span>
1329
- <span class="cline-any cline-yes">1x</span>
1330
- <span class="cline-any cline-yes">1x</span>
1331
- <span class="cline-any cline-yes">1x</span>
1332
- <span class="cline-any cline-yes">2x</span>
1333
- <span class="cline-any cline-yes">2x</span>
1334
- <span class="cline-any cline-yes">2x</span>
1335
- <span class="cline-any cline-yes">2x</span>
1336
- <span class="cline-any cline-yes">2x</span>
1337
- <span class="cline-any cline-yes">2x</span>
1338
- <span class="cline-any cline-yes">2x</span>
1339
- <span class="cline-any cline-yes">2x</span>
1340
- <span class="cline-any cline-yes">2x</span>
1341
- <span class="cline-any cline-yes">1x</span>
1342
- <span class="cline-any cline-yes">1x</span>
1343
- <span class="cline-any cline-yes">1x</span>
1344
- <span class="cline-any cline-yes">1x</span>
1345
- <span class="cline-any cline-no">&nbsp;</span>
1346
- <span class="cline-any cline-no">&nbsp;</span>
1347
- <span class="cline-any cline-no">&nbsp;</span>
1348
- <span class="cline-any cline-no">&nbsp;</span>
1349
- <span class="cline-any cline-no">&nbsp;</span>
1350
- <span class="cline-any cline-no">&nbsp;</span>
1351
- <span class="cline-any cline-no">&nbsp;</span>
1352
- <span class="cline-any cline-no">&nbsp;</span>
1353
- <span class="cline-any cline-no">&nbsp;</span>
1354
- <span class="cline-any cline-no">&nbsp;</span>
1355
- <span class="cline-any cline-yes">1x</span>
1356
- <span class="cline-any cline-yes">1x</span>
1357
- <span class="cline-any cline-yes">1x</span>
1358
- <span class="cline-any cline-yes">2x</span>
1359
- <span class="cline-any cline-yes">1x</span>
1360
- <span class="cline-any cline-yes">1x</span>
1361
- <span class="cline-any cline-no">&nbsp;</span>
1362
- <span class="cline-any cline-no">&nbsp;</span>
1363
- <span class="cline-any cline-no">&nbsp;</span>
1364
- <span class="cline-any cline-no">&nbsp;</span>
1365
- <span class="cline-any cline-no">&nbsp;</span>
1366
- <span class="cline-any cline-no">&nbsp;</span>
1367
- <span class="cline-any cline-no">&nbsp;</span>
1368
- <span class="cline-any cline-no">&nbsp;</span>
1369
- <span class="cline-any cline-yes">1x</span>
1370
- <span class="cline-any cline-yes">1x</span>
1371
- <span class="cline-any cline-yes">1x</span>
1372
- <span class="cline-any cline-yes">1x</span>
1373
- <span class="cline-any cline-yes">4x</span>
1374
- <span class="cline-any cline-yes">4x</span>
1375
- <span class="cline-any cline-yes">4x</span>
1376
- <span class="cline-any cline-yes">4x</span>
1377
- <span class="cline-any cline-yes">4x</span>
1378
- <span class="cline-any cline-yes">4x</span>
1379
- <span class="cline-any cline-yes">4x</span>
1380
- <span class="cline-any cline-yes">4x</span>
1381
- <span class="cline-any cline-no">&nbsp;</span>
1382
- <span class="cline-any cline-no">&nbsp;</span>
1383
- <span class="cline-any cline-no">&nbsp;</span>
1384
- <span class="cline-any cline-no">&nbsp;</span>
1385
- <span class="cline-any cline-no">&nbsp;</span>
1386
- <span class="cline-any cline-no">&nbsp;</span>
1387
- <span class="cline-any cline-no">&nbsp;</span>
1388
- <span class="cline-any cline-no">&nbsp;</span>
1389
- <span class="cline-any cline-no">&nbsp;</span>
1390
- <span class="cline-any cline-no">&nbsp;</span>
1391
- <span class="cline-any cline-no">&nbsp;</span>
1392
- <span class="cline-any cline-no">&nbsp;</span>
1393
- <span class="cline-any cline-no">&nbsp;</span>
1394
- <span class="cline-any cline-no">&nbsp;</span>
1395
- <span class="cline-any cline-no">&nbsp;</span>
1396
- <span class="cline-any cline-no">&nbsp;</span>
1397
- <span class="cline-any cline-no">&nbsp;</span>
1398
- <span class="cline-any cline-no">&nbsp;</span>
1399
- <span class="cline-any cline-no">&nbsp;</span>
1400
- <span class="cline-any cline-no">&nbsp;</span>
1401
- <span class="cline-any cline-no">&nbsp;</span>
1402
- <span class="cline-any cline-no">&nbsp;</span>
1403
- <span class="cline-any cline-no">&nbsp;</span>
1404
- <span class="cline-any cline-no">&nbsp;</span>
1405
- <span class="cline-any cline-no">&nbsp;</span>
1406
- <span class="cline-any cline-no">&nbsp;</span>
1407
- <span class="cline-any cline-no">&nbsp;</span>
1408
- <span class="cline-any cline-no">&nbsp;</span>
1409
- <span class="cline-any cline-no">&nbsp;</span>
1410
- <span class="cline-any cline-no">&nbsp;</span>
1411
- <span class="cline-any cline-no">&nbsp;</span>
1412
- <span class="cline-any cline-no">&nbsp;</span>
1413
- <span class="cline-any cline-no">&nbsp;</span>
1414
- <span class="cline-any cline-no">&nbsp;</span>
1415
- <span class="cline-any cline-no">&nbsp;</span>
1416
- <span class="cline-any cline-no">&nbsp;</span>
1417
- <span class="cline-any cline-no">&nbsp;</span>
1418
- <span class="cline-any cline-no">&nbsp;</span>
1419
- <span class="cline-any cline-no">&nbsp;</span>
1420
- <span class="cline-any cline-no">&nbsp;</span>
1421
- <span class="cline-any cline-no">&nbsp;</span>
1422
- <span class="cline-any cline-no">&nbsp;</span>
1423
- <span class="cline-any cline-no">&nbsp;</span>
1424
- <span class="cline-any cline-no">&nbsp;</span>
1425
- <span class="cline-any cline-no">&nbsp;</span>
1426
- <span class="cline-any cline-no">&nbsp;</span>
1427
- <span class="cline-any cline-no">&nbsp;</span>
1428
- <span class="cline-any cline-no">&nbsp;</span>
1429
- <span class="cline-any cline-no">&nbsp;</span>
1430
- <span class="cline-any cline-no">&nbsp;</span>
1431
- <span class="cline-any cline-no">&nbsp;</span>
1432
- <span class="cline-any cline-no">&nbsp;</span>
1433
- <span class="cline-any cline-no">&nbsp;</span>
1434
- <span class="cline-any cline-no">&nbsp;</span>
1435
- <span class="cline-any cline-no">&nbsp;</span>
1436
- <span class="cline-any cline-no">&nbsp;</span>
1437
- <span class="cline-any cline-no">&nbsp;</span>
1438
- <span class="cline-any cline-no">&nbsp;</span>
1439
- <span class="cline-any cline-no">&nbsp;</span>
1440
- <span class="cline-any cline-no">&nbsp;</span>
1441
- <span class="cline-any cline-no">&nbsp;</span>
1442
- <span class="cline-any cline-no">&nbsp;</span>
1443
- <span class="cline-any cline-no">&nbsp;</span>
1444
- <span class="cline-any cline-no">&nbsp;</span>
1445
- <span class="cline-any cline-no">&nbsp;</span>
1446
- <span class="cline-any cline-no">&nbsp;</span>
1447
- <span class="cline-any cline-no">&nbsp;</span>
1448
- <span class="cline-any cline-no">&nbsp;</span>
1449
- <span class="cline-any cline-no">&nbsp;</span>
1450
- <span class="cline-any cline-no">&nbsp;</span>
1451
- <span class="cline-any cline-no">&nbsp;</span>
1452
- <span class="cline-any cline-no">&nbsp;</span>
1453
- <span class="cline-any cline-no">&nbsp;</span>
1454
- <span class="cline-any cline-no">&nbsp;</span>
1455
- <span class="cline-any cline-no">&nbsp;</span>
1456
- <span class="cline-any cline-no">&nbsp;</span>
1457
- <span class="cline-any cline-no">&nbsp;</span>
1458
- <span class="cline-any cline-no">&nbsp;</span>
1459
- <span class="cline-any cline-no">&nbsp;</span>
1460
- <span class="cline-any cline-no">&nbsp;</span>
1461
- <span class="cline-any cline-no">&nbsp;</span>
1462
- <span class="cline-any cline-no">&nbsp;</span>
1463
- <span class="cline-any cline-no">&nbsp;</span>
1464
- <span class="cline-any cline-no">&nbsp;</span>
1465
- <span class="cline-any cline-no">&nbsp;</span>
1466
- <span class="cline-any cline-no">&nbsp;</span>
1467
- <span class="cline-any cline-no">&nbsp;</span>
1468
- <span class="cline-any cline-no">&nbsp;</span>
1469
- <span class="cline-any cline-no">&nbsp;</span>
1470
- <span class="cline-any cline-no">&nbsp;</span>
1471
- <span class="cline-any cline-no">&nbsp;</span>
1472
- <span class="cline-any cline-no">&nbsp;</span>
1473
- <span class="cline-any cline-no">&nbsp;</span>
1474
- <span class="cline-any cline-no">&nbsp;</span>
1475
- <span class="cline-any cline-no">&nbsp;</span>
1476
- <span class="cline-any cline-no">&nbsp;</span>
1477
- <span class="cline-any cline-no">&nbsp;</span>
1478
- <span class="cline-any cline-no">&nbsp;</span>
1479
- <span class="cline-any cline-no">&nbsp;</span>
1480
- <span class="cline-any cline-no">&nbsp;</span>
1481
- <span class="cline-any cline-no">&nbsp;</span>
1482
- <span class="cline-any cline-no">&nbsp;</span>
1483
- <span class="cline-any cline-no">&nbsp;</span>
1484
- <span class="cline-any cline-no">&nbsp;</span>
1485
- <span class="cline-any cline-no">&nbsp;</span>
1486
- <span class="cline-any cline-no">&nbsp;</span>
1487
- <span class="cline-any cline-no">&nbsp;</span>
1488
- <span class="cline-any cline-no">&nbsp;</span>
1489
- <span class="cline-any cline-no">&nbsp;</span>
1490
- <span class="cline-any cline-no">&nbsp;</span>
1491
- <span class="cline-any cline-no">&nbsp;</span>
1492
- <span class="cline-any cline-no">&nbsp;</span>
1493
- <span class="cline-any cline-no">&nbsp;</span>
1494
- <span class="cline-any cline-no">&nbsp;</span>
1495
- <span class="cline-any cline-no">&nbsp;</span>
1496
- <span class="cline-any cline-no">&nbsp;</span>
1497
- <span class="cline-any cline-no">&nbsp;</span>
1498
- <span class="cline-any cline-no">&nbsp;</span>
1499
- <span class="cline-any cline-no">&nbsp;</span>
1500
- <span class="cline-any cline-no">&nbsp;</span>
1501
- <span class="cline-any cline-no">&nbsp;</span>
1502
- <span class="cline-any cline-no">&nbsp;</span>
1503
- <span class="cline-any cline-no">&nbsp;</span>
1504
- <span class="cline-any cline-no">&nbsp;</span>
1505
- <span class="cline-any cline-no">&nbsp;</span>
1506
- <span class="cline-any cline-no">&nbsp;</span>
1507
- <span class="cline-any cline-no">&nbsp;</span>
1508
- <span class="cline-any cline-no">&nbsp;</span>
1509
- <span class="cline-any cline-no">&nbsp;</span>
1510
- <span class="cline-any cline-no">&nbsp;</span>
1511
- <span class="cline-any cline-no">&nbsp;</span>
1512
- <span class="cline-any cline-no">&nbsp;</span>
1513
- <span class="cline-any cline-no">&nbsp;</span>
1514
- <span class="cline-any cline-no">&nbsp;</span>
1515
- <span class="cline-any cline-no">&nbsp;</span>
1516
- <span class="cline-any cline-no">&nbsp;</span>
1517
- <span class="cline-any cline-no">&nbsp;</span>
1518
- <span class="cline-any cline-no">&nbsp;</span>
1519
- <span class="cline-any cline-no">&nbsp;</span>
1520
- <span class="cline-any cline-no">&nbsp;</span>
1521
- <span class="cline-any cline-no">&nbsp;</span>
1522
- <span class="cline-any cline-no">&nbsp;</span>
1523
- <span class="cline-any cline-no">&nbsp;</span>
1524
- <span class="cline-any cline-no">&nbsp;</span>
1525
- <span class="cline-any cline-no">&nbsp;</span>
1526
- <span class="cline-any cline-no">&nbsp;</span>
1527
- <span class="cline-any cline-no">&nbsp;</span>
1528
- <span class="cline-any cline-no">&nbsp;</span>
1529
- <span class="cline-any cline-no">&nbsp;</span>
1530
- <span class="cline-any cline-no">&nbsp;</span>
1531
- <span class="cline-any cline-no">&nbsp;</span>
1532
- <span class="cline-any cline-no">&nbsp;</span>
1533
- <span class="cline-any cline-no">&nbsp;</span>
1534
- <span class="cline-any cline-no">&nbsp;</span>
1535
- <span class="cline-any cline-no">&nbsp;</span>
1536
- <span class="cline-any cline-no">&nbsp;</span>
1537
- <span class="cline-any cline-no">&nbsp;</span>
1538
- <span class="cline-any cline-no">&nbsp;</span>
1539
- <span class="cline-any cline-no">&nbsp;</span>
1540
- <span class="cline-any cline-no">&nbsp;</span>
1541
- <span class="cline-any cline-no">&nbsp;</span>
1542
- <span class="cline-any cline-no">&nbsp;</span>
1543
- <span class="cline-any cline-no">&nbsp;</span>
1544
- <span class="cline-any cline-no">&nbsp;</span>
1545
- <span class="cline-any cline-no">&nbsp;</span>
1546
- <span class="cline-any cline-no">&nbsp;</span>
1547
- <span class="cline-any cline-no">&nbsp;</span>
1548
- <span class="cline-any cline-no">&nbsp;</span>
1549
- <span class="cline-any cline-no">&nbsp;</span>
1550
- <span class="cline-any cline-no">&nbsp;</span>
1551
- <span class="cline-any cline-no">&nbsp;</span>
1552
- <span class="cline-any cline-no">&nbsp;</span>
1553
- <span class="cline-any cline-no">&nbsp;</span>
1554
- <span class="cline-any cline-no">&nbsp;</span>
1555
- <span class="cline-any cline-no">&nbsp;</span>
1556
- <span class="cline-any cline-no">&nbsp;</span>
1557
- <span class="cline-any cline-no">&nbsp;</span>
1558
- <span class="cline-any cline-no">&nbsp;</span>
1559
- <span class="cline-any cline-no">&nbsp;</span>
1560
- <span class="cline-any cline-no">&nbsp;</span>
1561
- <span class="cline-any cline-no">&nbsp;</span>
1562
- <span class="cline-any cline-no">&nbsp;</span>
1563
- <span class="cline-any cline-no">&nbsp;</span>
1564
- <span class="cline-any cline-no">&nbsp;</span>
1565
- <span class="cline-any cline-no">&nbsp;</span>
1566
- <span class="cline-any cline-no">&nbsp;</span>
1567
- <span class="cline-any cline-no">&nbsp;</span>
1568
- <span class="cline-any cline-no">&nbsp;</span>
1569
- <span class="cline-any cline-no">&nbsp;</span>
1570
- <span class="cline-any cline-no">&nbsp;</span>
1571
- <span class="cline-any cline-no">&nbsp;</span>
1572
- <span class="cline-any cline-no">&nbsp;</span>
1573
- <span class="cline-any cline-no">&nbsp;</span>
1574
- <span class="cline-any cline-no">&nbsp;</span>
1575
- <span class="cline-any cline-no">&nbsp;</span>
1576
- <span class="cline-any cline-no">&nbsp;</span>
1577
- <span class="cline-any cline-no">&nbsp;</span>
1578
- <span class="cline-any cline-no">&nbsp;</span>
1579
- <span class="cline-any cline-no">&nbsp;</span>
1580
- <span class="cline-any cline-no">&nbsp;</span>
1581
- <span class="cline-any cline-no">&nbsp;</span>
1582
- <span class="cline-any cline-no">&nbsp;</span>
1583
- <span class="cline-any cline-no">&nbsp;</span>
1584
- <span class="cline-any cline-no">&nbsp;</span>
1585
- <span class="cline-any cline-no">&nbsp;</span>
1586
- <span class="cline-any cline-no">&nbsp;</span>
1587
- <span class="cline-any cline-no">&nbsp;</span>
1588
- <span class="cline-any cline-no">&nbsp;</span>
1589
- <span class="cline-any cline-no">&nbsp;</span>
1590
- <span class="cline-any cline-no">&nbsp;</span>
1591
- <span class="cline-any cline-no">&nbsp;</span>
1592
- <span class="cline-any cline-no">&nbsp;</span>
1593
- <span class="cline-any cline-no">&nbsp;</span>
1594
- <span class="cline-any cline-no">&nbsp;</span>
1595
- <span class="cline-any cline-no">&nbsp;</span>
1596
- <span class="cline-any cline-no">&nbsp;</span>
1597
- <span class="cline-any cline-no">&nbsp;</span>
1598
- <span class="cline-any cline-no">&nbsp;</span>
1599
- <span class="cline-any cline-no">&nbsp;</span>
1600
- <span class="cline-any cline-no">&nbsp;</span>
1601
- <span class="cline-any cline-yes">4x</span>
1602
- <span class="cline-any cline-yes">4x</span>
1603
- <span class="cline-any cline-yes">4x</span>
1604
- <span class="cline-any cline-yes">4x</span>
1605
- <span class="cline-any cline-yes">4x</span>
1606
- <span class="cline-any cline-yes">4x</span>
1607
- <span class="cline-any cline-yes">4x</span>
1608
- <span class="cline-any cline-yes">4x</span>
1609
- <span class="cline-any cline-yes">4x</span>
1610
- <span class="cline-any cline-yes">4x</span>
1611
- <span class="cline-any cline-no">&nbsp;</span>
1612
- <span class="cline-any cline-no">&nbsp;</span>
1613
- <span class="cline-any cline-no">&nbsp;</span>
1614
- <span class="cline-any cline-no">&nbsp;</span>
1615
- <span class="cline-any cline-no">&nbsp;</span>
1616
- <span class="cline-any cline-no">&nbsp;</span>
1617
- <span class="cline-any cline-no">&nbsp;</span>
1618
- <span class="cline-any cline-yes">4x</span>
1619
- <span class="cline-any cline-yes">4x</span>
1620
- <span class="cline-any cline-yes">4x</span>
1621
- <span class="cline-any cline-yes">4x</span>
1622
- <span class="cline-any cline-yes">4x</span>
1623
- <span class="cline-any cline-yes">4x</span>
1624
- <span class="cline-any cline-yes">4x</span>
1625
- <span class="cline-any cline-yes">4x</span>
1626
- <span class="cline-any cline-no">&nbsp;</span>
1627
- <span class="cline-any cline-no">&nbsp;</span>
1628
- <span class="cline-any cline-no">&nbsp;</span>
1629
- <span class="cline-any cline-no">&nbsp;</span>
1630
- <span class="cline-any cline-yes">4x</span>
1631
- <span class="cline-any cline-no">&nbsp;</span>
1632
- <span class="cline-any cline-no">&nbsp;</span>
1633
- <span class="cline-any cline-no">&nbsp;</span>
1634
- <span class="cline-any cline-no">&nbsp;</span>
1635
- <span class="cline-any cline-no">&nbsp;</span>
1636
- <span class="cline-any cline-no">&nbsp;</span>
1637
- <span class="cline-any cline-no">&nbsp;</span>
1638
- <span class="cline-any cline-no">&nbsp;</span>
1639
- <span class="cline-any cline-no">&nbsp;</span>
1640
- <span class="cline-any cline-no">&nbsp;</span>
1641
- <span class="cline-any cline-no">&nbsp;</span>
1642
- <span class="cline-any cline-no">&nbsp;</span>
1643
- <span class="cline-any cline-no">&nbsp;</span>
1644
- <span class="cline-any cline-no">&nbsp;</span>
1645
- <span class="cline-any cline-no">&nbsp;</span>
1646
- <span class="cline-any cline-yes">4x</span>
1647
- <span class="cline-any cline-yes">1x</span>
1648
- <span class="cline-any cline-yes">1x</span>
1649
- <span class="cline-any cline-no">&nbsp;</span>
1650
- <span class="cline-any cline-no">&nbsp;</span>
1651
- <span class="cline-any cline-no">&nbsp;</span>
1652
- <span class="cline-any cline-no">&nbsp;</span>
1653
- <span class="cline-any cline-no">&nbsp;</span>
1654
- <span class="cline-any cline-no">&nbsp;</span>
1655
- <span class="cline-any cline-no">&nbsp;</span>
1656
- <span class="cline-any cline-no">&nbsp;</span>
1657
- <span class="cline-any cline-no">&nbsp;</span>
1658
- <span class="cline-any cline-no">&nbsp;</span>
1659
- <span class="cline-any cline-no">&nbsp;</span>
1660
- <span class="cline-any cline-no">&nbsp;</span>
1661
- <span class="cline-any cline-no">&nbsp;</span>
1662
- <span class="cline-any cline-no">&nbsp;</span>
1663
- <span class="cline-any cline-no">&nbsp;</span>
1664
- <span class="cline-any cline-no">&nbsp;</span>
1665
- <span class="cline-any cline-no">&nbsp;</span>
1666
- <span class="cline-any cline-no">&nbsp;</span>
1667
- <span class="cline-any cline-no">&nbsp;</span>
1668
- <span class="cline-any cline-no">&nbsp;</span>
1669
- <span class="cline-any cline-no">&nbsp;</span>
1670
- <span class="cline-any cline-no">&nbsp;</span>
1671
- <span class="cline-any cline-no">&nbsp;</span>
1672
- <span class="cline-any cline-no">&nbsp;</span>
1673
- <span class="cline-any cline-no">&nbsp;</span>
1674
- <span class="cline-any cline-no">&nbsp;</span>
1675
- <span class="cline-any cline-no">&nbsp;</span>
1676
- <span class="cline-any cline-no">&nbsp;</span>
1677
- <span class="cline-any cline-no">&nbsp;</span>
1678
- <span class="cline-any cline-no">&nbsp;</span>
1679
- <span class="cline-any cline-no">&nbsp;</span>
1680
- <span class="cline-any cline-yes">1x</span>
1681
- <span class="cline-any cline-yes">1x</span>
1682
- <span class="cline-any cline-no">&nbsp;</span>
1683
- <span class="cline-any cline-no">&nbsp;</span>
1684
- <span class="cline-any cline-no">&nbsp;</span>
1685
- <span class="cline-any cline-no">&nbsp;</span>
1686
- <span class="cline-any cline-no">&nbsp;</span>
1687
- <span class="cline-any cline-no">&nbsp;</span>
1688
- <span class="cline-any cline-no">&nbsp;</span>
1689
- <span class="cline-any cline-no">&nbsp;</span>
1690
- <span class="cline-any cline-no">&nbsp;</span>
1691
- <span class="cline-any cline-no">&nbsp;</span>
1692
- <span class="cline-any cline-no">&nbsp;</span>
1693
- <span class="cline-any cline-no">&nbsp;</span>
1694
- <span class="cline-any cline-no">&nbsp;</span>
1695
- <span class="cline-any cline-no">&nbsp;</span>
1696
- <span class="cline-any cline-no">&nbsp;</span>
1697
- <span class="cline-any cline-no">&nbsp;</span>
1698
- <span class="cline-any cline-no">&nbsp;</span>
1699
- <span class="cline-any cline-no">&nbsp;</span>
1700
- <span class="cline-any cline-no">&nbsp;</span>
1701
- <span class="cline-any cline-no">&nbsp;</span>
1702
- <span class="cline-any cline-no">&nbsp;</span>
1703
- <span class="cline-any cline-no">&nbsp;</span>
1704
- <span class="cline-any cline-no">&nbsp;</span>
1705
- <span class="cline-any cline-no">&nbsp;</span>
1706
- <span class="cline-any cline-no">&nbsp;</span>
1707
- <span class="cline-any cline-no">&nbsp;</span>
1708
- <span class="cline-any cline-no">&nbsp;</span>
1709
- <span class="cline-any cline-no">&nbsp;</span>
1710
- <span class="cline-any cline-no">&nbsp;</span>
1711
- <span class="cline-any cline-no">&nbsp;</span>
1712
- <span class="cline-any cline-no">&nbsp;</span>
1713
- <span class="cline-any cline-no">&nbsp;</span>
1714
- <span class="cline-any cline-no">&nbsp;</span>
1715
- <span class="cline-any cline-no">&nbsp;</span>
1716
- <span class="cline-any cline-no">&nbsp;</span>
1717
- <span class="cline-any cline-yes">1x</span>
1718
- <span class="cline-any cline-yes">1x</span>
1719
- <span class="cline-any cline-no">&nbsp;</span>
1720
- <span class="cline-any cline-no">&nbsp;</span>
1721
- <span class="cline-any cline-no">&nbsp;</span>
1722
- <span class="cline-any cline-no">&nbsp;</span>
1723
- <span class="cline-any cline-no">&nbsp;</span>
1724
- <span class="cline-any cline-no">&nbsp;</span>
1725
- <span class="cline-any cline-no">&nbsp;</span>
1726
- <span class="cline-any cline-no">&nbsp;</span>
1727
- <span class="cline-any cline-no">&nbsp;</span>
1728
- <span class="cline-any cline-no">&nbsp;</span>
1729
- <span class="cline-any cline-no">&nbsp;</span>
1730
- <span class="cline-any cline-no">&nbsp;</span>
1731
- <span class="cline-any cline-no">&nbsp;</span>
1732
- <span class="cline-any cline-no">&nbsp;</span>
1733
- <span class="cline-any cline-no">&nbsp;</span>
1734
- <span class="cline-any cline-no">&nbsp;</span>
1735
- <span class="cline-any cline-no">&nbsp;</span>
1736
- <span class="cline-any cline-no">&nbsp;</span>
1737
- <span class="cline-any cline-no">&nbsp;</span>
1738
- <span class="cline-any cline-no">&nbsp;</span>
1739
- <span class="cline-any cline-no">&nbsp;</span>
1740
- <span class="cline-any cline-no">&nbsp;</span>
1741
- <span class="cline-any cline-no">&nbsp;</span>
1742
- <span class="cline-any cline-no">&nbsp;</span>
1743
- <span class="cline-any cline-no">&nbsp;</span>
1744
- <span class="cline-any cline-no">&nbsp;</span>
1745
- <span class="cline-any cline-no">&nbsp;</span>
1746
- <span class="cline-any cline-yes">1x</span>
1747
- <span class="cline-any cline-yes">1x</span>
1748
- <span class="cline-any cline-no">&nbsp;</span>
1749
- <span class="cline-any cline-no">&nbsp;</span>
1750
- <span class="cline-any cline-no">&nbsp;</span>
1751
- <span class="cline-any cline-no">&nbsp;</span>
1752
- <span class="cline-any cline-no">&nbsp;</span>
1753
- <span class="cline-any cline-no">&nbsp;</span>
1754
- <span class="cline-any cline-no">&nbsp;</span>
1755
- <span class="cline-any cline-no">&nbsp;</span>
1756
- <span class="cline-any cline-no">&nbsp;</span>
1757
- <span class="cline-any cline-no">&nbsp;</span>
1758
- <span class="cline-any cline-no">&nbsp;</span>
1759
- <span class="cline-any cline-no">&nbsp;</span>
1760
- <span class="cline-any cline-no">&nbsp;</span>
1761
- <span class="cline-any cline-no">&nbsp;</span>
1762
- <span class="cline-any cline-no">&nbsp;</span>
1763
- <span class="cline-any cline-no">&nbsp;</span>
1764
- <span class="cline-any cline-no">&nbsp;</span>
1765
- <span class="cline-any cline-no">&nbsp;</span>
1766
- <span class="cline-any cline-no">&nbsp;</span>
1767
- <span class="cline-any cline-no">&nbsp;</span>
1768
- <span class="cline-any cline-no">&nbsp;</span>
1769
- <span class="cline-any cline-no">&nbsp;</span>
1770
- <span class="cline-any cline-no">&nbsp;</span>
1771
- <span class="cline-any cline-no">&nbsp;</span>
1772
- <span class="cline-any cline-no">&nbsp;</span>
1773
- <span class="cline-any cline-no">&nbsp;</span>
1774
- <span class="cline-any cline-no">&nbsp;</span>
1775
- <span class="cline-any cline-no">&nbsp;</span>
1776
- <span class="cline-any cline-no">&nbsp;</span>
1777
- <span class="cline-any cline-no">&nbsp;</span>
1778
- <span class="cline-any cline-no">&nbsp;</span>
1779
- <span class="cline-any cline-no">&nbsp;</span>
1780
- <span class="cline-any cline-no">&nbsp;</span>
1781
- <span class="cline-any cline-no">&nbsp;</span>
1782
- <span class="cline-any cline-no">&nbsp;</span>
1783
- <span class="cline-any cline-no">&nbsp;</span>
1784
- <span class="cline-any cline-no">&nbsp;</span>
1785
- <span class="cline-any cline-no">&nbsp;</span>
1786
- <span class="cline-any cline-yes">1x</span>
1787
- <span class="cline-any cline-yes">1x</span>
1788
- <span class="cline-any cline-no">&nbsp;</span>
1789
- <span class="cline-any cline-no">&nbsp;</span>
1790
- <span class="cline-any cline-no">&nbsp;</span>
1791
- <span class="cline-any cline-no">&nbsp;</span>
1792
- <span class="cline-any cline-no">&nbsp;</span>
1793
- <span class="cline-any cline-no">&nbsp;</span>
1794
- <span class="cline-any cline-no">&nbsp;</span>
1795
- <span class="cline-any cline-no">&nbsp;</span>
1796
- <span class="cline-any cline-no">&nbsp;</span>
1797
- <span class="cline-any cline-no">&nbsp;</span>
1798
- <span class="cline-any cline-no">&nbsp;</span>
1799
- <span class="cline-any cline-no">&nbsp;</span>
1800
- <span class="cline-any cline-no">&nbsp;</span>
1801
- <span class="cline-any cline-no">&nbsp;</span>
1802
- <span class="cline-any cline-no">&nbsp;</span>
1803
- <span class="cline-any cline-no">&nbsp;</span>
1804
- <span class="cline-any cline-no">&nbsp;</span>
1805
- <span class="cline-any cline-no">&nbsp;</span>
1806
- <span class="cline-any cline-no">&nbsp;</span>
1807
- <span class="cline-any cline-no">&nbsp;</span>
1808
- <span class="cline-any cline-no">&nbsp;</span>
1809
- <span class="cline-any cline-no">&nbsp;</span>
1810
- <span class="cline-any cline-no">&nbsp;</span>
1811
- <span class="cline-any cline-no">&nbsp;</span>
1812
- <span class="cline-any cline-no">&nbsp;</span>
1813
- <span class="cline-any cline-no">&nbsp;</span>
1814
- <span class="cline-any cline-no">&nbsp;</span>
1815
- <span class="cline-any cline-no">&nbsp;</span>
1816
- <span class="cline-any cline-no">&nbsp;</span>
1817
- <span class="cline-any cline-no">&nbsp;</span>
1818
- <span class="cline-any cline-no">&nbsp;</span>
1819
- <span class="cline-any cline-no">&nbsp;</span>
1820
- <span class="cline-any cline-no">&nbsp;</span>
1821
- <span class="cline-any cline-no">&nbsp;</span>
1822
- <span class="cline-any cline-no">&nbsp;</span>
1823
- <span class="cline-any cline-no">&nbsp;</span>
1824
- <span class="cline-any cline-no">&nbsp;</span>
1825
- <span class="cline-any cline-no">&nbsp;</span>
1826
- <span class="cline-any cline-no">&nbsp;</span>
1827
- <span class="cline-any cline-no">&nbsp;</span>
1828
- <span class="cline-any cline-no">&nbsp;</span>
1829
- <span class="cline-any cline-no">&nbsp;</span>
1830
- <span class="cline-any cline-no">&nbsp;</span>
1831
- <span class="cline-any cline-no">&nbsp;</span>
1832
- <span class="cline-any cline-no">&nbsp;</span>
1833
- <span class="cline-any cline-no">&nbsp;</span>
1834
- <span class="cline-any cline-no">&nbsp;</span>
1835
- <span class="cline-any cline-no">&nbsp;</span>
1836
- <span class="cline-any cline-no">&nbsp;</span>
1837
- <span class="cline-any cline-no">&nbsp;</span>
1838
- <span class="cline-any cline-no">&nbsp;</span>
1839
- <span class="cline-any cline-no">&nbsp;</span>
1840
- <span class="cline-any cline-no">&nbsp;</span>
1841
- <span class="cline-any cline-no">&nbsp;</span>
1842
- <span class="cline-any cline-no">&nbsp;</span>
1843
- <span class="cline-any cline-no">&nbsp;</span>
1844
- <span class="cline-any cline-no">&nbsp;</span>
1845
- <span class="cline-any cline-no">&nbsp;</span>
1846
- <span class="cline-any cline-no">&nbsp;</span>
1847
- <span class="cline-any cline-no">&nbsp;</span>
1848
- <span class="cline-any cline-no">&nbsp;</span>
1849
- <span class="cline-any cline-no">&nbsp;</span>
1850
- <span class="cline-any cline-no">&nbsp;</span>
1851
- <span class="cline-any cline-no">&nbsp;</span>
1852
- <span class="cline-any cline-no">&nbsp;</span>
1853
- <span class="cline-any cline-no">&nbsp;</span>
1854
- <span class="cline-any cline-no">&nbsp;</span>
1855
- <span class="cline-any cline-no">&nbsp;</span>
1856
- <span class="cline-any cline-no">&nbsp;</span>
1857
- <span class="cline-any cline-no">&nbsp;</span>
1858
- <span class="cline-any cline-no">&nbsp;</span>
1859
- <span class="cline-any cline-no">&nbsp;</span>
1860
- <span class="cline-any cline-no">&nbsp;</span>
1861
- <span class="cline-any cline-no">&nbsp;</span>
1862
- <span class="cline-any cline-no">&nbsp;</span>
1863
- <span class="cline-any cline-no">&nbsp;</span>
1864
- <span class="cline-any cline-no">&nbsp;</span>
1865
- <span class="cline-any cline-no">&nbsp;</span>
1866
- <span class="cline-any cline-no">&nbsp;</span>
1867
- <span class="cline-any cline-no">&nbsp;</span>
1868
- <span class="cline-any cline-no">&nbsp;</span>
1869
- <span class="cline-any cline-no">&nbsp;</span>
1870
- <span class="cline-any cline-no">&nbsp;</span>
1871
- <span class="cline-any cline-no">&nbsp;</span>
1872
- <span class="cline-any cline-no">&nbsp;</span>
1873
- <span class="cline-any cline-no">&nbsp;</span>
1874
- <span class="cline-any cline-no">&nbsp;</span>
1875
- <span class="cline-any cline-no">&nbsp;</span>
1876
- <span class="cline-any cline-no">&nbsp;</span>
1877
- <span class="cline-any cline-no">&nbsp;</span>
1878
- <span class="cline-any cline-no">&nbsp;</span>
1879
- <span class="cline-any cline-no">&nbsp;</span>
1880
- <span class="cline-any cline-no">&nbsp;</span>
1881
- <span class="cline-any cline-no">&nbsp;</span>
1882
- <span class="cline-any cline-no">&nbsp;</span>
1883
- <span class="cline-any cline-no">&nbsp;</span>
1884
- <span class="cline-any cline-no">&nbsp;</span>
1885
- <span class="cline-any cline-no">&nbsp;</span>
1886
- <span class="cline-any cline-no">&nbsp;</span>
1887
- <span class="cline-any cline-no">&nbsp;</span>
1888
- <span class="cline-any cline-no">&nbsp;</span>
1889
- <span class="cline-any cline-no">&nbsp;</span>
1890
- <span class="cline-any cline-no">&nbsp;</span>
1891
- <span class="cline-any cline-no">&nbsp;</span>
1892
- <span class="cline-any cline-no">&nbsp;</span>
1893
- <span class="cline-any cline-yes">1x</span>
1894
- <span class="cline-any cline-yes">1x</span>
1895
- <span class="cline-any cline-yes">1x</span>
1896
- <span class="cline-any cline-yes">1x</span>
1897
- <span class="cline-any cline-yes">1x</span>
1898
- <span class="cline-any cline-yes">1x</span>
1899
- <span class="cline-any cline-yes">1x</span>
1900
- <span class="cline-any cline-yes">1x</span>
1901
- <span class="cline-any cline-yes">1x</span>
1902
- <span class="cline-any cline-yes">1x</span>
1903
- <span class="cline-any cline-yes">1x</span>
1904
- <span class="cline-any cline-yes">1x</span>
1905
- <span class="cline-any cline-yes">1x</span>
1906
- <span class="cline-any cline-yes">1x</span>
1907
- <span class="cline-any cline-yes">1x</span>
1908
- <span class="cline-any cline-yes">1x</span>
1909
- <span class="cline-any cline-yes">1x</span>
1910
- <span class="cline-any cline-yes">1x</span>
1911
- <span class="cline-any cline-yes">1x</span>
1912
- <span class="cline-any cline-yes">1x</span>
1913
- <span class="cline-any cline-yes">1x</span>
1914
- <span class="cline-any cline-yes">1x</span>
1915
- <span class="cline-any cline-no">&nbsp;</span>
1916
- <span class="cline-any cline-no">&nbsp;</span>
1917
- <span class="cline-any cline-no">&nbsp;</span>
1918
- <span class="cline-any cline-no">&nbsp;</span>
1919
- <span class="cline-any cline-no">&nbsp;</span>
1920
- <span class="cline-any cline-no">&nbsp;</span>
1921
- <span class="cline-any cline-no">&nbsp;</span>
1922
- <span class="cline-any cline-no">&nbsp;</span>
1923
- <span class="cline-any cline-no">&nbsp;</span>
1924
- <span class="cline-any cline-no">&nbsp;</span>
1925
- <span class="cline-any cline-no">&nbsp;</span>
1926
- <span class="cline-any cline-no">&nbsp;</span>
1927
- <span class="cline-any cline-no">&nbsp;</span>
1928
- <span class="cline-any cline-no">&nbsp;</span>
1929
- <span class="cline-any cline-no">&nbsp;</span>
1930
- <span class="cline-any cline-no">&nbsp;</span>
1931
- <span class="cline-any cline-yes">1x</span>
1932
- <span class="cline-any cline-yes">1x</span>
1933
- <span class="cline-any cline-no">&nbsp;</span>
1934
- <span class="cline-any cline-no">&nbsp;</span>
1935
- <span class="cline-any cline-no">&nbsp;</span>
1936
- <span class="cline-any cline-no">&nbsp;</span>
1937
- <span class="cline-any cline-no">&nbsp;</span>
1938
- <span class="cline-any cline-no">&nbsp;</span>
1939
- <span class="cline-any cline-no">&nbsp;</span>
1940
- <span class="cline-any cline-no">&nbsp;</span>
1941
- <span class="cline-any cline-no">&nbsp;</span>
1942
- <span class="cline-any cline-no">&nbsp;</span>
1943
- <span class="cline-any cline-no">&nbsp;</span>
1944
- <span class="cline-any cline-no">&nbsp;</span>
1945
- <span class="cline-any cline-no">&nbsp;</span>
1946
- <span class="cline-any cline-no">&nbsp;</span>
1947
- <span class="cline-any cline-yes">1x</span>
1948
- <span class="cline-any cline-yes">1x</span>
1949
- <span class="cline-any cline-no">&nbsp;</span>
1950
- <span class="cline-any cline-no">&nbsp;</span>
1951
- <span class="cline-any cline-no">&nbsp;</span>
1952
- <span class="cline-any cline-no">&nbsp;</span>
1953
- <span class="cline-any cline-no">&nbsp;</span>
1954
- <span class="cline-any cline-no">&nbsp;</span>
1955
- <span class="cline-any cline-no">&nbsp;</span>
1956
- <span class="cline-any cline-no">&nbsp;</span>
1957
- <span class="cline-any cline-no">&nbsp;</span>
1958
- <span class="cline-any cline-no">&nbsp;</span>
1959
- <span class="cline-any cline-no">&nbsp;</span>
1960
- <span class="cline-any cline-no">&nbsp;</span>
1961
- <span class="cline-any cline-no">&nbsp;</span>
1962
- <span class="cline-any cline-no">&nbsp;</span>
1963
- <span class="cline-any cline-no">&nbsp;</span>
1964
- <span class="cline-any cline-no">&nbsp;</span>
1965
- <span class="cline-any cline-no">&nbsp;</span>
1966
- <span class="cline-any cline-no">&nbsp;</span>
1967
- <span class="cline-any cline-no">&nbsp;</span>
1968
- <span class="cline-any cline-no">&nbsp;</span>
1969
- <span class="cline-any cline-no">&nbsp;</span>
1970
- <span class="cline-any cline-no">&nbsp;</span>
1971
- <span class="cline-any cline-no">&nbsp;</span>
1972
- <span class="cline-any cline-no">&nbsp;</span>
1973
- <span class="cline-any cline-no">&nbsp;</span>
1974
- <span class="cline-any cline-no">&nbsp;</span>
1975
- <span class="cline-any cline-no">&nbsp;</span>
1976
- <span class="cline-any cline-no">&nbsp;</span>
1977
- <span class="cline-any cline-no">&nbsp;</span>
1978
- <span class="cline-any cline-no">&nbsp;</span>
1979
- <span class="cline-any cline-no">&nbsp;</span>
1980
- <span class="cline-any cline-no">&nbsp;</span>
1981
- <span class="cline-any cline-no">&nbsp;</span>
1982
- <span class="cline-any cline-no">&nbsp;</span>
1983
- <span class="cline-any cline-no">&nbsp;</span>
1984
- <span class="cline-any cline-no">&nbsp;</span>
1985
- <span class="cline-any cline-no">&nbsp;</span>
1986
- <span class="cline-any cline-no">&nbsp;</span>
1987
- <span class="cline-any cline-no">&nbsp;</span>
1988
- <span class="cline-any cline-no">&nbsp;</span>
1989
- <span class="cline-any cline-no">&nbsp;</span>
1990
- <span class="cline-any cline-no">&nbsp;</span>
1991
- <span class="cline-any cline-no">&nbsp;</span>
1992
- <span class="cline-any cline-no">&nbsp;</span>
1993
- <span class="cline-any cline-no">&nbsp;</span>
1994
- <span class="cline-any cline-no">&nbsp;</span>
1995
- <span class="cline-any cline-no">&nbsp;</span>
1996
- <span class="cline-any cline-no">&nbsp;</span>
1997
- <span class="cline-any cline-no">&nbsp;</span>
1998
- <span class="cline-any cline-no">&nbsp;</span>
1999
- <span class="cline-any cline-no">&nbsp;</span>
2000
- <span class="cline-any cline-no">&nbsp;</span>
2001
- <span class="cline-any cline-no">&nbsp;</span>
2002
- <span class="cline-any cline-no">&nbsp;</span>
2003
- <span class="cline-any cline-no">&nbsp;</span>
2004
- <span class="cline-any cline-no">&nbsp;</span>
2005
- <span class="cline-any cline-no">&nbsp;</span>
2006
- <span class="cline-any cline-no">&nbsp;</span>
2007
- <span class="cline-any cline-no">&nbsp;</span>
2008
- <span class="cline-any cline-no">&nbsp;</span>
2009
- <span class="cline-any cline-no">&nbsp;</span>
2010
- <span class="cline-any cline-no">&nbsp;</span>
2011
- <span class="cline-any cline-no">&nbsp;</span>
2012
- <span class="cline-any cline-no">&nbsp;</span>
2013
- <span class="cline-any cline-no">&nbsp;</span>
2014
- <span class="cline-any cline-no">&nbsp;</span>
2015
- <span class="cline-any cline-no">&nbsp;</span>
2016
- <span class="cline-any cline-no">&nbsp;</span>
2017
- <span class="cline-any cline-no">&nbsp;</span>
2018
- <span class="cline-any cline-no">&nbsp;</span>
2019
- <span class="cline-any cline-no">&nbsp;</span>
2020
- <span class="cline-any cline-no">&nbsp;</span>
2021
- <span class="cline-any cline-no">&nbsp;</span>
2022
- <span class="cline-any cline-no">&nbsp;</span>
2023
- <span class="cline-any cline-no">&nbsp;</span>
2024
- <span class="cline-any cline-no">&nbsp;</span>
2025
- <span class="cline-any cline-no">&nbsp;</span>
2026
- <span class="cline-any cline-no">&nbsp;</span>
2027
- <span class="cline-any cline-no">&nbsp;</span>
2028
- <span class="cline-any cline-no">&nbsp;</span>
2029
- <span class="cline-any cline-no">&nbsp;</span>
2030
- <span class="cline-any cline-no">&nbsp;</span>
2031
- <span class="cline-any cline-no">&nbsp;</span>
2032
- <span class="cline-any cline-no">&nbsp;</span>
2033
- <span class="cline-any cline-no">&nbsp;</span>
2034
- <span class="cline-any cline-no">&nbsp;</span>
2035
- <span class="cline-any cline-no">&nbsp;</span>
2036
- <span class="cline-any cline-no">&nbsp;</span>
2037
- <span class="cline-any cline-no">&nbsp;</span>
2038
- <span class="cline-any cline-no">&nbsp;</span>
2039
- <span class="cline-any cline-no">&nbsp;</span>
2040
- <span class="cline-any cline-no">&nbsp;</span>
2041
- <span class="cline-any cline-no">&nbsp;</span>
2042
- <span class="cline-any cline-yes">1x</span>
2043
- <span class="cline-any cline-yes">1x</span>
2044
- <span class="cline-any cline-no">&nbsp;</span>
2045
- <span class="cline-any cline-no">&nbsp;</span>
2046
- <span class="cline-any cline-no">&nbsp;</span>
2047
- <span class="cline-any cline-no">&nbsp;</span>
2048
- <span class="cline-any cline-no">&nbsp;</span>
2049
- <span class="cline-any cline-no">&nbsp;</span>
2050
- <span class="cline-any cline-no">&nbsp;</span>
2051
- <span class="cline-any cline-no">&nbsp;</span>
2052
- <span class="cline-any cline-no">&nbsp;</span>
2053
- <span class="cline-any cline-no">&nbsp;</span>
2054
- <span class="cline-any cline-no">&nbsp;</span>
2055
- <span class="cline-any cline-no">&nbsp;</span>
2056
- <span class="cline-any cline-no">&nbsp;</span>
2057
- <span class="cline-any cline-no">&nbsp;</span>
2058
- <span class="cline-any cline-no">&nbsp;</span>
2059
- <span class="cline-any cline-no">&nbsp;</span>
2060
- <span class="cline-any cline-no">&nbsp;</span>
2061
- <span class="cline-any cline-no">&nbsp;</span>
2062
- <span class="cline-any cline-no">&nbsp;</span>
2063
- <span class="cline-any cline-no">&nbsp;</span>
2064
- <span class="cline-any cline-no">&nbsp;</span>
2065
- <span class="cline-any cline-no">&nbsp;</span>
2066
- <span class="cline-any cline-no">&nbsp;</span>
2067
- <span class="cline-any cline-yes">1x</span>
2068
- <span class="cline-any cline-yes">1x</span>
2069
- <span class="cline-any cline-no">&nbsp;</span>
2070
- <span class="cline-any cline-no">&nbsp;</span>
2071
- <span class="cline-any cline-no">&nbsp;</span>
2072
- <span class="cline-any cline-no">&nbsp;</span>
2073
- <span class="cline-any cline-no">&nbsp;</span>
2074
- <span class="cline-any cline-no">&nbsp;</span>
2075
- <span class="cline-any cline-no">&nbsp;</span>
2076
- <span class="cline-any cline-no">&nbsp;</span>
2077
- <span class="cline-any cline-no">&nbsp;</span>
2078
- <span class="cline-any cline-no">&nbsp;</span>
2079
- <span class="cline-any cline-yes">1x</span>
2080
- <span class="cline-any cline-yes">1x</span>
2081
- <span class="cline-any cline-no">&nbsp;</span>
2082
- <span class="cline-any cline-no">&nbsp;</span>
2083
- <span class="cline-any cline-no">&nbsp;</span>
2084
- <span class="cline-any cline-no">&nbsp;</span>
2085
- <span class="cline-any cline-no">&nbsp;</span>
2086
- <span class="cline-any cline-no">&nbsp;</span>
2087
- <span class="cline-any cline-no">&nbsp;</span>
2088
- <span class="cline-any cline-no">&nbsp;</span>
2089
- <span class="cline-any cline-no">&nbsp;</span>
2090
- <span class="cline-any cline-no">&nbsp;</span>
2091
- <span class="cline-any cline-no">&nbsp;</span>
2092
- <span class="cline-any cline-no">&nbsp;</span>
2093
- <span class="cline-any cline-no">&nbsp;</span>
2094
- <span class="cline-any cline-no">&nbsp;</span>
2095
- <span class="cline-any cline-no">&nbsp;</span>
2096
- <span class="cline-any cline-no">&nbsp;</span>
2097
- <span class="cline-any cline-yes">1x</span>
2098
- <span class="cline-any cline-yes">1x</span>
2099
- <span class="cline-any cline-yes">1x</span>
2100
- <span class="cline-any cline-yes">1x</span>
2101
- <span class="cline-any cline-yes">1x</span>
2102
- <span class="cline-any cline-yes">1x</span>
2103
- <span class="cline-any cline-yes">1x</span>
2104
- <span class="cline-any cline-yes">1x</span>
2105
- <span class="cline-any cline-yes">1x</span>
2106
- <span class="cline-any cline-yes">1x</span>
2107
- <span class="cline-any cline-yes">1x</span>
2108
- <span class="cline-any cline-yes">1x</span>
2109
- <span class="cline-any cline-yes">1x</span>
2110
- <span class="cline-any cline-yes">1x</span>
2111
- <span class="cline-any cline-yes">1x</span>
2112
- <span class="cline-any cline-yes">1x</span>
2113
- <span class="cline-any cline-yes">1x</span>
2114
- <span class="cline-any cline-yes">1x</span>
2115
- <span class="cline-any cline-yes">1x</span>
2116
- <span class="cline-any cline-yes">1x</span>
2117
- <span class="cline-any cline-yes">1x</span>
2118
- <span class="cline-any cline-yes">1x</span>
2119
- <span class="cline-any cline-yes">1x</span>
2120
- <span class="cline-any cline-yes">1x</span>
2121
- <span class="cline-any cline-yes">1x</span>
2122
- <span class="cline-any cline-yes">1x</span>
2123
- <span class="cline-any cline-yes">1x</span>
2124
- <span class="cline-any cline-yes">1x</span>
2125
- <span class="cline-any cline-yes">1x</span>
2126
- <span class="cline-any cline-yes">1x</span>
2127
- <span class="cline-any cline-yes">1x</span>
2128
- <span class="cline-any cline-yes">1x</span>
2129
- <span class="cline-any cline-yes">1x</span>
2130
- <span class="cline-any cline-yes">1x</span>
2131
- <span class="cline-any cline-yes">1x</span>
2132
- <span class="cline-any cline-yes">1x</span>
2133
- <span class="cline-any cline-yes">1x</span>
2134
- <span class="cline-any cline-yes">1x</span>
2135
- <span class="cline-any cline-yes">1x</span>
2136
- <span class="cline-any cline-yes">1x</span>
2137
- <span class="cline-any cline-yes">1x</span>
2138
- <span class="cline-any cline-yes">1x</span>
2139
- <span class="cline-any cline-yes">1x</span>
2140
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">&nbsp;
2141
- import * as SocketIO from 'socket.io';
2142
- &nbsp;
2143
- import {
2144
- DyFM_AnyError, DyFM_Array, DyFM_Error, DyFM_Error_Settings, DyFM_errorFlag, DyFM_Log
2145
- } from '@futdevpro/fsm-dynamo';
2146
- &nbsp;
2147
- &nbsp;
2148
- import {
2149
- DyFM_SocketEvent,
2150
- DyFM_SocketEvent_Key, DyFM_SocketEventPreprocessTask, DyFM_SocketEventTask
2151
- } from '@futdevpro/fsm-dynamo/socket';
2152
- &nbsp;
2153
- import { DyNTS_global_settings } from '../../../_collections/global-settings.const';
2154
- import { DyNTS_SingletonService } from '../../../_services/base/singleton.service';
2155
- import { DyNTS_SocketSecurity } from '../_enums/socket-security.enum';
2156
- import {
2157
- DyNTS_SocketPresence
2158
- } from '../_models/socket-presence.control-model';
2159
- import {
2160
- DyNTS_SocketServerService_Params
2161
- } from '../_models/socket-server-service-params.control-model';
2162
- &nbsp;
2163
- /**
2164
- * You need to define the following functions:
2165
- * ```ts
2166
- * getServiceParams(): DyNTS_SocketServerServiceParams;
2167
- *
2168
- * getIncomingEvents(): DyFM_SocketEvent&lt;any&gt;[];
2169
- *
2170
- * getPresenceFromSubscriptionEventContent(
2171
- * socketSubscription: T_SubscriptionContent,
2172
- * socket: SocketIO.Socket
2173
- * ): Promise&lt;T_Presence&gt;;
2174
- * ```
2175
- */
2176
- export abstract class DyNTS_SocketServerService&lt;
2177
- T_Presence extends DyNTS_SocketPresence = DyNTS_SocketPresence,
2178
- T_SubscriptionContent = any,
2179
- T_ErrorContent = any
2180
- &gt; extends DyNTS_SingletonService {
2181
- &nbsp;
2182
- protected params: DyNTS_SocketServerService_Params;
2183
- <span class="fstat-no" title="function not covered" > get name(): string { return this.params.name; }</span>
2184
- get port(): number { return this.params.port; }
2185
- get security(): DyNTS_SocketSecurity { return this.params.security; }
2186
- <span class="fstat-no" title="function not covered" > get activeSubscriptionsCount(): number { return this.presences.length; }</span>
2187
- &nbsp;
2188
- protected openSocketServer: SocketIO.Server;
2189
- protected secureSocketServer: SocketIO.Server;
2190
- &nbsp;
2191
- /* private connectEvent: DyFM_SocketEvent&lt;SocketIO.Socket&gt;; */
2192
- protected incomingEvents: DyFM_SocketEvent&lt;any&gt;[];
2193
- &nbsp;
2194
- /* private subscriptionEvent: DyFM_SocketEvent&lt;any&gt;; */
2195
- /* private unsubscribeEvent: DyFM_SocketEvent&lt;any&gt;; */
2196
-
2197
- protected presences: T_Presence[] = [];
2198
- &nbsp;
2199
- get logSetup(): boolean { return DyNTS_global_settings.log_settings.setup; }
2200
- get highDetailedLogs(): boolean { return DyNTS_global_settings.log_settings.highDetailedLogs; }
2201
- &nbsp;
2202
- override readonly defaultErrorUserMsg =
2203
- `We encountered an unhandled Socket Server Error, ` +
2204
- `\nplease contact the responsible development team.`;
2205
- &nbsp;
2206
- /* readonly thisLocationStack: string; */
2207
- &nbsp;
2208
- protected constructor(){
2209
- super();
2210
- &nbsp;
2211
- /* this.thisLocationStack = DyNTS_getStackLocation(); */
2212
- &nbsp;
2213
- this.asyncConstructor().catch((error: any) =&gt; {
2214
- <span class="cstat-no" title="statement not covered" > DyFM_Log.error(</span>
2215
- <span class="cstat-no" title="statement not covered" > `Socket Server Service setup failed: "${this.params?.name}" (${this.params?.port})`, </span>
2216
- <span class="cstat-no" title="statement not covered" > error</span>
2217
- <span class="cstat-no" title="statement not covered" > );</span>
2218
- });
2219
- }
2220
- &nbsp;
2221
- /**
2222
- * You need to setup a function that converts subscription event content to presence.
2223
- * You should do authentication and authorization here.
2224
- */
2225
- protected abstract getPresenceFromSubscriptionEventContent(
2226
- socketSubscription: T_SubscriptionContent,
2227
- socket: SocketIO.Socket
2228
- ): Promise&lt;T_Presence&gt;;
2229
- &nbsp;
2230
- private async asyncConstructor(): Promise&lt;void&gt; {
2231
- try {
2232
- this.params = this.getServiceParams();
2233
- this.incomingEvents = this.getIncomingEvents()<span class="branch-0 cbranch-no" title="branch not covered" > ?? [];</span>
2234
- &nbsp;
2235
- await this.prepareEvents();
2236
- &nbsp;
2237
- if (this.logSetup) <span class="branch-0 cbranch-no" title="branch not covered" >console.log(</span>
2238
- <span class="cstat-no" title="statement not covered" > `Socket Server Service setup done: "${this.params.name}" (${this.params.port}) ` +</span>
2239
- <span class="cstat-no" title="statement not covered" > `security: ${this.params.security}\n`</span>
2240
- <span class="cstat-no" title="statement not covered" > );</span>
2241
- } <span class="branch-0 cbranch-no" title="branch not covered" >catch (error) {</span>
2242
- <span class="cstat-no" title="statement not covered" > DyFM_Log.error(</span>
2243
- <span class="cstat-no" title="statement not covered" > `Socket Server Service setup failed: "${this.params?.name}" (${this.params?.port})`, </span>
2244
- <span class="cstat-no" title="statement not covered" > error</span>
2245
- <span class="cstat-no" title="statement not covered" > );</span>
2246
- <span class="cstat-no" title="statement not covered" ></span>
2247
- <span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
2248
- <span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-GPFSRC0`,</span>
2249
- <span class="cstat-no" title="statement not covered" > error: error, </span>
2250
- <span class="cstat-no" title="statement not covered" > });</span>
2251
- <span class="cstat-no" title="statement not covered" > }</span>
2252
- }
2253
- &nbsp;
2254
- /**
2255
- * You must setup events and required services for this function
2256
- */
2257
- private async prepareEvents(): Promise&lt;void&gt; {
2258
- try {
2259
- /** Setup connect event */
2260
- /* const connectEventIndex = this.incomingEvents.findIndex(
2261
- (event: DyFM_SocketEvent&lt;any&gt;) =&gt;
2262
- event.eventKey === DyFM_SocketEvent_Key.connection
2263
- );
2264
- &nbsp;
2265
- if (0 &lt;= connectEventIndex) {
2266
- this.connectEvent = this.incomingEvents.splice(connectEventIndex)[0];
2267
- } else {
2268
- this.connectEvent = new DyFM_SocketEvent({
2269
- eventKey: DyFM_SocketEvent_Key.connection,
2270
- });
2271
- }
2272
- this.connectEvent.serviceName = this.params.name; */
2273
- &nbsp;
2274
- if (!this.getPresenceFromSubscriptionEventContent) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
2275
- <span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
2276
- <span class="cstat-no" title="statement not covered" > error: new Error('getPresenceFromSubscriptionEventContent must be set'),</span>
2277
- <span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-PPE1`,</span>
2278
- <span class="cstat-no" title="statement not covered" > });</span>
2279
- <span class="cstat-no" title="statement not covered" > }</span>
2280
- &nbsp;
2281
- if (!this.getSubscriptionTasks) {
2282
- DyFM_Log.warn(
2283
- `You should not set the subscription event, ` +
2284
- `in case you need additional steps for your subscriptions.`,
2285
- `${this.params.name} (${this.params.port})`
2286
- );
2287
- }
2288
- &nbsp;
2289
- if (this.incomingEvents.find(
2290
- (event: DyFM_SocketEvent&lt;any&gt;) =&gt;
2291
- <span class="cstat-no" title="statement not covered" > event.eventKey === DyFM_SocketEvent_Key.subscribe</span>
2292
- )) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
2293
- <span class="cstat-no" title="statement not covered" > DyFM_Log.warn(</span>
2294
- <span class="cstat-no" title="statement not covered" > `You need to use getSubscriptionTasks() ` +</span>
2295
- <span class="cstat-no" title="statement not covered" > `instead of setting the subscribe event in getIncomingEvents().`,</span>
2296
- <span class="cstat-no" title="statement not covered" > `${this.params.name} (${this.params.port})`</span>
2297
- <span class="cstat-no" title="statement not covered" > );</span>
2298
- <span class="cstat-no" title="statement not covered" > }</span>
2299
- &nbsp;
2300
- if (!this.incomingEvents.find(
2301
- (event: DyFM_SocketEvent&lt;any&gt;) =&gt;
2302
- <span class="cstat-no" title="statement not covered" > event.eventKey === DyFM_SocketEvent_Key.unsubscribe</span>
2303
- )) {
2304
- DyFM_Log.warn(
2305
- `You should not set the unsubscribe event, ` +
2306
- `in case you need additional steps for your unsubscribe.`,
2307
- `${this.params.name} (${this.params.port})`
2308
- );
2309
- }
2310
- &nbsp;
2311
- if (this.incomingEvents.find(
2312
- (event: DyFM_SocketEvent&lt;any&gt;) =&gt; !event.eventKey
2313
- )) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
2314
- <span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
2315
- <span class="cstat-no" title="statement not covered" > error: new Error('eventKey must be set'),</span>
2316
- <span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-PPE2`,</span>
2317
- <span class="cstat-no" title="statement not covered" > });</span>
2318
- <span class="cstat-no" title="statement not covered" > }</span>
2319
- &nbsp;
2320
- this.incomingEvents.push(
2321
- new DyFM_SocketEvent({
2322
- eventKey: DyFM_SocketEvent_Key.disconnect,
2323
- tasks: [
2324
- <span class="fstat-no" title="function not covered" > async (socket: SocketIO.Socket, issuer: string) =&gt; </span>
2325
- this.disconnectBaseTask(socket, issuer),
2326
- ],
2327
- })
2328
- );
2329
-
2330
- if (this.errorHandling) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
2331
- <span class="cstat-no" title="statement not covered" > this.incomingEvents.push(new DyFM_SocketEvent&lt;T_ErrorContent&gt;({</span>
2332
- <span class="cstat-no" title="statement not covered" > serviceName: this.params.name,</span>
2333
- <span class="cstat-no" title="statement not covered" > eventKey: DyFM_SocketEvent_Key.error,</span>
2334
- <span class="cstat-no" title="statement not covered" > tasks: [</span>
2335
- <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" > async (content: any) =&gt; this.errorHandling(content),</span></span>
2336
- <span class="cstat-no" title="statement not covered" > ],</span>
2337
- <span class="cstat-no" title="statement not covered" > }));</span>
2338
- } else {
2339
- DyFM_Log.warn(
2340
- `You should not set the error event, ` +
2341
- `in case you need additional steps for your error.`,
2342
- `${this.params.name} (${this.params.port})`
2343
- );
2344
- &nbsp;
2345
- this.incomingEvents.push(new DyFM_SocketEvent&lt;T_ErrorContent&gt;({
2346
- serviceName: this.params.name,
2347
- eventKey: DyFM_SocketEvent_Key.error,
2348
- tasks: [
2349
- <span class="fstat-no" title="function not covered" > async (content: any) =&gt; {</span>
2350
- <span class="cstat-no" title="statement not covered" > if (content instanceof DyFM_Error) {</span>
2351
- <span class="cstat-no" title="statement not covered" > content.logSimple(`=--&gt; socket-client (${this.params.name}) ERROR`);</span>
2352
- <span class="cstat-no" title="statement not covered" > } else {</span>
2353
- <span class="cstat-no" title="statement not covered" > DyFM_Log.error(`=--&gt; socket-client (${this.params.name}) ERROR:`, content);</span>
2354
- <span class="cstat-no" title="statement not covered" > }</span>
2355
- <span class="cstat-no" title="statement not covered" > }</span>
2356
- ],
2357
- }));
2358
- }
2359
-
2360
- // Merge incoming events of the same eventKey
2361
- const eventKeys = this.incomingEvents.map(
2362
- (event: DyFM_SocketEvent&lt;any&gt;) =&gt; event.eventKey
2363
- ).filter(
2364
- (eventKey: string, index: number, self: string[]) =&gt;
2365
- self.indexOf(eventKey) === index
2366
- );
2367
- const mergedEvents: DyFM_SocketEvent&lt;any&gt;[] = [];
2368
- eventKeys.forEach((eventKey: string) =&gt; {
2369
- const events = this.incomingEvents.filter(
2370
- (event: DyFM_SocketEvent&lt;any&gt;) =&gt; event.eventKey === eventKey
2371
- );
2372
- &nbsp;
2373
- mergedEvents.push(new DyFM_SocketEvent({
2374
- eventKey: eventKey,
2375
- preProcesses: events.map((event: DyFM_SocketEvent&lt;any&gt;) =&gt; event.preProcesses).flat(),
2376
- tasks: events.map((event: DyFM_SocketEvent&lt;any&gt;) =&gt; event.tasks).flat(),
2377
- }));
2378
- });
2379
- this.incomingEvents = mergedEvents;
2380
-
2381
- if (DyNTS_global_settings.log_settings.setup) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
2382
- <span class="cstat-no" title="statement not covered" > DyFM_Log.log(</span>
2383
- <span class="cstat-no" title="statement not covered" > `Socket Server Service - Event Preparation setup done: ` +</span>
2384
- <span class="cstat-no" title="statement not covered" > `"${this.params?.name}" (${this.params?.port})` + </span>
2385
- <span class="cstat-no" title="statement not covered" > `\nincomingEvents:`, this.incomingEvents.map(</span>
2386
- <span class="cstat-no" title="statement not covered" > (event: DyFM_SocketEvent&lt;any&gt;) =&gt; </span>
2387
- <span class="cstat-no" title="statement not covered" > `\n\t"${event.eventKey}": preProcesses: ${event.preProcesses?.length} ` +</span>
2388
- <span class="cstat-no" title="statement not covered" > `tasks: ${event.tasks?.length}`</span>
2389
- <span class="cstat-no" title="statement not covered" > )</span>
2390
- <span class="cstat-no" title="statement not covered" > );</span>
2391
- <span class="cstat-no" title="statement not covered" > }</span>
2392
- &nbsp;
2393
- // Set incoming events serviceName
2394
- this.incomingEvents.forEach((event: DyFM_SocketEvent&lt;any&gt;) =&gt; {
2395
- event.serviceName = this.params.name;
2396
- });
2397
- } <span class="branch-0 cbranch-no" title="branch not covered" >catch (error) {</span>
2398
- <span class="cstat-no" title="statement not covered" > DyFM_Log.error(</span>
2399
- <span class="cstat-no" title="statement not covered" > `Socket Server Service - Event Preparation setup failed: ` +</span>
2400
- <span class="cstat-no" title="statement not covered" > `"${this.params?.name}" (${this.params?.port})`, </span>
2401
- <span class="cstat-no" title="statement not covered" > error</span>
2402
- <span class="cstat-no" title="statement not covered" > );</span>
2403
- <span class="cstat-no" title="statement not covered" ></span>
2404
- <span class="cstat-no" title="statement not covered" > throw error;</span>
2405
- <span class="cstat-no" title="statement not covered" > }</span>
2406
- }
2407
- &nbsp;
2408
- // eslint-disable-next-line max-lines-per-function
2409
- async setupSocketServer(
2410
- newSocketServer: SocketIO.Server,
2411
- security: DyNTS_SocketSecurity.open | DyNTS_SocketSecurity.secure,
2412
- successCallback: () =&gt; void
2413
- ): Promise&lt;SocketIO.Server&gt; {
2414
- try {
2415
- if (this.highDetailedLogs) <span class="branch-0 cbranch-no" title="branch not covered" >console.log('\nfn:. setupSocketServer');</span>
2416
- &nbsp;
2417
- newSocketServer.on(DyFM_SocketEvent_Key.incomingNewConnection, async (socket: SocketIO.Socket) =&gt; {
2418
- <span class="cstat-no" title="statement not covered" > try {</span>
2419
- <span class="cstat-no" title="statement not covered" > let issuer: string;</span>
2420
- <span class="cstat-no" title="statement not covered" ></span>
2421
- <span class="cstat-no" title="statement not covered" > /* await this.connectEvent.executeEventTasks(socket); */</span>
2422
- <span class="cstat-no" title="statement not covered" > </span>
2423
- <span class="cstat-no" title="statement not covered" > await DyFM_Array.asyncForEach(</span>
2424
- <span class="cstat-no" title="statement not covered" > this.incomingEvents.filter(</span>
2425
- <span class="cstat-no" title="statement not covered" > (event: DyFM_SocketEvent&lt;any&gt;) =&gt; </span>
2426
- <span class="cstat-no" title="statement not covered" > event.eventKey === DyFM_SocketEvent_Key.incomingNewConnection</span>
2427
- <span class="cstat-no" title="statement not covered" > ),</span>
2428
- <span class="cstat-no" title="statement not covered" > async (event: DyFM_SocketEvent&lt;any&gt;) =&gt; {</span>
2429
- <span class="cstat-no" title="statement not covered" > await event.executeEventTasks(socket);</span>
2430
- <span class="cstat-no" title="statement not covered" > }</span>
2431
- <span class="cstat-no" title="statement not covered" > );</span>
2432
- <span class="cstat-no" title="statement not covered" ></span>
2433
- <span class="cstat-no" title="statement not covered" ></span>
2434
- <span class="cstat-no" title="statement not covered" > if (this.getPresenceFromSubscriptionEventContent) {</span>
2435
- <span class="cstat-no" title="statement not covered" > socket.on(</span>
2436
- <span class="cstat-no" title="statement not covered" > DyFM_SocketEvent_Key.subscribe, </span>
2437
- <span class="cstat-no" title="statement not covered" > async (content: any) =&gt; {</span>
2438
- <span class="cstat-no" title="statement not covered" > let presence: T_Presence;</span>
2439
- <span class="cstat-no" title="statement not covered" ></span>
2440
- <span class="cstat-no" title="statement not covered" > try {</span>
2441
- <span class="cstat-no" title="statement not covered" > /** </span>
2442
- <span class="cstat-no" title="statement not covered" > * usually socket logs are in event.executeEventTasks(), </span>
2443
- <span class="cstat-no" title="statement not covered" > * but subscribe event is an exception from this, </span>
2444
- <span class="cstat-no" title="statement not covered" > * to be able to check content before getPresenceFromSubscriptionEventContent </span>
2445
- <span class="cstat-no" title="statement not covered" > */</span>
2446
- <span class="cstat-no" title="statement not covered" > if (DyNTS_global_settings.log_settings.socket_eventContent) {</span>
2447
- <span class="cstat-no" title="statement not covered" > DyFM_Log.log(</span>
2448
- <span class="cstat-no" title="statement not covered" > `--=&gt; incoming socket (${this.params.name}) ` +</span>
2449
- <span class="cstat-no" title="statement not covered" > `event: "${DyFM_SocketEvent_Key.subscribe}";` +</span>
2450
- <span class="cstat-no" title="statement not covered" > `\ncontent:`, content</span>
2451
- <span class="cstat-no" title="statement not covered" > );</span>
2452
- <span class="cstat-no" title="statement not covered" > } else {</span>
2453
- <span class="cstat-no" title="statement not covered" > DyFM_Log.log(</span>
2454
- <span class="cstat-no" title="statement not covered" > `--=&gt; incoming socket (${this.params.name}) ` +</span>
2455
- <span class="cstat-no" title="statement not covered" > `event: "${DyFM_SocketEvent_Key.subscribe}"`</span>
2456
- <span class="cstat-no" title="statement not covered" > );</span>
2457
- <span class="cstat-no" title="statement not covered" > }</span>
2458
- <span class="cstat-no" title="statement not covered" ></span>
2459
- <span class="cstat-no" title="statement not covered" > presence = await this.getPresenceFromSubscriptionEventContent(</span>
2460
- <span class="cstat-no" title="statement not covered" > content, socket</span>
2461
- <span class="cstat-no" title="statement not covered" > );</span>
2462
- <span class="cstat-no" title="statement not covered" ></span>
2463
- <span class="cstat-no" title="statement not covered" > presence.serviceName = this.params.name;</span>
2464
- <span class="cstat-no" title="statement not covered" > issuer = presence.issuerLocalId;</span>
2465
- <span class="cstat-no" title="statement not covered" > </span>
2466
- <span class="cstat-no" title="statement not covered" > this.addSocketToPresence(presence);</span>
2467
- <span class="cstat-no" title="statement not covered" > /* await this.subscriptionEvent.executeEventTasks(content, issuer); */</span>
2468
- <span class="cstat-no" title="statement not covered" > </span>
2469
- <span class="cstat-no" title="statement not covered" > if (this.getSubscriptionTasks) {</span>
2470
- <span class="cstat-no" title="statement not covered" > await DyFM_Array.asyncForEach(</span>
2471
- <span class="cstat-no" title="statement not covered" > this.getSubscriptionTasks(), </span>
2472
- <span class="cstat-no" title="statement not covered" > async (task: DyFM_SocketEventTask&lt;T_SubscriptionContent&gt;) =&gt; {</span>
2473
- <span class="cstat-no" title="statement not covered" > await task(content, issuer);</span>
2474
- <span class="cstat-no" title="statement not covered" > }</span>
2475
- <span class="cstat-no" title="statement not covered" > );</span>
2476
- <span class="cstat-no" title="statement not covered" > }</span>
2477
- <span class="cstat-no" title="statement not covered" ></span>
2478
- <span class="cstat-no" title="statement not covered" > socket.emit(</span>
2479
- <span class="cstat-no" title="statement not covered" > DyFM_SocketEvent_Key.subscriptionSuccessful, </span>
2480
- <span class="cstat-no" title="statement not covered" > 'subscribe was successful', </span>
2481
- <span class="cstat-no" title="statement not covered" > error =&gt; {</span>
2482
- <span class="cstat-no" title="statement not covered" > DyFM_Log.error(</span>
2483
- <span class="cstat-no" title="statement not covered" > `Emitting subscriptionSuccessful event failed!` +</span>
2484
- <span class="cstat-no" title="statement not covered" > `\nerror:`, error</span>
2485
- <span class="cstat-no" title="statement not covered" > );</span>
2486
- <span class="cstat-no" title="statement not covered" > }</span>
2487
- <span class="cstat-no" title="statement not covered" > );</span>
2488
- <span class="cstat-no" title="statement not covered" > </span>
2489
- <span class="cstat-no" title="statement not covered" > DyFM_Log.success(</span>
2490
- <span class="cstat-no" title="statement not covered" > `&lt;-==&gt; socket(${this.params.name}) subscription successful (${issuer})`</span>
2491
- <span class="cstat-no" title="statement not covered" > );</span>
2492
- <span class="cstat-no" title="statement not covered" > } catch (error) {</span>
2493
- <span class="cstat-no" title="statement not covered" > if (error instanceof DyFM_Error) {</span>
2494
- <span class="cstat-no" title="statement not covered" > error.logShort(</span>
2495
- <span class="cstat-no" title="statement not covered" > `Socket Subscription failed: "${this.params.name}" ` +</span>
2496
- <span class="cstat-no" title="statement not covered" > `(${this.params.port}) will disconnect now...`</span>
2497
- <span class="cstat-no" title="statement not covered" > )</span>
2498
- <span class="cstat-no" title="statement not covered" > } else if (DyNTS_global_settings.log_settings.socket_eventContent) {</span>
2499
- <span class="cstat-no" title="statement not covered" > DyFM_Log.error(</span>
2500
- <span class="cstat-no" title="statement not covered" > `Socket Subscription failed: "${this.params.name}" ` +</span>
2501
- <span class="cstat-no" title="statement not covered" > `(${this.params.port}) will disconnect now...`, </span>
2502
- <span class="cstat-no" title="statement not covered" > /* `${this.thisLocationStack}`, */</span>
2503
- <span class="cstat-no" title="statement not covered" > error</span>
2504
- <span class="cstat-no" title="statement not covered" > );</span>
2505
- <span class="cstat-no" title="statement not covered" > } else {</span>
2506
- <span class="cstat-no" title="statement not covered" > DyFM_Log.error(</span>
2507
- <span class="cstat-no" title="statement not covered" > `Socket Subscription failed: "${this.params.name}" ` ,</span>
2508
- <span class="cstat-no" title="statement not covered" > `(${this.params.port}) will disconnect now...`,</span>
2509
- <span class="cstat-no" title="statement not covered" > /* `${this.thisLocationStack}` */</span>
2510
- <span class="cstat-no" title="statement not covered" > );</span>
2511
- <span class="cstat-no" title="statement not covered" > }</span>
2512
- <span class="cstat-no" title="statement not covered" > await this.closeSocket(socket, issuer, error);</span>
2513
- <span class="cstat-no" title="statement not covered" > }</span>
2514
- <span class="cstat-no" title="statement not covered" > }</span>
2515
- <span class="cstat-no" title="statement not covered" > );</span>
2516
- <span class="cstat-no" title="statement not covered" > </span>
2517
- <span class="cstat-no" title="statement not covered" > socket.on(</span>
2518
- <span class="cstat-no" title="statement not covered" > DyFM_SocketEvent_Key.unsubscribe, </span>
2519
- <span class="cstat-no" title="statement not covered" > async (issuer: string) =&gt; {</span>
2520
- <span class="cstat-no" title="statement not covered" > try {</span>
2521
- <span class="cstat-no" title="statement not covered" > /** </span>
2522
- <span class="cstat-no" title="statement not covered" > * usually socket logs are in event.executeEventTasks(), </span>
2523
- <span class="cstat-no" title="statement not covered" > * but unsubscribe event is an exception from this, </span>
2524
- <span class="cstat-no" title="statement not covered" > * to be able to check content before getPresenceFromSubscriptionEventContent </span>
2525
- <span class="cstat-no" title="statement not covered" > */</span>
2526
- <span class="cstat-no" title="statement not covered" > if (DyNTS_global_settings.log_settings.socket_eventContent) {</span>
2527
- <span class="cstat-no" title="statement not covered" > DyFM_Log.log(</span>
2528
- <span class="cstat-no" title="statement not covered" > `--=&gt; incoming socket (${this.params.name}) ` +</span>
2529
- <span class="cstat-no" title="statement not covered" > `event: ${DyFM_SocketEvent_Key.unsubscribe};` +</span>
2530
- <span class="cstat-no" title="statement not covered" > `\ncontent:`, issuer</span>
2531
- <span class="cstat-no" title="statement not covered" > );</span>
2532
- <span class="cstat-no" title="statement not covered" > } else {</span>
2533
- <span class="cstat-no" title="statement not covered" > DyFM_Log.log(</span>
2534
- <span class="cstat-no" title="statement not covered" > `--=&gt; incoming socket (${this.params.name}) ` +</span>
2535
- <span class="cstat-no" title="statement not covered" > `event: ${DyFM_SocketEvent_Key.unsubscribe}`</span>
2536
- <span class="cstat-no" title="statement not covered" > );</span>
2537
- <span class="cstat-no" title="statement not covered" > }</span>
2538
- <span class="cstat-no" title="statement not covered" ></span>
2539
- <span class="cstat-no" title="statement not covered" > /* await this.unsubscribeEvent.executeEventTasks(null, issuer); */</span>
2540
- <span class="cstat-no" title="statement not covered" > await DyFM_Array.asyncForEach(</span>
2541
- <span class="cstat-no" title="statement not covered" > this.incomingEvents.filter(</span>
2542
- <span class="cstat-no" title="statement not covered" > (event: DyFM_SocketEvent&lt;any&gt;) =&gt; </span>
2543
- <span class="cstat-no" title="statement not covered" > event.eventKey === DyFM_SocketEvent_Key.unsubscribe</span>
2544
- <span class="cstat-no" title="statement not covered" > ),</span>
2545
- <span class="cstat-no" title="statement not covered" > async (event: DyFM_SocketEvent&lt;any&gt;) =&gt; {</span>
2546
- <span class="cstat-no" title="statement not covered" > await event.executeEventTasks(null, issuer);</span>
2547
- <span class="cstat-no" title="statement not covered" > }</span>
2548
- <span class="cstat-no" title="statement not covered" > );</span>
2549
- <span class="cstat-no" title="statement not covered" > </span>
2550
- <span class="cstat-no" title="statement not covered" > this.removeSubscription(socket, issuer);</span>
2551
- <span class="cstat-no" title="statement not covered" ></span>
2552
- <span class="cstat-no" title="statement not covered" > socket.emit(</span>
2553
- <span class="cstat-no" title="statement not covered" > DyFM_SocketEvent_Key.unsubscribeSuccessful, </span>
2554
- <span class="cstat-no" title="statement not covered" > 'unsubscribe was successful', </span>
2555
- <span class="cstat-no" title="statement not covered" > error =&gt; {</span>
2556
- <span class="cstat-no" title="statement not covered" > DyFM_Log.error(</span>
2557
- <span class="cstat-no" title="statement not covered" > `Emitting unsubscribeSuccessful event failed!` +</span>
2558
- <span class="cstat-no" title="statement not covered" > `\nerror:`, error</span>
2559
- <span class="cstat-no" title="statement not covered" > );</span>
2560
- <span class="cstat-no" title="statement not covered" > }</span>
2561
- <span class="cstat-no" title="statement not covered" > );</span>
2562
- <span class="cstat-no" title="statement not covered" > </span>
2563
- <span class="cstat-no" title="statement not covered" > DyFM_Log.success(</span>
2564
- <span class="cstat-no" title="statement not covered" > `&lt; x &gt; socket(${this.params.name}) unsubscribe successful (${issuer})`</span>
2565
- <span class="cstat-no" title="statement not covered" > );</span>
2566
- <span class="cstat-no" title="statement not covered" > } catch (error) {</span>
2567
- <span class="cstat-no" title="statement not covered" > if (error instanceof DyFM_Error) {</span>
2568
- <span class="cstat-no" title="statement not covered" > error.logSimple(</span>
2569
- <span class="cstat-no" title="statement not covered" > `Socket Unsubscription failed: "${this.params.name}" ` +</span>
2570
- <span class="cstat-no" title="statement not covered" > `(${this.params.port}) will disconnect now...`</span>
2571
- <span class="cstat-no" title="statement not covered" > )</span>
2572
- <span class="cstat-no" title="statement not covered" > } else if (DyNTS_global_settings.log_settings.socket_eventContent) {</span>
2573
- <span class="cstat-no" title="statement not covered" > DyFM_Log.error(</span>
2574
- <span class="cstat-no" title="statement not covered" > `Socket unsubscribe failed: "${this.params.name}" ` ,</span>
2575
- <span class="cstat-no" title="statement not covered" > `(${this.params.port}) will disconnect now...`, </span>
2576
- <span class="cstat-no" title="statement not covered" > error</span>
2577
- <span class="cstat-no" title="statement not covered" > );</span>
2578
- <span class="cstat-no" title="statement not covered" > } else {</span>
2579
- <span class="cstat-no" title="statement not covered" > DyFM_Log.error(</span>
2580
- <span class="cstat-no" title="statement not covered" > `Socket unsubscribe failed: "${this.params.name}" ` ,</span>
2581
- <span class="cstat-no" title="statement not covered" > `(${this.params.port}) will disconnect now...`</span>
2582
- <span class="cstat-no" title="statement not covered" > );</span>
2583
- <span class="cstat-no" title="statement not covered" > }</span>
2584
- <span class="cstat-no" title="statement not covered" > socket.emit(DyFM_SocketEvent_Key.error, error);</span>
2585
- <span class="cstat-no" title="statement not covered" > this.removeSubscription(socket, issuer);</span>
2586
- <span class="cstat-no" title="statement not covered" > }</span>
2587
- <span class="cstat-no" title="statement not covered" > }</span>
2588
- <span class="cstat-no" title="statement not covered" > );</span>
2589
- <span class="cstat-no" title="statement not covered" > }</span>
2590
- <span class="cstat-no" title="statement not covered" ></span>
2591
- <span class="cstat-no" title="statement not covered" > this.incomingEvents.filter(</span>
2592
- <span class="cstat-no" title="statement not covered" > (event: DyFM_SocketEvent&lt;any&gt;) =&gt; </span>
2593
- <span class="cstat-no" title="statement not covered" > event.eventKey !== DyFM_SocketEvent_Key.incomingNewConnection &amp;&amp;</span>
2594
- <span class="cstat-no" title="statement not covered" > event.eventKey !== DyFM_SocketEvent_Key.subscribe &amp;&amp;</span>
2595
- <span class="cstat-no" title="statement not covered" > event.eventKey !== DyFM_SocketEvent_Key.unsubscribe</span>
2596
- <span class="cstat-no" title="statement not covered" > ).forEach((event: DyFM_SocketEvent&lt;any&gt;) =&gt; {</span>
2597
- <span class="cstat-no" title="statement not covered" > socket.on(</span>
2598
- <span class="cstat-no" title="statement not covered" > event.eventKey, </span>
2599
- <span class="cstat-no" title="statement not covered" > async (content: any) =&gt; { </span>
2600
- <span class="cstat-no" title="statement not covered" > try {</span>
2601
- <span class="cstat-no" title="statement not covered" > await event.executeEventTasks(content, issuer);</span>
2602
- <span class="cstat-no" title="statement not covered" > } catch (error) {</span>
2603
- <span class="cstat-no" title="statement not covered" > if (error instanceof DyFM_Error) {</span>
2604
- <span class="cstat-no" title="statement not covered" > error.logSimple(</span>
2605
- <span class="cstat-no" title="statement not covered" > `Socket Event failed: "${this.params.name}" (${this.params.port})`</span>
2606
- <span class="cstat-no" title="statement not covered" > )</span>
2607
- <span class="cstat-no" title="statement not covered" > } else {</span>
2608
- <span class="cstat-no" title="statement not covered" > DyFM_Log.error(</span>
2609
- <span class="cstat-no" title="statement not covered" > `Socket Event failed: "${this.params.name}" (${this.params.port})`, </span>
2610
- <span class="cstat-no" title="statement not covered" > error</span>
2611
- <span class="cstat-no" title="statement not covered" > );</span>
2612
- <span class="cstat-no" title="statement not covered" > }</span>
2613
- <span class="cstat-no" title="statement not covered" > socket.emit(DyFM_SocketEvent_Key.error, error);</span>
2614
- <span class="cstat-no" title="statement not covered" > }</span>
2615
- <span class="cstat-no" title="statement not covered" > }</span>
2616
- <span class="cstat-no" title="statement not covered" > );</span>
2617
- <span class="cstat-no" title="statement not covered" > });</span>
2618
- <span class="cstat-no" title="statement not covered" ></span>
2619
- <span class="cstat-no" title="statement not covered" > if (DyNTS_global_settings.log_settings.socket_mainEvents) {</span>
2620
- <span class="cstat-no" title="statement not covered" > DyFM_Log.success(`&lt; &gt; socket(${this.params.name}): new CONNECTION established`);</span>
2621
- <span class="cstat-no" title="statement not covered" > }</span>
2622
- <span class="cstat-no" title="statement not covered" > } catch (error) {</span>
2623
- <span class="cstat-no" title="statement not covered" > if (error instanceof DyFM_Error) {</span>
2624
- <span class="cstat-no" title="statement not covered" > error.logSimple(</span>
2625
- <span class="cstat-no" title="statement not covered" > `Socket Connection failed: "${this.params.name}" ` +</span>
2626
- <span class="cstat-no" title="statement not covered" > `(${this.params.port}) will disconnect now...`</span>
2627
- <span class="cstat-no" title="statement not covered" > )</span>
2628
- <span class="cstat-no" title="statement not covered" > } else {</span>
2629
- <span class="cstat-no" title="statement not covered" > DyFM_Log.error(</span>
2630
- <span class="cstat-no" title="statement not covered" > `Socket Connection failed: "${this.params.name}" ` +</span>
2631
- <span class="cstat-no" title="statement not covered" > `(${this.params.port}) will disconnect now...`, </span>
2632
- <span class="cstat-no" title="statement not covered" > error</span>
2633
- <span class="cstat-no" title="statement not covered" > );</span>
2634
- <span class="cstat-no" title="statement not covered" > }</span>
2635
- <span class="cstat-no" title="statement not covered" ></span>
2636
- <span class="cstat-no" title="statement not covered" > await this.closeSocket(socket, `${this.params.name} on connection error`, error);</span>
2637
- <span class="cstat-no" title="statement not covered" > }</span>
2638
- });
2639
-
2640
- try {
2641
- newSocketServer.listen(this.params.port);
2642
-
2643
- DyFM_Log.success(
2644
- `\nsocket server setup finished: "${this.params.name}"` +
2645
- `\nsocket server listening on port: "${this.params.port}"`
2646
- );
2647
- } <span class="branch-0 cbranch-no" title="branch not covered" >catch (listenError) {</span>
2648
- <span class="cstat-no" title="statement not covered" > const errorMessage = `Failed to bind socket server "${this.params.name}" to port ${this.params.port}. ` +</span>
2649
- <span class="cstat-no" title="statement not covered" > `This could be due to port already in use or insufficient permissions. ` +</span>
2650
- <span class="cstat-no" title="statement not covered" > `Please ensure the port is available and try again.`;</span>
2651
- <span class="cstat-no" title="statement not covered" > </span>
2652
- <span class="cstat-no" title="statement not covered" > DyFM_Log.error(errorMessage, listenError);</span>
2653
- <span class="cstat-no" title="statement not covered" > throw new Error(errorMessage);</span>
2654
- <span class="cstat-no" title="statement not covered" > }</span>
2655
- &nbsp;
2656
- successCallback();
2657
-
2658
- if (security === DyNTS_SocketSecurity.open) {
2659
- this.openSocketServer = newSocketServer;
2660
- &nbsp;
2661
- return this.openSocketServer;
2662
- }<span class="branch-0 cbranch-no" title="branch not covered" > else {</span>
2663
- <span class="cstat-no" title="statement not covered" > this.secureSocketServer = newSocketServer;</span>
2664
- <span class="cstat-no" title="statement not covered" ></span>
2665
- <span class="cstat-no" title="statement not covered" > return this.secureSocketServer;</span>
2666
- <span class="cstat-no" title="statement not covered" > }</span>
2667
- } <span class="branch-0 cbranch-no" title="branch not covered" >catch (error) {</span>
2668
- <span class="cstat-no" title="statement not covered" > if (error instanceof DyFM_Error) {</span>
2669
- <span class="cstat-no" title="statement not covered" > error.logSimple(</span>
2670
- <span class="cstat-no" title="statement not covered" > `Socket Server Service - Deep Setup failed: "${this.params?.name}" ` +</span>
2671
- <span class="cstat-no" title="statement not covered" > `(${this.params?.port})`</span>
2672
- <span class="cstat-no" title="statement not covered" > )</span>
2673
- <span class="cstat-no" title="statement not covered" > } else {</span>
2674
- <span class="cstat-no" title="statement not covered" > DyFM_Log.error(</span>
2675
- <span class="cstat-no" title="statement not covered" > `Socket Server Service - Deep Setup failed: "${this.params?.name}" ` +</span>
2676
- <span class="cstat-no" title="statement not covered" > `(${this.params?.port})`, </span>
2677
- <span class="cstat-no" title="statement not covered" > error</span>
2678
- <span class="cstat-no" title="statement not covered" > );</span>
2679
- <span class="cstat-no" title="statement not covered" > }</span>
2680
- <span class="cstat-no" title="statement not covered" ></span>
2681
- <span class="cstat-no" title="statement not covered" > throw error;</span>
2682
- <span class="cstat-no" title="statement not covered" > }</span>
2683
- }
2684
- &nbsp;
2685
- protected <span class="fstat-no" title="function not covered" >async addSocketToPresence(newPresence: T_Presence): Promise&lt;void&gt; {</span>
2686
- <span class="cstat-no" title="statement not covered" > try {</span>
2687
- <span class="cstat-no" title="statement not covered" > const activePresence: T_Presence = this.presences.find(</span>
2688
- <span class="cstat-no" title="statement not covered" > (pres: T_Presence) =&gt; pres.issuerLocalId === newPresence.issuerLocalId</span>
2689
- <span class="cstat-no" title="statement not covered" > );</span>
2690
- <span class="cstat-no" title="statement not covered" > </span>
2691
- <span class="cstat-no" title="statement not covered" > if (activePresence) {</span>
2692
- <span class="cstat-no" title="statement not covered" > activePresence.sockets.push(...newPresence.sockets);</span>
2693
- <span class="cstat-no" title="statement not covered" > } else {</span>
2694
- <span class="cstat-no" title="statement not covered" > this.presences.push(newPresence);</span>
2695
- <span class="cstat-no" title="statement not covered" > }</span>
2696
- <span class="cstat-no" title="statement not covered" > } catch (error) {</span>
2697
- <span class="cstat-no" title="statement not covered" > if (error instanceof DyFM_Error) {</span>
2698
- <span class="cstat-no" title="statement not covered" > error.logShort(</span>
2699
- <span class="cstat-no" title="statement not covered" > `Socket Subscription failed: "${this.params?.name}" (${this.params?.port})`</span>
2700
- <span class="cstat-no" title="statement not covered" > )</span>
2701
- <span class="cstat-no" title="statement not covered" > } else if (DyNTS_global_settings.log_settings.socket_eventContent) {</span>
2702
- <span class="cstat-no" title="statement not covered" > DyFM_Log.error(</span>
2703
- <span class="cstat-no" title="statement not covered" > `Socket Subscription failed: "${this.params?.name}" (${this.params?.port})`,</span>
2704
- <span class="cstat-no" title="statement not covered" > /* `${this.thisLocationStack}`, */</span>
2705
- <span class="cstat-no" title="statement not covered" > error</span>
2706
- <span class="cstat-no" title="statement not covered" > );</span>
2707
- <span class="cstat-no" title="statement not covered" > } else {</span>
2708
- <span class="cstat-no" title="statement not covered" > DyFM_Log.error(</span>
2709
- <span class="cstat-no" title="statement not covered" > `Socket Subscription failed: "${this.params?.name}" (${this.params?.port})`,</span>
2710
- <span class="cstat-no" title="statement not covered" > /* `${this.thisLocationStack}` */</span>
2711
- <span class="cstat-no" title="statement not covered" > );</span>
2712
- <span class="cstat-no" title="statement not covered" > }</span>
2713
- <span class="cstat-no" title="statement not covered" ></span>
2714
- <span class="cstat-no" title="statement not covered" > throw error;</span>
2715
- <span class="cstat-no" title="statement not covered" > }</span>
2716
- <span class="cstat-no" title="statement not covered" > }</span>
2717
- &nbsp;
2718
- protected <span class="fstat-no" title="function not covered" >async closeSocket(socket: SocketIO.Socket, issuer: string, withError?: DyFM_AnyError): Promise&lt;void&gt; {</span>
2719
- <span class="cstat-no" title="statement not covered" > try {</span>
2720
- <span class="cstat-no" title="statement not covered" > if (withError) {</span>
2721
- <span class="cstat-no" title="statement not covered" > socket.emit(DyFM_SocketEvent_Key.error, withError);</span>
2722
- <span class="cstat-no" title="statement not covered" > }</span>
2723
- <span class="cstat-no" title="statement not covered" ></span>
2724
- <span class="cstat-no" title="statement not covered" > await DyFM_Array.asyncForEach(</span>
2725
- <span class="cstat-no" title="statement not covered" > this.incomingEvents.filter(</span>
2726
- <span class="cstat-no" title="statement not covered" > (event: DyFM_SocketEvent&lt;any&gt;) =&gt; </span>
2727
- <span class="cstat-no" title="statement not covered" > event.eventKey === DyFM_SocketEvent_Key.disconnect</span>
2728
- <span class="cstat-no" title="statement not covered" > ), </span>
2729
- <span class="cstat-no" title="statement not covered" > async (event: DyFM_SocketEvent&lt;any&gt;) =&gt; {</span>
2730
- <span class="cstat-no" title="statement not covered" > await event.executeEventTasks(null, issuer);</span>
2731
- <span class="cstat-no" title="statement not covered" > }</span>
2732
- <span class="cstat-no" title="statement not covered" > );</span>
2733
- <span class="cstat-no" title="statement not covered" ></span>
2734
- <span class="cstat-no" title="statement not covered" > /* if (this.getSubscriptionCloseTasks) {</span>
2735
- <span class="cstat-no" title="statement not covered" > await DyFM_Array.asyncForEach(</span>
2736
- <span class="cstat-no" title="statement not covered" > this.getSubscriptionCloseTasks(), </span>
2737
- <span class="cstat-no" title="statement not covered" > async (task: DyFM_SocketEventTask&lt;null&gt;) =&gt; {</span>
2738
- <span class="cstat-no" title="statement not covered" > await task(null, issuer);</span>
2739
- <span class="cstat-no" title="statement not covered" > }</span>
2740
- <span class="cstat-no" title="statement not covered" > );</span>
2741
- <span class="cstat-no" title="statement not covered" > } */</span>
2742
- <span class="cstat-no" title="statement not covered" ></span>
2743
- <span class="cstat-no" title="statement not covered" > socket.emit(DyFM_SocketEvent_Key.disconnect);</span>
2744
- <span class="cstat-no" title="statement not covered" > socket.disconnect();</span>
2745
- <span class="cstat-no" title="statement not covered" ></span>
2746
- <span class="cstat-no" title="statement not covered" > await this.removeSocketFromPresence(socket);</span>
2747
- <span class="cstat-no" title="statement not covered" > } catch (error) {</span>
2748
- <span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
2749
- <span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings('closeSocket', error),</span>
2750
- <span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-CS0`,</span>
2751
- <span class="cstat-no" title="statement not covered" > });</span>
2752
- <span class="cstat-no" title="statement not covered" > }</span>
2753
- <span class="cstat-no" title="statement not covered" > }</span>
2754
- &nbsp;
2755
- protected <span class="fstat-no" title="function not covered" >async removeSocketFromPresence(socket: SocketIO.Socket): Promise&lt;void&gt; {</span>
2756
- <span class="cstat-no" title="statement not covered" > try {</span>
2757
- <span class="cstat-no" title="statement not covered" > const presence: T_Presence = this.presences.find(</span>
2758
- <span class="cstat-no" title="statement not covered" > (pres: T_Presence) =&gt; pres.sockets.includes(socket)</span>
2759
- <span class="cstat-no" title="statement not covered" > );</span>
2760
- <span class="cstat-no" title="statement not covered" > </span>
2761
- <span class="cstat-no" title="statement not covered" > if (presence) {</span>
2762
- <span class="cstat-no" title="statement not covered" > const socketIndex: number = presence.sockets.indexOf(socket);</span>
2763
- <span class="cstat-no" title="statement not covered" ></span>
2764
- <span class="cstat-no" title="statement not covered" > if (socketIndex !== -1) {</span>
2765
- <span class="cstat-no" title="statement not covered" > presence.sockets.splice(socketIndex, 1);</span>
2766
- <span class="cstat-no" title="statement not covered" > }</span>
2767
- <span class="cstat-no" title="statement not covered" > </span>
2768
- <span class="cstat-no" title="statement not covered" > if (presence.sockets.length === 0) {</span>
2769
- <span class="cstat-no" title="statement not covered" > const presenceIndex: number = this.presences.indexOf(presence); </span>
2770
- <span class="cstat-no" title="statement not covered" > </span>
2771
- <span class="cstat-no" title="statement not covered" > if (presenceIndex !== -1) {</span>
2772
- <span class="cstat-no" title="statement not covered" > this.presences.splice(presenceIndex, 1);</span>
2773
- <span class="cstat-no" title="statement not covered" > }</span>
2774
- <span class="cstat-no" title="statement not covered" > }</span>
2775
- <span class="cstat-no" title="statement not covered" > }</span>
2776
- <span class="cstat-no" title="statement not covered" > } catch (error) {</span>
2777
- <span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
2778
- <span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings('removeSocketFromPresence', error),</span>
2779
- <span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-RSO0`,</span>
2780
- <span class="cstat-no" title="statement not covered" > });</span>
2781
- <span class="cstat-no" title="statement not covered" > }</span>
2782
- <span class="cstat-no" title="statement not covered" > }</span>
2783
- &nbsp;
2784
- private <span class="fstat-no" title="function not covered" >async disconnectBaseTask(socket: SocketIO.Socket, issuer: string): Promise&lt;void&gt; {</span>
2785
- <span class="cstat-no" title="statement not covered" > try {</span>
2786
- <span class="cstat-no" title="statement not covered" > if (!(socket instanceof SocketIO.Socket)) {</span>
2787
- <span class="cstat-no" title="statement not covered" > /* throw new DyFM_Error({</span>
2788
- <span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings(</span>
2789
- <span class="cstat-no" title="statement not covered" > 'disconnectBaseTask',</span>
2790
- <span class="cstat-no" title="statement not covered" > new Error('Socket is not a SocketIO.Socket, type: ' + typeof socket),</span>
2791
- <span class="cstat-no" title="statement not covered" > ),</span>
2792
- <span class="cstat-no" title="statement not covered" > }); */</span>
2793
- <span class="cstat-no" title="statement not covered" > DyFM_Log.error(</span>
2794
- <span class="cstat-no" title="statement not covered" > `Socket is not a SocketIO.Socket, type: ${typeof socket}`,</span>
2795
- <span class="cstat-no" title="statement not covered" > socket</span>
2796
- <span class="cstat-no" title="statement not covered" > );</span>
2797
- <span class="cstat-no" title="statement not covered" > //TODO: remove all presences that have no socket</span>
2798
- <span class="cstat-no" title="statement not covered" > }</span>
2799
- <span class="cstat-no" title="statement not covered" ></span>
2800
- <span class="cstat-no" title="statement not covered" > await this.removeSubscription(socket, issuer).catch(error =&gt; {</span>
2801
- <span class="cstat-no" title="statement not covered" > if (error instanceof DyFM_Error) {</span>
2802
- <span class="cstat-no" title="statement not covered" > error.logShort(</span>
2803
- <span class="cstat-no" title="statement not covered" > `Remove Subscription failed: "${this.params.name}" (${this.params.port})`</span>
2804
- <span class="cstat-no" title="statement not covered" > );</span>
2805
- <span class="cstat-no" title="statement not covered" > } else {</span>
2806
- <span class="cstat-no" title="statement not covered" > DyFM_Log.error(`Remove Subscription failed: "${this.params.name}" (${this.params.port})`, error);</span>
2807
- <span class="cstat-no" title="statement not covered" > }</span>
2808
- <span class="cstat-no" title="statement not covered" > });</span>
2809
- <span class="cstat-no" title="statement not covered" ></span>
2810
- <span class="cstat-no" title="statement not covered" > DyFM_Log.info(`&lt; x &gt; socket(${this.params.name}) disconnected (${issuer})`);</span>
2811
- <span class="cstat-no" title="statement not covered" > } catch (error) {</span>
2812
- <span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
2813
- <span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings(</span>
2814
- <span class="cstat-no" title="statement not covered" > 'disconnectBaseTask',</span>
2815
- <span class="cstat-no" title="statement not covered" > error,</span>
2816
- <span class="cstat-no" title="statement not covered" > issuer</span>
2817
- <span class="cstat-no" title="statement not covered" > ),</span>
2818
- <span class="cstat-no" title="statement not covered" ></span>
2819
- <span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-DBT0`,</span>
2820
- <span class="cstat-no" title="statement not covered" > });</span>
2821
- <span class="cstat-no" title="statement not covered" > }</span>
2822
- <span class="cstat-no" title="statement not covered" > }</span>
2823
- &nbsp;
2824
- private <span class="fstat-no" title="function not covered" >async removeSubscription(socket: SocketIO.Socket, issuer?: string): Promise&lt;void&gt; {</span>
2825
- <span class="cstat-no" title="statement not covered" > try {</span>
2826
- <span class="cstat-no" title="statement not covered" > if (!this.presences.length) {</span>
2827
- <span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
2828
- <span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings(</span>
2829
- <span class="cstat-no" title="statement not covered" > 'removeSubscription',</span>
2830
- <span class="cstat-no" title="statement not covered" > new Error(`No presences found (${this.params.name})`),</span>
2831
- <span class="cstat-no" title="statement not covered" > issuer ?? 'unknown issuer'</span>
2832
- <span class="cstat-no" title="statement not covered" > ),</span>
2833
- <span class="cstat-no" title="statement not covered" ></span>
2834
- <span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-RS1`,</span>
2835
- <span class="cstat-no" title="statement not covered" > });</span>
2836
- <span class="cstat-no" title="statement not covered" > }</span>
2837
- <span class="cstat-no" title="statement not covered" ></span>
2838
- <span class="cstat-no" title="statement not covered" > const activePresenceIndex: number = this.presences.findIndex(</span>
2839
- <span class="cstat-no" title="statement not covered" > (pres: DyNTS_SocketPresence) =&gt; pres.sockets.includes(socket)</span>
2840
- <span class="cstat-no" title="statement not covered" > );</span>
2841
- <span class="cstat-no" title="statement not covered" > </span>
2842
- <span class="cstat-no" title="statement not covered" > if (activePresenceIndex === -1) {</span>
2843
- <span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
2844
- <span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings(</span>
2845
- <span class="cstat-no" title="statement not covered" > 'sendEventForId', </span>
2846
- <span class="cstat-no" title="statement not covered" > new Error(</span>
2847
- <span class="cstat-no" title="statement not covered" > `closing socket (${this.params.name}) does not match any in the activePresences`</span>
2848
- <span class="cstat-no" title="statement not covered" > ), </span>
2849
- <span class="cstat-no" title="statement not covered" > issuer ?? 'unknown issuer'</span>
2850
- <span class="cstat-no" title="statement not covered" > ),</span>
2851
- <span class="cstat-no" title="statement not covered" ></span>
2852
- <span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-RS2`,</span>
2853
- <span class="cstat-no" title="statement not covered" > });</span>
2854
- <span class="cstat-no" title="statement not covered" > }</span>
2855
- <span class="cstat-no" title="statement not covered" ></span>
2856
- <span class="cstat-no" title="statement not covered" > const activePresence: DyNTS_SocketPresence = this.presences[activePresenceIndex];</span>
2857
- <span class="cstat-no" title="statement not covered" ></span>
2858
- <span class="cstat-no" title="statement not covered" > if (issuer &amp;&amp; activePresence.issuerLocalId !== issuer) {</span>
2859
- <span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
2860
- <span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings(</span>
2861
- <span class="cstat-no" title="statement not covered" > 'sendEventForId',</span>
2862
- <span class="cstat-no" title="statement not covered" > new Error(</span>
2863
- <span class="cstat-no" title="statement not covered" > `socket unsubscription for "${issuer}" and ` +</span>
2864
- <span class="cstat-no" title="statement not covered" > `"${activePresence.issuerLocalId}" does not match.`</span>
2865
- <span class="cstat-no" title="statement not covered" > ),</span>
2866
- <span class="cstat-no" title="statement not covered" > issuer</span>
2867
- <span class="cstat-no" title="statement not covered" > ),</span>
2868
- <span class="cstat-no" title="statement not covered" ></span>
2869
- <span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-RS3`,</span>
2870
- <span class="cstat-no" title="statement not covered" > });</span>
2871
- <span class="cstat-no" title="statement not covered" > }</span>
2872
- <span class="cstat-no" title="statement not covered" ></span>
2873
- <span class="cstat-no" title="statement not covered" > const socketIndex = activePresence.sockets.findIndex((s: SocketIO.Socket) =&gt; s === socket);</span>
2874
- <span class="cstat-no" title="statement not covered" ></span>
2875
- <span class="cstat-no" title="statement not covered" > if (socketIndex === -1) {</span>
2876
- <span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
2877
- <span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings(</span>
2878
- <span class="cstat-no" title="statement not covered" > 'sendEventForId',</span>
2879
- <span class="cstat-no" title="statement not covered" > new Error(</span>
2880
- <span class="cstat-no" title="statement not covered" > `closing socket (${this.params.name}) does not match any in the activePresences`</span>
2881
- <span class="cstat-no" title="statement not covered" > ),</span>
2882
- <span class="cstat-no" title="statement not covered" > activePresence.issuerLocalId</span>
2883
- <span class="cstat-no" title="statement not covered" > ),</span>
2884
- <span class="cstat-no" title="statement not covered" ></span>
2885
- <span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-RS4`,</span>
2886
- <span class="cstat-no" title="statement not covered" > });</span>
2887
- <span class="cstat-no" title="statement not covered" > }</span>
2888
- <span class="cstat-no" title="statement not covered" ></span>
2889
- <span class="cstat-no" title="statement not covered" > activePresence.sockets.splice(socketIndex);</span>
2890
- <span class="cstat-no" title="statement not covered" > </span>
2891
- <span class="cstat-no" title="statement not covered" > await DyFM_Array.asyncForEach(</span>
2892
- <span class="cstat-no" title="statement not covered" > this.incomingEvents.filter(</span>
2893
- <span class="cstat-no" title="statement not covered" > (event: DyFM_SocketEvent&lt;any&gt;) =&gt; </span>
2894
- <span class="cstat-no" title="statement not covered" > event.eventKey === DyFM_SocketEvent_Key.unsubscribeSuccessful</span>
2895
- <span class="cstat-no" title="statement not covered" > ), </span>
2896
- <span class="cstat-no" title="statement not covered" > async (event: DyFM_SocketEvent&lt;any&gt;) =&gt; {</span>
2897
- <span class="cstat-no" title="statement not covered" > await event.executeEventTasks(null, issuer);</span>
2898
- <span class="cstat-no" title="statement not covered" > }</span>
2899
- <span class="cstat-no" title="statement not covered" > );</span>
2900
- <span class="cstat-no" title="statement not covered" ></span>
2901
- <span class="cstat-no" title="statement not covered" > /* if (this.getSubscriptionCloseTasks) {</span>
2902
- <span class="cstat-no" title="statement not covered" > await DyFM_Array.asyncForEach(</span>
2903
- <span class="cstat-no" title="statement not covered" > this.getSubscriptionCloseTasks(), </span>
2904
- <span class="cstat-no" title="statement not covered" > async (task: DyFM_SocketEventTask&lt;null&gt;) =&gt; {</span>
2905
- <span class="cstat-no" title="statement not covered" > await task(null, issuer);</span>
2906
- <span class="cstat-no" title="statement not covered" > }</span>
2907
- <span class="cstat-no" title="statement not covered" > );</span>
2908
- <span class="cstat-no" title="statement not covered" > } */</span>
2909
- <span class="cstat-no" title="statement not covered" ></span>
2910
- <span class="cstat-no" title="statement not covered" > if (activePresence.sockets.length === 0) {</span>
2911
- <span class="cstat-no" title="statement not covered" > this.presences.splice(activePresenceIndex);</span>
2912
- <span class="cstat-no" title="statement not covered" > }</span>
2913
- <span class="cstat-no" title="statement not covered" ></span>
2914
- <span class="cstat-no" title="statement not covered" > socket.emit(DyFM_SocketEvent_Key.unsubscribeSuccessful, 'unsubscribe was successful');</span>
2915
- <span class="cstat-no" title="statement not covered" > socket.disconnect();</span>
2916
- <span class="cstat-no" title="statement not covered" > DyFM_Log.info(`&lt;x==&gt; socket (${this.params.name}) unsubscription successful (${issuer})`);</span>
2917
- <span class="cstat-no" title="statement not covered" > } catch (error) {</span>
2918
- <span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
2919
- <span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings(</span>
2920
- <span class="cstat-no" title="statement not covered" > 'sendEventForId',</span>
2921
- <span class="cstat-no" title="statement not covered" > error,</span>
2922
- <span class="cstat-no" title="statement not covered" > issuer ?? 'unknown issuer'</span>
2923
- <span class="cstat-no" title="statement not covered" > ),</span>
2924
- <span class="cstat-no" title="statement not covered" ></span>
2925
- <span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-RS0`,</span>
2926
- <span class="cstat-no" title="statement not covered" > message: `socket (${this.params.name}) Subscription Removal failed: "${this.params?.name}"`,</span>
2927
- <span class="cstat-no" title="statement not covered" > });</span>
2928
- <span class="cstat-no" title="statement not covered" > }</span>
2929
- <span class="cstat-no" title="statement not covered" > }</span>
2930
- &nbsp;
2931
- /* emitServerEvent(event: string, content: any): void {
2932
- try {
2933
- DyFM_Log.log(` &lt;=-- emitting server socket(${this.params.name}) event: ${event}`);
2934
- &nbsp;
2935
- this.openSocketServer.emit(event, content, error =&gt; {
2936
- DyFM_Log.error(`Emitting server event '${event}' failed!\nerror:`, error);
2937
- });
2938
- } catch (error) {
2939
- throw new DyFM_Error({
2940
- ...this._getDefaultErrorSettings(
2941
- 'emitEvent',
2942
- error
2943
- ),
2944
- &nbsp;
2945
- errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-500',
2946
- message: `socket(${this.params.name}) Event Emit (${event}) failed: ${this.params?.name}`,
2947
- });
2948
- }
2949
- } */
2950
- &nbsp;
2951
- <span class="fstat-no" title="function not covered" > idIsSubscribed(id: string): boolean {</span>
2952
- <span class="cstat-no" title="statement not covered" > try {</span>
2953
- <span class="cstat-no" title="statement not covered" > return !!this.presences.find(</span>
2954
- <span class="cstat-no" title="statement not covered" > (presence: DyNTS_SocketPresence) =&gt; presence.issuerLocalId === id</span>
2955
- <span class="cstat-no" title="statement not covered" > );</span>
2956
- <span class="cstat-no" title="statement not covered" > } catch (error) {</span>
2957
- <span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
2958
- <span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings(</span>
2959
- <span class="cstat-no" title="statement not covered" > 'idIsSubscribed',</span>
2960
- <span class="cstat-no" title="statement not covered" > error</span>
2961
- <span class="cstat-no" title="statement not covered" > ),</span>
2962
- <span class="cstat-no" title="statement not covered" ></span>
2963
- <span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-IIS0`,</span>
2964
- <span class="cstat-no" title="statement not covered" > message: `socket (${this.params.name}) ID Subscription Check (${id}) failed`,</span>
2965
- <span class="cstat-no" title="statement not covered" > });</span>
2966
- <span class="cstat-no" title="statement not covered" > }</span>
2967
- <span class="cstat-no" title="statement not covered" > }</span>
2968
- &nbsp;
2969
- <span class="fstat-no" title="function not covered" > async emitError(presenceIssuerId: string, error: any, issuer: string): Promise&lt;void&gt; {</span>
2970
- <span class="cstat-no" title="statement not covered" > try {</span>
2971
- <span class="cstat-no" title="statement not covered" > await this.sendEventForId(presenceIssuerId, DyFM_SocketEvent_Key.error, error, issuer);</span>
2972
- <span class="cstat-no" title="statement not covered" > } catch (error) {</span>
2973
- <span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
2974
- <span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings(</span>
2975
- <span class="cstat-no" title="statement not covered" > 'emitError',</span>
2976
- <span class="cstat-no" title="statement not covered" > error,</span>
2977
- <span class="cstat-no" title="statement not covered" > presenceIssuerId</span>
2978
- <span class="cstat-no" title="statement not covered" > ),</span>
2979
- <span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-EE0`,</span>
2980
- <span class="cstat-no" title="statement not covered" > message: `socket (${this.params.name}) Error Emit (id: ${presenceIssuerId}) failed`,</span>
2981
- <span class="cstat-no" title="statement not covered" > });</span>
2982
- <span class="cstat-no" title="statement not covered" > }</span>
2983
- <span class="cstat-no" title="statement not covered" > }</span>
2984
- &nbsp;
2985
- <span class="fstat-no" title="function not covered" > async sendEventForId(id: string, event: string, content: any, issuer: string): Promise&lt;void&gt; {</span>
2986
- <span class="cstat-no" title="statement not covered" > try {</span>
2987
- <span class="cstat-no" title="statement not covered" > if (!event) {</span>
2988
- <span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
2989
- <span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings(</span>
2990
- <span class="cstat-no" title="statement not covered" > 'sendEventForId',</span>
2991
- <span class="cstat-no" title="statement not covered" > new Error('No event was provided'),</span>
2992
- <span class="cstat-no" title="statement not covered" > content?.source</span>
2993
- <span class="cstat-no" title="statement not covered" > ),</span>
2994
- <span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-SEFI1`,</span>
2995
- <span class="cstat-no" title="statement not covered" > });</span>
2996
- <span class="cstat-no" title="statement not covered" > }</span>
2997
- <span class="cstat-no" title="statement not covered" ></span>
2998
- <span class="cstat-no" title="statement not covered" > if (!id) {</span>
2999
- <span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
3000
- <span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings(</span>
3001
- <span class="cstat-no" title="statement not covered" > 'sendEventForId',</span>
3002
- <span class="cstat-no" title="statement not covered" > new Error('No ID was provided'),</span>
3003
- <span class="cstat-no" title="statement not covered" > content?.source</span>
3004
- <span class="cstat-no" title="statement not covered" > ),</span>
3005
- <span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-SEFI2`,</span>
3006
- <span class="cstat-no" title="statement not covered" > });</span>
3007
- <span class="cstat-no" title="statement not covered" > }</span>
3008
- <span class="cstat-no" title="statement not covered" ></span>
3009
- <span class="cstat-no" title="statement not covered" > const presence: DyNTS_SocketPresence = this.presences.find(</span>
3010
- <span class="cstat-no" title="statement not covered" > (pres: DyNTS_SocketPresence) =&gt; pres.issuerLocalId === id</span>
3011
- <span class="cstat-no" title="statement not covered" > );</span>
3012
- <span class="cstat-no" title="statement not covered" ></span>
3013
- <span class="cstat-no" title="statement not covered" > if (!presence) {</span>
3014
- <span class="cstat-no" title="statement not covered" > throw new DyFM_Error({ </span>
3015
- <span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings(</span>
3016
- <span class="cstat-no" title="statement not covered" > 'sendEventForId',</span>
3017
- <span class="cstat-no" title="statement not covered" > new Error(`No active socket with this specific ID: "${id}"`),</span>
3018
- <span class="cstat-no" title="statement not covered" > content?.source</span>
3019
- <span class="cstat-no" title="statement not covered" > ),</span>
3020
- <span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-SEFI3`,</span>
3021
- <span class="cstat-no" title="statement not covered" > });</span>
3022
- <span class="cstat-no" title="statement not covered" > }</span>
3023
- <span class="cstat-no" title="statement not covered" ></span>
3024
- <span class="cstat-no" title="statement not covered" > presence.emitEvent(event, content, issuer);</span>
3025
- <span class="cstat-no" title="statement not covered" ></span>
3026
- <span class="cstat-no" title="statement not covered" > if (DyNTS_global_settings.log_settings.socket_eventContent) {</span>
3027
- <span class="cstat-no" title="statement not covered" > DyFM_Log.success(</span>
3028
- <span class="cstat-no" title="statement not covered" > ` &lt;--= emitted socket (${this.params.name}) event: "${event}", ` +</span>
3029
- <span class="cstat-no" title="statement not covered" > `\n presenceId: "${id}", sockets: ${presence.sockets.length}` +</span>
3030
- <span class="cstat-no" title="statement not covered" > `\n content:`, content</span>
3031
- <span class="cstat-no" title="statement not covered" > );</span>
3032
- <span class="cstat-no" title="statement not covered" > } else {</span>
3033
- <span class="cstat-no" title="statement not covered" > DyFM_Log.success(</span>
3034
- <span class="cstat-no" title="statement not covered" > ` &lt;--= emitted socket (${this.params.name}) event: "${event}", ` +</span>
3035
- <span class="cstat-no" title="statement not covered" > `\n presenceId: ${id}, sockets: ${presence.sockets.length}`</span>
3036
- <span class="cstat-no" title="statement not covered" > );</span>
3037
- <span class="cstat-no" title="statement not covered" > }</span>
3038
- <span class="cstat-no" title="statement not covered" > } catch (error) {</span>
3039
- <span class="cstat-no" title="statement not covered" > try {</span>
3040
- <span class="cstat-no" title="statement not covered" > if (error?.flag?.includes(DyFM_errorFlag) &amp;&amp; error?.additionalInfo?.inactiveSockets) {</span>
3041
- <span class="cstat-no" title="statement not covered" > const sockets: SocketIO.Socket[] = error.additionalInfo.inactiveSockets;</span>
3042
- <span class="cstat-no" title="statement not covered" ></span>
3043
- <span class="cstat-no" title="statement not covered" > await DyFM_Array.asyncForEach(sockets, async (socket: SocketIO.Socket) =&gt; {</span>
3044
- <span class="cstat-no" title="statement not covered" > await this.removeSubscription(socket);</span>
3045
- <span class="cstat-no" title="statement not covered" > });</span>
3046
- <span class="cstat-no" title="statement not covered" ></span>
3047
- <span class="cstat-no" title="statement not covered" > const presence: DyNTS_SocketPresence = this.presences.find(</span>
3048
- <span class="cstat-no" title="statement not covered" > (pres: DyNTS_SocketPresence) =&gt; pres.issuerLocalId === id</span>
3049
- <span class="cstat-no" title="statement not covered" > );</span>
3050
- <span class="cstat-no" title="statement not covered" ></span>
3051
- <span class="cstat-no" title="statement not covered" > if (!presence) {</span>
3052
- <span class="cstat-no" title="statement not covered" > throw new DyFM_Error({ </span>
3053
- <span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings(</span>
3054
- <span class="cstat-no" title="statement not covered" > 'sendEventForId',</span>
3055
- <span class="cstat-no" title="statement not covered" > new Error(`No active socket (${this.params.name}) with this specific ID: "${id}"`),</span>
3056
- <span class="cstat-no" title="statement not covered" > content?.source</span>
3057
- <span class="cstat-no" title="statement not covered" > ),</span>
3058
- <span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-SEFI4`,</span>
3059
- <span class="cstat-no" title="statement not covered" > });</span>
3060
- <span class="cstat-no" title="statement not covered" > }</span>
3061
- <span class="cstat-no" title="statement not covered" > }</span>
3062
- <span class="cstat-no" title="statement not covered" > } catch (error) {</span>
3063
- <span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
3064
- <span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings('sendEventForId', error, content?.source),</span>
3065
- <span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-SEFI5`,</span>
3066
- <span class="cstat-no" title="statement not covered" > message: </span>
3067
- <span class="cstat-no" title="statement not covered" > `Error handling of inactive sockets (${this.params.name}) failed!` +</span>
3068
- <span class="cstat-no" title="statement not covered" > `\n(Socket Event Emit for id (${id}, ${event}) failed)`,</span>
3069
- <span class="cstat-no" title="statement not covered" > });</span>
3070
- <span class="cstat-no" title="statement not covered" > }</span>
3071
- <span class="cstat-no" title="statement not covered" ></span>
3072
- <span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
3073
- <span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings('sendEventForId', error, content?.source),</span>
3074
- <span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-SEFI0`,</span>
3075
- <span class="cstat-no" title="statement not covered" > message: `socket (${this.params.name}) Event Emit for id (${id}, ${event}) failed`,</span>
3076
- <span class="cstat-no" title="statement not covered" > });</span>
3077
- <span class="cstat-no" title="statement not covered" > }</span>
3078
- <span class="cstat-no" title="statement not covered" > }</span>
3079
- &nbsp;
3080
- <span class="fstat-no" title="function not covered" > async broadcastEvent(event: string, content: any, issuer: string): Promise&lt;void&gt; {</span>
3081
- <span class="cstat-no" title="statement not covered" > try {</span>
3082
- <span class="cstat-no" title="statement not covered" > DyFM_Log.log(`&lt;=-== broadcasting socket (${this.params.name}) event: "${event}"`);</span>
3083
- <span class="cstat-no" title="statement not covered" ></span>
3084
- <span class="cstat-no" title="statement not covered" > this.presences.forEach((presence: DyNTS_SocketPresence) =&gt; {</span>
3085
- <span class="cstat-no" title="statement not covered" > presence.emitEvent(event, content, issuer);</span>
3086
- <span class="cstat-no" title="statement not covered" > });</span>
3087
- <span class="cstat-no" title="statement not covered" > } catch (error) {</span>
3088
- <span class="cstat-no" title="statement not covered" > if (DyNTS_global_settings.log_settings.detailedErrors) {</span>
3089
- <span class="cstat-no" title="statement not covered" > if (error instanceof DyFM_Error) {</span>
3090
- <span class="cstat-no" title="statement not covered" > error.logSimple(`socket (${this.params.name}) Event Broadcast (${event}) failed`);</span>
3091
- <span class="cstat-no" title="statement not covered" > } else {</span>
3092
- <span class="cstat-no" title="statement not covered" > DyFM_Log.error(`socket (${this.params.name}) Event Broadcast (${event}) failed`, error);</span>
3093
- <span class="cstat-no" title="statement not covered" > }</span>
3094
- <span class="cstat-no" title="statement not covered" > }</span>
3095
- <span class="cstat-no" title="statement not covered" ></span>
3096
- <span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
3097
- <span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings('broadcastEvent', error),</span>
3098
- <span class="cstat-no" title="statement not covered" > </span>
3099
- <span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-BE0`,</span>
3100
- <span class="cstat-no" title="statement not covered" > message: `socket (${this.params.name}) Event Broadcast (${event}) failed`,</span>
3101
- <span class="cstat-no" title="statement not covered" > });</span>
3102
- <span class="cstat-no" title="statement not covered" > }</span>
3103
- <span class="cstat-no" title="statement not covered" > }</span>
3104
- &nbsp;
3105
- <span class="fstat-no" title="function not covered" > async sendError(error: DyFM_AnyError, issuer: string): Promise&lt;void&gt; {</span>
3106
- <span class="cstat-no" title="statement not covered" > try {</span>
3107
- <span class="cstat-no" title="statement not covered" > await this.sendEventForId(issuer, DyFM_SocketEvent_Key.error, error, issuer);</span>
3108
- <span class="cstat-no" title="statement not covered" > } catch (error) {</span>
3109
- <span class="cstat-no" title="statement not covered" > throw new DyFM_Error({ </span>
3110
- <span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings('sendError', error, issuer),</span>
3111
- <span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-SSS-SE0`,</span>
3112
- <span class="cstat-no" title="statement not covered" > message: `socket (${this.params.name}) Error Send (${issuer}) failed`,</span>
3113
- <span class="cstat-no" title="statement not covered" > });</span>
3114
- <span class="cstat-no" title="statement not covered" > }</span>
3115
- <span class="cstat-no" title="statement not covered" > }</span>
3116
- &nbsp;
3117
- private <span class="fstat-no" title="function not covered" >_getDefaultErrorSettings(</span>
3118
- <span class="cstat-no" title="statement not covered" > fnName: string, </span>
3119
- <span class="cstat-no" title="statement not covered" > error: DyFM_AnyError, </span>
3120
- <span class="cstat-no" title="statement not covered" > issuer?: string</span>
3121
- <span class="cstat-no" title="statement not covered" > ): DyFM_Error_Settings {</span>
3122
- <span class="cstat-no" title="statement not covered" > return {</span>
3123
- <span class="cstat-no" title="statement not covered" > status: (error as DyFM_Error)?.___status ?? 500,</span>
3124
- <span class="cstat-no" title="statement not covered" > message: (error as Error)?.message ?? </span>
3125
- <span class="cstat-no" title="statement not covered" > (error as DyFM_Error)?._message ??</span>
3126
- <span class="cstat-no" title="statement not covered" > `${fnName} was UNSUCCESSFUL (NTS)`,</span>
3127
- <span class="cstat-no" title="statement not covered" > addECToUserMsg: !(error as DyFM_Error)?.__userMessage,</span>
3128
- <span class="cstat-no" title="statement not covered" > userMessage: (error as DyFM_Error)?.__userMessage ?? this.defaultErrorUserMsg,</span>
3129
- <span class="cstat-no" title="statement not covered" > issuer: issuer,</span>
3130
- <span class="cstat-no" title="statement not covered" > issuerService: this.constructor?.name,</span>
3131
- <span class="cstat-no" title="statement not covered" > error: error,</span>
3132
- <span class="cstat-no" title="statement not covered" > };</span>
3133
- <span class="cstat-no" title="statement not covered" > }</span>
3134
- &nbsp;
3135
- /**
3136
- * You must setup params for the service in this function
3137
- */
3138
- protected abstract getServiceParams(): DyNTS_SocketServerService_Params;
3139
- &nbsp;
3140
- /**
3141
- * You must setup events and required services in this function
3142
- */
3143
- protected abstract getIncomingEvents(): DyFM_SocketEvent&lt;any&gt;[];
3144
-
3145
- /**
3146
- * You can setup tasks for the subscription event in this function
3147
- */
3148
- /* protected getSubscriptionCloseTasks?(): DyFM_SocketEventTask&lt;null&gt;[]; */
3149
- &nbsp;
3150
- /**
3151
- * You can setup preprocesses for the subscription event in this function
3152
- */
3153
- /* protected getSubscriptionPreProcesses?(): DyFM_SocketEventPreprocessTask[]; */
3154
- &nbsp;
3155
- /**
3156
- * You can setup tasks for the subscription event in this function
3157
- * This will happen after the presence is created
3158
- * If this throws an error, the socket will be closed
3159
- */
3160
- protected getSubscriptionTasks?(): DyFM_SocketEventTask&lt;T_SubscriptionContent&gt;[];
3161
- &nbsp;
3162
- /**
3163
- * You can setup tasks for the unsubscribe event in this function
3164
- */
3165
- /* protected getUnsubscribeTasks?(): DyFM_SocketEventTask&lt;T_SubscriptionContent&gt;[]; */
3166
- &nbsp;
3167
- /**
3168
- * You can setup preprocesses for the unsubscribe event in this function
3169
- */
3170
- /* protected getUnsubscribePreProcesses?(): DyFM_SocketEventPreprocessTask[]; */
3171
- &nbsp;
3172
- /**
3173
- * You can setup tasks for the error event in this function
3174
- */
3175
- protected errorHandling?: DyFM_SocketEventTask&lt;T_ErrorContent&gt;;
3176
- }
3177
- &nbsp;</pre></td></tr></table></pre>
3178
-
3179
- <div class='push'></div><!-- for sticky footer -->
3180
- </div><!-- /wrapper -->
3181
- <div class='footer quiet pad2 space-top1 center small'>
3182
- Code coverage generated by
3183
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
3184
- at 2025-11-12T23:04:35.006Z
3185
- </div>
3186
- <script src="../../../prettify.js"></script>
3187
- <script>
3188
- window.onload = function () {
3189
- prettyPrint();
3190
- };
3191
- </script>
3192
- <script src="../../../sorter.js"></script>
3193
- <script src="../../../block-navigation.js"></script>
3194
- </body>
3195
- </html>
3196
-