@budibase/server 2.3.14-alpha.0 → 2.3.15
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.
- package/__mocks__/aws-sdk.ts +1 -1
- package/builder/assets/{index.a534ca24.css → index.4488f38d.css} +1 -1
- package/builder/assets/{index.d7529be1.js → index.e88df740.js} +235 -235
- package/builder/index.html +2 -2
- package/coverage/clover.xml +6679 -11409
- package/coverage/coverage-final.json +271 -356
- package/coverage/lcov-report/index.html +195 -420
- package/coverage/lcov-report/src/api/controllers/analytics.ts.html +6 -6
- package/coverage/lcov-report/src/api/controllers/apikeys.ts.html +5 -5
- package/coverage/lcov-report/src/api/controllers/application.ts.html +140 -140
- package/coverage/lcov-report/src/api/controllers/auth.ts.html +9 -9
- package/coverage/lcov-report/src/api/controllers/automation.ts.html +47 -47
- package/coverage/lcov-report/src/api/controllers/backup.ts.html +6 -6
- package/coverage/lcov-report/src/api/controllers/cloud.ts.html +26 -26
- package/coverage/lcov-report/src/api/controllers/component.ts.html +5 -5
- package/coverage/lcov-report/src/api/controllers/datasource.ts.html +37 -37
- package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +14 -14
- package/coverage/lcov-report/src/api/controllers/deploy/index.html +1 -1
- package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +81 -81
- package/coverage/lcov-report/src/api/controllers/dev.ts.html +26 -26
- package/coverage/lcov-report/src/api/controllers/index.html +37 -37
- package/coverage/lcov-report/src/api/controllers/integration.ts.html +4 -4
- package/coverage/lcov-report/src/api/controllers/layout.ts.html +15 -15
- package/coverage/lcov-report/src/api/controllers/metadata.ts.html +9 -9
- package/coverage/lcov-report/src/api/controllers/migrations.ts.html +4 -4
- package/coverage/lcov-report/src/api/controllers/permission.ts.html +34 -34
- package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +2 -2
- package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +4 -4
- package/coverage/lcov-report/src/api/controllers/plugin/index.html +1 -1
- package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +18 -18
- package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +5 -5
- package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +5 -5
- package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +3 -3
- package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +3 -3
- package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +6 -6
- package/coverage/lcov-report/src/api/controllers/public/index.html +1 -1
- package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +2 -2
- package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +1 -1
- package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +7 -7
- package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +2 -2
- package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +2 -2
- package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +2 -2
- package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +2 -2
- package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +4 -4
- package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +5 -5
- package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +4 -4
- package/coverage/lcov-report/src/api/controllers/public/users.ts.html +6 -6
- package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +4 -4
- package/coverage/lcov-report/src/api/controllers/query/import/index.html +1 -1
- package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +7 -7
- package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +1 -1
- package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +3 -3
- package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +5 -5
- package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +7 -7
- package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +1 -1
- package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +9 -9
- package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +13 -13
- package/coverage/lcov-report/src/api/controllers/query/index.html +10 -10
- package/coverage/lcov-report/src/api/controllers/query/index.ts.html +55 -61
- package/coverage/lcov-report/src/api/controllers/query/validation.ts.html +9 -9
- package/coverage/lcov-report/src/api/controllers/role.ts.html +8 -8
- package/coverage/lcov-report/src/api/controllers/routing.ts.html +6 -6
- package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +419 -431
- package/coverage/lcov-report/src/api/controllers/row/external.ts.html +175 -211
- package/coverage/lcov-report/src/api/controllers/row/index.html +42 -42
- package/coverage/lcov-report/src/api/controllers/row/index.ts.html +79 -79
- package/coverage/lcov-report/src/api/controllers/row/internal.ts.html +34 -34
- package/coverage/lcov-report/src/api/controllers/row/internalSearch.ts.html +6 -6
- package/coverage/lcov-report/src/api/controllers/row/staticFormula.ts.html +22 -22
- package/coverage/lcov-report/src/api/controllers/row/utils.ts.html +31 -31
- package/coverage/lcov-report/src/api/controllers/screen.ts.html +26 -26
- package/coverage/lcov-report/src/api/controllers/script.ts.html +2 -2
- package/coverage/lcov-report/src/api/controllers/static/index.html +1 -1
- package/coverage/lcov-report/src/api/controllers/static/index.ts.html +22 -22
- package/coverage/lcov-report/src/api/controllers/table/bulkFormula.ts.html +51 -51
- package/coverage/lcov-report/src/api/controllers/table/external.ts.html +195 -198
- package/coverage/lcov-report/src/api/controllers/table/index.html +47 -47
- package/coverage/lcov-report/src/api/controllers/table/index.ts.html +42 -42
- package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +61 -61
- package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +63 -63
- package/coverage/lcov-report/src/api/controllers/templates.ts.html +7 -7
- package/coverage/lcov-report/src/api/controllers/user.ts.html +28 -28
- package/coverage/lcov-report/src/api/controllers/view/exporters.ts.html +2 -2
- package/coverage/lcov-report/src/api/controllers/view/index.html +1 -1
- package/coverage/lcov-report/src/api/controllers/view/index.ts.html +16 -16
- package/coverage/lcov-report/src/api/controllers/view/utils.ts.html +5 -5
- package/coverage/lcov-report/src/api/controllers/view/viewBuilder.ts.html +7 -7
- package/coverage/lcov-report/src/api/controllers/webhook.ts.html +25 -25
- package/coverage/lcov-report/src/api/index.html +1 -1
- package/coverage/lcov-report/src/api/index.ts.html +27 -27
- package/coverage/lcov-report/src/api/routes/analytics.ts.html +7 -7
- package/coverage/lcov-report/src/api/routes/apikeys.ts.html +8 -8
- package/coverage/lcov-report/src/api/routes/application.ts.html +10 -10
- package/coverage/lcov-report/src/api/routes/auth.ts.html +6 -6
- package/coverage/lcov-report/src/api/routes/automation.ts.html +11 -11
- package/coverage/lcov-report/src/api/routes/backup.ts.html +8 -8
- package/coverage/lcov-report/src/api/routes/cloud.ts.html +8 -8
- package/coverage/lcov-report/src/api/routes/component.ts.html +8 -8
- package/coverage/lcov-report/src/api/routes/datasource.ts.html +9 -9
- package/coverage/lcov-report/src/api/routes/deploy.ts.html +8 -8
- package/coverage/lcov-report/src/api/routes/dev.ts.html +13 -13
- package/coverage/lcov-report/src/api/routes/index.html +1 -1
- package/coverage/lcov-report/src/api/routes/index.ts.html +35 -35
- package/coverage/lcov-report/src/api/routes/integration.ts.html +8 -8
- package/coverage/lcov-report/src/api/routes/layout.ts.html +8 -8
- package/coverage/lcov-report/src/api/routes/metadata.ts.html +9 -9
- package/coverage/lcov-report/src/api/routes/migrations.ts.html +7 -7
- package/coverage/lcov-report/src/api/routes/permission.ts.html +9 -9
- package/coverage/lcov-report/src/api/routes/plugin.ts.html +8 -8
- package/coverage/lcov-report/src/api/routes/public/applications.ts.html +17 -14
- package/coverage/lcov-report/src/api/routes/public/index.html +1 -1
- package/coverage/lcov-report/src/api/routes/public/index.ts.html +52 -52
- package/coverage/lcov-report/src/api/routes/public/middleware/index.html +1 -1
- package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +4 -4
- package/coverage/lcov-report/src/api/routes/public/queries.ts.html +9 -9
- package/coverage/lcov-report/src/api/routes/public/rows.ts.html +12 -12
- package/coverage/lcov-report/src/api/routes/public/tables.ts.html +12 -12
- package/coverage/lcov-report/src/api/routes/public/tests/index.html +12 -42
- package/coverage/lcov-report/src/api/routes/public/tests/utils.ts.html +27 -78
- package/coverage/lcov-report/src/api/routes/public/users.ts.html +12 -12
- package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +19 -19
- package/coverage/lcov-report/src/api/routes/public/utils/index.html +1 -1
- package/coverage/lcov-report/src/api/routes/query.ts.html +11 -11
- package/coverage/lcov-report/src/api/routes/role.ts.html +9 -9
- package/coverage/lcov-report/src/api/routes/routing.ts.html +8 -8
- package/coverage/lcov-report/src/api/routes/row.ts.html +11 -11
- package/coverage/lcov-report/src/api/routes/screen.ts.html +9 -9
- package/coverage/lcov-report/src/api/routes/script.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/static.ts.html +14 -14
- package/coverage/lcov-report/src/api/routes/table.ts.html +11 -11
- package/coverage/lcov-report/src/api/routes/templates.ts.html +8 -8
- package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +41 -110
- package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +19 -19
- package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +23 -29
- package/coverage/lcov-report/src/api/routes/user.ts.html +9 -9
- package/coverage/lcov-report/src/api/routes/utils/index.html +1 -1
- package/coverage/lcov-report/src/api/routes/utils/validators.ts.html +42 -42
- package/coverage/lcov-report/src/api/routes/view.ts.html +10 -10
- package/coverage/lcov-report/src/api/routes/webhook.ts.html +10 -10
- package/coverage/lcov-report/src/app.ts.html +37 -40
- package/coverage/lcov-report/src/automations/actions.ts.html +24 -24
- package/coverage/lcov-report/src/automations/automationUtils.ts.html +4 -4
- package/coverage/lcov-report/src/automations/bullboard.ts.html +9 -9
- package/coverage/lcov-report/src/automations/index.html +27 -27
- package/coverage/lcov-report/src/automations/index.ts.html +5 -5
- package/coverage/lcov-report/src/automations/logging/index.html +1 -1
- package/coverage/lcov-report/src/automations/logging/index.ts.html +10 -10
- package/coverage/lcov-report/src/automations/steps/bash.ts.html +8 -8
- package/coverage/lcov-report/src/automations/steps/createRow.ts.html +7 -7
- package/coverage/lcov-report/src/automations/steps/delay.ts.html +5 -5
- package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +7 -7
- package/coverage/lcov-report/src/automations/steps/discord.ts.html +8 -8
- package/coverage/lcov-report/src/automations/steps/executeQuery.ts.html +7 -7
- package/coverage/lcov-report/src/automations/steps/executeScript.ts.html +7 -7
- package/coverage/lcov-report/src/automations/steps/filter.ts.html +6 -6
- package/coverage/lcov-report/src/automations/steps/index.html +1 -1
- package/coverage/lcov-report/src/automations/steps/integromat.ts.html +6 -6
- package/coverage/lcov-report/src/automations/steps/loop.ts.html +3 -3
- package/coverage/lcov-report/src/automations/steps/outgoingWebhook.ts.html +9 -9
- package/coverage/lcov-report/src/automations/steps/queryRows.ts.html +13 -13
- package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.ts.html +6 -6
- package/coverage/lcov-report/src/automations/steps/serverLog.ts.html +4 -4
- package/coverage/lcov-report/src/automations/steps/slack.ts.html +6 -6
- package/coverage/lcov-report/src/automations/steps/updateRow.ts.html +7 -7
- package/coverage/lcov-report/src/automations/steps/utils.ts.html +1 -1
- package/coverage/lcov-report/src/automations/steps/zapier.ts.html +6 -6
- package/coverage/lcov-report/src/automations/tests/utilities/index.html +1 -1
- package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +1 -1
- package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +3 -3
- package/coverage/lcov-report/src/automations/triggerInfo/cron.ts.html +3 -3
- package/coverage/lcov-report/src/automations/triggerInfo/index.html +1 -1
- package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +8 -8
- package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.ts.html +3 -3
- package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.ts.html +3 -3
- package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.ts.html +3 -3
- package/coverage/lcov-report/src/automations/triggerInfo/webhook.ts.html +3 -3
- package/coverage/lcov-report/src/automations/triggers.ts.html +44 -44
- package/coverage/lcov-report/src/automations/utils.ts.html +63 -63
- package/coverage/lcov-report/src/constants/index.html +16 -16
- package/coverage/lcov-report/src/constants/index.ts.html +99 -33
- package/coverage/lcov-report/src/constants/layouts.ts.html +4 -4
- package/coverage/lcov-report/src/constants/screens.ts.html +5 -5
- package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +45 -33
- package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +2 -2
- package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +2 -2
- package/coverage/lcov-report/src/db/defaultData/index.html +11 -11
- package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +2 -2
- package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +2 -2
- package/coverage/lcov-report/src/db/dynamoClient.ts.html +15 -15
- package/coverage/lcov-report/src/db/inMemoryView.ts.html +4 -4
- package/coverage/lcov-report/src/db/index.html +16 -16
- package/coverage/lcov-report/src/db/index.ts.html +19 -19
- package/coverage/lcov-report/src/db/linkedRows/LinkController.ts.html +23 -26
- package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +4 -4
- package/coverage/lcov-report/src/db/linkedRows/index.html +10 -10
- package/coverage/lcov-report/src/db/linkedRows/index.ts.html +23 -23
- package/coverage/lcov-report/src/db/linkedRows/linkUtils.ts.html +10 -10
- package/coverage/lcov-report/src/db/newid.ts.html +4 -4
- package/coverage/lcov-report/src/db/utils.ts.html +52 -52
- package/coverage/lcov-report/src/definitions/automations.ts.html +2 -2
- package/coverage/lcov-report/src/definitions/index.html +1 -1
- package/coverage/lcov-report/src/environment.ts.html +31 -31
- package/coverage/lcov-report/src/events/AutomationEmitter.ts.html +6 -6
- package/coverage/lcov-report/src/events/BudibaseEmitter.ts.html +6 -6
- package/coverage/lcov-report/src/events/index.html +1 -1
- package/coverage/lcov-report/src/events/index.ts.html +4 -4
- package/coverage/lcov-report/src/events/utils.ts.html +10 -10
- package/coverage/lcov-report/src/index.html +16 -16
- package/coverage/lcov-report/src/index.ts.html +1 -1
- package/coverage/lcov-report/src/integrations/airtable.ts.html +5 -5
- package/coverage/lcov-report/src/integrations/arangodb.ts.html +5 -5
- package/coverage/lcov-report/src/integrations/base/index.html +30 -30
- package/coverage/lcov-report/src/integrations/base/query.ts.html +9 -9
- package/coverage/lcov-report/src/integrations/base/sql.ts.html +223 -214
- package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +107 -107
- package/coverage/lcov-report/src/integrations/base/utils.ts.html +5 -5
- package/coverage/lcov-report/src/integrations/couchdb.ts.html +5 -5
- package/coverage/lcov-report/src/integrations/dynamodb.ts.html +6 -6
- package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +5 -5
- package/coverage/lcov-report/src/integrations/firebase.ts.html +5 -5
- package/coverage/lcov-report/src/integrations/googlesheets.ts.html +11 -11
- package/coverage/lcov-report/src/integrations/index.html +27 -27
- package/coverage/lcov-report/src/integrations/index.ts.html +40 -40
- package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +8 -8
- package/coverage/lcov-report/src/integrations/mongodb.ts.html +11 -11
- package/coverage/lcov-report/src/integrations/mysql.ts.html +10 -10
- package/coverage/lcov-report/src/integrations/oracle.ts.html +14 -14
- package/coverage/lcov-report/src/integrations/postgres.ts.html +68 -68
- package/coverage/lcov-report/src/integrations/queries/index.html +1 -1
- package/coverage/lcov-report/src/integrations/queries/sql.ts.html +8 -8
- package/coverage/lcov-report/src/integrations/redis.ts.html +5 -5
- package/coverage/lcov-report/src/integrations/rest.ts.html +15 -15
- package/coverage/lcov-report/src/integrations/s3.ts.html +6 -6
- package/coverage/lcov-report/src/integrations/snowflake.ts.html +5 -5
- package/coverage/lcov-report/src/integrations/tests/TestConfiguration.js.html +1 -1
- package/coverage/lcov-report/src/integrations/tests/index.html +5 -230
- package/coverage/lcov-report/src/integrations/utils.ts.html +77 -77
- package/coverage/lcov-report/src/middleware/appInfo.ts.html +5 -5
- package/coverage/lcov-report/src/middleware/authorized.ts.html +29 -29
- package/coverage/lcov-report/src/middleware/builder.ts.html +17 -17
- package/coverage/lcov-report/src/middleware/currentapp.ts.html +53 -53
- package/coverage/lcov-report/src/middleware/index.html +15 -15
- package/coverage/lcov-report/src/middleware/joi-validator.ts.html +1 -1
- package/coverage/lcov-report/src/middleware/publicApi.ts.html +4 -4
- package/coverage/lcov-report/src/middleware/resourceId.ts.html +28 -28
- package/coverage/lcov-report/src/middleware/selfhost.ts.html +1 -1
- package/coverage/lcov-report/src/middleware/utils.ts.html +4 -4
- package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +4 -4
- package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +5 -5
- package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +5 -5
- package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +5 -5
- package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +7 -7
- package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +5 -5
- package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +5 -5
- package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +4 -4
- package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +19 -19
- package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +6 -6
- package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +7 -7
- package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +6 -6
- package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +15 -15
- package/coverage/lcov-report/src/migrations/functions/backfill/index.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +5 -5
- package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +8 -8
- package/coverage/lcov-report/src/migrations/functions/index.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +6 -6
- package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +6 -6
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +2 -2
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +5 -5
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +4 -4
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +6 -6
- package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +3 -3
- package/coverage/lcov-report/src/migrations/index.html +1 -1
- package/coverage/lcov-report/src/migrations/index.ts.html +32 -32
- package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +1 -1
- package/coverage/lcov-report/src/migrations/tests/index.html +8 -23
- package/coverage/lcov-report/src/migrations/tests/structures.ts.html +1 -1
- package/coverage/lcov-report/src/sdk/app/applications/index.html +1 -1
- package/coverage/lcov-report/src/sdk/app/applications/index.ts.html +4 -4
- package/coverage/lcov-report/src/sdk/app/applications/sync.ts.html +22 -22
- package/coverage/lcov-report/src/sdk/app/applications/utils.ts.html +9 -9
- package/coverage/lcov-report/src/sdk/app/automations/index.html +1 -1
- package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +3 -3
- package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +10 -10
- package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +3 -3
- package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +23 -41
- package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +18 -18
- package/coverage/lcov-report/src/sdk/app/backups/index.html +10 -10
- package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +5 -5
- package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +7 -7
- package/coverage/lcov-report/src/sdk/app/datasources/datasources.ts.html +60 -69
- package/coverage/lcov-report/src/sdk/app/datasources/index.html +19 -19
- package/coverage/lcov-report/src/sdk/app/datasources/index.ts.html +3 -3
- package/coverage/lcov-report/src/sdk/app/queries/index.html +1 -1
- package/coverage/lcov-report/src/sdk/app/queries/index.ts.html +3 -3
- package/coverage/lcov-report/src/sdk/app/queries/queries.ts.html +11 -11
- package/coverage/lcov-report/src/sdk/app/rows/attachments.ts.html +6 -6
- package/coverage/lcov-report/src/sdk/app/rows/index.html +1 -1
- package/coverage/lcov-report/src/sdk/app/rows/index.ts.html +4 -4
- package/coverage/lcov-report/src/sdk/app/rows/rows.ts.html +4 -4
- package/coverage/lcov-report/src/sdk/app/tables/index.html +1 -1
- package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +10 -10
- package/coverage/lcov-report/src/sdk/index.html +1 -1
- package/coverage/lcov-report/src/sdk/index.ts.html +11 -11
- package/coverage/lcov-report/src/sdk/users/index.html +1 -1
- package/coverage/lcov-report/src/sdk/users/index.ts.html +3 -3
- package/coverage/lcov-report/src/sdk/users/utils.ts.html +31 -31
- package/coverage/lcov-report/src/sdk/utils/index.html +1 -1
- package/coverage/lcov-report/src/sdk/utils/index.ts.html +11 -11
- package/coverage/lcov-report/src/startup.ts.html +42 -42
- package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +193 -421
- package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +15 -15
- package/coverage/lcov-report/src/tests/utilities/index.html +28 -28
- package/coverage/lcov-report/src/tests/utilities/index.ts.html +1 -1
- package/coverage/lcov-report/src/tests/utilities/structures.ts.html +35 -77
- package/coverage/lcov-report/src/threads/automation.ts.html +22 -22
- package/coverage/lcov-report/src/threads/index.html +1 -1
- package/coverage/lcov-report/src/threads/index.ts.html +24 -24
- package/coverage/lcov-report/src/threads/query.ts.html +76 -76
- package/coverage/lcov-report/src/threads/utils.ts.html +12 -12
- package/coverage/lcov-report/src/utilities/budibaseDir.ts.html +3 -3
- package/coverage/lcov-report/src/utilities/centralPath.ts.html +2 -2
- package/coverage/lcov-report/src/utilities/fileSystem/app.ts.html +17 -17
- package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +8 -8
- package/coverage/lcov-report/src/utilities/fileSystem/filesystem.ts.html +25 -25
- package/coverage/lcov-report/src/utilities/fileSystem/index.html +1 -1
- package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +6 -6
- package/coverage/lcov-report/src/utilities/fileSystem/plugin.ts.html +8 -8
- package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +1 -1
- package/coverage/lcov-report/src/utilities/fileSystem/template.ts.html +7 -7
- package/coverage/lcov-report/src/utilities/global.ts.html +40 -40
- package/coverage/lcov-report/src/utilities/index.html +19 -34
- package/coverage/lcov-report/src/utilities/index.ts.html +26 -26
- package/coverage/lcov-report/src/utilities/redis.ts.html +12 -12
- package/coverage/lcov-report/src/utilities/routing/index.html +1 -1
- package/coverage/lcov-report/src/utilities/routing/index.ts.html +4 -4
- package/coverage/lcov-report/src/utilities/rowProcessor/index.html +19 -19
- package/coverage/lcov-report/src/utilities/rowProcessor/index.ts.html +49 -49
- package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +3 -3
- package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +38 -38
- package/coverage/lcov-report/src/utilities/schema.ts.html +3 -3
- package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +5 -5
- package/coverage/lcov-report/src/utilities/security.ts.html +22 -22
- package/coverage/lcov-report/src/utilities/usageQuota/index.html +1 -1
- package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +35 -35
- package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +1 -1
- package/coverage/lcov-report/src/utilities/users.ts.html +4 -4
- package/coverage/lcov-report/src/utilities/workerRequests.ts.html +15 -15
- package/coverage/lcov-report/src/watch.ts.html +7 -7
- package/coverage/lcov-report/src/websocket.ts.html +5 -5
- package/coverage/lcov.info +12121 -19834
- package/dist/api/controllers/query/index.js +0 -2
- package/dist/api/controllers/row/ExternalRequest.js +2 -4
- package/dist/api/controllers/row/external.js +1 -12
- package/dist/api/controllers/table/external.js +8 -8
- package/dist/api/routes/public/tests/utils.js +2 -29
- package/dist/app.js +1 -1
- package/dist/constants/index.js +24 -4
- package/dist/db/defaultData/datasource_bb_default.js +5 -6
- package/dist/db/linkedRows/LinkController.js +8 -9
- package/dist/integrations/base/sql.js +14 -10
- package/dist/package.json +6 -8
- package/dist/sdk/app/backups/exports.js +2 -8
- package/dist/sdk/app/datasources/datasources.js +0 -3
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/jest.config.ts +11 -28
- package/package.json +7 -9
- package/specs/openapi.json +6 -6
- package/specs/openapi.yaml +3 -3
- package/src/api/controllers/query/import/tests/index.spec.js +1 -1
- package/src/api/controllers/query/index.ts +0 -2
- package/src/api/controllers/row/ExternalRequest.ts +2 -6
- package/src/api/controllers/row/external.ts +1 -13
- package/src/api/controllers/table/external.ts +2 -3
- package/src/api/routes/public/applications.ts +1 -0
- package/src/api/routes/public/tests/compare.spec.js +1 -1
- package/src/api/routes/public/tests/users.spec.js +1 -1
- package/src/api/routes/public/tests/utils.ts +8 -25
- package/src/api/routes/tests/__snapshots__/datasource.spec.ts.snap +1 -1
- package/src/api/routes/tests/analytics.spec.js +1 -4
- package/src/api/routes/tests/apikeys.spec.js +1 -1
- package/src/api/routes/tests/application.spec.ts +6 -20
- package/src/api/routes/tests/auth.spec.js +2 -2
- package/src/api/routes/tests/automation.spec.js +2 -6
- package/src/api/routes/tests/backup.spec.ts +13 -4
- package/src/api/routes/tests/{cloud.seq.spec.ts → cloud.spec.ts} +15 -11
- package/src/api/routes/tests/component.spec.js +1 -1
- package/src/api/routes/tests/datasource.spec.ts +3 -20
- package/src/api/routes/tests/dev.spec.js +1 -1
- package/src/api/routes/tests/integration.spec.js +1 -1
- package/src/api/routes/tests/layout.spec.js +1 -1
- package/src/api/routes/tests/metadata.spec.js +1 -1
- package/src/api/routes/tests/misc.spec.js +1 -1
- package/src/api/routes/tests/permissions.spec.js +1 -4
- package/src/api/routes/tests/{query.seq.spec.js → query.spec.js} +1 -22
- package/src/api/routes/tests/role.spec.js +1 -6
- package/src/api/routes/tests/routing.spec.js +1 -1
- package/src/api/routes/tests/row.spec.js +3 -11
- package/src/api/routes/tests/screen.spec.js +1 -1
- package/src/api/routes/tests/static.spec.js +1 -2
- package/src/api/routes/tests/table.spec.js +1 -1
- package/src/api/routes/tests/templates.spec.js +1 -1
- package/src/api/routes/tests/user.spec.js +12 -12
- package/src/api/routes/tests/utilities/TestFunctions.ts +2 -25
- package/src/api/routes/tests/utilities/index.ts +3 -5
- package/src/api/routes/tests/view.spec.js +1 -4
- package/src/api/routes/tests/webhook.spec.js +2 -11
- package/src/app.ts +1 -2
- package/src/automations/tests/automation.spec.js +4 -4
- package/src/automations/tests/bash.spec.js +1 -1
- package/src/automations/tests/discord.spec.js +1 -1
- package/src/automations/tests/executeQuery.spec.js +3 -2
- package/src/automations/tests/executeScript.spec.js +1 -1
- package/src/automations/tests/outgoingWebhook.spec.js +1 -1
- package/src/automations/tests/sendSmtpEmail.spec.js +1 -1
- package/src/automations/tests/serverLog.spec.js +1 -1
- package/src/automations/tests/updateRow.spec.js +1 -1
- package/src/automations/tests/zapier.spec.js +1 -1
- package/src/constants/index.ts +23 -1
- package/src/db/defaultData/datasource_bb_default.ts +10 -6
- package/src/db/linkedRows/LinkController.ts +1 -2
- package/src/db/tests/linkController.spec.js +1 -4
- package/src/db/tests/linkTests.spec.js +1 -1
- package/src/integrations/base/sql.ts +18 -15
- package/src/integrations/oracle.ts +1 -1
- package/src/integrations/tests/sql.spec.ts +38 -0
- package/src/migrations/functions/tests/appUrls.spec.js +1 -1
- package/src/migrations/functions/tests/syncQuotas.spec.js +1 -1
- package/src/migrations/functions/tests/userEmailViewCasing.spec.js +1 -1
- package/src/migrations/tests/index.spec.ts +20 -13
- package/src/sdk/app/backups/exports.ts +2 -8
- package/src/sdk/app/datasources/datasources.ts +0 -3
- package/src/tests/jestEnv.ts +6 -2
- package/src/tests/jestSetup.ts +7 -8
- package/src/tests/utilities/TestConfiguration.ts +50 -126
- package/src/tests/utilities/structures.ts +2 -16
- package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/curl/curl.spec.js.html +0 -391
- package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/curl/index.html +0 -116
- package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi2/index.html +0 -116
- package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi2/openapi2.spec.js.html +0 -796
- package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi3/index.html +0 -116
- package/coverage/lcov-report/src/api/controllers/query/import/sources/tests/openapi3/openapi3.spec.js.html +0 -805
- package/coverage/lcov-report/src/api/controllers/query/import/tests/index.html +0 -116
- package/coverage/lcov-report/src/api/controllers/query/import/tests/index.spec.js.html +0 -568
- package/coverage/lcov-report/src/api/controllers/view/tests/index.html +0 -116
- package/coverage/lcov-report/src/api/controllers/view/tests/viewBuilder.spec.js.html +0 -277
- package/coverage/lcov-report/src/api/routes/public/tests/compare.spec.js.html +0 -583
- package/coverage/lcov-report/src/api/routes/public/tests/users.spec.js.html +0 -199
- package/coverage/lcov-report/src/api/routes/tests/analytics.spec.js.html +0 -271
- package/coverage/lcov-report/src/api/routes/tests/apikeys.spec.js.html +0 -259
- package/coverage/lcov-report/src/api/routes/tests/application.spec.ts.html +0 -1066
- package/coverage/lcov-report/src/api/routes/tests/auth.spec.js.html +0 -154
- package/coverage/lcov-report/src/api/routes/tests/automation.spec.js.html +0 -1123
- package/coverage/lcov-report/src/api/routes/tests/backup.spec.ts.html +0 -223
- package/coverage/lcov-report/src/api/routes/tests/cloud.seq.spec.ts.html +0 -268
- package/coverage/lcov-report/src/api/routes/tests/component.spec.js.html +0 -178
- package/coverage/lcov-report/src/api/routes/tests/datasource.spec.ts.html +0 -799
- package/coverage/lcov-report/src/api/routes/tests/dev.spec.js.html +0 -202
- package/coverage/lcov-report/src/api/routes/tests/environmentVariables.spec.ts.html +0 -517
- package/coverage/lcov-report/src/api/routes/tests/index.html +0 -536
- package/coverage/lcov-report/src/api/routes/tests/integration.spec.js.html +0 -238
- package/coverage/lcov-report/src/api/routes/tests/internalSearch.spec.js.html +0 -670
- package/coverage/lcov-report/src/api/routes/tests/layout.spec.js.html +0 -259
- package/coverage/lcov-report/src/api/routes/tests/metadata.spec.js.html +0 -280
- package/coverage/lcov-report/src/api/routes/tests/misc.spec.js.html +0 -358
- package/coverage/lcov-report/src/api/routes/tests/permissions.spec.js.html +0 -484
- package/coverage/lcov-report/src/api/routes/tests/plugin.spec.ts.html +0 -622
- package/coverage/lcov-report/src/api/routes/tests/query.seq.spec.js.html +0 -1699
- package/coverage/lcov-report/src/api/routes/tests/role.spec.js.html +0 -478
- package/coverage/lcov-report/src/api/routes/tests/routing.spec.js.html +0 -430
- package/coverage/lcov-report/src/api/routes/tests/row.spec.js.html +0 -1804
- package/coverage/lcov-report/src/api/routes/tests/screen.spec.js.html +0 -391
- package/coverage/lcov-report/src/api/routes/tests/static.spec.js.html +0 -541
- package/coverage/lcov-report/src/api/routes/tests/table.spec.js.html +0 -991
- package/coverage/lcov-report/src/api/routes/tests/templates.spec.js.html +0 -154
- package/coverage/lcov-report/src/api/routes/tests/user.spec.js.html +0 -679
- package/coverage/lcov-report/src/api/routes/tests/view.spec.js.html +0 -1342
- package/coverage/lcov-report/src/api/routes/tests/webhook.spec.js.html +0 -484
- package/coverage/lcov-report/src/automations/tests/automation.spec.js.html +0 -337
- package/coverage/lcov-report/src/automations/tests/bash.spec.js.html +0 -187
- package/coverage/lcov-report/src/automations/tests/createRow.spec.ts.html +0 -223
- package/coverage/lcov-report/src/automations/tests/delay.spec.js.html +0 -133
- package/coverage/lcov-report/src/automations/tests/deleteRow.spec.ts.html +0 -250
- package/coverage/lcov-report/src/automations/tests/discord.spec.js.html +0 -166
- package/coverage/lcov-report/src/automations/tests/executeQuery.spec.js.html +0 -229
- package/coverage/lcov-report/src/automations/tests/executeScript.spec.js.html +0 -229
- package/coverage/lcov-report/src/automations/tests/filter.spec.js.html +0 -232
- package/coverage/lcov-report/src/automations/tests/index.html +0 -341
- package/coverage/lcov-report/src/automations/tests/loop.spec.ts.html +0 -220
- package/coverage/lcov-report/src/automations/tests/outgoingWebhook.spec.js.html +0 -202
- package/coverage/lcov-report/src/automations/tests/queryRows.spec.js.html +0 -436
- package/coverage/lcov-report/src/automations/tests/sendSmtpEmail.spec.js.html +0 -298
- package/coverage/lcov-report/src/automations/tests/serverLog.spec.js.html +0 -151
- package/coverage/lcov-report/src/automations/tests/updateRow.spec.js.html +0 -217
- package/coverage/lcov-report/src/automations/tests/zapier.spec.js.html +0 -166
- package/coverage/lcov-report/src/automations/unitTests/automationUtils.spec.ts.html +0 -280
- package/coverage/lcov-report/src/automations/unitTests/index.html +0 -116
- package/coverage/lcov-report/src/db/tests/index.html +0 -131
- package/coverage/lcov-report/src/db/tests/linkController.spec.js.html +0 -793
- package/coverage/lcov-report/src/db/tests/linkTests.spec.js.html +0 -277
- package/coverage/lcov-report/src/integration-test/index.html +0 -116
- package/coverage/lcov-report/src/integration-test/postgres.spec.ts.html +0 -2341
- package/coverage/lcov-report/src/integrations/tests/airtable.spec.ts.html +0 -310
- package/coverage/lcov-report/src/integrations/tests/arangodb.spec.ts.html +0 -199
- package/coverage/lcov-report/src/integrations/tests/couchdb.spec.ts.html +0 -349
- package/coverage/lcov-report/src/integrations/tests/dynamodb.spec.ts.html +0 -550
- package/coverage/lcov-report/src/integrations/tests/elasticsearch.spec.ts.html +0 -331
- package/coverage/lcov-report/src/integrations/tests/firebase.spec.ts.html +0 -376
- package/coverage/lcov-report/src/integrations/tests/microsoftSqlServer.spec.ts.html +0 -253
- package/coverage/lcov-report/src/integrations/tests/mongo.spec.ts.html +0 -1087
- package/coverage/lcov-report/src/integrations/tests/mysql.spec.ts.html +0 -484
- package/coverage/lcov-report/src/integrations/tests/oracle.spec.ts.html +0 -373
- package/coverage/lcov-report/src/integrations/tests/postgres.spec.ts.html +0 -328
- package/coverage/lcov-report/src/integrations/tests/redis.spec.ts.html +0 -337
- package/coverage/lcov-report/src/integrations/tests/rest.spec.ts.html +0 -1870
- package/coverage/lcov-report/src/integrations/tests/s3.spec.ts.html +0 -421
- package/coverage/lcov-report/src/integrations/tests/sql.spec.ts.html +0 -1753
- package/coverage/lcov-report/src/middleware/tests/authorized.spec.js.html +0 -574
- package/coverage/lcov-report/src/middleware/tests/currentapp.spec.js.html +0 -814
- package/coverage/lcov-report/src/middleware/tests/index.html +0 -161
- package/coverage/lcov-report/src/middleware/tests/resourceId.spec.js.html +0 -397
- package/coverage/lcov-report/src/middleware/tests/selfhost.spec.js.html +0 -214
- package/coverage/lcov-report/src/migrations/functions/tests/appUrls.spec.js.html +0 -163
- package/coverage/lcov-report/src/migrations/functions/tests/index.html +0 -161
- package/coverage/lcov-report/src/migrations/functions/tests/syncQuotas.spec.js.html +0 -163
- package/coverage/lcov-report/src/migrations/functions/tests/tableSettings.spec.ts.html +0 -517
- package/coverage/lcov-report/src/migrations/functions/tests/userEmailViewCasing.spec.js.html +0 -190
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/tests/index.html +0 -131
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/tests/syncApps.spec.ts.html +0 -190
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts.html +0 -244
- package/coverage/lcov-report/src/migrations/tests/index.spec.ts.html +0 -511
- package/coverage/lcov-report/src/sdk/tests/attachments.spec.ts.html +0 -313
- package/coverage/lcov-report/src/sdk/tests/index.html +0 -116
- package/coverage/lcov-report/src/utilities/retry.ts.html +0 -139
- package/coverage/lcov-report/src/utilities/rowProcessor/tests/index.html +0 -116
- package/coverage/lcov-report/src/utilities/rowProcessor/tests/utils.spec.ts.html +0 -256
- package/dist/api/routes/tests/utilities/index.js +0 -131
- package/dist/tests/utilities/TestConfiguration.js +0 -626
- package/dist/tests/utilities/controllers.js +0 -40
- package/dist/tests/utilities/structures.js +0 -234
- package/dist/utilities/retry.js +0 -30
- package/jest-testcontainers-config.js +0 -8
- package/scripts/load/create-many-apps.js +0 -24
- package/scripts/load/create-many-rows.js +0 -30
- package/scripts/load/utils.js +0 -66
- package/src/api/routes/tests/environmentVariables.spec.ts +0 -144
- package/src/integration-test/postgres.spec.ts +0 -752
- package/src/utilities/retry.ts +0 -18
|
@@ -1,1699 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
<!doctype html>
|
|
3
|
-
<html lang="en">
|
|
4
|
-
|
|
5
|
-
<head>
|
|
6
|
-
<title>Code coverage report for src/api/routes/tests/query.seq.spec.js</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/api/routes/tests</a> query.seq.spec.js</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/204</span>
|
|
29
|
-
</div>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">100% </span>
|
|
34
|
-
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>0/0</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/202</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></td><td class="line-coverage quiet"><span class="cline-any cline-no"> </span>
|
|
605
|
-
<span class="cline-any cline-no"> </span>
|
|
606
|
-
<span class="cline-any cline-neutral"> </span>
|
|
607
|
-
<span class="cline-any cline-neutral"> </span>
|
|
608
|
-
<span class="cline-any cline-no"> </span>
|
|
609
|
-
<span class="cline-any cline-no"> </span>
|
|
610
|
-
<span class="cline-any cline-neutral"> </span>
|
|
611
|
-
<span class="cline-any cline-neutral"> </span>
|
|
612
|
-
<span class="cline-any cline-neutral"> </span>
|
|
613
|
-
<span class="cline-any cline-no"> </span>
|
|
614
|
-
<span class="cline-any cline-no"> </span>
|
|
615
|
-
<span class="cline-any cline-no"> </span>
|
|
616
|
-
<span class="cline-any cline-neutral"> </span>
|
|
617
|
-
<span class="cline-any cline-neutral"> </span>
|
|
618
|
-
<span class="cline-any cline-neutral"> </span>
|
|
619
|
-
<span class="cline-any cline-neutral"> </span>
|
|
620
|
-
<span class="cline-any cline-neutral"> </span>
|
|
621
|
-
<span class="cline-any cline-neutral"> </span>
|
|
622
|
-
<span class="cline-any cline-neutral"> </span>
|
|
623
|
-
<span class="cline-any cline-no"> </span>
|
|
624
|
-
<span class="cline-any cline-no"> </span>
|
|
625
|
-
<span class="cline-any cline-no"> </span>
|
|
626
|
-
<span class="cline-any cline-no"> </span>
|
|
627
|
-
<span class="cline-any cline-no"> </span>
|
|
628
|
-
<span class="cline-any cline-neutral"> </span>
|
|
629
|
-
<span class="cline-any cline-no"> </span>
|
|
630
|
-
<span class="cline-any cline-no"> </span>
|
|
631
|
-
<span class="cline-any cline-no"> </span>
|
|
632
|
-
<span class="cline-any cline-neutral"> </span>
|
|
633
|
-
<span class="cline-any cline-neutral"> </span>
|
|
634
|
-
<span class="cline-any cline-no"> </span>
|
|
635
|
-
<span class="cline-any cline-neutral"> </span>
|
|
636
|
-
<span class="cline-any cline-no"> </span>
|
|
637
|
-
<span class="cline-any cline-neutral"> </span>
|
|
638
|
-
<span class="cline-any cline-no"> </span>
|
|
639
|
-
<span class="cline-any cline-no"> </span>
|
|
640
|
-
<span class="cline-any cline-no"> </span>
|
|
641
|
-
<span class="cline-any cline-neutral"> </span>
|
|
642
|
-
<span class="cline-any cline-neutral"> </span>
|
|
643
|
-
<span class="cline-any cline-no"> </span>
|
|
644
|
-
<span class="cline-any cline-no"> </span>
|
|
645
|
-
<span class="cline-any cline-neutral"> </span>
|
|
646
|
-
<span class="cline-any cline-neutral"> </span>
|
|
647
|
-
<span class="cline-any cline-neutral"> </span>
|
|
648
|
-
<span class="cline-any cline-no"> </span>
|
|
649
|
-
<span class="cline-any cline-neutral"> </span>
|
|
650
|
-
<span class="cline-any cline-neutral"> </span>
|
|
651
|
-
<span class="cline-any cline-neutral"> </span>
|
|
652
|
-
<span class="cline-any cline-neutral"> </span>
|
|
653
|
-
<span class="cline-any cline-neutral"> </span>
|
|
654
|
-
<span class="cline-any cline-no"> </span>
|
|
655
|
-
<span class="cline-any cline-no"> </span>
|
|
656
|
-
<span class="cline-any cline-neutral"> </span>
|
|
657
|
-
<span class="cline-any cline-neutral"> </span>
|
|
658
|
-
<span class="cline-any cline-no"> </span>
|
|
659
|
-
<span class="cline-any cline-no"> </span>
|
|
660
|
-
<span class="cline-any cline-neutral"> </span>
|
|
661
|
-
<span class="cline-any cline-neutral"> </span>
|
|
662
|
-
<span class="cline-any cline-neutral"> </span>
|
|
663
|
-
<span class="cline-any cline-neutral"> </span>
|
|
664
|
-
<span class="cline-any cline-neutral"> </span>
|
|
665
|
-
<span class="cline-any cline-neutral"> </span>
|
|
666
|
-
<span class="cline-any cline-neutral"> </span>
|
|
667
|
-
<span class="cline-any cline-no"> </span>
|
|
668
|
-
<span class="cline-any cline-no"> </span>
|
|
669
|
-
<span class="cline-any cline-no"> </span>
|
|
670
|
-
<span class="cline-any cline-no"> </span>
|
|
671
|
-
<span class="cline-any cline-no"> </span>
|
|
672
|
-
<span class="cline-any cline-no"> </span>
|
|
673
|
-
<span class="cline-any cline-neutral"> </span>
|
|
674
|
-
<span class="cline-any cline-no"> </span>
|
|
675
|
-
<span class="cline-any cline-neutral"> </span>
|
|
676
|
-
<span class="cline-any cline-neutral"> </span>
|
|
677
|
-
<span class="cline-any cline-no"> </span>
|
|
678
|
-
<span class="cline-any cline-neutral"> </span>
|
|
679
|
-
<span class="cline-any cline-neutral"> </span>
|
|
680
|
-
<span class="cline-any cline-neutral"> </span>
|
|
681
|
-
<span class="cline-any cline-neutral"> </span>
|
|
682
|
-
<span class="cline-any cline-neutral"> </span>
|
|
683
|
-
<span class="cline-any cline-neutral"> </span>
|
|
684
|
-
<span class="cline-any cline-no"> </span>
|
|
685
|
-
<span class="cline-any cline-no"> </span>
|
|
686
|
-
<span class="cline-any cline-neutral"> </span>
|
|
687
|
-
<span class="cline-any cline-neutral"> </span>
|
|
688
|
-
<span class="cline-any cline-neutral"> </span>
|
|
689
|
-
<span class="cline-any cline-no"> </span>
|
|
690
|
-
<span class="cline-any cline-no"> </span>
|
|
691
|
-
<span class="cline-any cline-no"> </span>
|
|
692
|
-
<span class="cline-any cline-no"> </span>
|
|
693
|
-
<span class="cline-any cline-no"> </span>
|
|
694
|
-
<span class="cline-any cline-no"> </span>
|
|
695
|
-
<span class="cline-any cline-no"> </span>
|
|
696
|
-
<span class="cline-any cline-no"> </span>
|
|
697
|
-
<span class="cline-any cline-no"> </span>
|
|
698
|
-
<span class="cline-any cline-neutral"> </span>
|
|
699
|
-
<span class="cline-any cline-no"> </span>
|
|
700
|
-
<span class="cline-any cline-neutral"> </span>
|
|
701
|
-
<span class="cline-any cline-neutral"> </span>
|
|
702
|
-
<span class="cline-any cline-no"> </span>
|
|
703
|
-
<span class="cline-any cline-neutral"> </span>
|
|
704
|
-
<span class="cline-any cline-neutral"> </span>
|
|
705
|
-
<span class="cline-any cline-neutral"> </span>
|
|
706
|
-
<span class="cline-any cline-neutral"> </span>
|
|
707
|
-
<span class="cline-any cline-neutral"> </span>
|
|
708
|
-
<span class="cline-any cline-neutral"> </span>
|
|
709
|
-
<span class="cline-any cline-no"> </span>
|
|
710
|
-
<span class="cline-any cline-no"> </span>
|
|
711
|
-
<span class="cline-any cline-neutral"> </span>
|
|
712
|
-
<span class="cline-any cline-neutral"> </span>
|
|
713
|
-
<span class="cline-any cline-neutral"> </span>
|
|
714
|
-
<span class="cline-any cline-no"> </span>
|
|
715
|
-
<span class="cline-any cline-no"> </span>
|
|
716
|
-
<span class="cline-any cline-no"> </span>
|
|
717
|
-
<span class="cline-any cline-neutral"> </span>
|
|
718
|
-
<span class="cline-any cline-neutral"> </span>
|
|
719
|
-
<span class="cline-any cline-no"> </span>
|
|
720
|
-
<span class="cline-any cline-no"> </span>
|
|
721
|
-
<span class="cline-any cline-neutral"> </span>
|
|
722
|
-
<span class="cline-any cline-neutral"> </span>
|
|
723
|
-
<span class="cline-any cline-neutral"> </span>
|
|
724
|
-
<span class="cline-any cline-neutral"> </span>
|
|
725
|
-
<span class="cline-any cline-neutral"> </span>
|
|
726
|
-
<span class="cline-any cline-no"> </span>
|
|
727
|
-
<span class="cline-any cline-no"> </span>
|
|
728
|
-
<span class="cline-any cline-neutral"> </span>
|
|
729
|
-
<span class="cline-any cline-neutral"> </span>
|
|
730
|
-
<span class="cline-any cline-neutral"> </span>
|
|
731
|
-
<span class="cline-any cline-neutral"> </span>
|
|
732
|
-
<span class="cline-any cline-neutral"> </span>
|
|
733
|
-
<span class="cline-any cline-neutral"> </span>
|
|
734
|
-
<span class="cline-any cline-neutral"> </span>
|
|
735
|
-
<span class="cline-any cline-neutral"> </span>
|
|
736
|
-
<span class="cline-any cline-neutral"> </span>
|
|
737
|
-
<span class="cline-any cline-neutral"> </span>
|
|
738
|
-
<span class="cline-any cline-neutral"> </span>
|
|
739
|
-
<span class="cline-any cline-no"> </span>
|
|
740
|
-
<span class="cline-any cline-no"> </span>
|
|
741
|
-
<span class="cline-any cline-neutral"> </span>
|
|
742
|
-
<span class="cline-any cline-neutral"> </span>
|
|
743
|
-
<span class="cline-any cline-neutral"> </span>
|
|
744
|
-
<span class="cline-any cline-neutral"> </span>
|
|
745
|
-
<span class="cline-any cline-neutral"> </span>
|
|
746
|
-
<span class="cline-any cline-neutral"> </span>
|
|
747
|
-
<span class="cline-any cline-neutral"> </span>
|
|
748
|
-
<span class="cline-any cline-no"> </span>
|
|
749
|
-
<span class="cline-any cline-no"> </span>
|
|
750
|
-
<span class="cline-any cline-no"> </span>
|
|
751
|
-
<span class="cline-any cline-no"> </span>
|
|
752
|
-
<span class="cline-any cline-neutral"> </span>
|
|
753
|
-
<span class="cline-any cline-neutral"> </span>
|
|
754
|
-
<span class="cline-any cline-neutral"> </span>
|
|
755
|
-
<span class="cline-any cline-neutral"> </span>
|
|
756
|
-
<span class="cline-any cline-no"> </span>
|
|
757
|
-
<span class="cline-any cline-neutral"> </span>
|
|
758
|
-
<span class="cline-any cline-neutral"> </span>
|
|
759
|
-
<span class="cline-any cline-no"> </span>
|
|
760
|
-
<span class="cline-any cline-no"> </span>
|
|
761
|
-
<span class="cline-any cline-no"> </span>
|
|
762
|
-
<span class="cline-any cline-no"> </span>
|
|
763
|
-
<span class="cline-any cline-neutral"> </span>
|
|
764
|
-
<span class="cline-any cline-neutral"> </span>
|
|
765
|
-
<span class="cline-any cline-neutral"> </span>
|
|
766
|
-
<span class="cline-any cline-neutral"> </span>
|
|
767
|
-
<span class="cline-any cline-no"> </span>
|
|
768
|
-
<span class="cline-any cline-no"> </span>
|
|
769
|
-
<span class="cline-any cline-no"> </span>
|
|
770
|
-
<span class="cline-any cline-neutral"> </span>
|
|
771
|
-
<span class="cline-any cline-neutral"> </span>
|
|
772
|
-
<span class="cline-any cline-neutral"> </span>
|
|
773
|
-
<span class="cline-any cline-no"> </span>
|
|
774
|
-
<span class="cline-any cline-neutral"> </span>
|
|
775
|
-
<span class="cline-any cline-no"> </span>
|
|
776
|
-
<span class="cline-any cline-no"> </span>
|
|
777
|
-
<span class="cline-any cline-neutral"> </span>
|
|
778
|
-
<span class="cline-any cline-no"> </span>
|
|
779
|
-
<span class="cline-any cline-no"> </span>
|
|
780
|
-
<span class="cline-any cline-neutral"> </span>
|
|
781
|
-
<span class="cline-any cline-neutral"> </span>
|
|
782
|
-
<span class="cline-any cline-neutral"> </span>
|
|
783
|
-
<span class="cline-any cline-neutral"> </span>
|
|
784
|
-
<span class="cline-any cline-no"> </span>
|
|
785
|
-
<span class="cline-any cline-no"> </span>
|
|
786
|
-
<span class="cline-any cline-no"> </span>
|
|
787
|
-
<span class="cline-any cline-no"> </span>
|
|
788
|
-
<span class="cline-any cline-neutral"> </span>
|
|
789
|
-
<span class="cline-any cline-neutral"> </span>
|
|
790
|
-
<span class="cline-any cline-no"> </span>
|
|
791
|
-
<span class="cline-any cline-no"> </span>
|
|
792
|
-
<span class="cline-any cline-neutral"> </span>
|
|
793
|
-
<span class="cline-any cline-neutral"> </span>
|
|
794
|
-
<span class="cline-any cline-neutral"> </span>
|
|
795
|
-
<span class="cline-any cline-no"> </span>
|
|
796
|
-
<span class="cline-any cline-no"> </span>
|
|
797
|
-
<span class="cline-any cline-no"> </span>
|
|
798
|
-
<span class="cline-any cline-neutral"> </span>
|
|
799
|
-
<span class="cline-any cline-neutral"> </span>
|
|
800
|
-
<span class="cline-any cline-no"> </span>
|
|
801
|
-
<span class="cline-any cline-no"> </span>
|
|
802
|
-
<span class="cline-any cline-neutral"> </span>
|
|
803
|
-
<span class="cline-any cline-neutral"> </span>
|
|
804
|
-
<span class="cline-any cline-neutral"> </span>
|
|
805
|
-
<span class="cline-any cline-neutral"> </span>
|
|
806
|
-
<span class="cline-any cline-no"> </span>
|
|
807
|
-
<span class="cline-any cline-neutral"> </span>
|
|
808
|
-
<span class="cline-any cline-neutral"> </span>
|
|
809
|
-
<span class="cline-any cline-neutral"> </span>
|
|
810
|
-
<span class="cline-any cline-neutral"> </span>
|
|
811
|
-
<span class="cline-any cline-neutral"> </span>
|
|
812
|
-
<span class="cline-any cline-no"> </span>
|
|
813
|
-
<span class="cline-any cline-no"> </span>
|
|
814
|
-
<span class="cline-any cline-no"> </span>
|
|
815
|
-
<span class="cline-any cline-neutral"> </span>
|
|
816
|
-
<span class="cline-any cline-neutral"> </span>
|
|
817
|
-
<span class="cline-any cline-no"> </span>
|
|
818
|
-
<span class="cline-any cline-no"> </span>
|
|
819
|
-
<span class="cline-any cline-neutral"> </span>
|
|
820
|
-
<span class="cline-any cline-neutral"> </span>
|
|
821
|
-
<span class="cline-any cline-neutral"> </span>
|
|
822
|
-
<span class="cline-any cline-neutral"> </span>
|
|
823
|
-
<span class="cline-any cline-neutral"> </span>
|
|
824
|
-
<span class="cline-any cline-neutral"> </span>
|
|
825
|
-
<span class="cline-any cline-neutral"> </span>
|
|
826
|
-
<span class="cline-any cline-no"> </span>
|
|
827
|
-
<span class="cline-any cline-no"> </span>
|
|
828
|
-
<span class="cline-any cline-no"> </span>
|
|
829
|
-
<span class="cline-any cline-neutral"> </span>
|
|
830
|
-
<span class="cline-any cline-neutral"> </span>
|
|
831
|
-
<span class="cline-any cline-neutral"> </span>
|
|
832
|
-
<span class="cline-any cline-neutral"> </span>
|
|
833
|
-
<span class="cline-any cline-neutral"> </span>
|
|
834
|
-
<span class="cline-any cline-neutral"> </span>
|
|
835
|
-
<span class="cline-any cline-no"> </span>
|
|
836
|
-
<span class="cline-any cline-neutral"> </span>
|
|
837
|
-
<span class="cline-any cline-neutral"> </span>
|
|
838
|
-
<span class="cline-any cline-neutral"> </span>
|
|
839
|
-
<span class="cline-any cline-neutral"> </span>
|
|
840
|
-
<span class="cline-any cline-neutral"> </span>
|
|
841
|
-
<span class="cline-any cline-neutral"> </span>
|
|
842
|
-
<span class="cline-any cline-no"> </span>
|
|
843
|
-
<span class="cline-any cline-neutral"> </span>
|
|
844
|
-
<span class="cline-any cline-neutral"> </span>
|
|
845
|
-
<span class="cline-any cline-neutral"> </span>
|
|
846
|
-
<span class="cline-any cline-no"> </span>
|
|
847
|
-
<span class="cline-any cline-no"> </span>
|
|
848
|
-
<span class="cline-any cline-no"> </span>
|
|
849
|
-
<span class="cline-any cline-no"> </span>
|
|
850
|
-
<span class="cline-any cline-neutral"> </span>
|
|
851
|
-
<span class="cline-any cline-neutral"> </span>
|
|
852
|
-
<span class="cline-any cline-no"> </span>
|
|
853
|
-
<span class="cline-any cline-no"> </span>
|
|
854
|
-
<span class="cline-any cline-neutral"> </span>
|
|
855
|
-
<span class="cline-any cline-neutral"> </span>
|
|
856
|
-
<span class="cline-any cline-neutral"> </span>
|
|
857
|
-
<span class="cline-any cline-neutral"> </span>
|
|
858
|
-
<span class="cline-any cline-neutral"> </span>
|
|
859
|
-
<span class="cline-any cline-neutral"> </span>
|
|
860
|
-
<span class="cline-any cline-neutral"> </span>
|
|
861
|
-
<span class="cline-any cline-no"> </span>
|
|
862
|
-
<span class="cline-any cline-no"> </span>
|
|
863
|
-
<span class="cline-any cline-no"> </span>
|
|
864
|
-
<span class="cline-any cline-neutral"> </span>
|
|
865
|
-
<span class="cline-any cline-neutral"> </span>
|
|
866
|
-
<span class="cline-any cline-no"> </span>
|
|
867
|
-
<span class="cline-any cline-no"> </span>
|
|
868
|
-
<span class="cline-any cline-neutral"> </span>
|
|
869
|
-
<span class="cline-any cline-neutral"> </span>
|
|
870
|
-
<span class="cline-any cline-neutral"> </span>
|
|
871
|
-
<span class="cline-any cline-neutral"> </span>
|
|
872
|
-
<span class="cline-any cline-neutral"> </span>
|
|
873
|
-
<span class="cline-any cline-neutral"> </span>
|
|
874
|
-
<span class="cline-any cline-neutral"> </span>
|
|
875
|
-
<span class="cline-any cline-no"> </span>
|
|
876
|
-
<span class="cline-any cline-neutral"> </span>
|
|
877
|
-
<span class="cline-any cline-neutral"> </span>
|
|
878
|
-
<span class="cline-any cline-no"> </span>
|
|
879
|
-
<span class="cline-any cline-neutral"> </span>
|
|
880
|
-
<span class="cline-any cline-no"> </span>
|
|
881
|
-
<span class="cline-any cline-no"> </span>
|
|
882
|
-
<span class="cline-any cline-neutral"> </span>
|
|
883
|
-
<span class="cline-any cline-no"> </span>
|
|
884
|
-
<span class="cline-any cline-neutral"> </span>
|
|
885
|
-
<span class="cline-any cline-no"> </span>
|
|
886
|
-
<span class="cline-any cline-no"> </span>
|
|
887
|
-
<span class="cline-any cline-neutral"> </span>
|
|
888
|
-
<span class="cline-any cline-neutral"> </span>
|
|
889
|
-
<span class="cline-any cline-neutral"> </span>
|
|
890
|
-
<span class="cline-any cline-no"> </span>
|
|
891
|
-
<span class="cline-any cline-neutral"> </span>
|
|
892
|
-
<span class="cline-any cline-no"> </span>
|
|
893
|
-
<span class="cline-any cline-neutral"> </span>
|
|
894
|
-
<span class="cline-any cline-neutral"> </span>
|
|
895
|
-
<span class="cline-any cline-no"> </span>
|
|
896
|
-
<span class="cline-any cline-no"> </span>
|
|
897
|
-
<span class="cline-any cline-neutral"> </span>
|
|
898
|
-
<span class="cline-any cline-neutral"> </span>
|
|
899
|
-
<span class="cline-any cline-neutral"> </span>
|
|
900
|
-
<span class="cline-any cline-neutral"> </span>
|
|
901
|
-
<span class="cline-any cline-neutral"> </span>
|
|
902
|
-
<span class="cline-any cline-no"> </span>
|
|
903
|
-
<span class="cline-any cline-neutral"> </span>
|
|
904
|
-
<span class="cline-any cline-neutral"> </span>
|
|
905
|
-
<span class="cline-any cline-neutral"> </span>
|
|
906
|
-
<span class="cline-any cline-neutral"> </span>
|
|
907
|
-
<span class="cline-any cline-no"> </span>
|
|
908
|
-
<span class="cline-any cline-neutral"> </span>
|
|
909
|
-
<span class="cline-any cline-neutral"> </span>
|
|
910
|
-
<span class="cline-any cline-neutral"> </span>
|
|
911
|
-
<span class="cline-any cline-neutral"> </span>
|
|
912
|
-
<span class="cline-any cline-no"> </span>
|
|
913
|
-
<span class="cline-any cline-neutral"> </span>
|
|
914
|
-
<span class="cline-any cline-neutral"> </span>
|
|
915
|
-
<span class="cline-any cline-no"> </span>
|
|
916
|
-
<span class="cline-any cline-no"> </span>
|
|
917
|
-
<span class="cline-any cline-no"> </span>
|
|
918
|
-
<span class="cline-any cline-neutral"> </span>
|
|
919
|
-
<span class="cline-any cline-neutral"> </span>
|
|
920
|
-
<span class="cline-any cline-neutral"> </span>
|
|
921
|
-
<span class="cline-any cline-no"> </span>
|
|
922
|
-
<span class="cline-any cline-neutral"> </span>
|
|
923
|
-
<span class="cline-any cline-neutral"> </span>
|
|
924
|
-
<span class="cline-any cline-neutral"> </span>
|
|
925
|
-
<span class="cline-any cline-neutral"> </span>
|
|
926
|
-
<span class="cline-any cline-no"> </span>
|
|
927
|
-
<span class="cline-any cline-neutral"> </span>
|
|
928
|
-
<span class="cline-any cline-neutral"> </span>
|
|
929
|
-
<span class="cline-any cline-no"> </span>
|
|
930
|
-
<span class="cline-any cline-neutral"> </span>
|
|
931
|
-
<span class="cline-any cline-no"> </span>
|
|
932
|
-
<span class="cline-any cline-neutral"> </span>
|
|
933
|
-
<span class="cline-any cline-no"> </span>
|
|
934
|
-
<span class="cline-any cline-neutral"> </span>
|
|
935
|
-
<span class="cline-any cline-neutral"> </span>
|
|
936
|
-
<span class="cline-any cline-neutral"> </span>
|
|
937
|
-
<span class="cline-any cline-neutral"> </span>
|
|
938
|
-
<span class="cline-any cline-no"> </span>
|
|
939
|
-
<span class="cline-any cline-no"> </span>
|
|
940
|
-
<span class="cline-any cline-no"> </span>
|
|
941
|
-
<span class="cline-any cline-neutral"> </span>
|
|
942
|
-
<span class="cline-any cline-neutral"> </span>
|
|
943
|
-
<span class="cline-any cline-neutral"> </span>
|
|
944
|
-
<span class="cline-any cline-no"> </span>
|
|
945
|
-
<span class="cline-any cline-neutral"> </span>
|
|
946
|
-
<span class="cline-any cline-neutral"> </span>
|
|
947
|
-
<span class="cline-any cline-neutral"> </span>
|
|
948
|
-
<span class="cline-any cline-neutral"> </span>
|
|
949
|
-
<span class="cline-any cline-no"> </span>
|
|
950
|
-
<span class="cline-any cline-neutral"> </span>
|
|
951
|
-
<span class="cline-any cline-neutral"> </span>
|
|
952
|
-
<span class="cline-any cline-no"> </span>
|
|
953
|
-
<span class="cline-any cline-neutral"> </span>
|
|
954
|
-
<span class="cline-any cline-no"> </span>
|
|
955
|
-
<span class="cline-any cline-neutral"> </span>
|
|
956
|
-
<span class="cline-any cline-no"> </span>
|
|
957
|
-
<span class="cline-any cline-neutral"> </span>
|
|
958
|
-
<span class="cline-any cline-neutral"> </span>
|
|
959
|
-
<span class="cline-any cline-neutral"> </span>
|
|
960
|
-
<span class="cline-any cline-neutral"> </span>
|
|
961
|
-
<span class="cline-any cline-no"> </span>
|
|
962
|
-
<span class="cline-any cline-no"> </span>
|
|
963
|
-
<span class="cline-any cline-neutral"> </span>
|
|
964
|
-
<span class="cline-any cline-neutral"> </span>
|
|
965
|
-
<span class="cline-any cline-no"> </span>
|
|
966
|
-
<span class="cline-any cline-neutral"> </span>
|
|
967
|
-
<span class="cline-any cline-neutral"> </span>
|
|
968
|
-
<span class="cline-any cline-neutral"> </span>
|
|
969
|
-
<span class="cline-any cline-neutral"> </span>
|
|
970
|
-
<span class="cline-any cline-neutral"> </span>
|
|
971
|
-
<span class="cline-any cline-no"> </span>
|
|
972
|
-
<span class="cline-any cline-no"> </span>
|
|
973
|
-
<span class="cline-any cline-neutral"> </span>
|
|
974
|
-
<span class="cline-any cline-neutral"> </span>
|
|
975
|
-
<span class="cline-any cline-neutral"> </span>
|
|
976
|
-
<span class="cline-any cline-no"> </span>
|
|
977
|
-
<span class="cline-any cline-neutral"> </span>
|
|
978
|
-
<span class="cline-any cline-neutral"> </span>
|
|
979
|
-
<span class="cline-any cline-no"> </span>
|
|
980
|
-
<span class="cline-any cline-neutral"> </span>
|
|
981
|
-
<span class="cline-any cline-neutral"> </span>
|
|
982
|
-
<span class="cline-any cline-neutral"> </span>
|
|
983
|
-
<span class="cline-any cline-no"> </span>
|
|
984
|
-
<span class="cline-any cline-neutral"> </span>
|
|
985
|
-
<span class="cline-any cline-neutral"> </span>
|
|
986
|
-
<span class="cline-any cline-no"> </span>
|
|
987
|
-
<span class="cline-any cline-no"> </span>
|
|
988
|
-
<span class="cline-any cline-neutral"> </span>
|
|
989
|
-
<span class="cline-any cline-no"> </span>
|
|
990
|
-
<span class="cline-any cline-neutral"> </span>
|
|
991
|
-
<span class="cline-any cline-neutral"> </span>
|
|
992
|
-
<span class="cline-any cline-neutral"> </span>
|
|
993
|
-
<span class="cline-any cline-neutral"> </span>
|
|
994
|
-
<span class="cline-any cline-neutral"> </span>
|
|
995
|
-
<span class="cline-any cline-no"> </span>
|
|
996
|
-
<span class="cline-any cline-neutral"> </span>
|
|
997
|
-
<span class="cline-any cline-neutral"> </span>
|
|
998
|
-
<span class="cline-any cline-neutral"> </span>
|
|
999
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1000
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1001
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1002
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1003
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1004
|
-
<span class="cline-any cline-no"> </span>
|
|
1005
|
-
<span class="cline-any cline-no"> </span>
|
|
1006
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1007
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1008
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1009
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1010
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1011
|
-
<span class="cline-any cline-no"> </span>
|
|
1012
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1013
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1014
|
-
<span class="cline-any cline-no"> </span>
|
|
1015
|
-
<span class="cline-any cline-no"> </span>
|
|
1016
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1017
|
-
<span class="cline-any cline-no"> </span>
|
|
1018
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1019
|
-
<span class="cline-any cline-no"> </span>
|
|
1020
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1021
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1022
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1023
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1024
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1025
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1026
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1027
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1028
|
-
<span class="cline-any cline-no"> </span>
|
|
1029
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1030
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1031
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1032
|
-
<span class="cline-any cline-no"> </span>
|
|
1033
|
-
<span class="cline-any cline-no"> </span>
|
|
1034
|
-
<span class="cline-any cline-no"> </span>
|
|
1035
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1036
|
-
<span class="cline-any cline-no"> </span>
|
|
1037
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1038
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1039
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1040
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1041
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1042
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1043
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1044
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1045
|
-
<span class="cline-any cline-no"> </span>
|
|
1046
|
-
<span class="cline-any cline-no"> </span>
|
|
1047
|
-
<span class="cline-any cline-no"> </span>
|
|
1048
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1049
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1050
|
-
<span class="cline-any cline-no"> </span>
|
|
1051
|
-
<span class="cline-any cline-no"> </span>
|
|
1052
|
-
<span class="cline-any cline-no"> </span>
|
|
1053
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1054
|
-
<span class="cline-any cline-no"> </span>
|
|
1055
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1056
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1057
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1058
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1059
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1060
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1061
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1062
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1063
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1064
|
-
<span class="cline-any cline-no"> </span>
|
|
1065
|
-
<span class="cline-any cline-no"> </span>
|
|
1066
|
-
<span class="cline-any cline-no"> </span>
|
|
1067
|
-
<span class="cline-any cline-no"> </span>
|
|
1068
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1069
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1070
|
-
<span class="cline-any cline-no"> </span>
|
|
1071
|
-
<span class="cline-any cline-no"> </span>
|
|
1072
|
-
<span class="cline-any cline-no"> </span>
|
|
1073
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1074
|
-
<span class="cline-any cline-no"> </span>
|
|
1075
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1076
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1077
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1078
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1079
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1080
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1081
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1082
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1083
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1084
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1085
|
-
<span class="cline-any cline-no"> </span>
|
|
1086
|
-
<span class="cline-any cline-no"> </span>
|
|
1087
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1088
|
-
<span class="cline-any cline-no"> </span>
|
|
1089
|
-
<span class="cline-any cline-no"> </span>
|
|
1090
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1091
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1092
|
-
<span class="cline-any cline-no"> </span>
|
|
1093
|
-
<span class="cline-any cline-no"> </span>
|
|
1094
|
-
<span class="cline-any cline-no"> </span>
|
|
1095
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1096
|
-
<span class="cline-any cline-no"> </span>
|
|
1097
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1098
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1099
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1100
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1101
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1102
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1103
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1104
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1105
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1106
|
-
<span class="cline-any cline-no"> </span>
|
|
1107
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1108
|
-
<span class="cline-any cline-no"> </span>
|
|
1109
|
-
<span class="cline-any cline-no"> </span>
|
|
1110
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1111
|
-
<span class="cline-any cline-no"> </span>
|
|
1112
|
-
<span class="cline-any cline-no"> </span>
|
|
1113
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1114
|
-
<span class="cline-any cline-no"> </span>
|
|
1115
|
-
<span class="cline-any cline-no"> </span>
|
|
1116
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1117
|
-
<span class="cline-any cline-no"> </span>
|
|
1118
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1119
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1120
|
-
<span class="cline-any cline-no"> </span>
|
|
1121
|
-
<span class="cline-any cline-no"> </span>
|
|
1122
|
-
<span class="cline-any cline-no"> </span>
|
|
1123
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1124
|
-
<span class="cline-any cline-no"> </span>
|
|
1125
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1126
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1127
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1128
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1129
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1130
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1131
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1132
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1133
|
-
<span class="cline-any cline-no"> </span>
|
|
1134
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1135
|
-
<span class="cline-any cline-no"> </span>
|
|
1136
|
-
<span class="cline-any cline-no"> </span>
|
|
1137
|
-
<span class="cline-any cline-no"> </span>
|
|
1138
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1139
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1140
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1141
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1142
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const tk = <span class="cstat-no" title="statement not covered" >require( "timekeeper")</span>
|
|
1143
|
-
<span class="cstat-no" title="statement not covered" >tk.freeze(Date.now())</span>
|
|
1144
|
-
|
|
1145
|
-
// Mock out postgres for this
|
|
1146
|
-
<span class="cstat-no" title="statement not covered" >jest.mock("pg")</span>
|
|
1147
|
-
<span class="cstat-no" title="statement not covered" >jest.mock("node-fetch")</span>
|
|
1148
|
-
|
|
1149
|
-
// Mock isProdAppID to we can later mock the implementation and pretend we are
|
|
1150
|
-
// using prod app IDs
|
|
1151
|
-
<span class="cstat-no" title="statement not covered" >jest.mock("@budibase/backend-core", <span class="fstat-no" title="function not covered" >()</span> => {</span>
|
|
1152
|
-
const core = <span class="cstat-no" title="statement not covered" >jest.requireActual("@budibase/backend-core")</span>
|
|
1153
|
-
<span class="cstat-no" title="statement not covered" > return {</span>
|
|
1154
|
-
...core,
|
|
1155
|
-
db: {
|
|
1156
|
-
...core.db,
|
|
1157
|
-
isProdAppID: jest.fn(),
|
|
1158
|
-
}
|
|
1159
|
-
}
|
|
1160
|
-
})
|
|
1161
|
-
const setup = <span class="cstat-no" title="statement not covered" >require("./utilities")</span>
|
|
1162
|
-
const { checkBuilderEndpoint } = <span class="cstat-no" title="statement not covered" >require("./utilities/TestFunctions")</span>
|
|
1163
|
-
const { checkCacheForDynamicVariable } = <span class="cstat-no" title="statement not covered" >require("../../../threads/utils")</span>
|
|
1164
|
-
const { basicQuery, basicDatasource } = <span class="cstat-no" title="statement not covered" >setup.structures</span>
|
|
1165
|
-
const { events, db: dbCore } = <span class="cstat-no" title="statement not covered" >require("@budibase/backend-core")</span>
|
|
1166
|
-
|
|
1167
|
-
<span class="cstat-no" title="statement not covered" >describe("/queries", <span class="fstat-no" title="function not covered" >()</span> => {</span>
|
|
1168
|
-
let request = <span class="cstat-no" title="statement not covered" >setup.getRequest()</span>
|
|
1169
|
-
let config = <span class="cstat-no" title="statement not covered" >setup.getConfig()</span>
|
|
1170
|
-
let datasource, query
|
|
1171
|
-
|
|
1172
|
-
<span class="cstat-no" title="statement not covered" > afterAll(setup.afterAll)</span>
|
|
1173
|
-
|
|
1174
|
-
const setupTest = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >as</span>ync()=>{</span>
|
|
1175
|
-
|
|
1176
|
-
<span class="cstat-no" title="statement not covered" > await config.init()</span>
|
|
1177
|
-
<span class="cstat-no" title="statement not covered" > datasource = await config.createDatasource()</span>
|
|
1178
|
-
<span class="cstat-no" title="statement not covered" > query = await config.createQuery()</span>
|
|
1179
|
-
}
|
|
1180
|
-
|
|
1181
|
-
<span class="cstat-no" title="statement not covered" > beforeAll(<span class="fstat-no" title="function not covered" >as</span>ync () => {</span>
|
|
1182
|
-
<span class="cstat-no" title="statement not covered" > await setupTest()</span>
|
|
1183
|
-
})
|
|
1184
|
-
|
|
1185
|
-
async function <span class="fstat-no" title="function not covered" >createInvalidIntegration(</span>) {
|
|
1186
|
-
const datasource = <span class="cstat-no" title="statement not covered" >await config.createDatasource({</span>
|
|
1187
|
-
datasource: {
|
|
1188
|
-
...basicDatasource().datasource,
|
|
1189
|
-
source: "INVALID_INTEGRATION",
|
|
1190
|
-
},
|
|
1191
|
-
})
|
|
1192
|
-
const query = <span class="cstat-no" title="statement not covered" >await config.createQuery()</span>
|
|
1193
|
-
<span class="cstat-no" title="statement not covered" > return { datasource, query }</span>
|
|
1194
|
-
}
|
|
1195
|
-
|
|
1196
|
-
const createQuery = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >as</span>ync (query) => {</span>
|
|
1197
|
-
<span class="cstat-no" title="statement not covered" > return request</span>
|
|
1198
|
-
.post(`/api/queries`)
|
|
1199
|
-
.send(query)
|
|
1200
|
-
.set(config.defaultHeaders())
|
|
1201
|
-
.expect("Content-Type", /json/)
|
|
1202
|
-
.expect(200)
|
|
1203
|
-
}
|
|
1204
|
-
|
|
1205
|
-
<span class="cstat-no" title="statement not covered" > describe("create", <span class="fstat-no" title="function not covered" >()</span> => {</span>
|
|
1206
|
-
<span class="cstat-no" title="statement not covered" > it("should create a new query", <span class="fstat-no" title="function not covered" >as</span>ync () => {</span>
|
|
1207
|
-
const { _id } = <span class="cstat-no" title="statement not covered" >await config.createDatasource()</span>
|
|
1208
|
-
const query = <span class="cstat-no" title="statement not covered" >basicQuery(_id)</span>
|
|
1209
|
-
<span class="cstat-no" title="statement not covered" > jest.clearAllMocks()</span>
|
|
1210
|
-
const res = <span class="cstat-no" title="statement not covered" >await createQuery(query)</span>
|
|
1211
|
-
|
|
1212
|
-
<span class="cstat-no" title="statement not covered" > expect(res.res.statusMessage).toEqual(</span>
|
|
1213
|
-
`Query ${query.name} saved successfully.`
|
|
1214
|
-
)
|
|
1215
|
-
<span class="cstat-no" title="statement not covered" > expect(res.body).toEqual({</span>
|
|
1216
|
-
_rev: res.body._rev,
|
|
1217
|
-
_id: res.body._id,
|
|
1218
|
-
...query,
|
|
1219
|
-
createdAt: new Date().toISOString(),
|
|
1220
|
-
updatedAt: new Date().toISOString()
|
|
1221
|
-
})
|
|
1222
|
-
<span class="cstat-no" title="statement not covered" > expect(events.query.created).toBeCalledTimes(1)</span>
|
|
1223
|
-
<span class="cstat-no" title="statement not covered" > expect(events.query.updated).not.toBeCalled()</span>
|
|
1224
|
-
})
|
|
1225
|
-
})
|
|
1226
|
-
|
|
1227
|
-
<span class="cstat-no" title="statement not covered" > describe("update", <span class="fstat-no" title="function not covered" >()</span> => {</span>
|
|
1228
|
-
<span class="cstat-no" title="statement not covered" > it("should update query", <span class="fstat-no" title="function not covered" >as</span>ync () => {</span>
|
|
1229
|
-
const { _id } = <span class="cstat-no" title="statement not covered" >await config.createDatasource()</span>
|
|
1230
|
-
const query = <span class="cstat-no" title="statement not covered" >basicQuery(_id)</span>
|
|
1231
|
-
const res = <span class="cstat-no" title="statement not covered" >await createQuery(query)</span>
|
|
1232
|
-
<span class="cstat-no" title="statement not covered" > jest.clearAllMocks()</span>
|
|
1233
|
-
<span class="cstat-no" title="statement not covered" > query._id = res.body._id</span>
|
|
1234
|
-
<span class="cstat-no" title="statement not covered" > query._rev = res.body._rev</span>
|
|
1235
|
-
<span class="cstat-no" title="statement not covered" > await createQuery(query)</span>
|
|
1236
|
-
|
|
1237
|
-
<span class="cstat-no" title="statement not covered" > expect(res.res.statusMessage).toEqual(</span>
|
|
1238
|
-
`Query ${query.name} saved successfully.`
|
|
1239
|
-
)
|
|
1240
|
-
<span class="cstat-no" title="statement not covered" > expect(res.body).toEqual({</span>
|
|
1241
|
-
_rev: res.body._rev,
|
|
1242
|
-
_id: res.body._id,
|
|
1243
|
-
...query,
|
|
1244
|
-
createdAt: new Date().toISOString(),
|
|
1245
|
-
updatedAt: new Date().toISOString()
|
|
1246
|
-
})
|
|
1247
|
-
<span class="cstat-no" title="statement not covered" > expect(events.query.created).not.toBeCalled()</span>
|
|
1248
|
-
<span class="cstat-no" title="statement not covered" > expect(events.query.updated).toBeCalledTimes(1)</span>
|
|
1249
|
-
})
|
|
1250
|
-
})
|
|
1251
|
-
|
|
1252
|
-
<span class="cstat-no" title="statement not covered" > describe("fetch", <span class="fstat-no" title="function not covered" >()</span> => {</span>
|
|
1253
|
-
<span class="cstat-no" title="statement not covered" > beforeEach(<span class="fstat-no" title="function not covered" >as</span>ync() => {</span>
|
|
1254
|
-
<span class="cstat-no" title="statement not covered" > await setupTest()</span>
|
|
1255
|
-
})
|
|
1256
|
-
|
|
1257
|
-
<span class="cstat-no" title="statement not covered" > it("returns all the queries from the server", <span class="fstat-no" title="function not covered" >as</span>ync () => {</span>
|
|
1258
|
-
const res = <span class="cstat-no" title="statement not covered" >await request</span>
|
|
1259
|
-
.get(`/api/queries`)
|
|
1260
|
-
.set(config.defaultHeaders())
|
|
1261
|
-
.expect("Content-Type", /json/)
|
|
1262
|
-
.expect(200)
|
|
1263
|
-
|
|
1264
|
-
const queries = <span class="cstat-no" title="statement not covered" >res.body</span>
|
|
1265
|
-
<span class="cstat-no" title="statement not covered" > expect(queries).toEqual([</span>
|
|
1266
|
-
{
|
|
1267
|
-
_rev: query._rev,
|
|
1268
|
-
_id: query._id,
|
|
1269
|
-
createdAt: new Date().toISOString(),
|
|
1270
|
-
...basicQuery(datasource._id),
|
|
1271
|
-
updatedAt: new Date().toISOString(),
|
|
1272
|
-
readable: true,
|
|
1273
|
-
},
|
|
1274
|
-
])
|
|
1275
|
-
})
|
|
1276
|
-
|
|
1277
|
-
<span class="cstat-no" title="statement not covered" > it("should apply authorization to endpoint", <span class="fstat-no" title="function not covered" >as</span>ync () => {</span>
|
|
1278
|
-
<span class="cstat-no" title="statement not covered" > await checkBuilderEndpoint({</span>
|
|
1279
|
-
config,
|
|
1280
|
-
method: "GET",
|
|
1281
|
-
url: `/api/datasources`,
|
|
1282
|
-
})
|
|
1283
|
-
})
|
|
1284
|
-
})
|
|
1285
|
-
|
|
1286
|
-
<span class="cstat-no" title="statement not covered" > describe("find", <span class="fstat-no" title="function not covered" >()</span> => {</span>
|
|
1287
|
-
<span class="cstat-no" title="statement not covered" > it("should find a query in builder", <span class="fstat-no" title="function not covered" >as</span>ync () => {</span>
|
|
1288
|
-
const query = <span class="cstat-no" title="statement not covered" >await config.createQuery()</span>
|
|
1289
|
-
const res = <span class="cstat-no" title="statement not covered" >await request</span>
|
|
1290
|
-
.get(`/api/queries/${query._id}`)
|
|
1291
|
-
.set(config.defaultHeaders())
|
|
1292
|
-
.expect("Content-Type", /json/)
|
|
1293
|
-
.expect(200)
|
|
1294
|
-
<span class="cstat-no" title="statement not covered" > expect(res.body._id).toEqual(query._id)</span>
|
|
1295
|
-
})
|
|
1296
|
-
|
|
1297
|
-
<span class="cstat-no" title="statement not covered" > it("should find a query in cloud", <span class="fstat-no" title="function not covered" >as</span>ync () => {</span>
|
|
1298
|
-
<span class="cstat-no" title="statement not covered" > await setup.switchToSelfHosted(<span class="fstat-no" title="function not covered" >as</span>ync () => {</span>
|
|
1299
|
-
const query = <span class="cstat-no" title="statement not covered" >await config.createQuery()</span>
|
|
1300
|
-
const res = <span class="cstat-no" title="statement not covered" >await request</span>
|
|
1301
|
-
.get(`/api/queries/${query._id}`)
|
|
1302
|
-
.set(await config.defaultHeaders())
|
|
1303
|
-
.expect(200)
|
|
1304
|
-
.expect("Content-Type", /json/)
|
|
1305
|
-
<span class="cstat-no" title="statement not covered" > expect(res.body.fields).toBeDefined()</span>
|
|
1306
|
-
<span class="cstat-no" title="statement not covered" > expect(res.body.parameters).toBeDefined()</span>
|
|
1307
|
-
<span class="cstat-no" title="statement not covered" > expect(res.body.schema).toBeDefined()</span>
|
|
1308
|
-
})
|
|
1309
|
-
})
|
|
1310
|
-
|
|
1311
|
-
<span class="cstat-no" title="statement not covered" > it("should remove sensitive info for prod apps", <span class="fstat-no" title="function not covered" >as</span>ync () => {</span>
|
|
1312
|
-
// Mock isProdAppID to pretend we are using a prod app
|
|
1313
|
-
<span class="cstat-no" title="statement not covered" > dbCore.isProdAppID.mockClear()</span>
|
|
1314
|
-
<span class="cstat-no" title="statement not covered" > dbCore.isProdAppID.mockImplementation(<span class="fstat-no" title="function not covered" >()</span> => <span class="cstat-no" title="statement not covered" >true)</span></span>
|
|
1315
|
-
|
|
1316
|
-
const query = <span class="cstat-no" title="statement not covered" >await config.createQuery()</span>
|
|
1317
|
-
const res = <span class="cstat-no" title="statement not covered" >await request</span>
|
|
1318
|
-
.get(`/api/queries/${query._id}`)
|
|
1319
|
-
.set(await config.defaultHeaders())
|
|
1320
|
-
.expect("Content-Type", /json/)
|
|
1321
|
-
.expect(200)
|
|
1322
|
-
<span class="cstat-no" title="statement not covered" > expect(res.body._id).toEqual(query._id)</span>
|
|
1323
|
-
<span class="cstat-no" title="statement not covered" > expect(res.body.fields).toBeUndefined()</span>
|
|
1324
|
-
<span class="cstat-no" title="statement not covered" > expect(res.body.parameters).toBeUndefined()</span>
|
|
1325
|
-
<span class="cstat-no" title="statement not covered" > expect(res.body.schema).toBeDefined()</span>
|
|
1326
|
-
|
|
1327
|
-
// Reset isProdAppID mock
|
|
1328
|
-
<span class="cstat-no" title="statement not covered" > expect(dbCore.isProdAppID).toHaveBeenCalledTimes(1)</span>
|
|
1329
|
-
<span class="cstat-no" title="statement not covered" > dbCore.isProdAppID.mockImplementation(<span class="fstat-no" title="function not covered" >()</span> => <span class="cstat-no" title="statement not covered" >false)</span></span>
|
|
1330
|
-
})
|
|
1331
|
-
})
|
|
1332
|
-
|
|
1333
|
-
<span class="cstat-no" title="statement not covered" > describe("destroy", <span class="fstat-no" title="function not covered" >()</span> => {</span>
|
|
1334
|
-
<span class="cstat-no" title="statement not covered" > beforeEach(<span class="fstat-no" title="function not covered" >as</span>ync() => {</span>
|
|
1335
|
-
<span class="cstat-no" title="statement not covered" > await setupTest()</span>
|
|
1336
|
-
})
|
|
1337
|
-
|
|
1338
|
-
<span class="cstat-no" title="statement not covered" > it("deletes a query and returns a success message", <span class="fstat-no" title="function not covered" >as</span>ync () => {</span>
|
|
1339
|
-
<span class="cstat-no" title="statement not covered" > await request</span>
|
|
1340
|
-
.delete(`/api/queries/${query._id}/${query._rev}`)
|
|
1341
|
-
.set(config.defaultHeaders())
|
|
1342
|
-
.expect(200)
|
|
1343
|
-
|
|
1344
|
-
const res = <span class="cstat-no" title="statement not covered" >await request</span>
|
|
1345
|
-
.get(`/api/queries`)
|
|
1346
|
-
.set(config.defaultHeaders())
|
|
1347
|
-
.expect("Content-Type", /json/)
|
|
1348
|
-
.expect(200)
|
|
1349
|
-
|
|
1350
|
-
<span class="cstat-no" title="statement not covered" > expect(res.body).toEqual([])</span>
|
|
1351
|
-
<span class="cstat-no" title="statement not covered" > expect(events.query.deleted).toBeCalledTimes(1)</span>
|
|
1352
|
-
<span class="cstat-no" title="statement not covered" > expect(events.query.deleted).toBeCalledWith(datasource, query)</span>
|
|
1353
|
-
})
|
|
1354
|
-
|
|
1355
|
-
<span class="cstat-no" title="statement not covered" > it("should apply authorization to endpoint", <span class="fstat-no" title="function not covered" >as</span>ync () => {</span>
|
|
1356
|
-
<span class="cstat-no" title="statement not covered" > await checkBuilderEndpoint({</span>
|
|
1357
|
-
config,
|
|
1358
|
-
method: "DELETE",
|
|
1359
|
-
url: `/api/queries/${config._id}/${config._rev}`,
|
|
1360
|
-
})
|
|
1361
|
-
})
|
|
1362
|
-
})
|
|
1363
|
-
|
|
1364
|
-
<span class="cstat-no" title="statement not covered" > describe("preview", <span class="fstat-no" title="function not covered" >()</span> => {</span>
|
|
1365
|
-
<span class="cstat-no" title="statement not covered" > it("should be able to preview the query", <span class="fstat-no" title="function not covered" >as</span>ync () => {</span>
|
|
1366
|
-
const query = <span class="cstat-no" title="statement not covered" >{</span>
|
|
1367
|
-
datasourceId: datasource._id,
|
|
1368
|
-
parameters: {},
|
|
1369
|
-
fields: {},
|
|
1370
|
-
queryVerb: "read",
|
|
1371
|
-
name: datasource.name,
|
|
1372
|
-
}
|
|
1373
|
-
const res = <span class="cstat-no" title="statement not covered" >await request</span>
|
|
1374
|
-
.post(`/api/queries/preview`)
|
|
1375
|
-
.send(query)
|
|
1376
|
-
.set(config.defaultHeaders())
|
|
1377
|
-
.expect("Content-Type", /json/)
|
|
1378
|
-
.expect(200)
|
|
1379
|
-
// these responses come from the mock
|
|
1380
|
-
<span class="cstat-no" title="statement not covered" > expect(res.body.schemaFields).toEqual({</span>
|
|
1381
|
-
"a": "string",
|
|
1382
|
-
"b": "number",
|
|
1383
|
-
})
|
|
1384
|
-
<span class="cstat-no" title="statement not covered" > expect(res.body.rows.length).toEqual(1)</span>
|
|
1385
|
-
<span class="cstat-no" title="statement not covered" > expect(events.query.previewed).toBeCalledTimes(1)</span>
|
|
1386
|
-
<span class="cstat-no" title="statement not covered" > delete datasource.config</span>
|
|
1387
|
-
<span class="cstat-no" title="statement not covered" > expect(events.query.previewed).toBeCalledWith(datasource, query)</span>
|
|
1388
|
-
})
|
|
1389
|
-
|
|
1390
|
-
<span class="cstat-no" title="statement not covered" > it("should apply authorization to endpoint", <span class="fstat-no" title="function not covered" >as</span>ync () => {</span>
|
|
1391
|
-
<span class="cstat-no" title="statement not covered" > await checkBuilderEndpoint({</span>
|
|
1392
|
-
config,
|
|
1393
|
-
method: "POST",
|
|
1394
|
-
url: `/api/queries/preview`,
|
|
1395
|
-
})
|
|
1396
|
-
})
|
|
1397
|
-
})
|
|
1398
|
-
|
|
1399
|
-
<span class="cstat-no" title="statement not covered" > describe("execute", <span class="fstat-no" title="function not covered" >()</span> => {</span>
|
|
1400
|
-
<span class="cstat-no" title="statement not covered" > beforeEach(<span class="fstat-no" title="function not covered" >as</span>ync() => {</span>
|
|
1401
|
-
<span class="cstat-no" title="statement not covered" > await setupTest()</span>
|
|
1402
|
-
})
|
|
1403
|
-
|
|
1404
|
-
<span class="cstat-no" title="statement not covered" > it("should be able to execute the query", <span class="fstat-no" title="function not covered" >as</span>ync () => {</span>
|
|
1405
|
-
const res = <span class="cstat-no" title="statement not covered" >await request</span>
|
|
1406
|
-
.post(`/api/queries/${query._id}`)
|
|
1407
|
-
.send({
|
|
1408
|
-
parameters: {},
|
|
1409
|
-
})
|
|
1410
|
-
.set(config.defaultHeaders())
|
|
1411
|
-
.expect("Content-Type", /json/)
|
|
1412
|
-
.expect(200)
|
|
1413
|
-
<span class="cstat-no" title="statement not covered" > expect(res.body.length).toEqual(1)</span>
|
|
1414
|
-
})
|
|
1415
|
-
|
|
1416
|
-
<span class="cstat-no" title="statement not covered" > it("should fail with invalid integration type", <span class="fstat-no" title="function not covered" >as</span>ync () => {</span>
|
|
1417
|
-
let error
|
|
1418
|
-
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
1419
|
-
<span class="cstat-no" title="statement not covered" > await createInvalidIntegration()</span>
|
|
1420
|
-
} catch (err) {
|
|
1421
|
-
<span class="cstat-no" title="statement not covered" > error = err</span>
|
|
1422
|
-
}
|
|
1423
|
-
<span class="cstat-no" title="statement not covered" > expect(error).toBeDefined()</span>
|
|
1424
|
-
<span class="cstat-no" title="statement not covered" > expect(error.message).toBe("No datasource implementation found.")</span>
|
|
1425
|
-
})
|
|
1426
|
-
})
|
|
1427
|
-
|
|
1428
|
-
<span class="cstat-no" title="statement not covered" > describe("variables", <span class="fstat-no" title="function not covered" >()</span> => {</span>
|
|
1429
|
-
async function <span class="fstat-no" title="function not covered" >preview(</span>datasource, fields) {
|
|
1430
|
-
<span class="cstat-no" title="statement not covered" > return config.previewQuery(request, config, datasource, fields)</span>
|
|
1431
|
-
}
|
|
1432
|
-
|
|
1433
|
-
<span class="cstat-no" title="statement not covered" > it("should work with static variables", <span class="fstat-no" title="function not covered" >as</span>ync () => {</span>
|
|
1434
|
-
const datasource = <span class="cstat-no" title="statement not covered" >await config.restDatasource({</span>
|
|
1435
|
-
staticVariables: {
|
|
1436
|
-
variable: "google",
|
|
1437
|
-
variable2: "1",
|
|
1438
|
-
},
|
|
1439
|
-
})
|
|
1440
|
-
const res = <span class="cstat-no" title="statement not covered" >await preview(datasource, {</span>
|
|
1441
|
-
path: "www.{{ variable }}.com",
|
|
1442
|
-
queryString: "test={{ variable2 }}",
|
|
1443
|
-
})
|
|
1444
|
-
// these responses come from the mock
|
|
1445
|
-
<span class="cstat-no" title="statement not covered" > expect(res.body.schemaFields).toEqual({</span>
|
|
1446
|
-
"opts": "json",
|
|
1447
|
-
"url": "string",
|
|
1448
|
-
"value": "string",
|
|
1449
|
-
})
|
|
1450
|
-
<span class="cstat-no" title="statement not covered" > expect(res.body.rows[0].url).toEqual("http://www.google.com?test=1")</span>
|
|
1451
|
-
})
|
|
1452
|
-
|
|
1453
|
-
<span class="cstat-no" title="statement not covered" > it("should work with dynamic variables", <span class="fstat-no" title="function not covered" >as</span>ync () => {</span>
|
|
1454
|
-
const { datasource } = <span class="cstat-no" title="statement not covered" >await config.dynamicVariableDatasource()</span>
|
|
1455
|
-
const res = <span class="cstat-no" title="statement not covered" >await preview(datasource, {</span>
|
|
1456
|
-
path: "www.google.com",
|
|
1457
|
-
queryString: "test={{ variable3 }}",
|
|
1458
|
-
})
|
|
1459
|
-
<span class="cstat-no" title="statement not covered" > expect(res.body.schemaFields).toEqual({</span>
|
|
1460
|
-
"opts": "json",
|
|
1461
|
-
"url": "string",
|
|
1462
|
-
"value": "string"
|
|
1463
|
-
})
|
|
1464
|
-
<span class="cstat-no" title="statement not covered" > expect(res.body.rows[0].url).toContain("doctype%20html")</span>
|
|
1465
|
-
})
|
|
1466
|
-
|
|
1467
|
-
<span class="cstat-no" title="statement not covered" > it("check that it automatically retries on fail with cached dynamics", <span class="fstat-no" title="function not covered" >as</span>ync () => {</span>
|
|
1468
|
-
const { datasource, query: base } =
|
|
1469
|
-
<span class="cstat-no" title="statement not covered" > await config.dynamicVariableDatasource()</span>
|
|
1470
|
-
// preview once to cache
|
|
1471
|
-
<span class="cstat-no" title="statement not covered" > await preview(datasource, {</span>
|
|
1472
|
-
path: "www.google.com",
|
|
1473
|
-
queryString: "test={{ variable3 }}",
|
|
1474
|
-
})
|
|
1475
|
-
// check its in cache
|
|
1476
|
-
const contents = <span class="cstat-no" title="statement not covered" >await checkCacheForDynamicVariable(base._id, "variable3")</span>
|
|
1477
|
-
<span class="cstat-no" title="statement not covered" > expect(contents.rows.length).toEqual(1)</span>
|
|
1478
|
-
const res = <span class="cstat-no" title="statement not covered" >await preview(datasource, {</span>
|
|
1479
|
-
path: "www.failonce.com",
|
|
1480
|
-
queryString: "test={{ variable3 }}",
|
|
1481
|
-
})
|
|
1482
|
-
<span class="cstat-no" title="statement not covered" > expect(res.body.schemaFields).toEqual({</span>
|
|
1483
|
-
"fails": "number",
|
|
1484
|
-
"opts": "json",
|
|
1485
|
-
"url": "string"
|
|
1486
|
-
})
|
|
1487
|
-
<span class="cstat-no" title="statement not covered" > expect(res.body.rows[0].fails).toEqual(1)</span>
|
|
1488
|
-
})
|
|
1489
|
-
|
|
1490
|
-
<span class="cstat-no" title="statement not covered" > it("deletes variables when linked query is deleted", <span class="fstat-no" title="function not covered" >as</span>ync () => {</span>
|
|
1491
|
-
const { datasource, query: base } =
|
|
1492
|
-
<span class="cstat-no" title="statement not covered" > await config.dynamicVariableDatasource()</span>
|
|
1493
|
-
// preview once to cache
|
|
1494
|
-
<span class="cstat-no" title="statement not covered" > await preview(datasource, {</span>
|
|
1495
|
-
path: "www.google.com",
|
|
1496
|
-
queryString: "test={{ variable3 }}",
|
|
1497
|
-
})
|
|
1498
|
-
// check its in cache
|
|
1499
|
-
let contents = <span class="cstat-no" title="statement not covered" >await checkCacheForDynamicVariable(base._id, "variable3")</span>
|
|
1500
|
-
<span class="cstat-no" title="statement not covered" > expect(contents.rows.length).toEqual(1)</span>
|
|
1501
|
-
|
|
1502
|
-
// delete the query
|
|
1503
|
-
<span class="cstat-no" title="statement not covered" > await request</span>
|
|
1504
|
-
.delete(`/api/queries/${base._id}/${base._rev}`)
|
|
1505
|
-
.set(config.defaultHeaders())
|
|
1506
|
-
.expect(200)
|
|
1507
|
-
|
|
1508
|
-
// check variables no longer in cache
|
|
1509
|
-
<span class="cstat-no" title="statement not covered" > contents = await checkCacheForDynamicVariable(base._id, "variable3")</span>
|
|
1510
|
-
<span class="cstat-no" title="statement not covered" > expect(contents).toBe(null)</span>
|
|
1511
|
-
})
|
|
1512
|
-
})
|
|
1513
|
-
|
|
1514
|
-
<span class="cstat-no" title="statement not covered" > describe("Current User Request Mapping", <span class="fstat-no" title="function not covered" >()</span> => {</span>
|
|
1515
|
-
|
|
1516
|
-
async function <span class="fstat-no" title="function not covered" >previewGet(</span>datasource, fields, params) {
|
|
1517
|
-
<span class="cstat-no" title="statement not covered" > return config.previewQuery(request, config, datasource, fields, params)</span>
|
|
1518
|
-
}
|
|
1519
|
-
|
|
1520
|
-
async function <span class="fstat-no" title="function not covered" >previewPost(</span>datasource, fields, params) {
|
|
1521
|
-
<span class="cstat-no" title="statement not covered" > return config.previewQuery(request, config, datasource, fields, params, "create")</span>
|
|
1522
|
-
}
|
|
1523
|
-
|
|
1524
|
-
<span class="cstat-no" title="statement not covered" > it("should parse global and query level header mappings", <span class="fstat-no" title="function not covered" >as</span>ync () => {</span>
|
|
1525
|
-
const userDetails = <span class="cstat-no" title="statement not covered" >config.getUserDetails()</span>
|
|
1526
|
-
|
|
1527
|
-
const datasource = <span class="cstat-no" title="statement not covered" >await config.restDatasource({</span>
|
|
1528
|
-
defaultHeaders: {
|
|
1529
|
-
"test": "headerVal",
|
|
1530
|
-
"emailHdr": "{{[user].[email]}}"
|
|
1531
|
-
}
|
|
1532
|
-
})
|
|
1533
|
-
const res = <span class="cstat-no" title="statement not covered" >await previewGet(datasource, {</span>
|
|
1534
|
-
path: "www.google.com",
|
|
1535
|
-
queryString: "email={{[user].[email]}}",
|
|
1536
|
-
headers: {
|
|
1537
|
-
queryHdr : "{{[user].[firstName]}}",
|
|
1538
|
-
secondHdr : "1234"
|
|
1539
|
-
}
|
|
1540
|
-
})
|
|
1541
|
-
|
|
1542
|
-
const parsedRequest = <span class="cstat-no" title="statement not covered" >JSON.parse(res.body.extra.raw)</span>
|
|
1543
|
-
<span class="cstat-no" title="statement not covered" > expect(parsedRequest.opts.headers).toEqual({</span>
|
|
1544
|
-
"test": "headerVal",
|
|
1545
|
-
"emailHdr": userDetails.email,
|
|
1546
|
-
"queryHdr": userDetails.firstName,
|
|
1547
|
-
"secondHdr" : "1234"
|
|
1548
|
-
})
|
|
1549
|
-
<span class="cstat-no" title="statement not covered" > expect(res.body.rows[0].url).toEqual("http://www.google.com?email=" + userDetails.email.replace("@", "%40"))</span>
|
|
1550
|
-
})
|
|
1551
|
-
|
|
1552
|
-
<span class="cstat-no" title="statement not covered" > it("should bind the current user to query parameters", <span class="fstat-no" title="function not covered" >as</span>ync () => {</span>
|
|
1553
|
-
const userDetails = <span class="cstat-no" title="statement not covered" >config.getUserDetails()</span>
|
|
1554
|
-
|
|
1555
|
-
const datasource = <span class="cstat-no" title="statement not covered" >await config.restDatasource()</span>
|
|
1556
|
-
|
|
1557
|
-
const res = <span class="cstat-no" title="statement not covered" >await previewGet(datasource, {</span>
|
|
1558
|
-
path: "www.google.com",
|
|
1559
|
-
queryString: "test={{myEmail}}&testName={{myName}}&testParam={{testParam}}",
|
|
1560
|
-
}, {
|
|
1561
|
-
"myEmail" : "{{[user].[email]}}",
|
|
1562
|
-
"myName" : "{{[user].[firstName]}}",
|
|
1563
|
-
"testParam" : "1234"
|
|
1564
|
-
})
|
|
1565
|
-
|
|
1566
|
-
<span class="cstat-no" title="statement not covered" > expect(res.body.rows[0].url).toEqual("http://www.google.com?test=" + userDetails.email.replace("@", "%40") +</span>
|
|
1567
|
-
"&testName=" + userDetails.firstName + "&testParam=1234")
|
|
1568
|
-
})
|
|
1569
|
-
|
|
1570
|
-
<span class="cstat-no" title="statement not covered" > it("should bind the current user the request body - plain text", <span class="fstat-no" title="function not covered" >as</span>ync () => {</span>
|
|
1571
|
-
const userDetails = <span class="cstat-no" title="statement not covered" >config.getUserDetails()</span>
|
|
1572
|
-
const datasource = <span class="cstat-no" title="statement not covered" >await config.restDatasource()</span>
|
|
1573
|
-
|
|
1574
|
-
const res = <span class="cstat-no" title="statement not covered" >await previewPost(datasource, {</span>
|
|
1575
|
-
path: "www.google.com",
|
|
1576
|
-
queryString: "testParam={{testParam}}",
|
|
1577
|
-
requestBody: "This is plain text and this is my email: {{[user].[email]}}. This is a test param: {{testParam}}",
|
|
1578
|
-
bodyType: "text"
|
|
1579
|
-
}, {
|
|
1580
|
-
"testParam" : "1234"
|
|
1581
|
-
})
|
|
1582
|
-
|
|
1583
|
-
const parsedRequest = <span class="cstat-no" title="statement not covered" >JSON.parse(res.body.extra.raw)</span>
|
|
1584
|
-
<span class="cstat-no" title="statement not covered" > expect(parsedRequest.opts.body).toEqual(`This is plain text and this is my email: ${userDetails.email}. This is a test param: 1234`)</span>
|
|
1585
|
-
<span class="cstat-no" title="statement not covered" > expect(res.body.rows[0].url).toEqual("http://www.google.com?testParam=1234")</span>
|
|
1586
|
-
})
|
|
1587
|
-
|
|
1588
|
-
<span class="cstat-no" title="statement not covered" > it("should bind the current user the request body - json", <span class="fstat-no" title="function not covered" >as</span>ync () => {</span>
|
|
1589
|
-
const userDetails = <span class="cstat-no" title="statement not covered" >config.getUserDetails()</span>
|
|
1590
|
-
const datasource = <span class="cstat-no" title="statement not covered" >await config.restDatasource()</span>
|
|
1591
|
-
|
|
1592
|
-
const res = <span class="cstat-no" title="statement not covered" >await previewPost(datasource, {</span>
|
|
1593
|
-
path: "www.google.com",
|
|
1594
|
-
queryString: "testParam={{testParam}}",
|
|
1595
|
-
requestBody: "{\"email\":\"{{[user].[email]}}\",\"queryCode\":{{testParam}},\"userRef\":\"{{userRef}}\"}",
|
|
1596
|
-
bodyType: "json"
|
|
1597
|
-
}, {
|
|
1598
|
-
"testParam" : "1234",
|
|
1599
|
-
"userRef" : "{{[user].[firstName]}}"
|
|
1600
|
-
})
|
|
1601
|
-
|
|
1602
|
-
const parsedRequest = <span class="cstat-no" title="statement not covered" >JSON.parse(res.body.extra.raw)</span>
|
|
1603
|
-
const test = <span class="cstat-no" title="statement not covered" >`{"email":"${userDetails.email}","queryCode":1234,"userRef":"${userDetails.firstName}"}`</span>
|
|
1604
|
-
<span class="cstat-no" title="statement not covered" > expect(parsedRequest.opts.body).toEqual(test)</span>
|
|
1605
|
-
<span class="cstat-no" title="statement not covered" > expect(res.body.rows[0].url).toEqual("http://www.google.com?testParam=1234")</span>
|
|
1606
|
-
})
|
|
1607
|
-
|
|
1608
|
-
<span class="cstat-no" title="statement not covered" > it("should bind the current user the request body - xml", <span class="fstat-no" title="function not covered" >as</span>ync () => {</span>
|
|
1609
|
-
const userDetails = <span class="cstat-no" title="statement not covered" >config.getUserDetails()</span>
|
|
1610
|
-
const datasource = <span class="cstat-no" title="statement not covered" >await config.restDatasource()</span>
|
|
1611
|
-
|
|
1612
|
-
const res = <span class="cstat-no" title="statement not covered" >await previewPost(datasource, {</span>
|
|
1613
|
-
path: "www.google.com",
|
|
1614
|
-
queryString: "testParam={{testParam}}",
|
|
1615
|
-
requestBody: "<note> <email>{{[user].[email]}}</email> <code>{{testParam}}</code> " +
|
|
1616
|
-
"<ref>{{userId}}</ref> <somestring>testing</somestring> </note>",
|
|
1617
|
-
bodyType: "xml"
|
|
1618
|
-
}, {
|
|
1619
|
-
"testParam" : "1234",
|
|
1620
|
-
"userId" : "{{[user].[firstName]}}"
|
|
1621
|
-
})
|
|
1622
|
-
|
|
1623
|
-
const parsedRequest = <span class="cstat-no" title="statement not covered" >JSON.parse(res.body.extra.raw)</span>
|
|
1624
|
-
const test = <span class="cstat-no" title="statement not covered" >`<note> <email>${userDetails.email}</email> <code>1234</code> <ref>${userDetails.firstName}</ref> <somestring>testing</somestring> </note>`</span>
|
|
1625
|
-
|
|
1626
|
-
<span class="cstat-no" title="statement not covered" > expect(parsedRequest.opts.body).toEqual(test)</span>
|
|
1627
|
-
<span class="cstat-no" title="statement not covered" > expect(res.body.rows[0].url).toEqual("http://www.google.com?testParam=1234")</span>
|
|
1628
|
-
})
|
|
1629
|
-
|
|
1630
|
-
<span class="cstat-no" title="statement not covered" > it("should bind the current user the request body - form-data", <span class="fstat-no" title="function not covered" >as</span>ync () => {</span>
|
|
1631
|
-
const userDetails = <span class="cstat-no" title="statement not covered" >config.getUserDetails()</span>
|
|
1632
|
-
const datasource = <span class="cstat-no" title="statement not covered" >await config.restDatasource()</span>
|
|
1633
|
-
|
|
1634
|
-
const res = <span class="cstat-no" title="statement not covered" >await previewPost(datasource, {</span>
|
|
1635
|
-
path: "www.google.com",
|
|
1636
|
-
queryString: "testParam={{testParam}}",
|
|
1637
|
-
requestBody: "{\"email\":\"{{[user].[email]}}\",\"queryCode\":{{testParam}},\"userRef\":\"{{userRef}}\"}",
|
|
1638
|
-
bodyType: "form"
|
|
1639
|
-
}, {
|
|
1640
|
-
"testParam" : "1234",
|
|
1641
|
-
"userRef" : "{{[user].[firstName]}}"
|
|
1642
|
-
})
|
|
1643
|
-
|
|
1644
|
-
const parsedRequest = <span class="cstat-no" title="statement not covered" >JSON.parse(res.body.extra.raw)</span>
|
|
1645
|
-
|
|
1646
|
-
const emailData = <span class="cstat-no" title="statement not covered" >parsedRequest.opts.body._streams[1]</span>
|
|
1647
|
-
<span class="cstat-no" title="statement not covered" > expect(emailData).toEqual(userDetails.email)</span>
|
|
1648
|
-
|
|
1649
|
-
const queryCodeData = <span class="cstat-no" title="statement not covered" >parsedRequest.opts.body._streams[4]</span>
|
|
1650
|
-
<span class="cstat-no" title="statement not covered" > expect(queryCodeData).toEqual("1234")</span>
|
|
1651
|
-
|
|
1652
|
-
const userRef = <span class="cstat-no" title="statement not covered" >parsedRequest.opts.body._streams[7]</span>
|
|
1653
|
-
<span class="cstat-no" title="statement not covered" > expect(userRef).toEqual(userDetails.firstName)</span>
|
|
1654
|
-
|
|
1655
|
-
<span class="cstat-no" title="statement not covered" > expect(res.body.rows[0].url).toEqual("http://www.google.com?testParam=1234")</span>
|
|
1656
|
-
})
|
|
1657
|
-
|
|
1658
|
-
<span class="cstat-no" title="statement not covered" > it("should bind the current user the request body - encoded", <span class="fstat-no" title="function not covered" >as</span>ync () => {</span>
|
|
1659
|
-
const userDetails = <span class="cstat-no" title="statement not covered" >config.getUserDetails()</span>
|
|
1660
|
-
const datasource = <span class="cstat-no" title="statement not covered" >await config.restDatasource()</span>
|
|
1661
|
-
|
|
1662
|
-
const res = <span class="cstat-no" title="statement not covered" >await previewPost(datasource, {</span>
|
|
1663
|
-
path: "www.google.com",
|
|
1664
|
-
queryString: "testParam={{testParam}}",
|
|
1665
|
-
requestBody: "{\"email\":\"{{[user].[email]}}\",\"queryCode\":{{testParam}},\"userRef\":\"{{userRef}}\"}",
|
|
1666
|
-
bodyType: "encoded"
|
|
1667
|
-
}, {
|
|
1668
|
-
"testParam" : "1234",
|
|
1669
|
-
"userRef" : "{{[user].[firstName]}}"
|
|
1670
|
-
})
|
|
1671
|
-
const parsedRequest = <span class="cstat-no" title="statement not covered" >JSON.parse(res.body.extra.raw)</span>
|
|
1672
|
-
|
|
1673
|
-
<span class="cstat-no" title="statement not covered" > expect(parsedRequest.opts.body.email).toEqual(userDetails.email)</span>
|
|
1674
|
-
<span class="cstat-no" title="statement not covered" > expect(parsedRequest.opts.body.queryCode).toEqual("1234")</span>
|
|
1675
|
-
<span class="cstat-no" title="statement not covered" > expect(parsedRequest.opts.body.userRef).toEqual(userDetails.firstName)</span>
|
|
1676
|
-
})
|
|
1677
|
-
|
|
1678
|
-
});
|
|
1679
|
-
})
|
|
1680
|
-
</pre></td></tr></table></pre>
|
|
1681
|
-
|
|
1682
|
-
<div class='push'></div><!-- for sticky footer -->
|
|
1683
|
-
</div><!-- /wrapper -->
|
|
1684
|
-
<div class='footer quiet pad2 space-top1 center small'>
|
|
1685
|
-
Code coverage generated by
|
|
1686
|
-
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
1687
|
-
at Tue Feb 14 2023 18:11:53 GMT+0000 (Coordinated Universal Time)
|
|
1688
|
-
</div>
|
|
1689
|
-
<script src="../../../../prettify.js"></script>
|
|
1690
|
-
<script>
|
|
1691
|
-
window.onload = function () {
|
|
1692
|
-
prettyPrint();
|
|
1693
|
-
};
|
|
1694
|
-
</script>
|
|
1695
|
-
<script src="../../../../sorter.js"></script>
|
|
1696
|
-
<script src="../../../../block-navigation.js"></script>
|
|
1697
|
-
</body>
|
|
1698
|
-
</html>
|
|
1699
|
-
|