@budibase/server 2.2.27-alpha.1 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (507) hide show
  1. package/__mocks__/aws-sdk.ts +1 -1
  2. package/builder/assets/{index.77ae0e4d.js → index.54ca0c91.js} +207 -207
  3. package/builder/index.html +1 -1
  4. package/coverage/clover.xml +4471 -8891
  5. package/coverage/coverage-final.json +69 -152
  6. package/coverage/lcov-report/index.html +117 -327
  7. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +1 -1
  8. package/coverage/lcov-report/src/api/controllers/apikeys.ts.html +1 -1
  9. package/coverage/lcov-report/src/api/controllers/application.ts.html +114 -114
  10. package/coverage/lcov-report/src/api/controllers/auth.ts.html +1 -1
  11. package/coverage/lcov-report/src/api/controllers/automation.ts.html +25 -25
  12. package/coverage/lcov-report/src/api/controllers/backup.ts.html +1 -1
  13. package/coverage/lcov-report/src/api/controllers/cloud.ts.html +15 -15
  14. package/coverage/lcov-report/src/api/controllers/component.ts.html +1 -1
  15. package/coverage/lcov-report/src/api/controllers/datasource.ts.html +17 -17
  16. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +12 -12
  17. package/coverage/lcov-report/src/api/controllers/deploy/index.html +1 -1
  18. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +70 -70
  19. package/coverage/lcov-report/src/api/controllers/dev.ts.html +10 -10
  20. package/coverage/lcov-report/src/api/controllers/index.html +35 -35
  21. package/coverage/lcov-report/src/api/controllers/integration.ts.html +1 -1
  22. package/coverage/lcov-report/src/api/controllers/layout.ts.html +11 -11
  23. package/coverage/lcov-report/src/api/controllers/metadata.ts.html +1 -1
  24. package/coverage/lcov-report/src/api/controllers/migrations.ts.html +1 -1
  25. package/coverage/lcov-report/src/api/controllers/permission.ts.html +22 -22
  26. package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +1 -1
  27. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +1 -1
  28. package/coverage/lcov-report/src/api/controllers/plugin/index.html +1 -1
  29. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +8 -8
  30. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +1 -1
  31. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +1 -1
  32. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +1 -1
  33. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +1 -1
  34. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +1 -1
  35. package/coverage/lcov-report/src/api/controllers/public/index.html +1 -1
  36. package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +1 -1
  37. package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +1 -1
  38. package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +1 -1
  39. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +1 -1
  40. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +1 -1
  41. package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +1 -1
  42. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +1 -1
  43. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +1 -1
  44. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +1 -1
  45. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +1 -1
  46. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +1 -1
  47. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +1 -1
  48. package/coverage/lcov-report/src/api/controllers/query/import/index.html +1 -1
  49. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +1 -1
  50. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +1 -1
  51. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +1 -1
  52. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +1 -1
  53. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +1 -1
  54. package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +1 -1
  55. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +1 -1
  56. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +1 -1
  57. package/coverage/lcov-report/src/api/controllers/query/index.html +1 -1
  58. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +13 -13
  59. package/coverage/lcov-report/src/api/controllers/query/validation.ts.html +1 -1
  60. package/coverage/lcov-report/src/api/controllers/role.ts.html +1 -1
  61. package/coverage/lcov-report/src/api/controllers/routing.ts.html +1 -1
  62. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +1 -1
  63. package/coverage/lcov-report/src/api/controllers/row/external.ts.html +1 -1
  64. package/coverage/lcov-report/src/api/controllers/row/index.html +5 -5
  65. package/coverage/lcov-report/src/api/controllers/row/index.ts.html +16 -16
  66. package/coverage/lcov-report/src/api/controllers/row/internal.ts.html +16 -16
  67. package/coverage/lcov-report/src/api/controllers/row/internalSearch.ts.html +1 -1
  68. package/coverage/lcov-report/src/api/controllers/row/staticFormula.ts.html +16 -16
  69. package/coverage/lcov-report/src/api/controllers/row/utils.ts.html +15 -15
  70. package/coverage/lcov-report/src/api/controllers/screen.ts.html +21 -21
  71. package/coverage/lcov-report/src/api/controllers/script.ts.html +1 -1
  72. package/coverage/lcov-report/src/api/controllers/static/index.html +1 -1
  73. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +1 -1
  74. package/coverage/lcov-report/src/api/controllers/table/bulkFormula.ts.html +43 -43
  75. package/coverage/lcov-report/src/api/controllers/table/external.ts.html +1 -1
  76. package/coverage/lcov-report/src/api/controllers/table/index.html +20 -20
  77. package/coverage/lcov-report/src/api/controllers/table/index.ts.html +18 -18
  78. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +49 -49
  79. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +34 -34
  80. package/coverage/lcov-report/src/api/controllers/templates.ts.html +1 -1
  81. package/coverage/lcov-report/src/api/controllers/user.ts.html +15 -15
  82. package/coverage/lcov-report/src/api/controllers/view/exporters.ts.html +1 -1
  83. package/coverage/lcov-report/src/api/controllers/view/index.html +1 -1
  84. package/coverage/lcov-report/src/api/controllers/view/index.ts.html +1 -1
  85. package/coverage/lcov-report/src/api/controllers/view/utils.ts.html +1 -1
  86. package/coverage/lcov-report/src/api/controllers/view/viewBuilder.ts.html +1 -1
  87. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +13 -13
  88. package/coverage/lcov-report/src/api/index.html +1 -1
  89. package/coverage/lcov-report/src/api/index.ts.html +5 -5
  90. package/coverage/lcov-report/src/api/routes/analytics.ts.html +1 -1
  91. package/coverage/lcov-report/src/api/routes/apikeys.ts.html +1 -1
  92. package/coverage/lcov-report/src/api/routes/application.ts.html +1 -1
  93. package/coverage/lcov-report/src/api/routes/auth.ts.html +1 -1
  94. package/coverage/lcov-report/src/api/routes/automation.ts.html +1 -1
  95. package/coverage/lcov-report/src/api/routes/backup.ts.html +1 -1
  96. package/coverage/lcov-report/src/api/routes/cloud.ts.html +1 -1
  97. package/coverage/lcov-report/src/api/routes/component.ts.html +1 -1
  98. package/coverage/lcov-report/src/api/routes/datasource.ts.html +1 -1
  99. package/coverage/lcov-report/src/api/routes/deploy.ts.html +1 -1
  100. package/coverage/lcov-report/src/api/routes/dev.ts.html +1 -1
  101. package/coverage/lcov-report/src/api/routes/index.html +1 -1
  102. package/coverage/lcov-report/src/api/routes/index.ts.html +1 -1
  103. package/coverage/lcov-report/src/api/routes/integration.ts.html +1 -1
  104. package/coverage/lcov-report/src/api/routes/layout.ts.html +1 -1
  105. package/coverage/lcov-report/src/api/routes/metadata.ts.html +1 -1
  106. package/coverage/lcov-report/src/api/routes/migrations.ts.html +1 -1
  107. package/coverage/lcov-report/src/api/routes/permission.ts.html +1 -1
  108. package/coverage/lcov-report/src/api/routes/plugin.ts.html +1 -1
  109. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +1 -1
  110. package/coverage/lcov-report/src/api/routes/public/index.html +1 -1
  111. package/coverage/lcov-report/src/api/routes/public/index.ts.html +1 -1
  112. package/coverage/lcov-report/src/api/routes/public/middleware/index.html +1 -1
  113. package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +1 -1
  114. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +1 -1
  115. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +1 -1
  116. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +1 -1
  117. package/coverage/lcov-report/src/api/routes/public/tests/index.html +8 -38
  118. package/coverage/lcov-report/src/api/routes/public/tests/utils.ts.html +1 -1
  119. package/coverage/lcov-report/src/api/routes/public/users.ts.html +1 -1
  120. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +1 -1
  121. package/coverage/lcov-report/src/api/routes/public/utils/index.html +1 -1
  122. package/coverage/lcov-report/src/api/routes/query.ts.html +1 -1
  123. package/coverage/lcov-report/src/api/routes/role.ts.html +1 -1
  124. package/coverage/lcov-report/src/api/routes/routing.ts.html +1 -1
  125. package/coverage/lcov-report/src/api/routes/row.ts.html +1 -1
  126. package/coverage/lcov-report/src/api/routes/screen.ts.html +1 -1
  127. package/coverage/lcov-report/src/api/routes/script.ts.html +1 -1
  128. package/coverage/lcov-report/src/api/routes/static.ts.html +1 -1
  129. package/coverage/lcov-report/src/api/routes/table.ts.html +1 -1
  130. package/coverage/lcov-report/src/api/routes/templates.ts.html +1 -1
  131. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +41 -110
  132. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +19 -19
  133. package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +5 -11
  134. package/coverage/lcov-report/src/api/routes/user.ts.html +1 -1
  135. package/coverage/lcov-report/src/api/routes/utils/index.html +1 -1
  136. package/coverage/lcov-report/src/api/routes/utils/validators.ts.html +1 -1
  137. package/coverage/lcov-report/src/api/routes/view.ts.html +1 -1
  138. package/coverage/lcov-report/src/api/routes/webhook.ts.html +1 -1
  139. package/coverage/lcov-report/src/app.ts.html +3 -6
  140. package/coverage/lcov-report/src/automations/actions.ts.html +1 -1
  141. package/coverage/lcov-report/src/automations/automationUtils.ts.html +1 -1
  142. package/coverage/lcov-report/src/automations/bullboard.ts.html +2 -2
  143. package/coverage/lcov-report/src/automations/index.html +27 -27
  144. package/coverage/lcov-report/src/automations/index.ts.html +5 -5
  145. package/coverage/lcov-report/src/automations/logging/index.html +1 -1
  146. package/coverage/lcov-report/src/automations/logging/index.ts.html +7 -7
  147. package/coverage/lcov-report/src/automations/steps/bash.ts.html +1 -1
  148. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +1 -1
  149. package/coverage/lcov-report/src/automations/steps/delay.ts.html +1 -1
  150. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +1 -1
  151. package/coverage/lcov-report/src/automations/steps/discord.ts.html +1 -1
  152. package/coverage/lcov-report/src/automations/steps/executeQuery.ts.html +1 -1
  153. package/coverage/lcov-report/src/automations/steps/executeScript.ts.html +1 -1
  154. package/coverage/lcov-report/src/automations/steps/filter.ts.html +1 -1
  155. package/coverage/lcov-report/src/automations/steps/index.html +1 -1
  156. package/coverage/lcov-report/src/automations/steps/integromat.ts.html +1 -1
  157. package/coverage/lcov-report/src/automations/steps/loop.ts.html +1 -1
  158. package/coverage/lcov-report/src/automations/steps/outgoingWebhook.ts.html +1 -1
  159. package/coverage/lcov-report/src/automations/steps/queryRows.ts.html +1 -1
  160. package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.ts.html +1 -1
  161. package/coverage/lcov-report/src/automations/steps/serverLog.ts.html +1 -1
  162. package/coverage/lcov-report/src/automations/steps/slack.ts.html +1 -1
  163. package/coverage/lcov-report/src/automations/steps/updateRow.ts.html +1 -1
  164. package/coverage/lcov-report/src/automations/steps/utils.ts.html +1 -1
  165. package/coverage/lcov-report/src/automations/steps/zapier.ts.html +1 -1
  166. package/coverage/lcov-report/src/automations/tests/utilities/index.html +1 -1
  167. package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +1 -1
  168. package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +1 -1
  169. package/coverage/lcov-report/src/automations/triggerInfo/cron.ts.html +1 -1
  170. package/coverage/lcov-report/src/automations/triggerInfo/index.html +1 -1
  171. package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +1 -1
  172. package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.ts.html +1 -1
  173. package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.ts.html +1 -1
  174. package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.ts.html +1 -1
  175. package/coverage/lcov-report/src/automations/triggerInfo/webhook.ts.html +1 -1
  176. package/coverage/lcov-report/src/automations/triggers.ts.html +24 -24
  177. package/coverage/lcov-report/src/automations/utils.ts.html +38 -38
  178. package/coverage/lcov-report/src/constants/index.html +1 -1
  179. package/coverage/lcov-report/src/constants/index.ts.html +2 -2
  180. package/coverage/lcov-report/src/constants/layouts.ts.html +1 -1
  181. package/coverage/lcov-report/src/constants/screens.ts.html +3 -3
  182. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +1 -1
  183. package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +1 -1
  184. package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +1 -1
  185. package/coverage/lcov-report/src/db/defaultData/index.html +1 -1
  186. package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +1 -1
  187. package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +1 -1
  188. package/coverage/lcov-report/src/db/dynamoClient.ts.html +1 -1
  189. package/coverage/lcov-report/src/db/inMemoryView.ts.html +1 -1
  190. package/coverage/lcov-report/src/db/index.html +16 -16
  191. package/coverage/lcov-report/src/db/index.ts.html +13 -13
  192. package/coverage/lcov-report/src/db/linkedRows/LinkController.ts.html +12 -12
  193. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +1 -1
  194. package/coverage/lcov-report/src/db/linkedRows/index.html +1 -1
  195. package/coverage/lcov-report/src/db/linkedRows/index.ts.html +15 -15
  196. package/coverage/lcov-report/src/db/linkedRows/linkUtils.ts.html +6 -6
  197. package/coverage/lcov-report/src/db/newid.ts.html +3 -3
  198. package/coverage/lcov-report/src/db/utils.ts.html +33 -33
  199. package/coverage/lcov-report/src/definitions/automations.ts.html +1 -1
  200. package/coverage/lcov-report/src/definitions/index.html +1 -1
  201. package/coverage/lcov-report/src/environment.ts.html +19 -19
  202. package/coverage/lcov-report/src/events/AutomationEmitter.ts.html +1 -1
  203. package/coverage/lcov-report/src/events/BudibaseEmitter.ts.html +1 -1
  204. package/coverage/lcov-report/src/events/index.html +1 -1
  205. package/coverage/lcov-report/src/events/index.ts.html +1 -1
  206. package/coverage/lcov-report/src/events/utils.ts.html +1 -1
  207. package/coverage/lcov-report/src/index.html +16 -16
  208. package/coverage/lcov-report/src/index.ts.html +1 -1
  209. package/coverage/lcov-report/src/integrations/airtable.ts.html +1 -1
  210. package/coverage/lcov-report/src/integrations/arangodb.ts.html +1 -1
  211. package/coverage/lcov-report/src/integrations/base/index.html +1 -1
  212. package/coverage/lcov-report/src/integrations/base/query.ts.html +1 -1
  213. package/coverage/lcov-report/src/integrations/base/sql.ts.html +1 -1
  214. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +1 -1
  215. package/coverage/lcov-report/src/integrations/base/utils.ts.html +1 -1
  216. package/coverage/lcov-report/src/integrations/couchdb.ts.html +1 -1
  217. package/coverage/lcov-report/src/integrations/dynamodb.ts.html +1 -1
  218. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +1 -1
  219. package/coverage/lcov-report/src/integrations/firebase.ts.html +1 -1
  220. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +1 -1
  221. package/coverage/lcov-report/src/integrations/index.html +1 -1
  222. package/coverage/lcov-report/src/integrations/index.ts.html +10 -10
  223. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +1 -1
  224. package/coverage/lcov-report/src/integrations/mongodb.ts.html +1 -1
  225. package/coverage/lcov-report/src/integrations/mysql.ts.html +1 -1
  226. package/coverage/lcov-report/src/integrations/oracle.ts.html +1 -1
  227. package/coverage/lcov-report/src/integrations/postgres.ts.html +1 -1
  228. package/coverage/lcov-report/src/integrations/queries/index.html +1 -1
  229. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +1 -1
  230. package/coverage/lcov-report/src/integrations/redis.ts.html +1 -1
  231. package/coverage/lcov-report/src/integrations/rest.ts.html +1 -1
  232. package/coverage/lcov-report/src/integrations/s3.ts.html +1 -1
  233. package/coverage/lcov-report/src/integrations/snowflake.ts.html +1 -1
  234. package/coverage/lcov-report/src/integrations/tests/TestConfiguration.js.html +1 -1
  235. package/coverage/lcov-report/src/integrations/tests/index.html +5 -230
  236. package/coverage/lcov-report/src/integrations/utils.ts.html +3 -3
  237. package/coverage/lcov-report/src/middleware/appInfo.ts.html +1 -1
  238. package/coverage/lcov-report/src/middleware/authorized.ts.html +19 -19
  239. package/coverage/lcov-report/src/middleware/builder.ts.html +13 -13
  240. package/coverage/lcov-report/src/middleware/currentapp.ts.html +47 -47
  241. package/coverage/lcov-report/src/middleware/index.html +15 -15
  242. package/coverage/lcov-report/src/middleware/joi-validator.ts.html +1 -1
  243. package/coverage/lcov-report/src/middleware/publicApi.ts.html +1 -1
  244. package/coverage/lcov-report/src/middleware/resourceId.ts.html +1 -1
  245. package/coverage/lcov-report/src/middleware/selfhost.ts.html +1 -1
  246. package/coverage/lcov-report/src/middleware/utils.ts.html +3 -3
  247. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +1 -1
  248. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +1 -1
  249. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +1 -1
  250. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +1 -1
  251. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +1 -1
  252. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +1 -1
  253. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +1 -1
  254. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +1 -1
  255. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +1 -1
  256. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +1 -1
  257. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +1 -1
  258. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +1 -1
  259. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +1 -1
  260. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +1 -1
  261. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +1 -1
  262. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +1 -1
  263. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +1 -1
  264. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +1 -1
  265. package/coverage/lcov-report/src/migrations/functions/index.html +1 -1
  266. package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +1 -1
  267. package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +1 -1
  268. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +1 -1
  269. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +1 -1
  270. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +1 -1
  271. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +1 -1
  272. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +1 -1
  273. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +1 -1
  274. package/coverage/lcov-report/src/migrations/index.html +1 -1
  275. package/coverage/lcov-report/src/migrations/index.ts.html +1 -1
  276. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +1 -1
  277. package/coverage/lcov-report/src/migrations/tests/index.html +8 -23
  278. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +1 -1
  279. package/coverage/lcov-report/src/sdk/app/applications/index.html +1 -1
  280. package/coverage/lcov-report/src/sdk/app/applications/index.ts.html +1 -1
  281. package/coverage/lcov-report/src/sdk/app/applications/sync.ts.html +18 -18
  282. package/coverage/lcov-report/src/sdk/app/applications/utils.ts.html +7 -7
  283. package/coverage/lcov-report/src/sdk/app/automations/index.html +1 -1
  284. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +1 -1
  285. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +8 -8
  286. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +1 -1
  287. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +1 -1
  288. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +1 -1
  289. package/coverage/lcov-report/src/sdk/app/backups/index.html +1 -1
  290. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +1 -1
  291. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +1 -1
  292. package/coverage/lcov-report/src/sdk/app/datasources/datasources.ts.html +15 -15
  293. package/coverage/lcov-report/src/sdk/app/datasources/index.html +1 -1
  294. package/coverage/lcov-report/src/sdk/app/datasources/index.ts.html +1 -1
  295. package/coverage/lcov-report/src/sdk/app/queries/index.html +1 -1
  296. package/coverage/lcov-report/src/sdk/app/queries/index.ts.html +1 -1
  297. package/coverage/lcov-report/src/sdk/app/queries/queries.ts.html +1 -1
  298. package/coverage/lcov-report/src/sdk/app/rows/attachments.ts.html +1 -1
  299. package/coverage/lcov-report/src/sdk/app/rows/index.html +1 -1
  300. package/coverage/lcov-report/src/sdk/app/rows/index.ts.html +1 -1
  301. package/coverage/lcov-report/src/sdk/app/rows/rows.ts.html +1 -1
  302. package/coverage/lcov-report/src/sdk/app/tables/index.html +1 -1
  303. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +5 -5
  304. package/coverage/lcov-report/src/sdk/index.html +1 -1
  305. package/coverage/lcov-report/src/sdk/index.ts.html +2 -2
  306. package/coverage/lcov-report/src/sdk/users/index.html +1 -1
  307. package/coverage/lcov-report/src/sdk/users/index.ts.html +1 -1
  308. package/coverage/lcov-report/src/sdk/users/utils.ts.html +24 -24
  309. package/coverage/lcov-report/src/sdk/utils/index.html +1 -1
  310. package/coverage/lcov-report/src/sdk/utils/index.ts.html +1 -1
  311. package/coverage/lcov-report/src/startup.ts.html +4 -4
  312. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +140 -308
  313. package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +6 -6
  314. package/coverage/lcov-report/src/tests/utilities/index.html +18 -18
  315. package/coverage/lcov-report/src/tests/utilities/index.ts.html +1 -1
  316. package/coverage/lcov-report/src/tests/utilities/structures.ts.html +18 -18
  317. package/coverage/lcov-report/src/threads/automation.ts.html +1 -1
  318. package/coverage/lcov-report/src/threads/index.html +1 -1
  319. package/coverage/lcov-report/src/threads/index.ts.html +1 -1
  320. package/coverage/lcov-report/src/threads/query.ts.html +1 -1
  321. package/coverage/lcov-report/src/threads/utils.ts.html +1 -1
  322. package/coverage/lcov-report/src/utilities/budibaseDir.ts.html +2 -2
  323. package/coverage/lcov-report/src/utilities/centralPath.ts.html +1 -1
  324. package/coverage/lcov-report/src/utilities/fileSystem/app.ts.html +3 -3
  325. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +1 -1
  326. package/coverage/lcov-report/src/utilities/fileSystem/filesystem.ts.html +2 -2
  327. package/coverage/lcov-report/src/utilities/fileSystem/index.html +1 -1
  328. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +1 -1
  329. package/coverage/lcov-report/src/utilities/fileSystem/plugin.ts.html +1 -1
  330. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +1 -1
  331. package/coverage/lcov-report/src/utilities/fileSystem/template.ts.html +1 -1
  332. package/coverage/lcov-report/src/utilities/global.ts.html +36 -36
  333. package/coverage/lcov-report/src/utilities/index.html +19 -34
  334. package/coverage/lcov-report/src/utilities/index.ts.html +19 -19
  335. package/coverage/lcov-report/src/utilities/redis.ts.html +1 -1
  336. package/coverage/lcov-report/src/utilities/routing/index.html +1 -1
  337. package/coverage/lcov-report/src/utilities/routing/index.ts.html +1 -1
  338. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +1 -1
  339. package/coverage/lcov-report/src/utilities/rowProcessor/index.ts.html +41 -41
  340. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +2 -2
  341. package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +12 -12
  342. package/coverage/lcov-report/src/utilities/schema.ts.html +1 -1
  343. package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +1 -1
  344. package/coverage/lcov-report/src/utilities/security.ts.html +19 -19
  345. package/coverage/lcov-report/src/utilities/usageQuota/index.html +1 -1
  346. package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +32 -32
  347. package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +1 -1
  348. package/coverage/lcov-report/src/utilities/users.ts.html +1 -1
  349. package/coverage/lcov-report/src/utilities/workerRequests.ts.html +15 -15
  350. package/coverage/lcov-report/src/watch.ts.html +1 -1
  351. package/coverage/lcov-report/src/websocket.ts.html +1 -1
  352. package/coverage/lcov.info +12860 -20071
  353. package/dist/app.js +1 -1
  354. package/dist/package.json +6 -8
  355. package/dist/tsconfig.build.tsbuildinfo +1 -1
  356. package/jest.config.ts +11 -28
  357. package/package.json +7 -9
  358. package/src/api/controllers/query/import/tests/index.spec.js +1 -1
  359. package/src/api/routes/tests/__snapshots__/datasource.spec.ts.snap +1 -1
  360. package/src/api/routes/tests/analytics.spec.js +1 -4
  361. package/src/api/routes/tests/apikeys.spec.js +1 -1
  362. package/src/api/routes/tests/application.spec.ts +6 -20
  363. package/src/api/routes/tests/auth.spec.js +2 -2
  364. package/src/api/routes/tests/automation.spec.js +1 -5
  365. package/src/api/routes/tests/backup.spec.ts +13 -4
  366. package/src/api/routes/tests/{cloud.seq.spec.ts → cloud.spec.ts} +14 -8
  367. package/src/api/routes/tests/component.spec.js +1 -1
  368. package/src/api/routes/tests/datasource.spec.ts +3 -20
  369. package/src/api/routes/tests/dev.spec.js +1 -1
  370. package/src/api/routes/tests/integration.spec.js +1 -1
  371. package/src/api/routes/tests/layout.spec.js +1 -1
  372. package/src/api/routes/tests/metadata.spec.js +1 -1
  373. package/src/api/routes/tests/misc.spec.js +1 -1
  374. package/src/api/routes/tests/permissions.spec.js +1 -4
  375. package/src/api/routes/tests/{query.seq.spec.js → query.spec.js} +1 -21
  376. package/src/api/routes/tests/role.spec.js +1 -6
  377. package/src/api/routes/tests/routing.spec.js +1 -1
  378. package/src/api/routes/tests/row.spec.js +3 -11
  379. package/src/api/routes/tests/screen.spec.js +1 -1
  380. package/src/api/routes/tests/static.spec.js +1 -2
  381. package/src/api/routes/tests/table.spec.js +1 -1
  382. package/src/api/routes/tests/templates.spec.js +1 -1
  383. package/src/api/routes/tests/user.spec.js +0 -3
  384. package/src/api/routes/tests/utilities/TestFunctions.ts +2 -25
  385. package/src/api/routes/tests/utilities/index.ts +3 -5
  386. package/src/api/routes/tests/view.spec.js +1 -4
  387. package/src/api/routes/tests/webhook.spec.js +2 -11
  388. package/src/app.ts +1 -2
  389. package/src/automations/tests/automation.spec.js +4 -4
  390. package/src/automations/tests/bash.spec.js +1 -1
  391. package/src/automations/tests/discord.spec.js +1 -1
  392. package/src/automations/tests/executeQuery.spec.js +3 -2
  393. package/src/automations/tests/executeScript.spec.js +1 -1
  394. package/src/automations/tests/outgoingWebhook.spec.js +1 -1
  395. package/src/automations/tests/sendSmtpEmail.spec.js +1 -1
  396. package/src/automations/tests/serverLog.spec.js +1 -1
  397. package/src/automations/tests/updateRow.spec.js +1 -1
  398. package/src/automations/tests/zapier.spec.js +1 -1
  399. package/src/db/tests/linkController.spec.js +1 -4
  400. package/src/db/tests/linkTests.spec.js +1 -1
  401. package/src/migrations/functions/tests/appUrls.spec.js +1 -1
  402. package/src/migrations/functions/tests/syncQuotas.spec.js +1 -1
  403. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +1 -1
  404. package/src/migrations/tests/index.spec.ts +2 -3
  405. package/src/tests/jestEnv.ts +6 -2
  406. package/src/tests/jestSetup.ts +6 -5
  407. package/src/tests/utilities/TestConfiguration.ts +34 -90
  408. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/curl/curl.spec.js.html +0 -391
  409. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/curl/index.html +0 -116
  410. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi2/index.html +0 -116
  411. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi2/openapi2.spec.js.html +0 -796
  412. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi3/index.html +0 -116
  413. package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi3/openapi3.spec.js.html +0 -805
  414. package/coverage/lcov-report/src/api/controllers/query/import/tests/index.html +0 -116
  415. package/coverage/lcov-report/src/api/controllers/query/import/tests/index.spec.js.html +0 -568
  416. package/coverage/lcov-report/src/api/controllers/view/tests/index.html +0 -116
  417. package/coverage/lcov-report/src/api/controllers/view/tests/viewBuilder.spec.js.html +0 -277
  418. package/coverage/lcov-report/src/api/routes/public/tests/compare.spec.js.html +0 -583
  419. package/coverage/lcov-report/src/api/routes/public/tests/users.spec.js.html +0 -199
  420. package/coverage/lcov-report/src/api/routes/tests/analytics.spec.js.html +0 -271
  421. package/coverage/lcov-report/src/api/routes/tests/apikeys.spec.js.html +0 -259
  422. package/coverage/lcov-report/src/api/routes/tests/application.spec.ts.html +0 -1066
  423. package/coverage/lcov-report/src/api/routes/tests/auth.spec.js.html +0 -154
  424. package/coverage/lcov-report/src/api/routes/tests/automation.spec.js.html +0 -1123
  425. package/coverage/lcov-report/src/api/routes/tests/backup.spec.ts.html +0 -223
  426. package/coverage/lcov-report/src/api/routes/tests/cloud.seq.spec.ts.html +0 -262
  427. package/coverage/lcov-report/src/api/routes/tests/component.spec.js.html +0 -178
  428. package/coverage/lcov-report/src/api/routes/tests/datasource.spec.ts.html +0 -799
  429. package/coverage/lcov-report/src/api/routes/tests/dev.spec.js.html +0 -202
  430. package/coverage/lcov-report/src/api/routes/tests/index.html +0 -521
  431. package/coverage/lcov-report/src/api/routes/tests/integration.spec.js.html +0 -238
  432. package/coverage/lcov-report/src/api/routes/tests/internalSearch.spec.js.html +0 -670
  433. package/coverage/lcov-report/src/api/routes/tests/layout.spec.js.html +0 -259
  434. package/coverage/lcov-report/src/api/routes/tests/metadata.spec.js.html +0 -280
  435. package/coverage/lcov-report/src/api/routes/tests/misc.spec.js.html +0 -358
  436. package/coverage/lcov-report/src/api/routes/tests/permissions.spec.js.html +0 -484
  437. package/coverage/lcov-report/src/api/routes/tests/plugin.spec.ts.html +0 -622
  438. package/coverage/lcov-report/src/api/routes/tests/query.seq.spec.js.html +0 -1696
  439. package/coverage/lcov-report/src/api/routes/tests/role.spec.js.html +0 -478
  440. package/coverage/lcov-report/src/api/routes/tests/routing.spec.js.html +0 -430
  441. package/coverage/lcov-report/src/api/routes/tests/row.spec.js.html +0 -1804
  442. package/coverage/lcov-report/src/api/routes/tests/screen.spec.js.html +0 -391
  443. package/coverage/lcov-report/src/api/routes/tests/static.spec.js.html +0 -541
  444. package/coverage/lcov-report/src/api/routes/tests/table.spec.js.html +0 -991
  445. package/coverage/lcov-report/src/api/routes/tests/templates.spec.js.html +0 -154
  446. package/coverage/lcov-report/src/api/routes/tests/user.spec.js.html +0 -688
  447. package/coverage/lcov-report/src/api/routes/tests/view.spec.js.html +0 -1342
  448. package/coverage/lcov-report/src/api/routes/tests/webhook.spec.js.html +0 -484
  449. package/coverage/lcov-report/src/automations/tests/automation.spec.js.html +0 -337
  450. package/coverage/lcov-report/src/automations/tests/bash.spec.js.html +0 -187
  451. package/coverage/lcov-report/src/automations/tests/createRow.spec.ts.html +0 -223
  452. package/coverage/lcov-report/src/automations/tests/delay.spec.js.html +0 -133
  453. package/coverage/lcov-report/src/automations/tests/deleteRow.spec.ts.html +0 -250
  454. package/coverage/lcov-report/src/automations/tests/discord.spec.js.html +0 -166
  455. package/coverage/lcov-report/src/automations/tests/executeQuery.spec.js.html +0 -229
  456. package/coverage/lcov-report/src/automations/tests/executeScript.spec.js.html +0 -229
  457. package/coverage/lcov-report/src/automations/tests/filter.spec.js.html +0 -232
  458. package/coverage/lcov-report/src/automations/tests/index.html +0 -341
  459. package/coverage/lcov-report/src/automations/tests/loop.spec.ts.html +0 -220
  460. package/coverage/lcov-report/src/automations/tests/outgoingWebhook.spec.js.html +0 -202
  461. package/coverage/lcov-report/src/automations/tests/queryRows.spec.js.html +0 -436
  462. package/coverage/lcov-report/src/automations/tests/sendSmtpEmail.spec.js.html +0 -298
  463. package/coverage/lcov-report/src/automations/tests/serverLog.spec.js.html +0 -151
  464. package/coverage/lcov-report/src/automations/tests/updateRow.spec.js.html +0 -217
  465. package/coverage/lcov-report/src/automations/tests/zapier.spec.js.html +0 -166
  466. package/coverage/lcov-report/src/automations/unitTests/automationUtils.spec.ts.html +0 -280
  467. package/coverage/lcov-report/src/automations/unitTests/index.html +0 -116
  468. package/coverage/lcov-report/src/db/tests/index.html +0 -131
  469. package/coverage/lcov-report/src/db/tests/linkController.spec.js.html +0 -793
  470. package/coverage/lcov-report/src/db/tests/linkTests.spec.js.html +0 -277
  471. package/coverage/lcov-report/src/integrations/tests/airtable.spec.ts.html +0 -310
  472. package/coverage/lcov-report/src/integrations/tests/arangodb.spec.ts.html +0 -199
  473. package/coverage/lcov-report/src/integrations/tests/couchdb.spec.ts.html +0 -349
  474. package/coverage/lcov-report/src/integrations/tests/dynamodb.spec.ts.html +0 -550
  475. package/coverage/lcov-report/src/integrations/tests/elasticsearch.spec.ts.html +0 -331
  476. package/coverage/lcov-report/src/integrations/tests/firebase.spec.ts.html +0 -376
  477. package/coverage/lcov-report/src/integrations/tests/microsoftSqlServer.spec.ts.html +0 -253
  478. package/coverage/lcov-report/src/integrations/tests/mongo.spec.ts.html +0 -1087
  479. package/coverage/lcov-report/src/integrations/tests/mysql.spec.ts.html +0 -484
  480. package/coverage/lcov-report/src/integrations/tests/oracle.spec.ts.html +0 -373
  481. package/coverage/lcov-report/src/integrations/tests/postgres.spec.ts.html +0 -328
  482. package/coverage/lcov-report/src/integrations/tests/redis.spec.ts.html +0 -337
  483. package/coverage/lcov-report/src/integrations/tests/rest.spec.ts.html +0 -1870
  484. package/coverage/lcov-report/src/integrations/tests/s3.spec.ts.html +0 -421
  485. package/coverage/lcov-report/src/integrations/tests/sql.spec.ts.html +0 -1753
  486. package/coverage/lcov-report/src/middleware/tests/authorized.spec.js.html +0 -574
  487. package/coverage/lcov-report/src/middleware/tests/currentapp.spec.js.html +0 -814
  488. package/coverage/lcov-report/src/middleware/tests/index.html +0 -161
  489. package/coverage/lcov-report/src/middleware/tests/resourceId.spec.js.html +0 -397
  490. package/coverage/lcov-report/src/middleware/tests/selfhost.spec.js.html +0 -214
  491. package/coverage/lcov-report/src/migrations/functions/tests/appUrls.spec.js.html +0 -163
  492. package/coverage/lcov-report/src/migrations/functions/tests/index.html +0 -161
  493. package/coverage/lcov-report/src/migrations/functions/tests/syncQuotas.spec.js.html +0 -163
  494. package/coverage/lcov-report/src/migrations/functions/tests/tableSettings.spec.ts.html +0 -517
  495. package/coverage/lcov-report/src/migrations/functions/tests/userEmailViewCasing.spec.js.html +0 -190
  496. package/coverage/lcov-report/src/migrations/functions/usageQuotas/tests/index.html +0 -131
  497. package/coverage/lcov-report/src/migrations/functions/usageQuotas/tests/syncApps.spec.ts.html +0 -190
  498. package/coverage/lcov-report/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts.html +0 -244
  499. package/coverage/lcov-report/src/migrations/tests/index.spec.ts.html +0 -535
  500. package/coverage/lcov-report/src/sdk/tests/attachments.spec.ts.html +0 -313
  501. package/coverage/lcov-report/src/sdk/tests/index.html +0 -116
  502. package/coverage/lcov-report/src/utilities/retry.ts.html +0 -139
  503. package/coverage/lcov-report/src/utilities/rowProcessor/tests/index.html +0 -116
  504. package/coverage/lcov-report/src/utilities/rowProcessor/tests/utils.spec.ts.html +0 -256
  505. package/dist/utilities/retry.js +0 -30
  506. package/jest-testcontainers-config.js +0 -8
  507. package/src/utilities/retry.ts +0 -18
@@ -1,1870 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for src/integrations/tests/rest.spec.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">src/integrations/tests</a> rest.spec.ts</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">0% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>0/218</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">0% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>0/7</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">0% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>0/48</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">0% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>0/217</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 oninput="onInput()" 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></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
662
- <span class="cline-any cline-no">&nbsp;</span>
663
- <span class="cline-any cline-neutral">&nbsp;</span>
664
- <span class="cline-any cline-neutral">&nbsp;</span>
665
- <span class="cline-any cline-no">&nbsp;</span>
666
- <span class="cline-any cline-neutral">&nbsp;</span>
667
- <span class="cline-any cline-no">&nbsp;</span>
668
- <span class="cline-any cline-neutral">&nbsp;</span>
669
- <span class="cline-any cline-no">&nbsp;</span>
670
- <span class="cline-any cline-neutral">&nbsp;</span>
671
- <span class="cline-any cline-neutral">&nbsp;</span>
672
- <span class="cline-any cline-neutral">&nbsp;</span>
673
- <span class="cline-any cline-neutral">&nbsp;</span>
674
- <span class="cline-any cline-neutral">&nbsp;</span>
675
- <span class="cline-any cline-neutral">&nbsp;</span>
676
- <span class="cline-any cline-neutral">&nbsp;</span>
677
- <span class="cline-any cline-neutral">&nbsp;</span>
678
- <span class="cline-any cline-neutral">&nbsp;</span>
679
- <span class="cline-any cline-no">&nbsp;</span>
680
- <span class="cline-any cline-no">&nbsp;</span>
681
- <span class="cline-any cline-neutral">&nbsp;</span>
682
- <span class="cline-any cline-no">&nbsp;</span>
683
- <span class="cline-any cline-neutral">&nbsp;</span>
684
- <span class="cline-any cline-neutral">&nbsp;</span>
685
- <span class="cline-any cline-neutral">&nbsp;</span>
686
- <span class="cline-any cline-neutral">&nbsp;</span>
687
- <span class="cline-any cline-neutral">&nbsp;</span>
688
- <span class="cline-any cline-neutral">&nbsp;</span>
689
- <span class="cline-any cline-neutral">&nbsp;</span>
690
- <span class="cline-any cline-neutral">&nbsp;</span>
691
- <span class="cline-any cline-no">&nbsp;</span>
692
- <span class="cline-any cline-neutral">&nbsp;</span>
693
- <span class="cline-any cline-neutral">&nbsp;</span>
694
- <span class="cline-any cline-neutral">&nbsp;</span>
695
- <span class="cline-any cline-no">&nbsp;</span>
696
- <span class="cline-any cline-no">&nbsp;</span>
697
- <span class="cline-any cline-neutral">&nbsp;</span>
698
- <span class="cline-any cline-neutral">&nbsp;</span>
699
- <span class="cline-any cline-no">&nbsp;</span>
700
- <span class="cline-any cline-no">&nbsp;</span>
701
- <span class="cline-any cline-neutral">&nbsp;</span>
702
- <span class="cline-any cline-neutral">&nbsp;</span>
703
- <span class="cline-any cline-no">&nbsp;</span>
704
- <span class="cline-any cline-neutral">&nbsp;</span>
705
- <span class="cline-any cline-neutral">&nbsp;</span>
706
- <span class="cline-any cline-no">&nbsp;</span>
707
- <span class="cline-any cline-no">&nbsp;</span>
708
- <span class="cline-any cline-neutral">&nbsp;</span>
709
- <span class="cline-any cline-neutral">&nbsp;</span>
710
- <span class="cline-any cline-neutral">&nbsp;</span>
711
- <span class="cline-any cline-neutral">&nbsp;</span>
712
- <span class="cline-any cline-neutral">&nbsp;</span>
713
- <span class="cline-any cline-neutral">&nbsp;</span>
714
- <span class="cline-any cline-neutral">&nbsp;</span>
715
- <span class="cline-any cline-neutral">&nbsp;</span>
716
- <span class="cline-any cline-no">&nbsp;</span>
717
- <span class="cline-any cline-no">&nbsp;</span>
718
- <span class="cline-any cline-neutral">&nbsp;</span>
719
- <span class="cline-any cline-neutral">&nbsp;</span>
720
- <span class="cline-any cline-neutral">&nbsp;</span>
721
- <span class="cline-any cline-neutral">&nbsp;</span>
722
- <span class="cline-any cline-neutral">&nbsp;</span>
723
- <span class="cline-any cline-neutral">&nbsp;</span>
724
- <span class="cline-any cline-no">&nbsp;</span>
725
- <span class="cline-any cline-no">&nbsp;</span>
726
- <span class="cline-any cline-neutral">&nbsp;</span>
727
- <span class="cline-any cline-neutral">&nbsp;</span>
728
- <span class="cline-any cline-neutral">&nbsp;</span>
729
- <span class="cline-any cline-neutral">&nbsp;</span>
730
- <span class="cline-any cline-neutral">&nbsp;</span>
731
- <span class="cline-any cline-neutral">&nbsp;</span>
732
- <span class="cline-any cline-no">&nbsp;</span>
733
- <span class="cline-any cline-no">&nbsp;</span>
734
- <span class="cline-any cline-neutral">&nbsp;</span>
735
- <span class="cline-any cline-neutral">&nbsp;</span>
736
- <span class="cline-any cline-neutral">&nbsp;</span>
737
- <span class="cline-any cline-neutral">&nbsp;</span>
738
- <span class="cline-any cline-neutral">&nbsp;</span>
739
- <span class="cline-any cline-neutral">&nbsp;</span>
740
- <span class="cline-any cline-neutral">&nbsp;</span>
741
- <span class="cline-any cline-no">&nbsp;</span>
742
- <span class="cline-any cline-no">&nbsp;</span>
743
- <span class="cline-any cline-neutral">&nbsp;</span>
744
- <span class="cline-any cline-neutral">&nbsp;</span>
745
- <span class="cline-any cline-neutral">&nbsp;</span>
746
- <span class="cline-any cline-neutral">&nbsp;</span>
747
- <span class="cline-any cline-neutral">&nbsp;</span>
748
- <span class="cline-any cline-neutral">&nbsp;</span>
749
- <span class="cline-any cline-neutral">&nbsp;</span>
750
- <span class="cline-any cline-neutral">&nbsp;</span>
751
- <span class="cline-any cline-neutral">&nbsp;</span>
752
- <span class="cline-any cline-neutral">&nbsp;</span>
753
- <span class="cline-any cline-no">&nbsp;</span>
754
- <span class="cline-any cline-no">&nbsp;</span>
755
- <span class="cline-any cline-neutral">&nbsp;</span>
756
- <span class="cline-any cline-neutral">&nbsp;</span>
757
- <span class="cline-any cline-neutral">&nbsp;</span>
758
- <span class="cline-any cline-neutral">&nbsp;</span>
759
- <span class="cline-any cline-neutral">&nbsp;</span>
760
- <span class="cline-any cline-neutral">&nbsp;</span>
761
- <span class="cline-any cline-no">&nbsp;</span>
762
- <span class="cline-any cline-no">&nbsp;</span>
763
- <span class="cline-any cline-neutral">&nbsp;</span>
764
- <span class="cline-any cline-neutral">&nbsp;</span>
765
- <span class="cline-any cline-neutral">&nbsp;</span>
766
- <span class="cline-any cline-neutral">&nbsp;</span>
767
- <span class="cline-any cline-neutral">&nbsp;</span>
768
- <span class="cline-any cline-neutral">&nbsp;</span>
769
- <span class="cline-any cline-neutral">&nbsp;</span>
770
- <span class="cline-any cline-neutral">&nbsp;</span>
771
- <span class="cline-any cline-neutral">&nbsp;</span>
772
- <span class="cline-any cline-neutral">&nbsp;</span>
773
- <span class="cline-any cline-no">&nbsp;</span>
774
- <span class="cline-any cline-no">&nbsp;</span>
775
- <span class="cline-any cline-neutral">&nbsp;</span>
776
- <span class="cline-any cline-neutral">&nbsp;</span>
777
- <span class="cline-any cline-neutral">&nbsp;</span>
778
- <span class="cline-any cline-neutral">&nbsp;</span>
779
- <span class="cline-any cline-neutral">&nbsp;</span>
780
- <span class="cline-any cline-neutral">&nbsp;</span>
781
- <span class="cline-any cline-no">&nbsp;</span>
782
- <span class="cline-any cline-no">&nbsp;</span>
783
- <span class="cline-any cline-neutral">&nbsp;</span>
784
- <span class="cline-any cline-no">&nbsp;</span>
785
- <span class="cline-any cline-no">&nbsp;</span>
786
- <span class="cline-any cline-no">&nbsp;</span>
787
- <span class="cline-any cline-no">&nbsp;</span>
788
- <span class="cline-any cline-neutral">&nbsp;</span>
789
- <span class="cline-any cline-neutral">&nbsp;</span>
790
- <span class="cline-any cline-no">&nbsp;</span>
791
- <span class="cline-any cline-no">&nbsp;</span>
792
- <span class="cline-any cline-no">&nbsp;</span>
793
- <span class="cline-any cline-neutral">&nbsp;</span>
794
- <span class="cline-any cline-no">&nbsp;</span>
795
- <span class="cline-any cline-neutral">&nbsp;</span>
796
- <span class="cline-any cline-neutral">&nbsp;</span>
797
- <span class="cline-any cline-no">&nbsp;</span>
798
- <span class="cline-any cline-no">&nbsp;</span>
799
- <span class="cline-any cline-no">&nbsp;</span>
800
- <span class="cline-any cline-no">&nbsp;</span>
801
- <span class="cline-any cline-no">&nbsp;</span>
802
- <span class="cline-any cline-neutral">&nbsp;</span>
803
- <span class="cline-any cline-no">&nbsp;</span>
804
- <span class="cline-any cline-neutral">&nbsp;</span>
805
- <span class="cline-any cline-neutral">&nbsp;</span>
806
- <span class="cline-any cline-no">&nbsp;</span>
807
- <span class="cline-any cline-no">&nbsp;</span>
808
- <span class="cline-any cline-no">&nbsp;</span>
809
- <span class="cline-any cline-no">&nbsp;</span>
810
- <span class="cline-any cline-no">&nbsp;</span>
811
- <span class="cline-any cline-neutral">&nbsp;</span>
812
- <span class="cline-any cline-no">&nbsp;</span>
813
- <span class="cline-any cline-neutral">&nbsp;</span>
814
- <span class="cline-any cline-neutral">&nbsp;</span>
815
- <span class="cline-any cline-no">&nbsp;</span>
816
- <span class="cline-any cline-no">&nbsp;</span>
817
- <span class="cline-any cline-no">&nbsp;</span>
818
- <span class="cline-any cline-no">&nbsp;</span>
819
- <span class="cline-any cline-neutral">&nbsp;</span>
820
- <span class="cline-any cline-neutral">&nbsp;</span>
821
- <span class="cline-any cline-no">&nbsp;</span>
822
- <span class="cline-any cline-no">&nbsp;</span>
823
- <span class="cline-any cline-no">&nbsp;</span>
824
- <span class="cline-any cline-no">&nbsp;</span>
825
- <span class="cline-any cline-no">&nbsp;</span>
826
- <span class="cline-any cline-neutral">&nbsp;</span>
827
- <span class="cline-any cline-neutral">&nbsp;</span>
828
- <span class="cline-any cline-no">&nbsp;</span>
829
- <span class="cline-any cline-no">&nbsp;</span>
830
- <span class="cline-any cline-no">&nbsp;</span>
831
- <span class="cline-any cline-no">&nbsp;</span>
832
- <span class="cline-any cline-no">&nbsp;</span>
833
- <span class="cline-any cline-neutral">&nbsp;</span>
834
- <span class="cline-any cline-neutral">&nbsp;</span>
835
- <span class="cline-any cline-no">&nbsp;</span>
836
- <span class="cline-any cline-no">&nbsp;</span>
837
- <span class="cline-any cline-neutral">&nbsp;</span>
838
- <span class="cline-any cline-neutral">&nbsp;</span>
839
- <span class="cline-any cline-neutral">&nbsp;</span>
840
- <span class="cline-any cline-neutral">&nbsp;</span>
841
- <span class="cline-any cline-no">&nbsp;</span>
842
- <span class="cline-any cline-no">&nbsp;</span>
843
- <span class="cline-any cline-no">&nbsp;</span>
844
- <span class="cline-any cline-neutral">&nbsp;</span>
845
- <span class="cline-any cline-neutral">&nbsp;</span>
846
- <span class="cline-any cline-neutral">&nbsp;</span>
847
- <span class="cline-any cline-no">&nbsp;</span>
848
- <span class="cline-any cline-neutral">&nbsp;</span>
849
- <span class="cline-any cline-no">&nbsp;</span>
850
- <span class="cline-any cline-neutral">&nbsp;</span>
851
- <span class="cline-any cline-no">&nbsp;</span>
852
- <span class="cline-any cline-no">&nbsp;</span>
853
- <span class="cline-any cline-neutral">&nbsp;</span>
854
- <span class="cline-any cline-no">&nbsp;</span>
855
- <span class="cline-any cline-no">&nbsp;</span>
856
- <span class="cline-any cline-neutral">&nbsp;</span>
857
- <span class="cline-any cline-neutral">&nbsp;</span>
858
- <span class="cline-any cline-neutral">&nbsp;</span>
859
- <span class="cline-any cline-neutral">&nbsp;</span>
860
- <span class="cline-any cline-no">&nbsp;</span>
861
- <span class="cline-any cline-no">&nbsp;</span>
862
- <span class="cline-any cline-no">&nbsp;</span>
863
- <span class="cline-any cline-no">&nbsp;</span>
864
- <span class="cline-any cline-no">&nbsp;</span>
865
- <span class="cline-any cline-no">&nbsp;</span>
866
- <span class="cline-any cline-no">&nbsp;</span>
867
- <span class="cline-any cline-no">&nbsp;</span>
868
- <span class="cline-any cline-neutral">&nbsp;</span>
869
- <span class="cline-any cline-neutral">&nbsp;</span>
870
- <span class="cline-any cline-no">&nbsp;</span>
871
- <span class="cline-any cline-no">&nbsp;</span>
872
- <span class="cline-any cline-no">&nbsp;</span>
873
- <span class="cline-any cline-no">&nbsp;</span>
874
- <span class="cline-any cline-no">&nbsp;</span>
875
- <span class="cline-any cline-no">&nbsp;</span>
876
- <span class="cline-any cline-no">&nbsp;</span>
877
- <span class="cline-any cline-neutral">&nbsp;</span>
878
- <span class="cline-any cline-neutral">&nbsp;</span>
879
- <span class="cline-any cline-no">&nbsp;</span>
880
- <span class="cline-any cline-no">&nbsp;</span>
881
- <span class="cline-any cline-no">&nbsp;</span>
882
- <span class="cline-any cline-no">&nbsp;</span>
883
- <span class="cline-any cline-no">&nbsp;</span>
884
- <span class="cline-any cline-no">&nbsp;</span>
885
- <span class="cline-any cline-no">&nbsp;</span>
886
- <span class="cline-any cline-neutral">&nbsp;</span>
887
- <span class="cline-any cline-neutral">&nbsp;</span>
888
- <span class="cline-any cline-neutral">&nbsp;</span>
889
- <span class="cline-any cline-no">&nbsp;</span>
890
- <span class="cline-any cline-no">&nbsp;</span>
891
- <span class="cline-any cline-neutral">&nbsp;</span>
892
- <span class="cline-any cline-neutral">&nbsp;</span>
893
- <span class="cline-any cline-neutral">&nbsp;</span>
894
- <span class="cline-any cline-neutral">&nbsp;</span>
895
- <span class="cline-any cline-neutral">&nbsp;</span>
896
- <span class="cline-any cline-neutral">&nbsp;</span>
897
- <span class="cline-any cline-neutral">&nbsp;</span>
898
- <span class="cline-any cline-neutral">&nbsp;</span>
899
- <span class="cline-any cline-neutral">&nbsp;</span>
900
- <span class="cline-any cline-no">&nbsp;</span>
901
- <span class="cline-any cline-neutral">&nbsp;</span>
902
- <span class="cline-any cline-neutral">&nbsp;</span>
903
- <span class="cline-any cline-neutral">&nbsp;</span>
904
- <span class="cline-any cline-neutral">&nbsp;</span>
905
- <span class="cline-any cline-neutral">&nbsp;</span>
906
- <span class="cline-any cline-neutral">&nbsp;</span>
907
- <span class="cline-any cline-neutral">&nbsp;</span>
908
- <span class="cline-any cline-neutral">&nbsp;</span>
909
- <span class="cline-any cline-no">&nbsp;</span>
910
- <span class="cline-any cline-no">&nbsp;</span>
911
- <span class="cline-any cline-neutral">&nbsp;</span>
912
- <span class="cline-any cline-neutral">&nbsp;</span>
913
- <span class="cline-any cline-neutral">&nbsp;</span>
914
- <span class="cline-any cline-neutral">&nbsp;</span>
915
- <span class="cline-any cline-neutral">&nbsp;</span>
916
- <span class="cline-any cline-no">&nbsp;</span>
917
- <span class="cline-any cline-no">&nbsp;</span>
918
- <span class="cline-any cline-neutral">&nbsp;</span>
919
- <span class="cline-any cline-neutral">&nbsp;</span>
920
- <span class="cline-any cline-no">&nbsp;</span>
921
- <span class="cline-any cline-no">&nbsp;</span>
922
- <span class="cline-any cline-neutral">&nbsp;</span>
923
- <span class="cline-any cline-neutral">&nbsp;</span>
924
- <span class="cline-any cline-neutral">&nbsp;</span>
925
- <span class="cline-any cline-neutral">&nbsp;</span>
926
- <span class="cline-any cline-neutral">&nbsp;</span>
927
- <span class="cline-any cline-neutral">&nbsp;</span>
928
- <span class="cline-any cline-neutral">&nbsp;</span>
929
- <span class="cline-any cline-no">&nbsp;</span>
930
- <span class="cline-any cline-no">&nbsp;</span>
931
- <span class="cline-any cline-neutral">&nbsp;</span>
932
- <span class="cline-any cline-neutral">&nbsp;</span>
933
- <span class="cline-any cline-no">&nbsp;</span>
934
- <span class="cline-any cline-no">&nbsp;</span>
935
- <span class="cline-any cline-neutral">&nbsp;</span>
936
- <span class="cline-any cline-neutral">&nbsp;</span>
937
- <span class="cline-any cline-neutral">&nbsp;</span>
938
- <span class="cline-any cline-neutral">&nbsp;</span>
939
- <span class="cline-any cline-neutral">&nbsp;</span>
940
- <span class="cline-any cline-neutral">&nbsp;</span>
941
- <span class="cline-any cline-neutral">&nbsp;</span>
942
- <span class="cline-any cline-neutral">&nbsp;</span>
943
- <span class="cline-any cline-no">&nbsp;</span>
944
- <span class="cline-any cline-no">&nbsp;</span>
945
- <span class="cline-any cline-no">&nbsp;</span>
946
- <span class="cline-any cline-no">&nbsp;</span>
947
- <span class="cline-any cline-no">&nbsp;</span>
948
- <span class="cline-any cline-no">&nbsp;</span>
949
- <span class="cline-any cline-no">&nbsp;</span>
950
- <span class="cline-any cline-neutral">&nbsp;</span>
951
- <span class="cline-any cline-neutral">&nbsp;</span>
952
- <span class="cline-any cline-neutral">&nbsp;</span>
953
- <span class="cline-any cline-neutral">&nbsp;</span>
954
- <span class="cline-any cline-neutral">&nbsp;</span>
955
- <span class="cline-any cline-neutral">&nbsp;</span>
956
- <span class="cline-any cline-neutral">&nbsp;</span>
957
- <span class="cline-any cline-neutral">&nbsp;</span>
958
- <span class="cline-any cline-neutral">&nbsp;</span>
959
- <span class="cline-any cline-neutral">&nbsp;</span>
960
- <span class="cline-any cline-neutral">&nbsp;</span>
961
- <span class="cline-any cline-neutral">&nbsp;</span>
962
- <span class="cline-any cline-no">&nbsp;</span>
963
- <span class="cline-any cline-no">&nbsp;</span>
964
- <span class="cline-any cline-neutral">&nbsp;</span>
965
- <span class="cline-any cline-neutral">&nbsp;</span>
966
- <span class="cline-any cline-neutral">&nbsp;</span>
967
- <span class="cline-any cline-neutral">&nbsp;</span>
968
- <span class="cline-any cline-neutral">&nbsp;</span>
969
- <span class="cline-any cline-neutral">&nbsp;</span>
970
- <span class="cline-any cline-neutral">&nbsp;</span>
971
- <span class="cline-any cline-neutral">&nbsp;</span>
972
- <span class="cline-any cline-no">&nbsp;</span>
973
- <span class="cline-any cline-no">&nbsp;</span>
974
- <span class="cline-any cline-no">&nbsp;</span>
975
- <span class="cline-any cline-no">&nbsp;</span>
976
- <span class="cline-any cline-no">&nbsp;</span>
977
- <span class="cline-any cline-no">&nbsp;</span>
978
- <span class="cline-any cline-neutral">&nbsp;</span>
979
- <span class="cline-any cline-neutral">&nbsp;</span>
980
- <span class="cline-any cline-neutral">&nbsp;</span>
981
- <span class="cline-any cline-neutral">&nbsp;</span>
982
- <span class="cline-any cline-neutral">&nbsp;</span>
983
- <span class="cline-any cline-neutral">&nbsp;</span>
984
- <span class="cline-any cline-neutral">&nbsp;</span>
985
- <span class="cline-any cline-neutral">&nbsp;</span>
986
- <span class="cline-any cline-neutral">&nbsp;</span>
987
- <span class="cline-any cline-neutral">&nbsp;</span>
988
- <span class="cline-any cline-neutral">&nbsp;</span>
989
- <span class="cline-any cline-neutral">&nbsp;</span>
990
- <span class="cline-any cline-neutral">&nbsp;</span>
991
- <span class="cline-any cline-no">&nbsp;</span>
992
- <span class="cline-any cline-no">&nbsp;</span>
993
- <span class="cline-any cline-neutral">&nbsp;</span>
994
- <span class="cline-any cline-neutral">&nbsp;</span>
995
- <span class="cline-any cline-neutral">&nbsp;</span>
996
- <span class="cline-any cline-neutral">&nbsp;</span>
997
- <span class="cline-any cline-neutral">&nbsp;</span>
998
- <span class="cline-any cline-neutral">&nbsp;</span>
999
- <span class="cline-any cline-neutral">&nbsp;</span>
1000
- <span class="cline-any cline-neutral">&nbsp;</span>
1001
- <span class="cline-any cline-neutral">&nbsp;</span>
1002
- <span class="cline-any cline-neutral">&nbsp;</span>
1003
- <span class="cline-any cline-neutral">&nbsp;</span>
1004
- <span class="cline-any cline-no">&nbsp;</span>
1005
- <span class="cline-any cline-no">&nbsp;</span>
1006
- <span class="cline-any cline-no">&nbsp;</span>
1007
- <span class="cline-any cline-no">&nbsp;</span>
1008
- <span class="cline-any cline-no">&nbsp;</span>
1009
- <span class="cline-any cline-no">&nbsp;</span>
1010
- <span class="cline-any cline-neutral">&nbsp;</span>
1011
- <span class="cline-any cline-neutral">&nbsp;</span>
1012
- <span class="cline-any cline-neutral">&nbsp;</span>
1013
- <span class="cline-any cline-neutral">&nbsp;</span>
1014
- <span class="cline-any cline-neutral">&nbsp;</span>
1015
- <span class="cline-any cline-neutral">&nbsp;</span>
1016
- <span class="cline-any cline-neutral">&nbsp;</span>
1017
- <span class="cline-any cline-neutral">&nbsp;</span>
1018
- <span class="cline-any cline-neutral">&nbsp;</span>
1019
- <span class="cline-any cline-neutral">&nbsp;</span>
1020
- <span class="cline-any cline-neutral">&nbsp;</span>
1021
- <span class="cline-any cline-neutral">&nbsp;</span>
1022
- <span class="cline-any cline-neutral">&nbsp;</span>
1023
- <span class="cline-any cline-no">&nbsp;</span>
1024
- <span class="cline-any cline-no">&nbsp;</span>
1025
- <span class="cline-any cline-neutral">&nbsp;</span>
1026
- <span class="cline-any cline-neutral">&nbsp;</span>
1027
- <span class="cline-any cline-neutral">&nbsp;</span>
1028
- <span class="cline-any cline-neutral">&nbsp;</span>
1029
- <span class="cline-any cline-neutral">&nbsp;</span>
1030
- <span class="cline-any cline-no">&nbsp;</span>
1031
- <span class="cline-any cline-no">&nbsp;</span>
1032
- <span class="cline-any cline-no">&nbsp;</span>
1033
- <span class="cline-any cline-neutral">&nbsp;</span>
1034
- <span class="cline-any cline-neutral">&nbsp;</span>
1035
- <span class="cline-any cline-no">&nbsp;</span>
1036
- <span class="cline-any cline-no">&nbsp;</span>
1037
- <span class="cline-any cline-no">&nbsp;</span>
1038
- <span class="cline-any cline-no">&nbsp;</span>
1039
- <span class="cline-any cline-no">&nbsp;</span>
1040
- <span class="cline-any cline-no">&nbsp;</span>
1041
- <span class="cline-any cline-neutral">&nbsp;</span>
1042
- <span class="cline-any cline-neutral">&nbsp;</span>
1043
- <span class="cline-any cline-neutral">&nbsp;</span>
1044
- <span class="cline-any cline-neutral">&nbsp;</span>
1045
- <span class="cline-any cline-neutral">&nbsp;</span>
1046
- <span class="cline-any cline-neutral">&nbsp;</span>
1047
- <span class="cline-any cline-neutral">&nbsp;</span>
1048
- <span class="cline-any cline-neutral">&nbsp;</span>
1049
- <span class="cline-any cline-neutral">&nbsp;</span>
1050
- <span class="cline-any cline-neutral">&nbsp;</span>
1051
- <span class="cline-any cline-neutral">&nbsp;</span>
1052
- <span class="cline-any cline-neutral">&nbsp;</span>
1053
- <span class="cline-any cline-neutral">&nbsp;</span>
1054
- <span class="cline-any cline-no">&nbsp;</span>
1055
- <span class="cline-any cline-no">&nbsp;</span>
1056
- <span class="cline-any cline-neutral">&nbsp;</span>
1057
- <span class="cline-any cline-neutral">&nbsp;</span>
1058
- <span class="cline-any cline-neutral">&nbsp;</span>
1059
- <span class="cline-any cline-neutral">&nbsp;</span>
1060
- <span class="cline-any cline-neutral">&nbsp;</span>
1061
- <span class="cline-any cline-no">&nbsp;</span>
1062
- <span class="cline-any cline-no">&nbsp;</span>
1063
- <span class="cline-any cline-no">&nbsp;</span>
1064
- <span class="cline-any cline-no">&nbsp;</span>
1065
- <span class="cline-any cline-no">&nbsp;</span>
1066
- <span class="cline-any cline-neutral">&nbsp;</span>
1067
- <span class="cline-any cline-neutral">&nbsp;</span>
1068
- <span class="cline-any cline-neutral">&nbsp;</span>
1069
- <span class="cline-any cline-no">&nbsp;</span>
1070
- <span class="cline-any cline-no">&nbsp;</span>
1071
- <span class="cline-any cline-no">&nbsp;</span>
1072
- <span class="cline-any cline-no">&nbsp;</span>
1073
- <span class="cline-any cline-no">&nbsp;</span>
1074
- <span class="cline-any cline-no">&nbsp;</span>
1075
- <span class="cline-any cline-no">&nbsp;</span>
1076
- <span class="cline-any cline-neutral">&nbsp;</span>
1077
- <span class="cline-any cline-neutral">&nbsp;</span>
1078
- <span class="cline-any cline-neutral">&nbsp;</span>
1079
- <span class="cline-any cline-neutral">&nbsp;</span>
1080
- <span class="cline-any cline-neutral">&nbsp;</span>
1081
- <span class="cline-any cline-neutral">&nbsp;</span>
1082
- <span class="cline-any cline-neutral">&nbsp;</span>
1083
- <span class="cline-any cline-neutral">&nbsp;</span>
1084
- <span class="cline-any cline-neutral">&nbsp;</span>
1085
- <span class="cline-any cline-neutral">&nbsp;</span>
1086
- <span class="cline-any cline-neutral">&nbsp;</span>
1087
- <span class="cline-any cline-neutral">&nbsp;</span>
1088
- <span class="cline-any cline-neutral">&nbsp;</span>
1089
- <span class="cline-any cline-no">&nbsp;</span>
1090
- <span class="cline-any cline-no">&nbsp;</span>
1091
- <span class="cline-any cline-neutral">&nbsp;</span>
1092
- <span class="cline-any cline-neutral">&nbsp;</span>
1093
- <span class="cline-any cline-neutral">&nbsp;</span>
1094
- <span class="cline-any cline-neutral">&nbsp;</span>
1095
- <span class="cline-any cline-neutral">&nbsp;</span>
1096
- <span class="cline-any cline-neutral">&nbsp;</span>
1097
- <span class="cline-any cline-no">&nbsp;</span>
1098
- <span class="cline-any cline-neutral">&nbsp;</span>
1099
- <span class="cline-any cline-neutral">&nbsp;</span>
1100
- <span class="cline-any cline-no">&nbsp;</span>
1101
- <span class="cline-any cline-no">&nbsp;</span>
1102
- <span class="cline-any cline-no">&nbsp;</span>
1103
- <span class="cline-any cline-no">&nbsp;</span>
1104
- <span class="cline-any cline-no">&nbsp;</span>
1105
- <span class="cline-any cline-no">&nbsp;</span>
1106
- <span class="cline-any cline-neutral">&nbsp;</span>
1107
- <span class="cline-any cline-neutral">&nbsp;</span>
1108
- <span class="cline-any cline-neutral">&nbsp;</span>
1109
- <span class="cline-any cline-neutral">&nbsp;</span>
1110
- <span class="cline-any cline-neutral">&nbsp;</span>
1111
- <span class="cline-any cline-neutral">&nbsp;</span>
1112
- <span class="cline-any cline-neutral">&nbsp;</span>
1113
- <span class="cline-any cline-neutral">&nbsp;</span>
1114
- <span class="cline-any cline-neutral">&nbsp;</span>
1115
- <span class="cline-any cline-neutral">&nbsp;</span>
1116
- <span class="cline-any cline-neutral">&nbsp;</span>
1117
- <span class="cline-any cline-neutral">&nbsp;</span>
1118
- <span class="cline-any cline-neutral">&nbsp;</span>
1119
- <span class="cline-any cline-neutral">&nbsp;</span>
1120
- <span class="cline-any cline-no">&nbsp;</span>
1121
- <span class="cline-any cline-no">&nbsp;</span>
1122
- <span class="cline-any cline-neutral">&nbsp;</span>
1123
- <span class="cline-any cline-neutral">&nbsp;</span>
1124
- <span class="cline-any cline-neutral">&nbsp;</span>
1125
- <span class="cline-any cline-neutral">&nbsp;</span>
1126
- <span class="cline-any cline-neutral">&nbsp;</span>
1127
- <span class="cline-any cline-neutral">&nbsp;</span>
1128
- <span class="cline-any cline-neutral">&nbsp;</span>
1129
- <span class="cline-any cline-neutral">&nbsp;</span>
1130
- <span class="cline-any cline-neutral">&nbsp;</span>
1131
- <span class="cline-any cline-no">&nbsp;</span>
1132
- <span class="cline-any cline-neutral">&nbsp;</span>
1133
- <span class="cline-any cline-neutral">&nbsp;</span>
1134
- <span class="cline-any cline-no">&nbsp;</span>
1135
- <span class="cline-any cline-no">&nbsp;</span>
1136
- <span class="cline-any cline-no">&nbsp;</span>
1137
- <span class="cline-any cline-no">&nbsp;</span>
1138
- <span class="cline-any cline-no">&nbsp;</span>
1139
- <span class="cline-any cline-no">&nbsp;</span>
1140
- <span class="cline-any cline-neutral">&nbsp;</span>
1141
- <span class="cline-any cline-neutral">&nbsp;</span>
1142
- <span class="cline-any cline-neutral">&nbsp;</span>
1143
- <span class="cline-any cline-neutral">&nbsp;</span>
1144
- <span class="cline-any cline-neutral">&nbsp;</span>
1145
- <span class="cline-any cline-neutral">&nbsp;</span>
1146
- <span class="cline-any cline-neutral">&nbsp;</span>
1147
- <span class="cline-any cline-neutral">&nbsp;</span>
1148
- <span class="cline-any cline-neutral">&nbsp;</span>
1149
- <span class="cline-any cline-neutral">&nbsp;</span>
1150
- <span class="cline-any cline-neutral">&nbsp;</span>
1151
- <span class="cline-any cline-neutral">&nbsp;</span>
1152
- <span class="cline-any cline-neutral">&nbsp;</span>
1153
- <span class="cline-any cline-neutral">&nbsp;</span>
1154
- <span class="cline-any cline-no">&nbsp;</span>
1155
- <span class="cline-any cline-no">&nbsp;</span>
1156
- <span class="cline-any cline-neutral">&nbsp;</span>
1157
- <span class="cline-any cline-neutral">&nbsp;</span>
1158
- <span class="cline-any cline-neutral">&nbsp;</span>
1159
- <span class="cline-any cline-neutral">&nbsp;</span>
1160
- <span class="cline-any cline-neutral">&nbsp;</span>
1161
- <span class="cline-any cline-no">&nbsp;</span>
1162
- <span class="cline-any cline-no">&nbsp;</span>
1163
- <span class="cline-any cline-no">&nbsp;</span>
1164
- <span class="cline-any cline-no">&nbsp;</span>
1165
- <span class="cline-any cline-neutral">&nbsp;</span>
1166
- <span class="cline-any cline-neutral">&nbsp;</span>
1167
- <span class="cline-any cline-no">&nbsp;</span>
1168
- <span class="cline-any cline-no">&nbsp;</span>
1169
- <span class="cline-any cline-no">&nbsp;</span>
1170
- <span class="cline-any cline-no">&nbsp;</span>
1171
- <span class="cline-any cline-no">&nbsp;</span>
1172
- <span class="cline-any cline-no">&nbsp;</span>
1173
- <span class="cline-any cline-neutral">&nbsp;</span>
1174
- <span class="cline-any cline-neutral">&nbsp;</span>
1175
- <span class="cline-any cline-neutral">&nbsp;</span>
1176
- <span class="cline-any cline-neutral">&nbsp;</span>
1177
- <span class="cline-any cline-neutral">&nbsp;</span>
1178
- <span class="cline-any cline-neutral">&nbsp;</span>
1179
- <span class="cline-any cline-neutral">&nbsp;</span>
1180
- <span class="cline-any cline-neutral">&nbsp;</span>
1181
- <span class="cline-any cline-neutral">&nbsp;</span>
1182
- <span class="cline-any cline-neutral">&nbsp;</span>
1183
- <span class="cline-any cline-neutral">&nbsp;</span>
1184
- <span class="cline-any cline-neutral">&nbsp;</span>
1185
- <span class="cline-any cline-neutral">&nbsp;</span>
1186
- <span class="cline-any cline-neutral">&nbsp;</span>
1187
- <span class="cline-any cline-no">&nbsp;</span>
1188
- <span class="cline-any cline-no">&nbsp;</span>
1189
- <span class="cline-any cline-neutral">&nbsp;</span>
1190
- <span class="cline-any cline-neutral">&nbsp;</span>
1191
- <span class="cline-any cline-neutral">&nbsp;</span>
1192
- <span class="cline-any cline-neutral">&nbsp;</span>
1193
- <span class="cline-any cline-neutral">&nbsp;</span>
1194
- <span class="cline-any cline-no">&nbsp;</span>
1195
- <span class="cline-any cline-no">&nbsp;</span>
1196
- <span class="cline-any cline-no">&nbsp;</span>
1197
- <span class="cline-any cline-no">&nbsp;</span>
1198
- <span class="cline-any cline-no">&nbsp;</span>
1199
- <span class="cline-any cline-no">&nbsp;</span>
1200
- <span class="cline-any cline-neutral">&nbsp;</span>
1201
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1205
- <span class="cline-any cline-neutral">&nbsp;</span>
1206
- <span class="cline-any cline-neutral">&nbsp;</span>
1207
- <span class="cline-any cline-neutral">&nbsp;</span>
1208
- <span class="cline-any cline-neutral">&nbsp;</span>
1209
- <span class="cline-any cline-neutral">&nbsp;</span>
1210
- <span class="cline-any cline-neutral">&nbsp;</span>
1211
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
1215
- <span class="cline-any cline-neutral">&nbsp;</span>
1216
- <span class="cline-any cline-neutral">&nbsp;</span>
1217
- <span class="cline-any cline-neutral">&nbsp;</span>
1218
- <span class="cline-any cline-neutral">&nbsp;</span>
1219
- <span class="cline-any cline-neutral">&nbsp;</span>
1220
- <span class="cline-any cline-neutral">&nbsp;</span>
1221
- <span class="cline-any cline-no">&nbsp;</span>
1222
- <span class="cline-any cline-no">&nbsp;</span>
1223
- <span class="cline-any cline-no">&nbsp;</span>
1224
- <span class="cline-any cline-neutral">&nbsp;</span>
1225
- <span class="cline-any cline-neutral">&nbsp;</span>
1226
- <span class="cline-any cline-neutral">&nbsp;</span>
1227
- <span class="cline-any cline-no">&nbsp;</span>
1228
- <span class="cline-any cline-no">&nbsp;</span>
1229
- <span class="cline-any cline-neutral">&nbsp;</span>
1230
- <span class="cline-any cline-neutral">&nbsp;</span>
1231
- <span class="cline-any cline-neutral">&nbsp;</span>
1232
- <span class="cline-any cline-neutral">&nbsp;</span>
1233
- <span class="cline-any cline-neutral">&nbsp;</span>
1234
- <span class="cline-any cline-neutral">&nbsp;</span>
1235
- <span class="cline-any cline-neutral">&nbsp;</span>
1236
- <span class="cline-any cline-neutral">&nbsp;</span>
1237
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
1241
- <span class="cline-any cline-neutral">&nbsp;</span>
1242
- <span class="cline-any cline-neutral">&nbsp;</span>
1243
- <span class="cline-any cline-no">&nbsp;</span>
1244
- <span class="cline-any cline-neutral">&nbsp;</span>
1245
- <span class="cline-any cline-neutral">&nbsp;</span>
1246
- <span class="cline-any cline-no">&nbsp;</span>
1247
- <span class="cline-any cline-no">&nbsp;</span>
1248
- <span class="cline-any cline-no">&nbsp;</span>
1249
- <span class="cline-any cline-neutral">&nbsp;</span>
1250
- <span class="cline-any cline-no">&nbsp;</span>
1251
- <span class="cline-any cline-no">&nbsp;</span>
1252
- <span class="cline-any cline-no">&nbsp;</span>
1253
- <span class="cline-any cline-no">&nbsp;</span>
1254
- <span class="cline-any cline-neutral">&nbsp;</span>
1255
- <span class="cline-any cline-neutral">&nbsp;</span>
1256
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js"><span class="cstat-no" title="statement not covered" >jest.mock("node-fetch", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1257
- <span class="cstat-no" title="statement not covered" > return jest.fn(<span class="fstat-no" title="function not covered" >() =&gt; (<span class="cstat-no" title="statement not covered" >{</span></span></span>
1258
- headers: {
1259
- raw: <span class="fstat-no" title="function not covered" >() =&gt; {</span>
1260
- <span class="cstat-no" title="statement not covered" > return { "content-type": ["application/json"] }</span>
1261
- },
1262
- get: <span class="fstat-no" title="function not covered" >() =&gt; <span class="cstat-no" title="statement not covered" >[</span>"application/json"],</span>
1263
- },
1264
- json: jest.fn(<span class="fstat-no" title="function not covered" >() =&gt; (<span class="cstat-no" title="statement not covered" >{</span></span>
1265
- my_next_cursor: 123,
1266
- })),
1267
- text: jest.fn(),
1268
- }))
1269
- })
1270
- &nbsp;
1271
- import fetch from "node-fetch"
1272
- import { default as RestIntegration } from "../rest"
1273
- import { RestAuthType } from "@budibase/types"
1274
- const FormData = <span class="cstat-no" title="statement not covered" >require("form-data")</span>
1275
- const { URLSearchParams } = <span class="cstat-no" title="statement not covered" >require("url")</span>
1276
- &nbsp;
1277
- const HEADERS = <span class="cstat-no" title="statement not covered" >{</span>
1278
- Accept: "application/json",
1279
- "Content-Type": "application/json",
1280
- }
1281
- &nbsp;
1282
- class TestConfiguration {
1283
- integration: any
1284
- &nbsp;
1285
- <span class="fstat-no" title="function not covered" > constructor(c</span>onfig: any = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> {
1286
- <span class="cstat-no" title="statement not covered" > this.integration = new RestIntegration.integration(config)</span>
1287
- }
1288
- }
1289
- &nbsp;
1290
- <span class="cstat-no" title="statement not covered" >describe("REST Integration", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1291
- const BASE_URL = <span class="cstat-no" title="statement not covered" >"https://myapi.com"</span>
1292
- let config: any
1293
- &nbsp;
1294
- <span class="cstat-no" title="statement not covered" > beforeEach(<span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1295
- <span class="cstat-no" title="statement not covered" > config = new TestConfiguration({</span>
1296
- url: BASE_URL,
1297
- })
1298
- <span class="cstat-no" title="statement not covered" > jest.clearAllMocks()</span>
1299
- })
1300
- &nbsp;
1301
- <span class="cstat-no" title="statement not covered" > it("calls the create method with the correct params", <span class="fstat-no" title="function not covered" >async () =&gt; {</span></span>
1302
- const query = <span class="cstat-no" title="statement not covered" >{</span>
1303
- path: "api",
1304
- queryString: "test=1",
1305
- headers: HEADERS,
1306
- bodyType: "json",
1307
- requestBody: JSON.stringify({
1308
- name: "test",
1309
- }),
1310
- }
1311
- <span class="cstat-no" title="statement not covered" > await config.integration.create(query)</span>
1312
- <span class="cstat-no" title="statement not covered" > expect(fetch).toHaveBeenCalledWith(`${BASE_URL}/api?test=1`, {</span>
1313
- method: "POST",
1314
- body: '{"name":"test"}',
1315
- headers: HEADERS,
1316
- })
1317
- })
1318
- &nbsp;
1319
- <span class="cstat-no" title="statement not covered" > it("calls the read method with the correct params", <span class="fstat-no" title="function not covered" >async () =&gt; {</span></span>
1320
- const query = <span class="cstat-no" title="statement not covered" >{</span>
1321
- path: "api",
1322
- queryString: "test=1",
1323
- headers: {
1324
- Accept: "text/html",
1325
- },
1326
- }
1327
- const response = <span class="cstat-no" title="statement not covered" >await config.integration.read(query)</span>
1328
- <span class="cstat-no" title="statement not covered" > expect(fetch).toHaveBeenCalledWith(`${BASE_URL}/api?test=1`, {</span>
1329
- headers: {
1330
- Accept: "text/html",
1331
- },
1332
- method: "GET",
1333
- })
1334
- })
1335
- &nbsp;
1336
- <span class="cstat-no" title="statement not covered" > it("calls the update method with the correct params", <span class="fstat-no" title="function not covered" >async () =&gt; {</span></span>
1337
- const query = <span class="cstat-no" title="statement not covered" >{</span>
1338
- path: "api",
1339
- queryString: "test=1",
1340
- headers: {
1341
- Accept: "application/json",
1342
- },
1343
- bodyType: "json",
1344
- requestBody: JSON.stringify({
1345
- name: "test",
1346
- }),
1347
- }
1348
- const response = <span class="cstat-no" title="statement not covered" >await config.integration.update(query)</span>
1349
- <span class="cstat-no" title="statement not covered" > expect(fetch).toHaveBeenCalledWith(`${BASE_URL}/api?test=1`, {</span>
1350
- method: "PUT",
1351
- body: '{"name":"test"}',
1352
- headers: HEADERS,
1353
- })
1354
- })
1355
- &nbsp;
1356
- <span class="cstat-no" title="statement not covered" > it("calls the delete method with the correct params", <span class="fstat-no" title="function not covered" >async () =&gt; {</span></span>
1357
- const query = <span class="cstat-no" title="statement not covered" >{</span>
1358
- path: "api",
1359
- queryString: "test=1",
1360
- headers: {
1361
- Accept: "application/json",
1362
- },
1363
- bodyType: "json",
1364
- requestBody: JSON.stringify({
1365
- name: "test",
1366
- }),
1367
- }
1368
- const response = <span class="cstat-no" title="statement not covered" >await config.integration.delete(query)</span>
1369
- <span class="cstat-no" title="statement not covered" > expect(fetch).toHaveBeenCalledWith(`${BASE_URL}/api?test=1`, {</span>
1370
- method: "DELETE",
1371
- headers: HEADERS,
1372
- body: '{"name":"test"}',
1373
- })
1374
- })
1375
- &nbsp;
1376
- <span class="cstat-no" title="statement not covered" > describe("request body", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1377
- const input = <span class="cstat-no" title="statement not covered" >{ a: 1, b: 2 }</span>
1378
- &nbsp;
1379
- <span class="cstat-no" title="statement not covered" > it("should allow no body", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1380
- const output = <span class="cstat-no" title="statement not covered" >config.integration.addBody("none", null, {})</span>
1381
- <span class="cstat-no" title="statement not covered" > expect(output.body).toBeUndefined()</span>
1382
- <span class="cstat-no" title="statement not covered" > expect(Object.keys(output.headers).length).toEqual(0)</span>
1383
- })
1384
- &nbsp;
1385
- <span class="cstat-no" title="statement not covered" > it("should allow text body", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1386
- const output = <span class="cstat-no" title="statement not covered" >config.integration.addBody("text", "hello world", {})</span>
1387
- <span class="cstat-no" title="statement not covered" > expect(output.body).toEqual("hello world")</span>
1388
- // gets added by fetch
1389
- <span class="cstat-no" title="statement not covered" > expect(Object.keys(output.headers).length).toEqual(0)</span>
1390
- })
1391
- &nbsp;
1392
- <span class="cstat-no" title="statement not covered" > it("should allow form data", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1393
- const FormData = <span class="cstat-no" title="statement not covered" >require("form-data")</span>
1394
- const output = <span class="cstat-no" title="statement not covered" >config.integration.addBody("form", input, {})</span>
1395
- <span class="cstat-no" title="statement not covered" > expect(output.body instanceof FormData).toEqual(true)</span>
1396
- <span class="cstat-no" title="statement not covered" > expect(output.body._valueLength).toEqual(2)</span>
1397
- // gets added by fetch
1398
- <span class="cstat-no" title="statement not covered" > expect(Object.keys(output.headers).length).toEqual(0)</span>
1399
- })
1400
- &nbsp;
1401
- <span class="cstat-no" title="statement not covered" > it("should allow encoded form data", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1402
- const { URLSearchParams } = <span class="cstat-no" title="statement not covered" >require("url")</span>
1403
- const output = <span class="cstat-no" title="statement not covered" >config.integration.addBody("encoded", input, {})</span>
1404
- <span class="cstat-no" title="statement not covered" > expect(output.body instanceof URLSearchParams).toEqual(true)</span>
1405
- <span class="cstat-no" title="statement not covered" > expect(output.body.toString()).toEqual("a=1&amp;b=2")</span>
1406
- // gets added by fetch
1407
- <span class="cstat-no" title="statement not covered" > expect(Object.keys(output.headers).length).toEqual(0)</span>
1408
- })
1409
- &nbsp;
1410
- <span class="cstat-no" title="statement not covered" > it("should allow JSON", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1411
- const output = <span class="cstat-no" title="statement not covered" >config.integration.addBody("json", input, {})</span>
1412
- <span class="cstat-no" title="statement not covered" > expect(output.body).toEqual(JSON.stringify(input))</span>
1413
- <span class="cstat-no" title="statement not covered" > expect(output.headers["Content-Type"]).toEqual("application/json")</span>
1414
- })
1415
- &nbsp;
1416
- <span class="cstat-no" title="statement not covered" > it("should allow raw XML", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1417
- const output = <span class="cstat-no" title="statement not covered" >config.integration.addBody("xml", "&lt;a&gt;1&lt;/a&gt;&lt;b&gt;2&lt;/b&gt;", {})</span>
1418
- <span class="cstat-no" title="statement not covered" > expect(output.body.includes("&lt;a&gt;1&lt;/a&gt;")).toEqual(true)</span>
1419
- <span class="cstat-no" title="statement not covered" > expect(output.body.includes("&lt;b&gt;2&lt;/b&gt;")).toEqual(true)</span>
1420
- <span class="cstat-no" title="statement not covered" > expect(output.headers["Content-Type"]).toEqual("application/xml")</span>
1421
- })
1422
- &nbsp;
1423
- <span class="cstat-no" title="statement not covered" > it("should allow a valid js object and parse the contents to xml", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1424
- const output = <span class="cstat-no" title="statement not covered" >config.integration.addBody("xml", input, {})</span>
1425
- <span class="cstat-no" title="statement not covered" > expect(output.body.includes("&lt;a&gt;1&lt;/a&gt;")).toEqual(true)</span>
1426
- <span class="cstat-no" title="statement not covered" > expect(output.body.includes("&lt;b&gt;2&lt;/b&gt;")).toEqual(true)</span>
1427
- <span class="cstat-no" title="statement not covered" > expect(output.headers["Content-Type"]).toEqual("application/xml")</span>
1428
- })
1429
- &nbsp;
1430
- <span class="cstat-no" title="statement not covered" > it("should allow a valid json string and parse the contents to xml", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1431
- const output = <span class="cstat-no" title="statement not covered" >config.integration.addBody(</span>
1432
- "xml",
1433
- JSON.stringify(input),
1434
- {}
1435
- )
1436
- <span class="cstat-no" title="statement not covered" > expect(output.body.includes("&lt;a&gt;1&lt;/a&gt;")).toEqual(true)</span>
1437
- <span class="cstat-no" title="statement not covered" > expect(output.body.includes("&lt;b&gt;2&lt;/b&gt;")).toEqual(true)</span>
1438
- <span class="cstat-no" title="statement not covered" > expect(output.headers["Content-Type"]).toEqual("application/xml")</span>
1439
- })
1440
- })
1441
- &nbsp;
1442
- <span class="cstat-no" title="statement not covered" > describe("response", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1443
- function <span class="fstat-no" title="function not covered" >buildInput(j</span>son: any, text: any, header: any) {
1444
- <span class="cstat-no" title="statement not covered" > return {</span>
1445
- status: 200,
1446
- json: json ? <span class="fstat-no" title="function not covered" >async () =&gt; <span class="cstat-no" title="statement not covered" >j</span>son : u</span>ndefined,
1447
- text: text ? <span class="fstat-no" title="function not covered" >async () =&gt; <span class="cstat-no" title="statement not covered" >t</span>ext : u</span>ndefined,
1448
- headers: {
1449
- get: <span class="fstat-no" title="function not covered" >(k</span>ey: any) =&gt; (<span class="cstat-no" title="statement not covered" >key === "content-length" ? 100 : header)</span>,
1450
- raw: <span class="fstat-no" title="function not covered" >() =&gt; (<span class="cstat-no" title="statement not covered" >{</span> "content-type": header }),</span>
1451
- },
1452
- }
1453
- }
1454
- &nbsp;
1455
- <span class="cstat-no" title="statement not covered" > it("should be able to parse JSON response", <span class="fstat-no" title="function not covered" >async () =&gt; {</span></span>
1456
- const input = <span class="cstat-no" title="statement not covered" >buildInput({ a: 1 }, null, "application/json")</span>
1457
- const output = <span class="cstat-no" title="statement not covered" >await config.integration.parseResponse(input)</span>
1458
- <span class="cstat-no" title="statement not covered" > expect(output.data).toEqual({ a: 1 })</span>
1459
- <span class="cstat-no" title="statement not covered" > expect(output.info.code).toEqual(200)</span>
1460
- <span class="cstat-no" title="statement not covered" > expect(output.info.size).toEqual("100B")</span>
1461
- <span class="cstat-no" title="statement not covered" > expect(output.extra.raw).toEqual(JSON.stringify({ a: 1 }))</span>
1462
- <span class="cstat-no" title="statement not covered" > expect(output.extra.headers["content-type"]).toEqual("application/json")</span>
1463
- })
1464
- &nbsp;
1465
- <span class="cstat-no" title="statement not covered" > it("should be able to parse text response", <span class="fstat-no" title="function not covered" >async () =&gt; {</span></span>
1466
- const text = <span class="cstat-no" title="statement not covered" >"hello world"</span>
1467
- const input = <span class="cstat-no" title="statement not covered" >buildInput(null, text, "text/plain")</span>
1468
- const output = <span class="cstat-no" title="statement not covered" >await config.integration.parseResponse(input)</span>
1469
- <span class="cstat-no" title="statement not covered" > expect(output.data).toEqual(text)</span>
1470
- <span class="cstat-no" title="statement not covered" > expect(output.extra.raw).toEqual(text)</span>
1471
- <span class="cstat-no" title="statement not covered" > expect(output.extra.headers["content-type"]).toEqual("text/plain")</span>
1472
- })
1473
- &nbsp;
1474
- <span class="cstat-no" title="statement not covered" > it("should be able to parse XML response", <span class="fstat-no" title="function not covered" >async () =&gt; {</span></span>
1475
- const text = <span class="cstat-no" title="statement not covered" >"&lt;root&gt;&lt;a&gt;1&lt;/a&gt;&lt;b&gt;2&lt;/b&gt;&lt;/root&gt;"</span>
1476
- const input = <span class="cstat-no" title="statement not covered" >buildInput(null, text, "application/xml")</span>
1477
- const output = <span class="cstat-no" title="statement not covered" >await config.integration.parseResponse(input)</span>
1478
- <span class="cstat-no" title="statement not covered" > expect(output.data).toEqual({ a: "1", b: "2" })</span>
1479
- <span class="cstat-no" title="statement not covered" > expect(output.extra.raw).toEqual(text)</span>
1480
- <span class="cstat-no" title="statement not covered" > expect(output.extra.headers["content-type"]).toEqual("application/xml")</span>
1481
- })
1482
- })
1483
- &nbsp;
1484
- <span class="cstat-no" title="statement not covered" > describe("authentication", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1485
- const basicAuth = <span class="cstat-no" title="statement not covered" >{</span>
1486
- _id: "c59c14bd1898a43baa08da68959b24686",
1487
- name: "basic-1",
1488
- type: RestAuthType.BASIC,
1489
- config: {
1490
- username: "user",
1491
- password: "password",
1492
- },
1493
- }
1494
- &nbsp;
1495
- const bearerAuth = <span class="cstat-no" title="statement not covered" >{</span>
1496
- _id: "0d91d732f34e4befabeff50b392a8ff3",
1497
- name: "bearer-1",
1498
- type: RestAuthType.BEARER,
1499
- config: {
1500
- token: "mytoken",
1501
- },
1502
- }
1503
- &nbsp;
1504
- <span class="cstat-no" title="statement not covered" > beforeEach(<span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1505
- <span class="cstat-no" title="statement not covered" > config = new TestConfiguration({</span>
1506
- url: BASE_URL,
1507
- authConfigs: [basicAuth, bearerAuth],
1508
- })
1509
- })
1510
- &nbsp;
1511
- <span class="cstat-no" title="statement not covered" > it("adds basic auth", <span class="fstat-no" title="function not covered" >async () =&gt; {</span></span>
1512
- const query = <span class="cstat-no" title="statement not covered" >{</span>
1513
- authConfigId: "c59c14bd1898a43baa08da68959b24686",
1514
- }
1515
- <span class="cstat-no" title="statement not covered" > await config.integration.read(query)</span>
1516
- <span class="cstat-no" title="statement not covered" > expect(fetch).toHaveBeenCalledWith(`${BASE_URL}/`, {</span>
1517
- method: "GET",
1518
- headers: {
1519
- Authorization: "Basic dXNlcjpwYXNzd29yZA==",
1520
- },
1521
- })
1522
- })
1523
- &nbsp;
1524
- <span class="cstat-no" title="statement not covered" > it("adds bearer auth", <span class="fstat-no" title="function not covered" >async () =&gt; {</span></span>
1525
- const query = <span class="cstat-no" title="statement not covered" >{</span>
1526
- authConfigId: "0d91d732f34e4befabeff50b392a8ff3",
1527
- }
1528
- <span class="cstat-no" title="statement not covered" > await config.integration.read(query)</span>
1529
- <span class="cstat-no" title="statement not covered" > expect(fetch).toHaveBeenCalledWith(`${BASE_URL}/`, {</span>
1530
- method: "GET",
1531
- headers: {
1532
- Authorization: "Bearer mytoken",
1533
- },
1534
- })
1535
- })
1536
- })
1537
- &nbsp;
1538
- <span class="cstat-no" title="statement not covered" > describe("page based pagination", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1539
- <span class="cstat-no" title="statement not covered" > it("can paginate using query params", <span class="fstat-no" title="function not covered" >async () =&gt; {</span></span>
1540
- const pageParam = <span class="cstat-no" title="statement not covered" >"my_page_param"</span>
1541
- const sizeParam = <span class="cstat-no" title="statement not covered" >"my_size_param"</span>
1542
- const pageValue = <span class="cstat-no" title="statement not covered" >3</span>
1543
- const sizeValue = <span class="cstat-no" title="statement not covered" >10</span>
1544
- const query = <span class="cstat-no" title="statement not covered" >{</span>
1545
- path: "api",
1546
- pagination: {
1547
- type: "page",
1548
- location: "query",
1549
- pageParam,
1550
- sizeParam,
1551
- },
1552
- paginationValues: {
1553
- page: pageValue,
1554
- limit: sizeValue,
1555
- },
1556
- }
1557
- <span class="cstat-no" title="statement not covered" > await config.integration.read(query)</span>
1558
- <span class="cstat-no" title="statement not covered" > expect(fetch).toHaveBeenCalledWith(</span>
1559
- `${BASE_URL}/api?${pageParam}=${pageValue}&amp;${sizeParam}=${sizeValue}`,
1560
- {
1561
- headers: {},
1562
- method: "GET",
1563
- }
1564
- )
1565
- })
1566
- &nbsp;
1567
- <span class="cstat-no" title="statement not covered" > it("can paginate using JSON request body", <span class="fstat-no" title="function not covered" >async () =&gt; {</span></span>
1568
- const pageParam = <span class="cstat-no" title="statement not covered" >"my_page_param"</span>
1569
- const sizeParam = <span class="cstat-no" title="statement not covered" >"my_size_param"</span>
1570
- const pageValue = <span class="cstat-no" title="statement not covered" >3</span>
1571
- const sizeValue = <span class="cstat-no" title="statement not covered" >10</span>
1572
- const query = <span class="cstat-no" title="statement not covered" >{</span>
1573
- bodyType: "json",
1574
- path: "api",
1575
- pagination: {
1576
- type: "page",
1577
- location: "body",
1578
- pageParam,
1579
- sizeParam,
1580
- },
1581
- paginationValues: {
1582
- page: pageValue,
1583
- limit: sizeValue,
1584
- },
1585
- }
1586
- <span class="cstat-no" title="statement not covered" > await config.integration.create(query)</span>
1587
- <span class="cstat-no" title="statement not covered" > expect(fetch).toHaveBeenCalledWith(`${BASE_URL}/api`, {</span>
1588
- body: JSON.stringify({
1589
- [pageParam]: pageValue,
1590
- [sizeParam]: sizeValue,
1591
- }),
1592
- headers: {
1593
- "Content-Type": "application/json",
1594
- },
1595
- method: "POST",
1596
- })
1597
- })
1598
- &nbsp;
1599
- <span class="cstat-no" title="statement not covered" > it("can paginate using form-data request body", <span class="fstat-no" title="function not covered" >async () =&gt; {</span></span>
1600
- const pageParam = <span class="cstat-no" title="statement not covered" >"my_page_param"</span>
1601
- const sizeParam = <span class="cstat-no" title="statement not covered" >"my_size_param"</span>
1602
- const pageValue = <span class="cstat-no" title="statement not covered" >3</span>
1603
- const sizeValue = <span class="cstat-no" title="statement not covered" >10</span>
1604
- const query = <span class="cstat-no" title="statement not covered" >{</span>
1605
- bodyType: "form",
1606
- path: "api",
1607
- pagination: {
1608
- type: "page",
1609
- location: "body",
1610
- pageParam,
1611
- sizeParam,
1612
- },
1613
- paginationValues: {
1614
- page: pageValue,
1615
- limit: sizeValue,
1616
- },
1617
- }
1618
- <span class="cstat-no" title="statement not covered" > await config.integration.create(query)</span>
1619
- <span class="cstat-no" title="statement not covered" > expect(fetch).toHaveBeenCalledWith(`${BASE_URL}/api`, {</span>
1620
- body: expect.any(FormData),
1621
- headers: {},
1622
- method: "POST",
1623
- })
1624
- // @ts-ignore
1625
- const sentData = <span class="cstat-no" title="statement not covered" >JSON.stringify(fetch.mock.calls[0][1].body)</span>
1626
- <span class="cstat-no" title="statement not covered" > expect(sentData).toContain(pageParam)</span>
1627
- <span class="cstat-no" title="statement not covered" > expect(sentData).toContain(sizeParam)</span>
1628
- })
1629
- &nbsp;
1630
- <span class="cstat-no" title="statement not covered" > it("can paginate using form-encoded request body", <span class="fstat-no" title="function not covered" >async () =&gt; {</span></span>
1631
- const pageParam = <span class="cstat-no" title="statement not covered" >"my_page_param"</span>
1632
- const sizeParam = <span class="cstat-no" title="statement not covered" >"my_size_param"</span>
1633
- const pageValue = <span class="cstat-no" title="statement not covered" >3</span>
1634
- const sizeValue = <span class="cstat-no" title="statement not covered" >10</span>
1635
- const query = <span class="cstat-no" title="statement not covered" >{</span>
1636
- bodyType: "encoded",
1637
- path: "api",
1638
- pagination: {
1639
- type: "page",
1640
- location: "body",
1641
- pageParam,
1642
- sizeParam,
1643
- },
1644
- paginationValues: {
1645
- page: pageValue,
1646
- limit: sizeValue,
1647
- },
1648
- }
1649
- <span class="cstat-no" title="statement not covered" > await config.integration.create(query)</span>
1650
- <span class="cstat-no" title="statement not covered" > expect(fetch).toHaveBeenCalledWith(`${BASE_URL}/api`, {</span>
1651
- body: expect.any(URLSearchParams),
1652
- headers: {},
1653
- method: "POST",
1654
- })
1655
- // @ts-ignore
1656
- const sentData = <span class="cstat-no" title="statement not covered" >fetch.mock.calls[0][1].body</span>
1657
- <span class="cstat-no" title="statement not covered" > expect(sentData.has(pageParam))</span>
1658
- <span class="cstat-no" title="statement not covered" > expect(sentData.get(pageParam)).toEqual(pageValue.toString())</span>
1659
- <span class="cstat-no" title="statement not covered" > expect(sentData.has(sizeParam))</span>
1660
- <span class="cstat-no" title="statement not covered" > expect(sentData.get(sizeParam)).toEqual(sizeValue.toString())</span>
1661
- })
1662
- })
1663
- &nbsp;
1664
- <span class="cstat-no" title="statement not covered" > describe("cursor based pagination", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1665
- <span class="cstat-no" title="statement not covered" > it("can paginate using query params", <span class="fstat-no" title="function not covered" >async () =&gt; {</span></span>
1666
- const pageParam = <span class="cstat-no" title="statement not covered" >"my_page_param"</span>
1667
- const sizeParam = <span class="cstat-no" title="statement not covered" >"my_size_param"</span>
1668
- const pageValue = <span class="cstat-no" title="statement not covered" >3</span>
1669
- const sizeValue = <span class="cstat-no" title="statement not covered" >10</span>
1670
- const query = <span class="cstat-no" title="statement not covered" >{</span>
1671
- path: "api",
1672
- pagination: {
1673
- type: "cursor",
1674
- location: "query",
1675
- pageParam,
1676
- sizeParam,
1677
- responseParam: "my_next_cursor",
1678
- },
1679
- paginationValues: {
1680
- page: pageValue,
1681
- limit: sizeValue,
1682
- },
1683
- }
1684
- const res = <span class="cstat-no" title="statement not covered" >await config.integration.read(query)</span>
1685
- <span class="cstat-no" title="statement not covered" > expect(fetch).toHaveBeenCalledWith(</span>
1686
- `${BASE_URL}/api?${pageParam}=${pageValue}&amp;${sizeParam}=${sizeValue}`,
1687
- {
1688
- headers: {},
1689
- method: "GET",
1690
- }
1691
- )
1692
- <span class="cstat-no" title="statement not covered" > expect(res.pagination.cursor).toEqual(123)</span>
1693
- })
1694
- &nbsp;
1695
- <span class="cstat-no" title="statement not covered" > it("can paginate using JSON request body", <span class="fstat-no" title="function not covered" >async () =&gt; {</span></span>
1696
- const pageParam = <span class="cstat-no" title="statement not covered" >"my_page_param"</span>
1697
- const sizeParam = <span class="cstat-no" title="statement not covered" >"my_size_param"</span>
1698
- const pageValue = <span class="cstat-no" title="statement not covered" >3</span>
1699
- const sizeValue = <span class="cstat-no" title="statement not covered" >10</span>
1700
- const query = <span class="cstat-no" title="statement not covered" >{</span>
1701
- bodyType: "json",
1702
- path: "api",
1703
- pagination: {
1704
- type: "page",
1705
- location: "body",
1706
- pageParam,
1707
- sizeParam,
1708
- responseParam: "my_next_cursor",
1709
- },
1710
- paginationValues: {
1711
- page: pageValue,
1712
- limit: sizeValue,
1713
- },
1714
- }
1715
- const res = <span class="cstat-no" title="statement not covered" >await config.integration.create(query)</span>
1716
- <span class="cstat-no" title="statement not covered" > expect(fetch).toHaveBeenCalledWith(`${BASE_URL}/api`, {</span>
1717
- body: JSON.stringify({
1718
- [pageParam]: pageValue,
1719
- [sizeParam]: sizeValue,
1720
- }),
1721
- headers: {
1722
- "Content-Type": "application/json",
1723
- },
1724
- method: "POST",
1725
- })
1726
- <span class="cstat-no" title="statement not covered" > expect(res.pagination.cursor).toEqual(123)</span>
1727
- })
1728
- &nbsp;
1729
- <span class="cstat-no" title="statement not covered" > it("can paginate using form-data request body", <span class="fstat-no" title="function not covered" >async () =&gt; {</span></span>
1730
- const pageParam = <span class="cstat-no" title="statement not covered" >"my_page_param"</span>
1731
- const sizeParam = <span class="cstat-no" title="statement not covered" >"my_size_param"</span>
1732
- const pageValue = <span class="cstat-no" title="statement not covered" >3</span>
1733
- const sizeValue = <span class="cstat-no" title="statement not covered" >10</span>
1734
- const query = <span class="cstat-no" title="statement not covered" >{</span>
1735
- bodyType: "form",
1736
- path: "api",
1737
- pagination: {
1738
- type: "page",
1739
- location: "body",
1740
- pageParam,
1741
- sizeParam,
1742
- responseParam: "my_next_cursor",
1743
- },
1744
- paginationValues: {
1745
- page: pageValue,
1746
- limit: sizeValue,
1747
- },
1748
- }
1749
- const res = <span class="cstat-no" title="statement not covered" >await config.integration.create(query)</span>
1750
- <span class="cstat-no" title="statement not covered" > expect(fetch).toHaveBeenCalledWith(`${BASE_URL}/api`, {</span>
1751
- body: expect.any(FormData),
1752
- headers: {},
1753
- method: "POST",
1754
- })
1755
- // @ts-ignore
1756
- const sentData = <span class="cstat-no" title="statement not covered" >JSON.stringify(fetch.mock.calls[0][1].body)</span>
1757
- <span class="cstat-no" title="statement not covered" > expect(sentData).toContain(pageParam)</span>
1758
- <span class="cstat-no" title="statement not covered" > expect(sentData).toContain(sizeParam)</span>
1759
- <span class="cstat-no" title="statement not covered" > expect(res.pagination.cursor).toEqual(123)</span>
1760
- })
1761
- &nbsp;
1762
- <span class="cstat-no" title="statement not covered" > it("can paginate using form-encoded request body", <span class="fstat-no" title="function not covered" >async () =&gt; {</span></span>
1763
- const pageParam = <span class="cstat-no" title="statement not covered" >"my_page_param"</span>
1764
- const sizeParam = <span class="cstat-no" title="statement not covered" >"my_size_param"</span>
1765
- const pageValue = <span class="cstat-no" title="statement not covered" >3</span>
1766
- const sizeValue = <span class="cstat-no" title="statement not covered" >10</span>
1767
- const query = <span class="cstat-no" title="statement not covered" >{</span>
1768
- bodyType: "encoded",
1769
- path: "api",
1770
- pagination: {
1771
- type: "page",
1772
- location: "body",
1773
- pageParam,
1774
- sizeParam,
1775
- responseParam: "my_next_cursor",
1776
- },
1777
- paginationValues: {
1778
- page: pageValue,
1779
- limit: sizeValue,
1780
- },
1781
- }
1782
- const res = <span class="cstat-no" title="statement not covered" >await config.integration.create(query)</span>
1783
- <span class="cstat-no" title="statement not covered" > expect(fetch).toHaveBeenCalledWith(`${BASE_URL}/api`, {</span>
1784
- body: expect.any(URLSearchParams),
1785
- headers: {},
1786
- method: "POST",
1787
- })
1788
- // @ts-ignore
1789
- const sentData = <span class="cstat-no" title="statement not covered" >fetch.mock.calls[0][1].body</span>
1790
- <span class="cstat-no" title="statement not covered" > expect(sentData.has(pageParam))</span>
1791
- <span class="cstat-no" title="statement not covered" > expect(sentData.get(pageParam)).toEqual(pageValue.toString())</span>
1792
- <span class="cstat-no" title="statement not covered" > expect(sentData.has(sizeParam))</span>
1793
- <span class="cstat-no" title="statement not covered" > expect(sentData.get(sizeParam)).toEqual(sizeValue.toString())</span>
1794
- <span class="cstat-no" title="statement not covered" > expect(res.pagination.cursor).toEqual(123)</span>
1795
- })
1796
- &nbsp;
1797
- <span class="cstat-no" title="statement not covered" > it("should encode query string correctly", <span class="fstat-no" title="function not covered" >async () =&gt; {</span></span>
1798
- const query = <span class="cstat-no" title="statement not covered" >{</span>
1799
- path: "api",
1800
- queryString: "test=1 2",
1801
- headers: HEADERS,
1802
- bodyType: "json",
1803
- requestBody: JSON.stringify({
1804
- name: "test",
1805
- }),
1806
- }
1807
- <span class="cstat-no" title="statement not covered" > await config.integration.create(query)</span>
1808
- <span class="cstat-no" title="statement not covered" > expect(fetch).toHaveBeenCalledWith(`${BASE_URL}/api?test=1%202`, {</span>
1809
- method: "POST",
1810
- body: '{"name":"test"}',
1811
- headers: HEADERS,
1812
- })
1813
- })
1814
- })
1815
- &nbsp;
1816
- <span class="cstat-no" title="statement not covered" > describe("Configuration options", <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
1817
- <span class="cstat-no" title="statement not covered" > it("Attaches insecureHttpParams when legacy HTTP Parser option is set", <span class="fstat-no" title="function not covered" >async () =&gt; {</span></span>
1818
- <span class="cstat-no" title="statement not covered" > config = new TestConfiguration({</span>
1819
- url: BASE_URL,
1820
- legacyHttpParser: true,
1821
- })
1822
- <span class="cstat-no" title="statement not covered" > await config.integration.read({})</span>
1823
- <span class="cstat-no" title="statement not covered" > expect(fetch).toHaveBeenCalledWith(`${BASE_URL}/`, {</span>
1824
- method: "GET",
1825
- headers: {},
1826
- extraHttpOptions: {
1827
- insecureHTTPParser: true,
1828
- },
1829
- })
1830
- })
1831
- })
1832
- &nbsp;
1833
- <span class="cstat-no" title="statement not covered" > it("Attaches custom agent when Reject Unauthorized option is false", <span class="fstat-no" title="function not covered" >async () =&gt; {</span></span>
1834
- <span class="cstat-no" title="statement not covered" > config = new TestConfiguration({</span>
1835
- url: BASE_URL,
1836
- rejectUnauthorized: false,
1837
- })
1838
- <span class="cstat-no" title="statement not covered" > await config.integration.read({})</span>
1839
- &nbsp;
1840
- // @ts-ignore
1841
- const calls: any = <span class="cstat-no" title="statement not covered" >fetch.mock.calls[0]</span>
1842
- const url = <span class="cstat-no" title="statement not covered" >calls[0]</span>
1843
- <span class="cstat-no" title="statement not covered" > expect(url).toBe(`${BASE_URL}/`)</span>
1844
- &nbsp;
1845
- const calledConfig = <span class="cstat-no" title="statement not covered" >calls[1]</span>
1846
- <span class="cstat-no" title="statement not covered" > expect(calledConfig.method).toBe("GET")</span>
1847
- <span class="cstat-no" title="statement not covered" > expect(calledConfig.headers).toEqual({})</span>
1848
- <span class="cstat-no" title="statement not covered" > expect(calledConfig.agent.options.rejectUnauthorized).toBe(false)</span>
1849
- })
1850
- })
1851
- &nbsp;</pre></td></tr></table></pre>
1852
-
1853
- <div class='push'></div><!-- for sticky footer -->
1854
- </div><!-- /wrapper -->
1855
- <div class='footer quiet pad2 space-top1 center small'>
1856
- Code coverage generated by
1857
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1858
- at Mon Feb 06 2023 09:24:58 GMT+0000 (Coordinated Universal Time)
1859
- </div>
1860
- <script src="../../../prettify.js"></script>
1861
- <script>
1862
- window.onload = function () {
1863
- prettyPrint();
1864
- };
1865
- </script>
1866
- <script src="../../../sorter.js"></script>
1867
- <script src="../../../block-navigation.js"></script>
1868
- </body>
1869
- </html>
1870
-