@mastra/core 1.0.0-beta.13 → 1.0.0-beta.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/CHANGELOG.md +477 -0
- package/dist/agent/agent-legacy.d.ts.map +1 -1
- package/dist/agent/agent.d.ts +2 -2
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.types.d.ts +6 -7
- package/dist/agent/agent.types.d.ts.map +1 -1
- package/dist/agent/index.cjs +17 -9
- package/dist/agent/index.d.ts +1 -1
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +2 -2
- package/dist/agent/message-list/index.cjs +3 -3
- package/dist/agent/message-list/index.d.ts +1 -1
- package/dist/agent/message-list/index.d.ts.map +1 -1
- package/dist/agent/message-list/index.js +1 -1
- package/dist/agent/message-list/prompt/attachments-to-parts.d.ts.map +1 -1
- package/dist/agent/trip-wire.d.ts +2 -2
- package/dist/agent/trip-wire.d.ts.map +1 -1
- package/dist/agent/utils.d.ts +4 -1
- package/dist/agent/utils.d.ts.map +1 -1
- package/dist/agent/workflows/prepare-stream/index.d.ts +3 -3
- package/dist/agent/workflows/prepare-stream/index.d.ts.map +1 -1
- package/dist/agent/workflows/prepare-stream/map-results-step.d.ts +3 -3
- package/dist/agent/workflows/prepare-stream/map-results-step.d.ts.map +1 -1
- package/dist/agent/workflows/prepare-stream/prepare-memory-step.d.ts +3 -3
- package/dist/agent/workflows/prepare-stream/prepare-memory-step.d.ts.map +1 -1
- package/dist/agent/workflows/prepare-stream/prepare-tools-step.d.ts +3 -3
- package/dist/agent/workflows/prepare-stream/prepare-tools-step.d.ts.map +1 -1
- package/dist/bundler/types.d.ts +1 -0
- package/dist/bundler/types.d.ts.map +1 -1
- package/dist/chunk-2AU5ZHBL.js +79 -0
- package/dist/chunk-2AU5ZHBL.js.map +1 -0
- package/dist/{chunk-7HEAVZRS.cjs → chunk-2OOMJRXZ.cjs} +15 -15
- package/dist/{chunk-7HEAVZRS.cjs.map → chunk-2OOMJRXZ.cjs.map} +1 -1
- package/dist/chunk-37YWZMBX.js +27 -0
- package/dist/chunk-37YWZMBX.js.map +1 -0
- package/dist/{chunk-VETAQUW3.js → chunk-3HDRO3GG.js} +790 -1206
- package/dist/chunk-3HDRO3GG.js.map +1 -0
- package/dist/{chunk-MRRFTNF4.js → chunk-4DFWV4IR.js} +3 -4
- package/dist/chunk-4DFWV4IR.js.map +1 -0
- package/dist/{chunk-373OC54J.js → chunk-4HP7CS6L.js} +7 -6
- package/dist/chunk-4HP7CS6L.js.map +1 -0
- package/dist/{chunk-62Q7K656.js → chunk-4J4M2Q5R.js} +125 -121
- package/dist/chunk-4J4M2Q5R.js.map +1 -0
- package/dist/{chunk-HWMMIRIF.cjs → chunk-4U7ZLI36.cjs} +3 -2
- package/dist/chunk-4U7ZLI36.cjs.map +1 -0
- package/dist/{chunk-Z55SJVEC.cjs → chunk-6HJFCSJ4.cjs} +7 -6
- package/dist/chunk-6HJFCSJ4.cjs.map +1 -0
- package/dist/{chunk-Y7MZ5LJT.cjs → chunk-AAX7ZOM7.cjs} +101 -102
- package/dist/chunk-AAX7ZOM7.cjs.map +1 -0
- package/dist/{chunk-WPTTKULS.js → chunk-AR5CF3IN.js} +4 -4
- package/dist/{chunk-WPTTKULS.js.map → chunk-AR5CF3IN.js.map} +1 -1
- package/dist/{chunk-5VZGJTPR.js → chunk-BAZHNX5P.js} +57 -11
- package/dist/chunk-BAZHNX5P.js.map +1 -0
- package/dist/{chunk-MLKE7HRS.cjs → chunk-BC2VKOH4.cjs} +43 -21
- package/dist/chunk-BC2VKOH4.cjs.map +1 -0
- package/dist/{chunk-2IU4RGU5.js → chunk-BCUKD2XG.js} +59 -19
- package/dist/chunk-BCUKD2XG.js.map +1 -0
- package/dist/{chunk-WYGUWVTF.js → chunk-CBQ6WDUJ.js} +9 -9
- package/dist/chunk-CBQ6WDUJ.js.map +1 -0
- package/dist/chunk-CBVHOGXX.cjs +674 -0
- package/dist/chunk-CBVHOGXX.cjs.map +1 -0
- package/dist/{chunk-PJAK4U6R.cjs → chunk-CBY37FTP.cjs} +28 -28
- package/dist/chunk-CBY37FTP.cjs.map +1 -0
- package/dist/{chunk-BQDZIQ3G.js → chunk-D2IFWD7A.js} +365 -137
- package/dist/chunk-D2IFWD7A.js.map +1 -0
- package/dist/{chunk-R5AJGM55.cjs → chunk-DDK3URK2.cjs} +987 -519
- package/dist/chunk-DDK3URK2.cjs.map +1 -0
- package/dist/chunk-DRJTNGI4.cjs +263 -0
- package/dist/chunk-DRJTNGI4.cjs.map +1 -0
- package/dist/{chunk-X6IBA7FP.cjs → chunk-EMLEZXTQ.cjs} +22 -120
- package/dist/chunk-EMLEZXTQ.cjs.map +1 -0
- package/dist/{chunk-OWIEOL55.cjs → chunk-F75EQ574.cjs} +695 -254
- package/dist/chunk-F75EQ574.cjs.map +1 -0
- package/dist/{chunk-YPLZDWG7.js → chunk-FJEVLHJT.js} +3 -2
- package/dist/chunk-FJEVLHJT.js.map +1 -0
- package/dist/chunk-GVAPYQRO.cjs +252 -0
- package/dist/chunk-GVAPYQRO.cjs.map +1 -0
- package/dist/{chunk-MXBVP7HX.cjs → chunk-GXMJ5URG.cjs} +227 -181
- package/dist/chunk-GXMJ5URG.cjs.map +1 -0
- package/dist/chunk-H2NHG7QL.cjs +32 -0
- package/dist/chunk-H2NHG7QL.cjs.map +1 -0
- package/dist/chunk-HAYBGFPA.js +259 -0
- package/dist/chunk-HAYBGFPA.js.map +1 -0
- package/dist/{chunk-GIWC35YQ.js → chunk-IHISDRFV.js} +299 -49
- package/dist/chunk-IHISDRFV.js.map +1 -0
- package/dist/{chunk-VEPP75C4.cjs → chunk-IRTICXRZ.cjs} +101 -61
- package/dist/chunk-IRTICXRZ.cjs.map +1 -0
- package/dist/{chunk-ARAQIW6E.js → chunk-K66U47VL.js} +617 -188
- package/dist/chunk-K66U47VL.js.map +1 -0
- package/dist/{chunk-LGB4VNZI.cjs → chunk-LOV5NNGK.cjs} +811 -1235
- package/dist/chunk-LOV5NNGK.cjs.map +1 -0
- package/dist/{chunk-E5BQRAJK.js → chunk-NGWTSHNA.js} +823 -362
- package/dist/chunk-NGWTSHNA.js.map +1 -0
- package/dist/{chunk-72YCRTEX.cjs → chunk-O2CAMK4A.cjs} +13 -2
- package/dist/chunk-O2CAMK4A.cjs.map +1 -0
- package/dist/{chunk-4BC5FUAO.js → chunk-O7M7DR4E.js} +6 -5
- package/dist/chunk-O7M7DR4E.js.map +1 -0
- package/dist/chunk-OTIGV7CL.js +10215 -0
- package/dist/chunk-OTIGV7CL.js.map +1 -0
- package/dist/{chunk-WYWRMIQC.js → chunk-QXL3F3T2.js} +9 -105
- package/dist/chunk-QXL3F3T2.js.map +1 -0
- package/dist/{chunk-U4CSOY6T.cjs → chunk-RA2CHJCY.cjs} +399 -171
- package/dist/chunk-RA2CHJCY.cjs.map +1 -0
- package/dist/chunk-RMV5HJM7.cjs +10237 -0
- package/dist/chunk-RMV5HJM7.cjs.map +1 -0
- package/dist/{chunk-AGHLXC4I.cjs → chunk-S23TNDXG.cjs} +300 -50
- package/dist/chunk-S23TNDXG.cjs.map +1 -0
- package/dist/{chunk-H4VUIOWU.cjs → chunk-SSB4AVHU.cjs} +20 -19
- package/dist/chunk-SSB4AVHU.cjs.map +1 -0
- package/dist/chunk-ST7NBF4H.cjs +84 -0
- package/dist/chunk-ST7NBF4H.cjs.map +1 -0
- package/dist/{chunk-SZYSDJTN.cjs → chunk-T2LVULCK.cjs} +142 -137
- package/dist/chunk-T2LVULCK.cjs.map +1 -0
- package/dist/chunk-VE6HQ7H6.js +250 -0
- package/dist/chunk-VE6HQ7H6.js.map +1 -0
- package/dist/{chunk-RCJLMMTO.js → chunk-XJB7J4UT.js} +30 -8
- package/dist/chunk-XJB7J4UT.js.map +1 -0
- package/dist/chunk-YV43YEZ6.js +598 -0
- package/dist/chunk-YV43YEZ6.js.map +1 -0
- package/dist/{chunk-Y36Y5MTD.js → chunk-ZGIVAQRI.js} +13 -3
- package/dist/chunk-ZGIVAQRI.js.map +1 -0
- package/dist/error/index.cjs +6 -6
- package/dist/error/index.d.ts +1 -0
- package/dist/error/index.d.ts.map +1 -1
- package/dist/error/index.js +1 -1
- package/dist/evals/index.cjs +49 -9
- package/dist/evals/index.js +2 -2
- package/dist/evals/run/index.d.ts.map +1 -1
- package/dist/evals/scoreTraces/index.cjs +70 -22
- package/dist/evals/scoreTraces/index.cjs.map +1 -1
- package/dist/evals/scoreTraces/index.js +63 -15
- package/dist/evals/scoreTraces/index.js.map +1 -1
- package/dist/evals/scoreTraces/scoreTracesWorkflow.d.ts.map +1 -1
- package/dist/evals/scoreTraces/utils.d.ts.map +1 -1
- package/dist/evals/types.d.ts +568 -116
- package/dist/evals/types.d.ts.map +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.js +1 -1
- package/dist/integration/index.cjs +2 -2
- package/dist/integration/index.js +1 -1
- package/dist/llm/index.cjs +21 -21
- package/dist/llm/index.js +5 -5
- package/dist/llm/model/aisdk/generate-to-stream.d.ts +20 -0
- package/dist/llm/model/aisdk/generate-to-stream.d.ts.map +1 -0
- package/dist/llm/model/aisdk/v5/model.d.ts +4 -0
- package/dist/llm/model/aisdk/v5/model.d.ts.map +1 -1
- package/dist/llm/model/aisdk/v6/model.d.ts +43 -0
- package/dist/llm/model/aisdk/v6/model.d.ts.map +1 -0
- package/dist/llm/model/embedding-router.d.ts +1 -1
- package/dist/llm/model/model.d.ts.map +1 -1
- package/dist/llm/model/model.loop.d.ts +1 -1
- package/dist/llm/model/model.loop.d.ts.map +1 -1
- package/dist/llm/model/provider-options.d.ts +2 -1
- package/dist/llm/model/provider-options.d.ts.map +1 -1
- package/dist/llm/model/provider-types.generated.d.ts +126 -17
- package/dist/llm/model/resolve-model.d.ts +2 -2
- package/dist/llm/model/resolve-model.d.ts.map +1 -1
- package/dist/llm/model/shared.types.d.ts +18 -7
- package/dist/llm/model/shared.types.d.ts.map +1 -1
- package/dist/loop/index.cjs +2 -2
- package/dist/loop/index.js +1 -1
- package/dist/loop/network/index.d.ts +8 -8
- package/dist/loop/network/index.d.ts.map +1 -1
- package/dist/loop/test-utils/MastraLanguageModelV2Mock.d.ts +1 -1
- package/dist/loop/test-utils/MastraLanguageModelV2Mock.d.ts.map +1 -1
- package/dist/loop/test-utils/MastraLanguageModelV3Mock.d.ts +29 -0
- package/dist/loop/test-utils/MastraLanguageModelV3Mock.d.ts.map +1 -0
- package/dist/loop/test-utils/fullStream.d.ts +2 -1
- package/dist/loop/test-utils/fullStream.d.ts.map +1 -1
- package/dist/loop/test-utils/resultObject.d.ts +2 -1
- package/dist/loop/test-utils/resultObject.d.ts.map +1 -1
- package/dist/loop/test-utils/streamObject.d.ts.map +1 -1
- package/dist/loop/test-utils/utils-v3.d.ts +55 -0
- package/dist/loop/test-utils/utils-v3.d.ts.map +1 -0
- package/dist/loop/types.d.ts +10 -8
- package/dist/loop/types.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-execution/index.d.ts +36 -36
- package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts +25 -25
- package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-execution/llm-mapping-step.d.ts +12 -12
- package/dist/loop/workflows/agentic-execution/tool-call-step.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-loop/index.d.ts +36 -36
- package/dist/loop/workflows/agentic-loop/index.d.ts.map +1 -1
- package/dist/loop/workflows/run-state.d.ts +2 -2
- package/dist/loop/workflows/run-state.d.ts.map +1 -1
- package/dist/loop/workflows/schema.d.ts +12 -12
- package/dist/mastra/hooks.d.ts.map +1 -1
- package/dist/mastra/index.cjs +2 -2
- package/dist/mastra/index.d.ts +7 -2
- package/dist/mastra/index.d.ts.map +1 -1
- package/dist/mastra/index.js +1 -1
- package/dist/mcp/index.cjs +4 -4
- package/dist/mcp/index.js +1 -1
- package/dist/memory/index.cjs +26 -6
- package/dist/memory/index.d.ts +1 -0
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +1 -1
- package/dist/memory/memory.d.ts +9 -8
- package/dist/memory/memory.d.ts.map +1 -1
- package/dist/memory/mock.d.ts +2 -1
- package/dist/memory/mock.d.ts.map +1 -1
- package/dist/memory/types.d.ts +3 -4
- package/dist/memory/types.d.ts.map +1 -1
- package/dist/memory/working-memory-utils.d.ts +20 -0
- package/dist/memory/working-memory-utils.d.ts.map +1 -0
- package/dist/models-dev-26XLUKVK.cjs +12 -0
- package/dist/{models-dev-D3EKFGAO.cjs.map → models-dev-26XLUKVK.cjs.map} +1 -1
- package/dist/models-dev-HUFLQFPB.js +3 -0
- package/dist/{models-dev-EO22XOXQ.js.map → models-dev-HUFLQFPB.js.map} +1 -1
- package/dist/netlify-CUYK2MZ2.cjs +12 -0
- package/dist/{netlify-WE42TZIT.cjs.map → netlify-CUYK2MZ2.cjs.map} +1 -1
- package/dist/netlify-J4QPOROO.js +3 -0
- package/dist/{netlify-AE4LNCAI.js.map → netlify-J4QPOROO.js.map} +1 -1
- package/dist/observability/index.cjs +14 -10
- package/dist/observability/index.js +1 -1
- package/dist/observability/types/tracing.d.ts +32 -19
- package/dist/observability/types/tracing.d.ts.map +1 -1
- package/dist/processors/index.cjs +37 -37
- package/dist/processors/index.d.ts +9 -7
- package/dist/processors/index.d.ts.map +1 -1
- package/dist/processors/index.js +1 -1
- package/dist/processors/memory/message-history.d.ts +7 -1
- package/dist/processors/memory/message-history.d.ts.map +1 -1
- package/dist/processors/processors/language-detector.d.ts.map +1 -1
- package/dist/processors/processors/moderation.d.ts.map +1 -1
- package/dist/processors/processors/pii-detector.d.ts.map +1 -1
- package/dist/processors/processors/prompt-injection-detector.d.ts.map +1 -1
- package/dist/processors/processors/token-limiter.d.ts +5 -2
- package/dist/processors/processors/token-limiter.d.ts.map +1 -1
- package/dist/processors/runner.d.ts +2 -0
- package/dist/processors/runner.d.ts.map +1 -1
- package/dist/processors/step-schema.d.ts +26 -26
- package/dist/processors/step-schema.d.ts.map +1 -1
- package/dist/provider-registry-6CIGRQVZ.js +3 -0
- package/dist/{provider-registry-6LF3NGC5.js.map → provider-registry-6CIGRQVZ.js.map} +1 -1
- package/dist/provider-registry-7O7FJ4BS.cjs +40 -0
- package/dist/{provider-registry-73FKMXJV.cjs.map → provider-registry-7O7FJ4BS.cjs.map} +1 -1
- package/dist/provider-registry.json +295 -45
- package/dist/relevance/index.cjs +3 -3
- package/dist/relevance/index.cjs.map +1 -1
- package/dist/relevance/index.js +2 -2
- package/dist/relevance/index.js.map +1 -1
- package/dist/server/index.cjs +5 -5
- package/dist/server/index.js +1 -1
- package/dist/storage/base.d.ts +40 -292
- package/dist/storage/base.d.ts.map +1 -1
- package/dist/storage/constants.cjs +60 -0
- package/dist/storage/constants.cjs.map +1 -0
- package/dist/storage/constants.d.ts +6 -1
- package/dist/storage/constants.d.ts.map +1 -1
- package/dist/storage/constants.js +3 -0
- package/dist/storage/constants.js.map +1 -0
- package/dist/storage/domains/agents/base.d.ts +2 -2
- package/dist/storage/domains/agents/base.d.ts.map +1 -1
- package/dist/storage/domains/agents/inmemory.d.ts +5 -4
- package/dist/storage/domains/agents/inmemory.d.ts.map +1 -1
- package/dist/storage/domains/base.d.ts +20 -0
- package/dist/storage/domains/base.d.ts.map +1 -0
- package/dist/storage/domains/index.d.ts +3 -0
- package/dist/storage/domains/index.d.ts.map +1 -1
- package/dist/storage/domains/inmemory-db.d.ts +57 -0
- package/dist/storage/domains/inmemory-db.d.ts.map +1 -0
- package/dist/storage/domains/memory/base.d.ts +2 -2
- package/dist/storage/domains/memory/base.d.ts.map +1 -1
- package/dist/storage/domains/memory/inmemory.d.ts +5 -13
- package/dist/storage/domains/memory/inmemory.d.ts.map +1 -1
- package/dist/storage/domains/observability/base.d.ts +24 -29
- package/dist/storage/domains/observability/base.d.ts.map +1 -1
- package/dist/storage/domains/observability/index.d.ts +1 -0
- package/dist/storage/domains/observability/index.d.ts.map +1 -1
- package/dist/storage/domains/observability/inmemory.d.ts +46 -35
- package/dist/storage/domains/observability/inmemory.d.ts.map +1 -1
- package/dist/storage/domains/observability/types.d.ts +2365 -0
- package/dist/storage/domains/observability/types.d.ts.map +1 -0
- package/dist/storage/domains/scores/base.d.ts +9 -20
- package/dist/storage/domains/scores/base.d.ts.map +1 -1
- package/dist/storage/domains/scores/inmemory.d.ts +11 -22
- package/dist/storage/domains/scores/inmemory.d.ts.map +1 -1
- package/dist/storage/domains/shared.d.ts +76 -0
- package/dist/storage/domains/shared.d.ts.map +1 -0
- package/dist/storage/domains/workflows/base.d.ts +4 -2
- package/dist/storage/domains/workflows/base.d.ts.map +1 -1
- package/dist/storage/domains/workflows/inmemory.d.ts +10 -9
- package/dist/storage/domains/workflows/inmemory.d.ts.map +1 -1
- package/dist/storage/index.cjs +272 -59
- package/dist/storage/index.js +2 -1
- package/dist/storage/mock.d.ts +28 -174
- package/dist/storage/mock.d.ts.map +1 -1
- package/dist/storage/types.d.ts +39 -44
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/storage/utils.d.ts +5 -0
- package/dist/storage/utils.d.ts.map +1 -1
- package/dist/stream/MastraAgentNetworkStream.d.ts +1 -1
- package/dist/stream/MastraAgentNetworkStream.d.ts.map +1 -1
- package/dist/stream/MastraWorkflowStream.d.ts +1 -1
- package/dist/stream/MastraWorkflowStream.d.ts.map +1 -1
- package/dist/stream/RunOutput.d.ts.map +1 -1
- package/dist/stream/aisdk/v5/execute.d.ts +4 -4
- package/dist/stream/aisdk/v5/execute.d.ts.map +1 -1
- package/dist/stream/aisdk/v5/output.d.ts +2 -2
- package/dist/stream/aisdk/v5/output.d.ts.map +1 -1
- package/dist/stream/aisdk/v5/transform.d.ts.map +1 -1
- package/dist/stream/base/output.d.ts +7 -5
- package/dist/stream/base/output.d.ts.map +1 -1
- package/dist/stream/index.cjs +12 -12
- package/dist/stream/index.js +2 -2
- package/dist/stream/types.d.ts +32 -21
- package/dist/stream/types.d.ts.map +1 -1
- package/dist/test-utils/llm-mock.cjs +4 -4
- package/dist/test-utils/llm-mock.cjs.map +1 -1
- package/dist/test-utils/llm-mock.js +1 -1
- package/dist/test-utils/llm-mock.js.map +1 -1
- package/dist/token-6GSAFR2W-LTZ7QQUP.js +61 -0
- package/dist/token-6GSAFR2W-LTZ7QQUP.js.map +1 -0
- package/dist/token-6GSAFR2W-UEEINYAN.cjs +63 -0
- package/dist/token-6GSAFR2W-UEEINYAN.cjs.map +1 -0
- package/dist/token-util-NEHG7TUY-QTFZ26EN.js +8 -0
- package/dist/token-util-NEHG7TUY-QTFZ26EN.js.map +1 -0
- package/dist/token-util-NEHG7TUY-WZL2DNCG.cjs +10 -0
- package/dist/token-util-NEHG7TUY-WZL2DNCG.cjs.map +1 -0
- package/dist/tool-loop-agent/index.cjs +20 -0
- package/dist/tool-loop-agent/index.cjs.map +1 -0
- package/dist/tool-loop-agent/index.d.ts +36 -0
- package/dist/tool-loop-agent/index.d.ts.map +1 -0
- package/dist/tool-loop-agent/index.js +3 -0
- package/dist/tool-loop-agent/index.js.map +1 -0
- package/dist/tool-loop-agent/tool-loop-processor.d.ts +30 -0
- package/dist/tool-loop-agent/tool-loop-processor.d.ts.map +1 -0
- package/dist/tool-loop-agent/utils.d.ts +17 -0
- package/dist/tool-loop-agent/utils.d.ts.map +1 -0
- package/dist/tools/index.cjs +4 -4
- package/dist/tools/index.js +1 -1
- package/dist/tools/is-vercel-tool.cjs +2 -2
- package/dist/tools/is-vercel-tool.js +1 -1
- package/dist/tools/tool-builder/builder.d.ts.map +1 -1
- package/dist/tools/toolchecks.d.ts +1 -1
- package/dist/tools/toolchecks.d.ts.map +1 -1
- package/dist/tools/validation.d.ts +1 -1
- package/dist/tools/validation.d.ts.map +1 -1
- package/dist/utils/zod-utils.d.ts +34 -0
- package/dist/utils/zod-utils.d.ts.map +1 -0
- package/dist/utils.cjs +39 -22
- package/dist/utils.d.ts +3 -3
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +2 -1
- package/dist/vector/embed.d.ts +1 -0
- package/dist/vector/embed.d.ts.map +1 -1
- package/dist/vector/index.cjs +18 -5
- package/dist/vector/index.cjs.map +1 -1
- package/dist/vector/index.js +9 -2
- package/dist/vector/index.js.map +1 -1
- package/dist/vector/vector.d.ts +26 -3
- package/dist/vector/vector.d.ts.map +1 -1
- package/dist/voice/composite-voice.d.ts.map +1 -1
- package/dist/voice/index.cjs +6 -6
- package/dist/voice/index.js +1 -1
- package/dist/workflows/default.d.ts +2 -0
- package/dist/workflows/default.d.ts.map +1 -1
- package/dist/workflows/evented/execution-engine.d.ts +1 -0
- package/dist/workflows/evented/execution-engine.d.ts.map +1 -1
- package/dist/workflows/evented/index.cjs +10 -10
- package/dist/workflows/evented/index.js +1 -1
- package/dist/workflows/evented/step-executor.d.ts +5 -0
- package/dist/workflows/evented/step-executor.d.ts.map +1 -1
- package/dist/workflows/evented/workflow-event-processor/index.d.ts +20 -4
- package/dist/workflows/evented/workflow-event-processor/index.d.ts.map +1 -1
- package/dist/workflows/evented/workflow-event-processor/loop.d.ts +2 -2
- package/dist/workflows/evented/workflow-event-processor/loop.d.ts.map +1 -1
- package/dist/workflows/evented/workflow-event-processor/parallel.d.ts +2 -2
- package/dist/workflows/evented/workflow-event-processor/parallel.d.ts.map +1 -1
- package/dist/workflows/evented/workflow-event-processor/sleep.d.ts +2 -2
- package/dist/workflows/evented/workflow-event-processor/sleep.d.ts.map +1 -1
- package/dist/workflows/evented/workflow.d.ts +10 -2
- package/dist/workflows/evented/workflow.d.ts.map +1 -1
- package/dist/workflows/execution-engine.d.ts +1 -0
- package/dist/workflows/execution-engine.d.ts.map +1 -1
- package/dist/workflows/handlers/control-flow.d.ts +4 -0
- package/dist/workflows/handlers/control-flow.d.ts.map +1 -1
- package/dist/workflows/handlers/entry.d.ts +3 -2
- package/dist/workflows/handlers/entry.d.ts.map +1 -1
- package/dist/workflows/handlers/step.d.ts +1 -0
- package/dist/workflows/handlers/step.d.ts.map +1 -1
- package/dist/workflows/index.cjs +23 -23
- package/dist/workflows/index.js +1 -1
- package/dist/workflows/types.d.ts +23 -3
- package/dist/workflows/types.d.ts.map +1 -1
- package/dist/workflows/utils.d.ts +1 -0
- package/dist/workflows/utils.d.ts.map +1 -1
- package/dist/workflows/workflow.d.ts +26 -9
- package/dist/workflows/workflow.d.ts.map +1 -1
- package/package.json +20 -12
- package/src/llm/model/provider-types.generated.d.ts +126 -17
- package/storage/constants.d.ts +1 -0
- package/tool-loop-agent.d.ts +1 -0
- package/dist/chunk-2IU4RGU5.js.map +0 -1
- package/dist/chunk-373OC54J.js.map +0 -1
- package/dist/chunk-4BC5FUAO.js.map +0 -1
- package/dist/chunk-5VZGJTPR.js.map +0 -1
- package/dist/chunk-62Q7K656.js.map +0 -1
- package/dist/chunk-72YCRTEX.cjs.map +0 -1
- package/dist/chunk-ADADLFDR.js +0 -42
- package/dist/chunk-ADADLFDR.js.map +0 -1
- package/dist/chunk-AGHLXC4I.cjs.map +0 -1
- package/dist/chunk-ARAQIW6E.js.map +0 -1
- package/dist/chunk-BQDZIQ3G.js.map +0 -1
- package/dist/chunk-E5BQRAJK.js.map +0 -1
- package/dist/chunk-GIWC35YQ.js.map +0 -1
- package/dist/chunk-H4VUIOWU.cjs.map +0 -1
- package/dist/chunk-HWMMIRIF.cjs.map +0 -1
- package/dist/chunk-IXZ2T2QX.cjs +0 -448
- package/dist/chunk-IXZ2T2QX.cjs.map +0 -1
- package/dist/chunk-LGB4VNZI.cjs.map +0 -1
- package/dist/chunk-MLKE7HRS.cjs.map +0 -1
- package/dist/chunk-MRRFTNF4.js.map +0 -1
- package/dist/chunk-MXBVP7HX.cjs.map +0 -1
- package/dist/chunk-OWIEOL55.cjs.map +0 -1
- package/dist/chunk-PJAK4U6R.cjs.map +0 -1
- package/dist/chunk-R5AJGM55.cjs.map +0 -1
- package/dist/chunk-RCJLMMTO.js.map +0 -1
- package/dist/chunk-SZYSDJTN.cjs.map +0 -1
- package/dist/chunk-T2VLUFGG.cjs +0 -47
- package/dist/chunk-T2VLUFGG.cjs.map +0 -1
- package/dist/chunk-U4CSOY6T.cjs.map +0 -1
- package/dist/chunk-UBSPZTQX.js +0 -434
- package/dist/chunk-UBSPZTQX.js.map +0 -1
- package/dist/chunk-VEPP75C4.cjs.map +0 -1
- package/dist/chunk-VETAQUW3.js.map +0 -1
- package/dist/chunk-WYGUWVTF.js.map +0 -1
- package/dist/chunk-WYWRMIQC.js.map +0 -1
- package/dist/chunk-X6IBA7FP.cjs.map +0 -1
- package/dist/chunk-Y36Y5MTD.js.map +0 -1
- package/dist/chunk-Y7MZ5LJT.cjs.map +0 -1
- package/dist/chunk-YPLZDWG7.js.map +0 -1
- package/dist/chunk-Z55SJVEC.cjs.map +0 -1
- package/dist/llm/model/is-v2-model.d.ts +0 -3
- package/dist/llm/model/is-v2-model.d.ts.map +0 -1
- package/dist/models-dev-D3EKFGAO.cjs +0 -12
- package/dist/models-dev-EO22XOXQ.js +0 -3
- package/dist/netlify-AE4LNCAI.js +0 -3
- package/dist/netlify-WE42TZIT.cjs +0 -12
- package/dist/provider-registry-6LF3NGC5.js +0 -3
- package/dist/provider-registry-73FKMXJV.cjs +0 -40
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/@ai-sdk/provider-utils/test/dist/chunk-D6YTI3O5.mjs","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/outvariant@1.4.3/node_modules/outvariant/src/format.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/outvariant@1.4.3/node_modules/outvariant/src/invariant.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/msw@2.7.0_@types+node@20.17.24_typescript@5.6.3/node_modules/msw/src/core/utils/internal/devUtils.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/msw@2.7.0_@types+node@20.17.24_typescript@5.6.3/node_modules/msw/src/core/utils/internal/checkGlobals.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/strict-event-emitter@0.5.1/node_modules/strict-event-emitter/src/MemoryLeakError.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/strict-event-emitter@0.5.1/node_modules/strict-event-emitter/src/Emitter.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/msw@2.7.0_@types+node@20.17.24_typescript@5.6.3/node_modules/msw/src/core/utils/internal/getCallFrame.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/msw@2.7.0_@types+node@20.17.24_typescript@5.6.3/node_modules/msw/src/core/utils/internal/isIterable.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/msw@2.7.0_@types+node@20.17.24_typescript@5.6.3/node_modules/msw/src/core/handlers/RequestHandler.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@bundled-es-modules+statuses@1.0.1/node_modules/@bundled-es-modules/statuses/index-esm.js","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/is-node-process@1.2.0/node_modules/is-node-process/src/index.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@open-draft+logger@0.3.0/node_modules/@open-draft/logger/lib/index.mjs","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/utils/fetchUtils.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/utils/bufferUtils.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@bundled-es-modules+cookie@2.0.1/node_modules/@bundled-es-modules/cookie/index-esm.js","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@bundled-es-modules+tough-cookie@0.1.6/node_modules/@bundled-es-modules/tough-cookie/index-esm.js","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/msw@2.7.0_@types+node@20.17.24_typescript@5.6.3/node_modules/msw/src/core/utils/cookieStore.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/headers-polyfill@4.0.3/node_modules/headers-polyfill/node_modules/set-cookie-parser/lib/set-cookie.js","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/headers-polyfill@4.0.3/node_modules/headers-polyfill/src/Headers.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@open-draft+deferred-promise@2.2.0/node_modules/@open-draft/deferred-promise/src/createDeferredExecutor.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@open-draft+deferred-promise@2.2.0/node_modules/@open-draft/deferred-promise/src/DeferredPromise.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/msw@2.7.0_@types+node@20.17.24_typescript@5.6.3/node_modules/msw/src/core/index.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/utils/getUrlByRequestOptions.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/utils/cloneObject.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/interceptors/ClientRequest/utils/normalizeClientRequestArgs.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/utils/hasConfigurableGlobal.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/Interceptor.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/createRequestId.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/interceptors/WebSocket/utils/bindEvent.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/interceptors/WebSocket/utils/events.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/interceptors/WebSocket/WebSocketClientConnection.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/interceptors/WebSocket/WebSocketOverride.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/interceptors/WebSocket/WebSocketServerConnection.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/interceptors/WebSocket/WebSocketClassTransport.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/interceptors/WebSocket/index.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/msw@2.7.0_@types+node@20.17.24_typescript@5.6.3/node_modules/msw/src/core/ws/webSocketInterceptor.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/msw@2.7.0_@types+node@20.17.24_typescript@5.6.3/node_modules/msw/src/node/SetupServerApi.ts","../../../../node_modules/.pnpm/ai@4.3.19_react@19.2.3_zod@3.25.76/node_modules/ai/core/test/not-implemented.ts","../../../../node_modules/.pnpm/ai@4.3.19_react@19.2.3_zod@3.25.76/node_modules/ai/core/test/mock-language-model-v1.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.17_zod@3.25.76/node_modules/@ai-sdk/provider-utils/src/test/convert-array-to-readable-stream.ts","../../../../node_modules/.pnpm/ai@5.0.101_zod@3.25.76/node_modules/ai/src/test/not-implemented.ts","../../../../node_modules/.pnpm/ai@5.0.101_zod@3.25.76/node_modules/ai/src/test/mock-language-model-v2.ts","../../src/loop/test-utils/MastraLanguageModelV2Mock.ts","../../src/test-utils/llm-mock.ts"],"names":["__require","message","match","error","formatMessage","_RequestHandler","_a","_b","__defProp","message2","warn","__create","__getOwnPropDesc","__getOwnPropNames","__getProtoOf","__hasOwnProp","__commonJS","__copyProps","__toESM","parse","__require2","location","Store","pathMatch","MemoryCookieStore","isObject","require_cookie","domainMatch","Cookie","CookieJar","store","http","source_default","value","cookies","splitCookiesString","Logger","hasConfigurableGlobal","getGlobalSymbol","setGlobalSymbol","deleteGlobalSymbol","Interceptor","logger","createRequestId","kEmitter","kBoundListener","invariant","AsyncLocalStorage","notImplemented","AISDKV5LanguageModel","mockModel","simulateReadableStream","MastraLLMV1"],"mappings":"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AAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,KAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,gBAAA;AACA,MAAA,QAAA;AACA,MAAA,WAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,MAAA;AACA,MAAA,SAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,IAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,YAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,UAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,KAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,UAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,aAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,QAAA;AACA,MAAA,cAAA;AACA,MAAA,0BAAA;AACA,MAAA,uBAAA;AACA,MAAA,oBAAA;AACA,MAAA,UAAA;AACA,MAAA,qBAAA;AACA,MAAA,YAAA;AACA,MAAA,aAAA;AACA,MAAA,eAAA;AACA,MAAA,SAAA;AACA,MAAA,gBAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,KAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AA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ACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,UAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,IAAA;AACA,MAAA,KAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,WAAA;AACA,MAAA,MAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;A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A;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,WAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,IAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,KAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAA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A;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,UAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,IAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,MAAA,UAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,QAA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ACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,WAAA;AACA,MAAA,UAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,eAAA;AACA,MAAA,gBAAA;AACA,MAAA,kBAAA;AACA,MAAA,iBAA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","file":"llm-mock.cjs","sourcesContent":["var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __require = /* @__PURE__ */ ((x) => typeof require !== \"undefined\" ? require : typeof Proxy !== \"undefined\" ? new Proxy(x, {\n get: (a, b) => (typeof require !== \"undefined\" ? require : a)[b]\n}) : x)(function(x) {\n if (typeof require !== \"undefined\")\n return require.apply(this, arguments);\n throw Error('Dynamic require of \"' + x + '\" is not supported');\n});\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nvar __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, \"access private method\");\n return method;\n};\n\nexport {\n __require,\n __publicField,\n __privateGet,\n __privateAdd,\n __privateSet,\n __privateMethod\n};\n//# sourceMappingURL=chunk-D6YTI3O5.mjs.map","const POSITIONALS_EXP = /(%?)(%([sdijo]))/g\n\nfunction serializePositional(positional: any, flag: string): any {\n switch (flag) {\n // Strings.\n case 's':\n return positional\n\n // Digits.\n case 'd':\n case 'i':\n return Number(positional)\n\n // JSON.\n case 'j':\n return JSON.stringify(positional)\n\n // Objects.\n case 'o': {\n // Preserve stings to prevent extra quotes around them.\n if (typeof positional === 'string') {\n return positional\n }\n\n const json = JSON.stringify(positional)\n\n // If the positional isn't serializable, return it as-is.\n if (json === '{}' || json === '[]' || /^\\[object .+?\\]$/.test(json)) {\n return positional\n }\n\n return json\n }\n }\n}\n\nexport function format(message: string, ...positionals: any[]): string {\n if (positionals.length === 0) {\n return message\n }\n\n let positionalIndex = 0\n let formattedMessage = message.replace(\n POSITIONALS_EXP,\n (match, isEscaped, _, flag) => {\n const positional = positionals[positionalIndex]\n const value = serializePositional(positional, flag)\n\n if (!isEscaped) {\n positionalIndex++\n return value\n }\n\n return match\n }\n )\n\n // Append unresolved positionals to string as-is.\n if (positionalIndex < positionals.length) {\n formattedMessage += ` ${positionals.slice(positionalIndex).join(' ')}`\n }\n\n formattedMessage = formattedMessage.replace(/%{2,2}/g, '%')\n\n return formattedMessage\n}\n","import { format } from './format'\n\nconst STACK_FRAMES_TO_IGNORE = 2\n\n/**\n * Remove the \"outvariant\" package trace from the given error.\n * This scopes down the error stack to the relevant parts\n * when used in other applications.\n */\nfunction cleanErrorStack(error: Error): void {\n if (!error.stack) {\n return\n }\n\n const nextStack = error.stack.split('\\n')\n nextStack.splice(1, STACK_FRAMES_TO_IGNORE)\n error.stack = nextStack.join('\\n')\n}\n\nexport class InvariantError extends Error {\n name = 'Invariant Violation'\n\n constructor(public readonly message: string, ...positionals: any[]) {\n super(message)\n this.message = format(message, ...positionals)\n cleanErrorStack(this)\n }\n}\n\nexport interface CustomErrorConstructor {\n new (message: string): Error\n}\n\nexport interface CustomErrorFactory {\n (message: string): Error\n}\n\nexport type CustomError = CustomErrorConstructor | CustomErrorFactory\n\ntype Invariant = {\n (\n predicate: unknown,\n message: string,\n ...positionals: any[]\n ): asserts predicate\n\n as(\n ErrorConstructor: CustomError,\n predicate: unknown,\n message: string,\n ...positionals: unknown[]\n ): asserts predicate\n}\n\nexport const invariant: Invariant = (\n predicate,\n message,\n ...positionals\n): asserts predicate => {\n if (!predicate) {\n throw new InvariantError(message, ...positionals)\n }\n}\n\ninvariant.as = (ErrorConstructor, predicate, message, ...positionals) => {\n if (!predicate) {\n const formatMessage =\n positionals.length === 0 ? message : format(message, ...positionals)\n let error: Error\n\n try {\n error = Reflect.construct(ErrorConstructor as CustomErrorConstructor, [\n formatMessage,\n ])\n } catch (err) {\n error = (ErrorConstructor as CustomErrorFactory)(formatMessage)\n }\n\n throw error\n }\n}\n","import { format } from 'outvariant'\n\nconst LIBRARY_PREFIX = '[MSW]'\n\n/**\n * Formats a given message by appending the library's prefix string.\n */\nfunction formatMessage(message: string, ...positionals: any[]): string {\n const interpolatedMessage = format(message, ...positionals)\n return `${LIBRARY_PREFIX} ${interpolatedMessage}`\n}\n\n/**\n * Prints a library-specific warning.\n */\nfunction warn(message: string, ...positionals: any[]): void {\n // eslint-disable-next-line no-console\n console.warn(formatMessage(message, ...positionals))\n}\n\n/**\n * Prints a library-specific error.\n */\nfunction error(message: string, ...positionals: any[]): void {\n // eslint-disable-next-line no-console\n console.error(formatMessage(message, ...positionals))\n}\n\nexport const devUtils = {\n formatMessage,\n warn,\n error,\n}\n\n/**\n * Internal error instance.\n * Used to differentiate the library errors that must be forwarded\n * to the user from the unhandled exceptions. Use this if you don't\n * wish for the error to be coerced to a 500 fallback response.\n */\nexport class InternalError extends Error {\n constructor(message: string) {\n super(message)\n this.name = 'InternalError'\n }\n}\n","import { invariant } from 'outvariant'\nimport { devUtils } from './devUtils'\n\nexport function checkGlobals() {\n /**\n * MSW expects the \"URL\" constructor to be defined.\n * It's not present in React Native so suggest a polyfill\n * instead of failing silently.\n * @see https://github.com/mswjs/msw/issues/1408\n */\n invariant(\n typeof URL !== 'undefined',\n devUtils.formatMessage(\n `Global \"URL\" class is not defined. This likely means that you're running MSW in an environment that doesn't support all Node.js standard API (e.g. React Native). If that's the case, please use an appropriate polyfill for the \"URL\" class, like \"react-native-url-polyfill\".`,\n ),\n )\n}\n","import type { Emitter } from './Emitter'\n\nexport class MemoryLeakError extends Error {\n constructor(\n public readonly emitter: Emitter<any>,\n public readonly type: string | number | symbol,\n public readonly count: number\n ) {\n super(\n `Possible EventEmitter memory leak detected. ${count} ${type.toString()} listeners added. Use emitter.setMaxListeners() to increase limit`\n )\n this.name = 'MaxListenersExceededWarning'\n }\n}\n","import { MemoryLeakError } from './MemoryLeakError'\n\nexport type EventMap = {\n [eventName: string]: Array<unknown>\n}\n\nexport type InternalEventNames = 'newListener' | 'removeListener'\n\nexport type InternalListener<Events extends EventMap> = Listener<\n [eventName: keyof Events, listener: Listener<Array<unknown>>]\n>\n\nexport type Listener<Data extends Array<unknown>> = (...data: Data) => void\n\n/**\n * Node.js-compatible implementation of `EventEmitter`.\n *\n * @example\n * const emitter = new Emitter<{ hello: [string] }>()\n * emitter.on('hello', (name) => console.log(name))\n * emitter.emit('hello', 'John')\n */\nexport class Emitter<Events extends EventMap> {\n private events: Map<keyof Events, Array<Listener<any>>>\n private maxListeners: number\n private hasWarnedAboutPotentialMemoryLeak: boolean\n\n static defaultMaxListeners = 10\n\n static listenerCount<Events extends EventMap>(\n emitter: Emitter<EventMap>,\n eventName: keyof Events\n ): number {\n return emitter.listenerCount<any>(eventName)\n }\n\n constructor() {\n this.events = new Map()\n this.maxListeners = Emitter.defaultMaxListeners\n this.hasWarnedAboutPotentialMemoryLeak = false\n }\n\n private _emitInternalEvent(\n internalEventName: InternalEventNames,\n eventName: keyof Events,\n listener: Listener<Array<unknown>>\n ): void {\n this.emit(\n internalEventName,\n // Anything to make TypeScript happy.\n ...([eventName, listener] as Events['newListener'] &\n Events['removeListener'])\n )\n }\n\n private _getListeners<EventName extends keyof Events>(\n eventName: EventName\n ): Array<Listener<Array<unknown>>> {\n // Always return a copy of the listeners array\n // so they are fixed at the time of the \"_getListeners\" call.\n return Array.prototype.concat.apply([], this.events.get(eventName)) || []\n }\n\n private _removeListener<EventName extends keyof Events>(\n listeners: Array<Listener<Events[EventName]>>,\n listener: Listener<Events[EventName]>\n ): Array<Listener<Events[EventName]>> {\n const index = listeners.indexOf(listener)\n\n if (index > -1) {\n listeners.splice(index, 1)\n }\n\n return []\n }\n\n private _wrapOnceListener<EventName extends keyof Events>(\n eventName: EventName,\n listener: Listener<Events[EventName]>\n ): Listener<Events[EventName]> {\n const onceListener = (...data: Events[keyof Events]) => {\n this.removeListener(eventName, onceListener)\n\n /**\n * @note Return the result of the original listener.\n * This way this wrapped preserves listeners that are async.\n */\n return listener.apply(this, data)\n }\n\n // Inherit the name of the original listener.\n Object.defineProperty(onceListener, 'name', { value: listener.name })\n\n return onceListener\n }\n\n public setMaxListeners(maxListeners: number): this {\n this.maxListeners = maxListeners\n return this\n }\n\n /**\n * Returns the current max listener value for the `Emitter` which is\n * either set by `emitter.setMaxListeners(n)` or defaults to\n * `Emitter.defaultMaxListeners`.\n */\n public getMaxListeners(): number {\n return this.maxListeners\n }\n\n /**\n * Returns an array listing the events for which the emitter has registered listeners.\n * The values in the array will be strings or Symbols.\n */\n public eventNames(): Array<keyof Events> {\n return Array.from(this.events.keys())\n }\n\n /**\n * Synchronously calls each of the listeners registered for the event named `eventName`,\n * in the order they were registered, passing the supplied arguments to each.\n * Returns `true` if the event has listeners, `false` otherwise.\n *\n * @example\n * const emitter = new Emitter<{ hello: [string] }>()\n * emitter.emit('hello', 'John')\n */\n public emit<EventName extends keyof Events>(\n eventName: EventName,\n ...data: Events[EventName]\n ): boolean {\n const listeners = this._getListeners(eventName)\n listeners.forEach((listener) => {\n listener.apply(this, data)\n })\n\n return listeners.length > 0\n }\n\n public addListener(\n eventName: InternalEventNames,\n listener: InternalListener<Events>\n ): this\n public addListener<EventName extends keyof Events>(\n eventName: EventName,\n listener: Listener<Events[EventName]>\n ): this\n public addListener(\n eventName: InternalEventNames | keyof Events,\n listener: InternalListener<Events> | Listener<Events[any]>\n ): this {\n // Emit the `newListener` event before adding the listener.\n this._emitInternalEvent('newListener', eventName, listener)\n\n const nextListeners = this._getListeners(eventName).concat(listener)\n this.events.set(eventName, nextListeners)\n\n if (\n this.maxListeners > 0 &&\n this.listenerCount(eventName) > this.maxListeners &&\n !this.hasWarnedAboutPotentialMemoryLeak\n ) {\n this.hasWarnedAboutPotentialMemoryLeak = true\n\n const memoryLeakWarning = new MemoryLeakError(\n this,\n eventName,\n this.listenerCount(eventName)\n )\n console.warn(memoryLeakWarning)\n }\n\n return this\n }\n\n public on(\n eventName: InternalEventNames,\n listener: InternalListener<Events>\n ): this\n public on<EventName extends keyof Events>(\n eventName: EventName,\n listener: Listener<Events[EventName]>\n ): this\n public on<EventName extends keyof Events>(\n eventName: 'removeListener' | EventName,\n listener: Listener<any>\n ): this {\n return this.addListener(eventName, listener)\n }\n\n public once(\n eventName: InternalEventNames,\n listener: InternalListener<Events>\n ): this\n public once<EventName extends keyof Events>(\n eventName: EventName,\n listener: Listener<Events[EventName]>\n ): this\n public once<EventName extends keyof Events>(\n eventName: InternalEventNames | EventName,\n listener: Listener<any>\n ): this {\n return this.addListener(\n eventName,\n this._wrapOnceListener(eventName, listener)\n )\n }\n\n public prependListener(\n eventName: InternalEventNames,\n listener: InternalListener<Events>\n ): this\n public prependListener<EventName extends keyof Events>(\n eventName: EventName,\n listener: Listener<Events[EventName]>\n ): this\n public prependListener(\n eventName: InternalEventNames | keyof Events,\n listener: Listener<any>\n ): this {\n const listeners = this._getListeners(eventName)\n\n if (listeners.length > 0) {\n const nextListeners = [listener].concat(listeners)\n this.events.set(eventName, nextListeners)\n } else {\n this.events.set(eventName, listeners.concat(listener))\n }\n\n return this\n }\n\n public prependOnceListener(\n eventName: InternalEventNames,\n listener: InternalListener<Events>\n ): this\n public prependOnceListener<EventName extends keyof Events>(\n eventName: EventName,\n listener: Listener<Events[EventName]>\n ): this\n public prependOnceListener(\n eventName: InternalEventNames | keyof Events,\n listener: Listener<any>\n ): this {\n return this.prependListener(\n eventName,\n this._wrapOnceListener(eventName, listener)\n )\n }\n\n public removeListener(\n eventName: InternalEventNames,\n listener: InternalListener<Events>\n ): this\n public removeListener<EventName extends keyof Events>(\n eventName: EventName,\n listener: Listener<Events[EventName]>\n ): this\n public removeListener(\n eventName: InternalEventNames | keyof Events,\n listener: Listener<any>\n ): this {\n const listeners = this._getListeners(eventName)\n\n if (listeners.length > 0) {\n this._removeListener(listeners, listener)\n this.events.set(eventName, listeners)\n\n // Emit the `removeListener` event after removing the listener.\n this._emitInternalEvent('removeListener', eventName, listener)\n }\n\n return this\n }\n\n public off(\n eventName: InternalEventNames,\n listener: InternalListener<Events>\n ): this\n public off<EventName extends keyof Events>(\n eventName: EventName,\n listener: Listener<Events[EventName]>\n ): this\n /**\n * Alias for `emitter.removeListener()`.\n *\n * @example\n * emitter.off('hello', listener)\n */\n public off(\n eventName: InternalEventNames | keyof Events,\n listener: Listener<any>\n ): this {\n return this.removeListener(eventName, listener)\n }\n\n public removeAllListeners(eventName?: InternalEventNames): this\n public removeAllListeners<EventName extends keyof Events>(\n eventName?: EventName\n ): this\n public removeAllListeners(\n eventName?: InternalEventNames | keyof Events\n ): this {\n if (eventName) {\n this.events.delete(eventName)\n } else {\n this.events.clear()\n }\n\n return this\n }\n\n public listeners(eventName: InternalEventNames): Array<Listener<any>>\n public listeners<EventName extends keyof Events>(\n eventName: EventName\n ): Array<Listener<Events[EventName]>>\n /**\n * Returns a copy of the array of listeners for the event named `eventName`.\n */\n public listeners(eventName: InternalEventNames | keyof Events) {\n return Array.from(this._getListeners(eventName))\n }\n\n public listenerCount(eventName: InternalEventNames): number\n public listenerCount<EventName extends keyof Events>(\n eventName: EventName\n ): number\n /**\n * Returns the number of listeners listening to the event named `eventName`.\n */\n public listenerCount(eventName: InternalEventNames | keyof Events): number {\n return this._getListeners(eventName).length\n }\n\n public rawListeners<EventName extends keyof Events>(\n eventName: EventName\n ): Array<Listener<Events[EventName]>> {\n return this.listeners(eventName)\n }\n}\n","// Ignore the source files traces for local testing.\nconst SOURCE_FRAME = /[\\/\\\\]msw[\\/\\\\]src[\\/\\\\](.+)/\n\nconst BUILD_FRAME =\n /(node_modules)?[\\/\\\\]lib[\\/\\\\](core|browser|node|native|iife)[\\/\\\\]|^[^\\/\\\\]*$/\n\n/**\n * Return the stack trace frame of a function's invocation.\n */\nexport function getCallFrame(error: Error) {\n // In <IE11, new Error may return an undefined stack\n const stack = error.stack\n\n if (!stack) {\n return\n }\n\n const frames: string[] = stack.split('\\n').slice(1)\n\n // Get the first frame that doesn't reference the library's internal trace.\n // Assume that frame is the invocation frame.\n const declarationFrame = frames.find((frame) => {\n return !(SOURCE_FRAME.test(frame) || BUILD_FRAME.test(frame))\n })\n\n if (!declarationFrame) {\n return\n }\n\n // Extract file reference from the stack frame.\n const declarationPath = declarationFrame\n .replace(/\\s*at [^()]*\\(([^)]+)\\)/, '$1')\n .replace(/^@/, '')\n return declarationPath\n}\n","/**\n * This is the same as TypeScript's `Iterable`, but with all three type parameters.\n * @todo Remove once TypeScript 5.6 is the minimum.\n */\nexport interface Iterable<T, TReturn, TNext> {\n [Symbol.iterator](): Iterator<T, TReturn, TNext>\n}\n\n/**\n * This is the same as TypeScript's `AsyncIterable`, but with all three type parameters.\n * @todo Remove once TypeScript 5.6 is the minimum.\n */\nexport interface AsyncIterable<T, TReturn, TNext> {\n [Symbol.asyncIterator](): AsyncIterator<T, TReturn, TNext>\n}\n\n/**\n * Determines if the given function is an iterator.\n */\nexport function isIterable<IteratorType>(\n fn: any,\n): fn is\n | Iterable<IteratorType, IteratorType, IteratorType>\n | AsyncIterable<IteratorType, IteratorType, IteratorType> {\n if (!fn) {\n return false\n }\n\n return (\n Reflect.has(fn, Symbol.iterator) || Reflect.has(fn, Symbol.asyncIterator)\n )\n}\n","import { getCallFrame } from '../utils/internal/getCallFrame'\nimport {\n AsyncIterable,\n Iterable,\n isIterable,\n} from '../utils/internal/isIterable'\nimport type { ResponseResolutionContext } from '../utils/executeHandlers'\nimport type { MaybePromise } from '../typeUtils'\nimport { StrictRequest, StrictResponse } from '..//HttpResponse'\nimport type { HandlerKind } from './common'\n\nexport type DefaultRequestMultipartBody = Record<\n string,\n string | File | Array<string | File>\n>\n\nexport type DefaultBodyType =\n | Record<string, any>\n | DefaultRequestMultipartBody\n | string\n | number\n | boolean\n | null\n | undefined\n\nexport type JsonBodyType =\n | Record<string, any>\n | string\n | number\n | boolean\n | null\n | undefined\n\nexport interface RequestHandlerDefaultInfo {\n header: string\n}\n\nexport interface RequestHandlerInternalInfo {\n callFrame?: string\n}\n\nexport type ResponseResolverReturnType<\n ResponseBodyType extends DefaultBodyType = undefined,\n> =\n | ([ResponseBodyType] extends [undefined]\n ? Response\n : StrictResponse<ResponseBodyType>)\n | undefined\n | void\n\nexport type MaybeAsyncResponseResolverReturnType<\n ResponseBodyType extends DefaultBodyType,\n> = MaybePromise<ResponseResolverReturnType<ResponseBodyType>>\n\nexport type AsyncResponseResolverReturnType<\n ResponseBodyType extends DefaultBodyType,\n> = MaybePromise<\n | ResponseResolverReturnType<ResponseBodyType>\n | Iterable<\n MaybeAsyncResponseResolverReturnType<ResponseBodyType>,\n MaybeAsyncResponseResolverReturnType<ResponseBodyType>,\n MaybeAsyncResponseResolverReturnType<ResponseBodyType>\n >\n | AsyncIterable<\n MaybeAsyncResponseResolverReturnType<ResponseBodyType>,\n MaybeAsyncResponseResolverReturnType<ResponseBodyType>,\n MaybeAsyncResponseResolverReturnType<ResponseBodyType>\n >\n>\n\nexport type ResponseResolverInfo<\n ResolverExtraInfo extends Record<string, unknown>,\n RequestBodyType extends DefaultBodyType = DefaultBodyType,\n> = {\n request: StrictRequest<RequestBodyType>\n requestId: string\n} & ResolverExtraInfo\n\nexport type ResponseResolver<\n ResolverExtraInfo extends Record<string, unknown> = Record<string, unknown>,\n RequestBodyType extends DefaultBodyType = DefaultBodyType,\n ResponseBodyType extends DefaultBodyType = undefined,\n> = (\n info: ResponseResolverInfo<ResolverExtraInfo, RequestBodyType>,\n) => AsyncResponseResolverReturnType<ResponseBodyType>\n\nexport interface RequestHandlerArgs<\n HandlerInfo,\n HandlerOptions extends RequestHandlerOptions,\n> {\n info: HandlerInfo\n resolver: ResponseResolver<any>\n options?: HandlerOptions\n}\n\nexport interface RequestHandlerOptions {\n once?: boolean\n}\n\nexport interface RequestHandlerExecutionResult<\n ParsedResult extends Record<string, unknown> | undefined,\n> {\n handler: RequestHandler\n parsedResult?: ParsedResult\n request: Request\n requestId: string\n response?: Response\n}\n\nexport abstract class RequestHandler<\n HandlerInfo extends RequestHandlerDefaultInfo = RequestHandlerDefaultInfo,\n ParsedResult extends Record<string, any> | undefined = any,\n ResolverExtras extends Record<string, unknown> = any,\n HandlerOptions extends RequestHandlerOptions = RequestHandlerOptions,\n> {\n static cache = new WeakMap<\n StrictRequest<DefaultBodyType>,\n StrictRequest<DefaultBodyType>\n >()\n\n private readonly __kind: HandlerKind\n\n public info: HandlerInfo & RequestHandlerInternalInfo\n /**\n * Indicates whether this request handler has been used\n * (its resolver has successfully executed).\n */\n public isUsed: boolean\n\n protected resolver: ResponseResolver<ResolverExtras, any, any>\n private resolverIterator?:\n | Iterator<\n MaybeAsyncResponseResolverReturnType<any>,\n MaybeAsyncResponseResolverReturnType<any>,\n MaybeAsyncResponseResolverReturnType<any>\n >\n | AsyncIterator<\n MaybeAsyncResponseResolverReturnType<any>,\n MaybeAsyncResponseResolverReturnType<any>,\n MaybeAsyncResponseResolverReturnType<any>\n >\n private resolverIteratorResult?: Response | StrictResponse<any>\n private options?: HandlerOptions\n\n constructor(args: RequestHandlerArgs<HandlerInfo, HandlerOptions>) {\n this.resolver = args.resolver\n this.options = args.options\n\n const callFrame = getCallFrame(new Error())\n\n this.info = {\n ...args.info,\n callFrame,\n }\n\n this.isUsed = false\n this.__kind = 'RequestHandler'\n }\n\n /**\n * Determine if the intercepted request should be mocked.\n */\n abstract predicate(args: {\n request: Request\n parsedResult: ParsedResult\n resolutionContext?: ResponseResolutionContext\n }): boolean\n\n /**\n * Print out the successfully handled request.\n */\n abstract log(args: {\n request: Request\n response: Response\n parsedResult: ParsedResult\n }): void\n\n /**\n * Parse the intercepted request to extract additional information from it.\n * Parsed result is then exposed to other methods of this request handler.\n */\n async parse(_args: {\n request: Request\n resolutionContext?: ResponseResolutionContext\n }): Promise<ParsedResult> {\n return {} as ParsedResult\n }\n\n /**\n * Test if this handler matches the given request.\n *\n * This method is not used internally but is exposed\n * as a convenience method for consumers writing custom\n * handlers.\n */\n public async test(args: {\n request: Request\n resolutionContext?: ResponseResolutionContext\n }): Promise<boolean> {\n const parsedResult = await this.parse({\n request: args.request,\n resolutionContext: args.resolutionContext,\n })\n\n return this.predicate({\n request: args.request,\n parsedResult,\n resolutionContext: args.resolutionContext,\n })\n }\n\n protected extendResolverArgs(_args: {\n request: Request\n parsedResult: ParsedResult\n }): ResolverExtras {\n return {} as ResolverExtras\n }\n\n // Clone the request instance before it's passed to the handler phases\n // and the response resolver so we can always read it for logging.\n // We only clone it once per request to avoid unnecessary overhead.\n private cloneRequestOrGetFromCache(\n request: StrictRequest<DefaultBodyType>,\n ): StrictRequest<DefaultBodyType> {\n const existingClone = RequestHandler.cache.get(request)\n\n if (typeof existingClone !== 'undefined') {\n return existingClone\n }\n\n const clonedRequest = request.clone()\n RequestHandler.cache.set(request, clonedRequest)\n\n return clonedRequest\n }\n\n /**\n * Execute this request handler and produce a mocked response\n * using the given resolver function.\n */\n public async run(args: {\n request: StrictRequest<any>\n requestId: string\n resolutionContext?: ResponseResolutionContext\n }): Promise<RequestHandlerExecutionResult<ParsedResult> | null> {\n if (this.isUsed && this.options?.once) {\n return null\n }\n\n // Clone the request.\n // If this is the first time MSW handles this request, a fresh clone\n // will be created and cached. Upon further handling of the same request,\n // the request clone from the cache will be reused to prevent abundant\n // \"abort\" listeners and save up resources on cloning.\n const requestClone = this.cloneRequestOrGetFromCache(args.request)\n\n const parsedResult = await this.parse({\n request: args.request,\n resolutionContext: args.resolutionContext,\n })\n const shouldInterceptRequest = this.predicate({\n request: args.request,\n parsedResult,\n resolutionContext: args.resolutionContext,\n })\n\n if (!shouldInterceptRequest) {\n return null\n }\n\n // Re-check isUsed, in case another request hit this handler while we were\n // asynchronously parsing the request.\n if (this.isUsed && this.options?.once) {\n return null\n }\n\n // Preemptively mark the handler as used.\n // Generators will undo this because only when the resolver reaches the\n // \"done\" state of the generator that it considers the handler used.\n this.isUsed = true\n\n // Create a response extraction wrapper around the resolver\n // since it can be both an async function and a generator.\n const executeResolver = this.wrapResolver(this.resolver)\n\n const resolverExtras = this.extendResolverArgs({\n request: args.request,\n parsedResult,\n })\n\n const mockedResponsePromise = (\n executeResolver({\n ...resolverExtras,\n requestId: args.requestId,\n request: args.request,\n }) as Promise<Response>\n ).catch((errorOrResponse) => {\n // Allow throwing a Response instance in a response resolver.\n if (errorOrResponse instanceof Response) {\n return errorOrResponse\n }\n\n // Otherwise, throw the error as-is.\n throw errorOrResponse\n })\n\n const mockedResponse = await mockedResponsePromise\n\n const executionResult = this.createExecutionResult({\n // Pass the cloned request to the result so that logging\n // and other consumers could read its body once more.\n request: requestClone,\n requestId: args.requestId,\n response: mockedResponse,\n parsedResult,\n })\n\n return executionResult\n }\n\n private wrapResolver(\n resolver: ResponseResolver<ResolverExtras>,\n ): ResponseResolver<ResolverExtras> {\n return async (info): Promise<ResponseResolverReturnType<any>> => {\n if (!this.resolverIterator) {\n const result = await resolver(info)\n if (!isIterable(result)) {\n return result\n }\n this.resolverIterator =\n Symbol.iterator in result\n ? result[Symbol.iterator]()\n : result[Symbol.asyncIterator]()\n }\n\n // Opt-out from marking this handler as used.\n this.isUsed = false\n\n const { done, value } = await this.resolverIterator.next()\n const nextResponse = await value\n\n if (nextResponse) {\n this.resolverIteratorResult = nextResponse.clone()\n }\n\n if (done) {\n // A one-time generator resolver stops affecting the network\n // only after it's been completely exhausted.\n this.isUsed = true\n\n // Clone the previously stored response so it can be read\n // when receiving it repeatedly from the \"done\" generator.\n return this.resolverIteratorResult?.clone()\n }\n\n return nextResponse\n }\n }\n\n private createExecutionResult(args: {\n request: Request\n requestId: string\n parsedResult: ParsedResult\n response?: Response\n }): RequestHandlerExecutionResult<ParsedResult> {\n return {\n handler: this,\n request: args.request,\n requestId: args.requestId,\n response: args.response,\n parsedResult: args.parsedResult,\n }\n }\n}\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\n\n// node_modules/statuses/codes.json\nvar require_codes = __commonJS({\n \"node_modules/statuses/codes.json\"(exports, module) {\n module.exports = {\n \"100\": \"Continue\",\n \"101\": \"Switching Protocols\",\n \"102\": \"Processing\",\n \"103\": \"Early Hints\",\n \"200\": \"OK\",\n \"201\": \"Created\",\n \"202\": \"Accepted\",\n \"203\": \"Non-Authoritative Information\",\n \"204\": \"No Content\",\n \"205\": \"Reset Content\",\n \"206\": \"Partial Content\",\n \"207\": \"Multi-Status\",\n \"208\": \"Already Reported\",\n \"226\": \"IM Used\",\n \"300\": \"Multiple Choices\",\n \"301\": \"Moved Permanently\",\n \"302\": \"Found\",\n \"303\": \"See Other\",\n \"304\": \"Not Modified\",\n \"305\": \"Use Proxy\",\n \"307\": \"Temporary Redirect\",\n \"308\": \"Permanent Redirect\",\n \"400\": \"Bad Request\",\n \"401\": \"Unauthorized\",\n \"402\": \"Payment Required\",\n \"403\": \"Forbidden\",\n \"404\": \"Not Found\",\n \"405\": \"Method Not Allowed\",\n \"406\": \"Not Acceptable\",\n \"407\": \"Proxy Authentication Required\",\n \"408\": \"Request Timeout\",\n \"409\": \"Conflict\",\n \"410\": \"Gone\",\n \"411\": \"Length Required\",\n \"412\": \"Precondition Failed\",\n \"413\": \"Payload Too Large\",\n \"414\": \"URI Too Long\",\n \"415\": \"Unsupported Media Type\",\n \"416\": \"Range Not Satisfiable\",\n \"417\": \"Expectation Failed\",\n \"418\": \"I'm a Teapot\",\n \"421\": \"Misdirected Request\",\n \"422\": \"Unprocessable Entity\",\n \"423\": \"Locked\",\n \"424\": \"Failed Dependency\",\n \"425\": \"Too Early\",\n \"426\": \"Upgrade Required\",\n \"428\": \"Precondition Required\",\n \"429\": \"Too Many Requests\",\n \"431\": \"Request Header Fields Too Large\",\n \"451\": \"Unavailable For Legal Reasons\",\n \"500\": \"Internal Server Error\",\n \"501\": \"Not Implemented\",\n \"502\": \"Bad Gateway\",\n \"503\": \"Service Unavailable\",\n \"504\": \"Gateway Timeout\",\n \"505\": \"HTTP Version Not Supported\",\n \"506\": \"Variant Also Negotiates\",\n \"507\": \"Insufficient Storage\",\n \"508\": \"Loop Detected\",\n \"509\": \"Bandwidth Limit Exceeded\",\n \"510\": \"Not Extended\",\n \"511\": \"Network Authentication Required\"\n };\n }\n});\n\n// node_modules/statuses/index.js\nvar require_statuses = __commonJS({\n \"node_modules/statuses/index.js\"(exports, module) {\n \"use strict\";\n var codes = require_codes();\n module.exports = status2;\n status2.message = codes;\n status2.code = createMessageToStatusCodeMap(codes);\n status2.codes = createStatusCodeList(codes);\n status2.redirect = {\n 300: true,\n 301: true,\n 302: true,\n 303: true,\n 305: true,\n 307: true,\n 308: true\n };\n status2.empty = {\n 204: true,\n 205: true,\n 304: true\n };\n status2.retry = {\n 502: true,\n 503: true,\n 504: true\n };\n function createMessageToStatusCodeMap(codes2) {\n var map = {};\n Object.keys(codes2).forEach(function forEachCode(code) {\n var message = codes2[code];\n var status3 = Number(code);\n map[message.toLowerCase()] = status3;\n });\n return map;\n }\n function createStatusCodeList(codes2) {\n return Object.keys(codes2).map(function mapCode(code) {\n return Number(code);\n });\n }\n function getStatusCode(message) {\n var msg = message.toLowerCase();\n if (!Object.prototype.hasOwnProperty.call(status2.code, msg)) {\n throw new Error('invalid status message: \"' + message + '\"');\n }\n return status2.code[msg];\n }\n function getStatusMessage(code) {\n if (!Object.prototype.hasOwnProperty.call(status2.message, code)) {\n throw new Error(\"invalid status code: \" + code);\n }\n return status2.message[code];\n }\n function status2(code) {\n if (typeof code === \"number\") {\n return getStatusMessage(code);\n }\n if (typeof code !== \"string\") {\n throw new TypeError(\"code must be a number or string\");\n }\n var n = parseInt(code, 10);\n if (!isNaN(n)) {\n return getStatusMessage(n);\n }\n return getStatusCode(code);\n }\n }\n});\n\n// source.js\nvar import_statuses = __toESM(require_statuses(), 1);\nvar source_default = import_statuses.default;\nexport {\n source_default as default\n};\n/*! Bundled license information:\n\nstatuses/index.js:\n (*!\n * statuses\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2016 Douglas Christopher Wilson\n * MIT Licensed\n *)\n*/\n","/**\n * Determines if the current process is a Node.js process.\n */\nexport function isNodeProcess(): boolean {\n if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n return true\n }\n\n if (typeof process !== 'undefined') {\n // Electron (https://www.electronjs.org/docs/latest/api/process#processtype-readonly)\n const type = (process as any).type\n if (type === 'renderer' || type === 'worker') {\n return false\n }\n\n\n return !!(\n process.versions &&\n process.versions.node\n )\n }\n\n return false\n}\n","var __defProp = Object.defineProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\n\n// src/index.ts\nimport { isNodeProcess } from \"is-node-process\";\nimport { format } from \"outvariant\";\n\n// src/colors.ts\nvar colors_exports = {};\n__export(colors_exports, {\n blue: () => blue,\n gray: () => gray,\n green: () => green,\n red: () => red,\n yellow: () => yellow\n});\nfunction yellow(text) {\n return `\\x1B[33m${text}\\x1B[0m`;\n}\nfunction blue(text) {\n return `\\x1B[34m${text}\\x1B[0m`;\n}\nfunction gray(text) {\n return `\\x1B[90m${text}\\x1B[0m`;\n}\nfunction red(text) {\n return `\\x1B[31m${text}\\x1B[0m`;\n}\nfunction green(text) {\n return `\\x1B[32m${text}\\x1B[0m`;\n}\n\n// src/index.ts\nvar IS_NODE = isNodeProcess();\nvar Logger = class {\n constructor(name) {\n this.name = name;\n this.prefix = `[${this.name}]`;\n const LOGGER_NAME = getVariable(\"DEBUG\");\n const LOGGER_LEVEL = getVariable(\"LOG_LEVEL\");\n const isLoggingEnabled = LOGGER_NAME === \"1\" || LOGGER_NAME === \"true\" || typeof LOGGER_NAME !== \"undefined\" && this.name.startsWith(LOGGER_NAME);\n if (isLoggingEnabled) {\n this.debug = isDefinedAndNotEquals(LOGGER_LEVEL, \"debug\") ? noop : this.debug;\n this.info = isDefinedAndNotEquals(LOGGER_LEVEL, \"info\") ? noop : this.info;\n this.success = isDefinedAndNotEquals(LOGGER_LEVEL, \"success\") ? noop : this.success;\n this.warning = isDefinedAndNotEquals(LOGGER_LEVEL, \"warning\") ? noop : this.warning;\n this.error = isDefinedAndNotEquals(LOGGER_LEVEL, \"error\") ? noop : this.error;\n } else {\n this.info = noop;\n this.success = noop;\n this.warning = noop;\n this.error = noop;\n this.only = noop;\n }\n }\n prefix;\n extend(domain) {\n return new Logger(`${this.name}:${domain}`);\n }\n /**\n * Print a debug message.\n * @example\n * logger.debug('no duplicates found, creating a document...')\n */\n debug(message, ...positionals) {\n this.logEntry({\n level: \"debug\",\n message: gray(message),\n positionals,\n prefix: this.prefix,\n colors: {\n prefix: \"gray\"\n }\n });\n }\n /**\n * Print an info message.\n * @example\n * logger.info('start parsing...')\n */\n info(message, ...positionals) {\n this.logEntry({\n level: \"info\",\n message,\n positionals,\n prefix: this.prefix,\n colors: {\n prefix: \"blue\"\n }\n });\n const performance2 = new PerformanceEntry();\n return (message2, ...positionals2) => {\n performance2.measure();\n this.logEntry({\n level: \"info\",\n message: `${message2} ${gray(`${performance2.deltaTime}ms`)}`,\n positionals: positionals2,\n prefix: this.prefix,\n colors: {\n prefix: \"blue\"\n }\n });\n };\n }\n /**\n * Print a success message.\n * @example\n * logger.success('successfully created document')\n */\n success(message, ...positionals) {\n this.logEntry({\n level: \"info\",\n message,\n positionals,\n prefix: `\\u2714 ${this.prefix}`,\n colors: {\n timestamp: \"green\",\n prefix: \"green\"\n }\n });\n }\n /**\n * Print a warning.\n * @example\n * logger.warning('found legacy document format')\n */\n warning(message, ...positionals) {\n this.logEntry({\n level: \"warning\",\n message,\n positionals,\n prefix: `\\u26A0 ${this.prefix}`,\n colors: {\n timestamp: \"yellow\",\n prefix: \"yellow\"\n }\n });\n }\n /**\n * Print an error message.\n * @example\n * logger.error('something went wrong')\n */\n error(message, ...positionals) {\n this.logEntry({\n level: \"error\",\n message,\n positionals,\n prefix: `\\u2716 ${this.prefix}`,\n colors: {\n timestamp: \"red\",\n prefix: \"red\"\n }\n });\n }\n /**\n * Execute the given callback only when the logging is enabled.\n * This is skipped in its entirety and has no runtime cost otherwise.\n * This executes regardless of the log level.\n * @example\n * logger.only(() => {\n * logger.info('additional info')\n * })\n */\n only(callback) {\n callback();\n }\n createEntry(level, message) {\n return {\n timestamp: /* @__PURE__ */ new Date(),\n level,\n message\n };\n }\n logEntry(args) {\n const {\n level,\n message,\n prefix,\n colors: customColors,\n positionals = []\n } = args;\n const entry = this.createEntry(level, message);\n const timestampColor = customColors?.timestamp || \"gray\";\n const prefixColor = customColors?.prefix || \"gray\";\n const colorize = {\n timestamp: colors_exports[timestampColor],\n prefix: colors_exports[prefixColor]\n };\n const write = this.getWriter(level);\n write(\n [colorize.timestamp(this.formatTimestamp(entry.timestamp))].concat(prefix != null ? colorize.prefix(prefix) : []).concat(serializeInput(message)).join(\" \"),\n ...positionals.map(serializeInput)\n );\n }\n formatTimestamp(timestamp) {\n return `${timestamp.toLocaleTimeString(\n \"en-GB\"\n )}:${timestamp.getMilliseconds()}`;\n }\n getWriter(level) {\n switch (level) {\n case \"debug\":\n case \"success\":\n case \"info\": {\n return log;\n }\n case \"warning\": {\n return warn;\n }\n case \"error\": {\n return error;\n }\n }\n }\n};\nvar PerformanceEntry = class {\n startTime;\n endTime;\n deltaTime;\n constructor() {\n this.startTime = performance.now();\n }\n measure() {\n this.endTime = performance.now();\n const deltaTime = this.endTime - this.startTime;\n this.deltaTime = deltaTime.toFixed(2);\n }\n};\nvar noop = () => void 0;\nfunction log(message, ...positionals) {\n if (IS_NODE) {\n process.stdout.write(format(message, ...positionals) + \"\\n\");\n return;\n }\n console.log(message, ...positionals);\n}\nfunction warn(message, ...positionals) {\n if (IS_NODE) {\n process.stderr.write(format(message, ...positionals) + \"\\n\");\n return;\n }\n console.warn(message, ...positionals);\n}\nfunction error(message, ...positionals) {\n if (IS_NODE) {\n process.stderr.write(format(message, ...positionals) + \"\\n\");\n return;\n }\n console.error(message, ...positionals);\n}\nfunction getVariable(variableName) {\n if (IS_NODE) {\n return process.env[variableName];\n }\n return globalThis[variableName]?.toString();\n}\nfunction isDefinedAndNotEquals(value, expected) {\n return value !== void 0 && value !== expected;\n}\nfunction serializeInput(message) {\n if (typeof message === \"undefined\") {\n return \"undefined\";\n }\n if (message === null) {\n return \"null\";\n }\n if (typeof message === \"string\") {\n return message;\n }\n if (typeof message === \"object\") {\n return JSON.stringify(message);\n }\n return message.toString();\n}\nexport {\n Logger\n};\n","export interface FetchResponseInit extends ResponseInit {\n url?: string\n}\n\nexport class FetchResponse extends Response {\n /**\n * Response status codes for responses that cannot have body.\n * @see https://fetch.spec.whatwg.org/#statuses\n */\n static readonly STATUS_CODES_WITHOUT_BODY = [101, 103, 204, 205, 304]\n\n static readonly STATUS_CODES_WITH_REDIRECT = [301, 302, 303, 307, 308]\n\n static isConfigurableStatusCode(status: number): boolean {\n return status >= 200 && status <= 599\n }\n\n static isRedirectResponse(status: number): boolean {\n return FetchResponse.STATUS_CODES_WITH_REDIRECT.includes(status)\n }\n\n /**\n * Returns a boolean indicating whether the given response status\n * code represents a response that can have a body.\n */\n static isResponseWithBody(status: number): boolean {\n return !FetchResponse.STATUS_CODES_WITHOUT_BODY.includes(status)\n }\n\n static setUrl(url: string | undefined, response: Response): void {\n if (!url) {\n return\n }\n\n if (response.url != '') {\n return\n }\n\n Object.defineProperty(response, 'url', {\n value: url,\n enumerable: true,\n configurable: true,\n writable: false,\n })\n }\n\n /**\n * Parses the given raw HTTP headers into a Fetch API `Headers` instance.\n */\n static parseRawHeaders(rawHeaders: Array<string>): Headers {\n const headers = new Headers()\n for (let line = 0; line < rawHeaders.length; line += 2) {\n headers.append(rawHeaders[line], rawHeaders[line + 1])\n }\n return headers\n }\n\n constructor(body?: BodyInit | null, init: FetchResponseInit = {}) {\n const status = init.status ?? 200\n const safeStatus = FetchResponse.isConfigurableStatusCode(status)\n ? status\n : 200\n const finalBody = FetchResponse.isResponseWithBody(status) ? body : null\n\n super(finalBody, {\n ...init,\n status: safeStatus,\n })\n\n if (status !== safeStatus) {\n /**\n * @note Undici keeps an internal \"Symbol(state)\" that holds\n * the actual value of response status. Update that in Node.js.\n */\n const stateSymbol = Object.getOwnPropertySymbols(this).find(\n (symbol) => symbol.description === 'state'\n )\n if (stateSymbol) {\n const state = Reflect.get(this, stateSymbol) as object\n Reflect.set(state, 'status', status)\n } else {\n Object.defineProperty(this, 'status', {\n value: status,\n enumerable: true,\n configurable: true,\n writable: false,\n })\n }\n }\n\n FetchResponse.setUrl(init.url, this)\n }\n}\n","const encoder = new TextEncoder()\n\nexport function encodeBuffer(text: string): Uint8Array {\n return encoder.encode(text)\n}\n\nexport function decodeBuffer(buffer: ArrayBuffer, encoding?: string): string {\n const decoder = new TextDecoder(encoding)\n return decoder.decode(buffer)\n}\n\n/**\n * Create an `ArrayBuffer` from the given `Uint8Array`.\n * Takes the byte offset into account to produce the right buffer\n * in the case when the buffer is bigger than the data view.\n */\nexport function toArrayBuffer(array: Uint8Array): ArrayBuffer {\n return array.buffer.slice(\n array.byteOffset,\n array.byteOffset + array.byteLength\n )\n}\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\n\n// node_modules/cookie/index.js\nvar require_cookie = __commonJS({\n \"node_modules/cookie/index.js\"(exports) {\n \"use strict\";\n exports.parse = parse;\n exports.serialize = serialize;\n var __toString = Object.prototype.toString;\n var __hasOwnProperty = Object.prototype.hasOwnProperty;\n var cookieNameRegExp = /^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$/;\n var cookieValueRegExp = /^(\"?)[\\u0021\\u0023-\\u002B\\u002D-\\u003A\\u003C-\\u005B\\u005D-\\u007E]*\\1$/;\n var domainValueRegExp = /^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i;\n var pathValueRegExp = /^[\\u0020-\\u003A\\u003D-\\u007E]*$/;\n function parse(str, opt) {\n if (typeof str !== \"string\") {\n throw new TypeError(\"argument str must be a string\");\n }\n var obj = {};\n var len = str.length;\n if (len < 2) return obj;\n var dec = opt && opt.decode || decode;\n var index = 0;\n var eqIdx = 0;\n var endIdx = 0;\n do {\n eqIdx = str.indexOf(\"=\", index);\n if (eqIdx === -1) break;\n endIdx = str.indexOf(\";\", index);\n if (endIdx === -1) {\n endIdx = len;\n } else if (eqIdx > endIdx) {\n index = str.lastIndexOf(\";\", eqIdx - 1) + 1;\n continue;\n }\n var keyStartIdx = startIndex(str, index, eqIdx);\n var keyEndIdx = endIndex(str, eqIdx, keyStartIdx);\n var key = str.slice(keyStartIdx, keyEndIdx);\n if (!__hasOwnProperty.call(obj, key)) {\n var valStartIdx = startIndex(str, eqIdx + 1, endIdx);\n var valEndIdx = endIndex(str, endIdx, valStartIdx);\n if (str.charCodeAt(valStartIdx) === 34 && str.charCodeAt(valEndIdx - 1) === 34) {\n valStartIdx++;\n valEndIdx--;\n }\n var val = str.slice(valStartIdx, valEndIdx);\n obj[key] = tryDecode(val, dec);\n }\n index = endIdx + 1;\n } while (index < len);\n return obj;\n }\n function startIndex(str, index, max) {\n do {\n var code = str.charCodeAt(index);\n if (code !== 32 && code !== 9) return index;\n } while (++index < max);\n return max;\n }\n function endIndex(str, index, min) {\n while (index > min) {\n var code = str.charCodeAt(--index);\n if (code !== 32 && code !== 9) return index + 1;\n }\n return min;\n }\n function serialize(name, val, opt) {\n var enc = opt && opt.encode || encodeURIComponent;\n if (typeof enc !== \"function\") {\n throw new TypeError(\"option encode is invalid\");\n }\n if (!cookieNameRegExp.test(name)) {\n throw new TypeError(\"argument name is invalid\");\n }\n var value = enc(val);\n if (!cookieValueRegExp.test(value)) {\n throw new TypeError(\"argument val is invalid\");\n }\n var str = name + \"=\" + value;\n if (!opt) return str;\n if (null != opt.maxAge) {\n var maxAge = Math.floor(opt.maxAge);\n if (!isFinite(maxAge)) {\n throw new TypeError(\"option maxAge is invalid\");\n }\n str += \"; Max-Age=\" + maxAge;\n }\n if (opt.domain) {\n if (!domainValueRegExp.test(opt.domain)) {\n throw new TypeError(\"option domain is invalid\");\n }\n str += \"; Domain=\" + opt.domain;\n }\n if (opt.path) {\n if (!pathValueRegExp.test(opt.path)) {\n throw new TypeError(\"option path is invalid\");\n }\n str += \"; Path=\" + opt.path;\n }\n if (opt.expires) {\n var expires = opt.expires;\n if (!isDate(expires) || isNaN(expires.valueOf())) {\n throw new TypeError(\"option expires is invalid\");\n }\n str += \"; Expires=\" + expires.toUTCString();\n }\n if (opt.httpOnly) {\n str += \"; HttpOnly\";\n }\n if (opt.secure) {\n str += \"; Secure\";\n }\n if (opt.partitioned) {\n str += \"; Partitioned\";\n }\n if (opt.priority) {\n var priority = typeof opt.priority === \"string\" ? opt.priority.toLowerCase() : opt.priority;\n switch (priority) {\n case \"low\":\n str += \"; Priority=Low\";\n break;\n case \"medium\":\n str += \"; Priority=Medium\";\n break;\n case \"high\":\n str += \"; Priority=High\";\n break;\n default:\n throw new TypeError(\"option priority is invalid\");\n }\n }\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === \"string\" ? opt.sameSite.toLowerCase() : opt.sameSite;\n switch (sameSite) {\n case true:\n str += \"; SameSite=Strict\";\n break;\n case \"lax\":\n str += \"; SameSite=Lax\";\n break;\n case \"strict\":\n str += \"; SameSite=Strict\";\n break;\n case \"none\":\n str += \"; SameSite=None\";\n break;\n default:\n throw new TypeError(\"option sameSite is invalid\");\n }\n }\n return str;\n }\n function decode(str) {\n return str.indexOf(\"%\") !== -1 ? decodeURIComponent(str) : str;\n }\n function isDate(val) {\n return __toString.call(val) === \"[object Date]\";\n }\n function tryDecode(str, decode2) {\n try {\n return decode2(str);\n } catch (e) {\n return str;\n }\n }\n }\n});\n\n// source.js\nvar import_cookie = __toESM(require_cookie(), 1);\nvar source_default = import_cookie.default;\nexport {\n source_default as default\n};\n/*! Bundled license information:\n\ncookie/index.js:\n (*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n *)\n*/\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __require = /* @__PURE__ */ ((x) => typeof require !== \"undefined\" ? require : typeof Proxy !== \"undefined\" ? new Proxy(x, {\n get: (a, b) => (typeof require !== \"undefined\" ? require : a)[b]\n}) : x)(function(x) {\n if (typeof require !== \"undefined\") return require.apply(this, arguments);\n throw Error('Dynamic require of \"' + x + '\" is not supported');\n});\nvar __commonJS = (cb, mod) => function __require2() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\n\n// node_modules/punycode/punycode.js\nvar require_punycode = __commonJS({\n \"node_modules/punycode/punycode.js\"(exports, module) {\n \"use strict\";\n var maxInt = 2147483647;\n var base = 36;\n var tMin = 1;\n var tMax = 26;\n var skew = 38;\n var damp = 700;\n var initialBias = 72;\n var initialN = 128;\n var delimiter = \"-\";\n var regexPunycode = /^xn--/;\n var regexNonASCII = /[^\\0-\\x7F]/;\n var regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g;\n var errors = {\n \"overflow\": \"Overflow: input needs wider integers to process\",\n \"not-basic\": \"Illegal input >= 0x80 (not a basic code point)\",\n \"invalid-input\": \"Invalid input\"\n };\n var baseMinusTMin = base - tMin;\n var floor = Math.floor;\n var stringFromCharCode = String.fromCharCode;\n function error(type) {\n throw new RangeError(errors[type]);\n }\n function map(array, callback) {\n const result = [];\n let length = array.length;\n while (length--) {\n result[length] = callback(array[length]);\n }\n return result;\n }\n function mapDomain(domain, callback) {\n const parts = domain.split(\"@\");\n let result = \"\";\n if (parts.length > 1) {\n result = parts[0] + \"@\";\n domain = parts[1];\n }\n domain = domain.replace(regexSeparators, \".\");\n const labels = domain.split(\".\");\n const encoded = map(labels, callback).join(\".\");\n return result + encoded;\n }\n function ucs2decode(string) {\n const output = [];\n let counter = 0;\n const length = string.length;\n while (counter < length) {\n const value = string.charCodeAt(counter++);\n if (value >= 55296 && value <= 56319 && counter < length) {\n const extra = string.charCodeAt(counter++);\n if ((extra & 64512) == 56320) {\n output.push(((value & 1023) << 10) + (extra & 1023) + 65536);\n } else {\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n }\n var ucs2encode = (codePoints) => String.fromCodePoint(...codePoints);\n var basicToDigit = function(codePoint) {\n if (codePoint >= 48 && codePoint < 58) {\n return 26 + (codePoint - 48);\n }\n if (codePoint >= 65 && codePoint < 91) {\n return codePoint - 65;\n }\n if (codePoint >= 97 && codePoint < 123) {\n return codePoint - 97;\n }\n return base;\n };\n var digitToBasic = function(digit, flag) {\n return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n };\n var adapt = function(delta, numPoints, firstTime) {\n let k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n for (; delta > baseMinusTMin * tMax >> 1; k += base) {\n delta = floor(delta / baseMinusTMin);\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n };\n var decode = function(input) {\n const output = [];\n const inputLength = input.length;\n let i = 0;\n let n = initialN;\n let bias = initialBias;\n let basic = input.lastIndexOf(delimiter);\n if (basic < 0) {\n basic = 0;\n }\n for (let j = 0; j < basic; ++j) {\n if (input.charCodeAt(j) >= 128) {\n error(\"not-basic\");\n }\n output.push(input.charCodeAt(j));\n }\n for (let index = basic > 0 ? basic + 1 : 0; index < inputLength; ) {\n const oldi = i;\n for (let w = 1, k = base; ; k += base) {\n if (index >= inputLength) {\n error(\"invalid-input\");\n }\n const digit = basicToDigit(input.charCodeAt(index++));\n if (digit >= base) {\n error(\"invalid-input\");\n }\n if (digit > floor((maxInt - i) / w)) {\n error(\"overflow\");\n }\n i += digit * w;\n const t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n if (digit < t) {\n break;\n }\n const baseMinusT = base - t;\n if (w > floor(maxInt / baseMinusT)) {\n error(\"overflow\");\n }\n w *= baseMinusT;\n }\n const out = output.length + 1;\n bias = adapt(i - oldi, out, oldi == 0);\n if (floor(i / out) > maxInt - n) {\n error(\"overflow\");\n }\n n += floor(i / out);\n i %= out;\n output.splice(i++, 0, n);\n }\n return String.fromCodePoint(...output);\n };\n var encode = function(input) {\n const output = [];\n input = ucs2decode(input);\n const inputLength = input.length;\n let n = initialN;\n let delta = 0;\n let bias = initialBias;\n for (const currentValue of input) {\n if (currentValue < 128) {\n output.push(stringFromCharCode(currentValue));\n }\n }\n const basicLength = output.length;\n let handledCPCount = basicLength;\n if (basicLength) {\n output.push(delimiter);\n }\n while (handledCPCount < inputLength) {\n let m = maxInt;\n for (const currentValue of input) {\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n const handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n error(\"overflow\");\n }\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n for (const currentValue of input) {\n if (currentValue < n && ++delta > maxInt) {\n error(\"overflow\");\n }\n if (currentValue === n) {\n let q = delta;\n for (let k = base; ; k += base) {\n const t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n if (q < t) {\n break;\n }\n const qMinusT = q - t;\n const baseMinusT = base - t;\n output.push(\n stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n );\n q = floor(qMinusT / baseMinusT);\n }\n output.push(stringFromCharCode(digitToBasic(q, 0)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength);\n delta = 0;\n ++handledCPCount;\n }\n }\n ++delta;\n ++n;\n }\n return output.join(\"\");\n };\n var toUnicode = function(input) {\n return mapDomain(input, function(string) {\n return regexPunycode.test(string) ? decode(string.slice(4).toLowerCase()) : string;\n });\n };\n var toASCII = function(input) {\n return mapDomain(input, function(string) {\n return regexNonASCII.test(string) ? \"xn--\" + encode(string) : string;\n });\n };\n var punycode = {\n /**\n * A string representing the current Punycode.js version number.\n * @memberOf punycode\n * @type String\n */\n \"version\": \"2.3.1\",\n /**\n * An object of methods to convert from JavaScript's internal character\n * representation (UCS-2) to Unicode code points, and back.\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode\n * @type Object\n */\n \"ucs2\": {\n \"decode\": ucs2decode,\n \"encode\": ucs2encode\n },\n \"decode\": decode,\n \"encode\": encode,\n \"toASCII\": toASCII,\n \"toUnicode\": toUnicode\n };\n module.exports = punycode;\n }\n});\n\n// node_modules/requires-port/index.js\nvar require_requires_port = __commonJS({\n \"node_modules/requires-port/index.js\"(exports, module) {\n \"use strict\";\n module.exports = function required(port, protocol) {\n protocol = protocol.split(\":\")[0];\n port = +port;\n if (!port) return false;\n switch (protocol) {\n case \"http\":\n case \"ws\":\n return port !== 80;\n case \"https\":\n case \"wss\":\n return port !== 443;\n case \"ftp\":\n return port !== 21;\n case \"gopher\":\n return port !== 70;\n case \"file\":\n return false;\n }\n return port !== 0;\n };\n }\n});\n\n// node_modules/querystringify/index.js\nvar require_querystringify = __commonJS({\n \"node_modules/querystringify/index.js\"(exports) {\n \"use strict\";\n var has = Object.prototype.hasOwnProperty;\n var undef;\n function decode(input) {\n try {\n return decodeURIComponent(input.replace(/\\+/g, \" \"));\n } catch (e) {\n return null;\n }\n }\n function encode(input) {\n try {\n return encodeURIComponent(input);\n } catch (e) {\n return null;\n }\n }\n function querystring(query) {\n var parser = /([^=?#&]+)=?([^&]*)/g, result = {}, part;\n while (part = parser.exec(query)) {\n var key = decode(part[1]), value = decode(part[2]);\n if (key === null || value === null || key in result) continue;\n result[key] = value;\n }\n return result;\n }\n function querystringify(obj, prefix) {\n prefix = prefix || \"\";\n var pairs = [], value, key;\n if (\"string\" !== typeof prefix) prefix = \"?\";\n for (key in obj) {\n if (has.call(obj, key)) {\n value = obj[key];\n if (!value && (value === null || value === undef || isNaN(value))) {\n value = \"\";\n }\n key = encode(key);\n value = encode(value);\n if (key === null || value === null) continue;\n pairs.push(key + \"=\" + value);\n }\n }\n return pairs.length ? prefix + pairs.join(\"&\") : \"\";\n }\n exports.stringify = querystringify;\n exports.parse = querystring;\n }\n});\n\n// node_modules/url-parse/index.js\nvar require_url_parse = __commonJS({\n \"node_modules/url-parse/index.js\"(exports, module) {\n \"use strict\";\n var required = require_requires_port();\n var qs = require_querystringify();\n var controlOrWhitespace = /^[\\x00-\\x20\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff]+/;\n var CRHTLF = /[\\n\\r\\t]/g;\n var slashes = /^[A-Za-z][A-Za-z0-9+-.]*:\\/\\//;\n var port = /:\\d+$/;\n var protocolre = /^([a-z][a-z0-9.+-]*:)?(\\/\\/)?([\\\\/]+)?([\\S\\s]*)/i;\n var windowsDriveLetter = /^[a-zA-Z]:/;\n function trimLeft(str) {\n return (str ? str : \"\").toString().replace(controlOrWhitespace, \"\");\n }\n var rules = [\n [\"#\", \"hash\"],\n // Extract from the back.\n [\"?\", \"query\"],\n // Extract from the back.\n function sanitize(address, url) {\n return isSpecial(url.protocol) ? address.replace(/\\\\/g, \"/\") : address;\n },\n [\"/\", \"pathname\"],\n // Extract from the back.\n [\"@\", \"auth\", 1],\n // Extract from the front.\n [NaN, \"host\", void 0, 1, 1],\n // Set left over value.\n [/:(\\d*)$/, \"port\", void 0, 1],\n // RegExp the back.\n [NaN, \"hostname\", void 0, 1, 1]\n // Set left over.\n ];\n var ignore = { hash: 1, query: 1 };\n function lolcation(loc) {\n var globalVar;\n if (typeof window !== \"undefined\") globalVar = window;\n else if (typeof global !== \"undefined\") globalVar = global;\n else if (typeof self !== \"undefined\") globalVar = self;\n else globalVar = {};\n var location = globalVar.location || {};\n loc = loc || location;\n var finaldestination = {}, type = typeof loc, key;\n if (\"blob:\" === loc.protocol) {\n finaldestination = new Url(unescape(loc.pathname), {});\n } else if (\"string\" === type) {\n finaldestination = new Url(loc, {});\n for (key in ignore) delete finaldestination[key];\n } else if (\"object\" === type) {\n for (key in loc) {\n if (key in ignore) continue;\n finaldestination[key] = loc[key];\n }\n if (finaldestination.slashes === void 0) {\n finaldestination.slashes = slashes.test(loc.href);\n }\n }\n return finaldestination;\n }\n function isSpecial(scheme) {\n return scheme === \"file:\" || scheme === \"ftp:\" || scheme === \"http:\" || scheme === \"https:\" || scheme === \"ws:\" || scheme === \"wss:\";\n }\n function extractProtocol(address, location) {\n address = trimLeft(address);\n address = address.replace(CRHTLF, \"\");\n location = location || {};\n var match = protocolre.exec(address);\n var protocol = match[1] ? match[1].toLowerCase() : \"\";\n var forwardSlashes = !!match[2];\n var otherSlashes = !!match[3];\n var slashesCount = 0;\n var rest;\n if (forwardSlashes) {\n if (otherSlashes) {\n rest = match[2] + match[3] + match[4];\n slashesCount = match[2].length + match[3].length;\n } else {\n rest = match[2] + match[4];\n slashesCount = match[2].length;\n }\n } else {\n if (otherSlashes) {\n rest = match[3] + match[4];\n slashesCount = match[3].length;\n } else {\n rest = match[4];\n }\n }\n if (protocol === \"file:\") {\n if (slashesCount >= 2) {\n rest = rest.slice(2);\n }\n } else if (isSpecial(protocol)) {\n rest = match[4];\n } else if (protocol) {\n if (forwardSlashes) {\n rest = rest.slice(2);\n }\n } else if (slashesCount >= 2 && isSpecial(location.protocol)) {\n rest = match[4];\n }\n return {\n protocol,\n slashes: forwardSlashes || isSpecial(protocol),\n slashesCount,\n rest\n };\n }\n function resolve(relative, base) {\n if (relative === \"\") return base;\n var path = (base || \"/\").split(\"/\").slice(0, -1).concat(relative.split(\"/\")), i = path.length, last = path[i - 1], unshift = false, up = 0;\n while (i--) {\n if (path[i] === \".\") {\n path.splice(i, 1);\n } else if (path[i] === \"..\") {\n path.splice(i, 1);\n up++;\n } else if (up) {\n if (i === 0) unshift = true;\n path.splice(i, 1);\n up--;\n }\n }\n if (unshift) path.unshift(\"\");\n if (last === \".\" || last === \"..\") path.push(\"\");\n return path.join(\"/\");\n }\n function Url(address, location, parser) {\n address = trimLeft(address);\n address = address.replace(CRHTLF, \"\");\n if (!(this instanceof Url)) {\n return new Url(address, location, parser);\n }\n var relative, extracted, parse, instruction, index, key, instructions = rules.slice(), type = typeof location, url = this, i = 0;\n if (\"object\" !== type && \"string\" !== type) {\n parser = location;\n location = null;\n }\n if (parser && \"function\" !== typeof parser) parser = qs.parse;\n location = lolcation(location);\n extracted = extractProtocol(address || \"\", location);\n relative = !extracted.protocol && !extracted.slashes;\n url.slashes = extracted.slashes || relative && location.slashes;\n url.protocol = extracted.protocol || location.protocol || \"\";\n address = extracted.rest;\n if (extracted.protocol === \"file:\" && (extracted.slashesCount !== 2 || windowsDriveLetter.test(address)) || !extracted.slashes && (extracted.protocol || extracted.slashesCount < 2 || !isSpecial(url.protocol))) {\n instructions[3] = [/(.*)/, \"pathname\"];\n }\n for (; i < instructions.length; i++) {\n instruction = instructions[i];\n if (typeof instruction === \"function\") {\n address = instruction(address, url);\n continue;\n }\n parse = instruction[0];\n key = instruction[1];\n if (parse !== parse) {\n url[key] = address;\n } else if (\"string\" === typeof parse) {\n index = parse === \"@\" ? address.lastIndexOf(parse) : address.indexOf(parse);\n if (~index) {\n if (\"number\" === typeof instruction[2]) {\n url[key] = address.slice(0, index);\n address = address.slice(index + instruction[2]);\n } else {\n url[key] = address.slice(index);\n address = address.slice(0, index);\n }\n }\n } else if (index = parse.exec(address)) {\n url[key] = index[1];\n address = address.slice(0, index.index);\n }\n url[key] = url[key] || (relative && instruction[3] ? location[key] || \"\" : \"\");\n if (instruction[4]) url[key] = url[key].toLowerCase();\n }\n if (parser) url.query = parser(url.query);\n if (relative && location.slashes && url.pathname.charAt(0) !== \"/\" && (url.pathname !== \"\" || location.pathname !== \"\")) {\n url.pathname = resolve(url.pathname, location.pathname);\n }\n if (url.pathname.charAt(0) !== \"/\" && isSpecial(url.protocol)) {\n url.pathname = \"/\" + url.pathname;\n }\n if (!required(url.port, url.protocol)) {\n url.host = url.hostname;\n url.port = \"\";\n }\n url.username = url.password = \"\";\n if (url.auth) {\n index = url.auth.indexOf(\":\");\n if (~index) {\n url.username = url.auth.slice(0, index);\n url.username = encodeURIComponent(decodeURIComponent(url.username));\n url.password = url.auth.slice(index + 1);\n url.password = encodeURIComponent(decodeURIComponent(url.password));\n } else {\n url.username = encodeURIComponent(decodeURIComponent(url.auth));\n }\n url.auth = url.password ? url.username + \":\" + url.password : url.username;\n }\n url.origin = url.protocol !== \"file:\" && isSpecial(url.protocol) && url.host ? url.protocol + \"//\" + url.host : \"null\";\n url.href = url.toString();\n }\n function set(part, value, fn) {\n var url = this;\n switch (part) {\n case \"query\":\n if (\"string\" === typeof value && value.length) {\n value = (fn || qs.parse)(value);\n }\n url[part] = value;\n break;\n case \"port\":\n url[part] = value;\n if (!required(value, url.protocol)) {\n url.host = url.hostname;\n url[part] = \"\";\n } else if (value) {\n url.host = url.hostname + \":\" + value;\n }\n break;\n case \"hostname\":\n url[part] = value;\n if (url.port) value += \":\" + url.port;\n url.host = value;\n break;\n case \"host\":\n url[part] = value;\n if (port.test(value)) {\n value = value.split(\":\");\n url.port = value.pop();\n url.hostname = value.join(\":\");\n } else {\n url.hostname = value;\n url.port = \"\";\n }\n break;\n case \"protocol\":\n url.protocol = value.toLowerCase();\n url.slashes = !fn;\n break;\n case \"pathname\":\n case \"hash\":\n if (value) {\n var char = part === \"pathname\" ? \"/\" : \"#\";\n url[part] = value.charAt(0) !== char ? char + value : value;\n } else {\n url[part] = value;\n }\n break;\n case \"username\":\n case \"password\":\n url[part] = encodeURIComponent(value);\n break;\n case \"auth\":\n var index = value.indexOf(\":\");\n if (~index) {\n url.username = value.slice(0, index);\n url.username = encodeURIComponent(decodeURIComponent(url.username));\n url.password = value.slice(index + 1);\n url.password = encodeURIComponent(decodeURIComponent(url.password));\n } else {\n url.username = encodeURIComponent(decodeURIComponent(value));\n }\n }\n for (var i = 0; i < rules.length; i++) {\n var ins = rules[i];\n if (ins[4]) url[ins[1]] = url[ins[1]].toLowerCase();\n }\n url.auth = url.password ? url.username + \":\" + url.password : url.username;\n url.origin = url.protocol !== \"file:\" && isSpecial(url.protocol) && url.host ? url.protocol + \"//\" + url.host : \"null\";\n url.href = url.toString();\n return url;\n }\n function toString(stringify) {\n if (!stringify || \"function\" !== typeof stringify) stringify = qs.stringify;\n var query, url = this, host = url.host, protocol = url.protocol;\n if (protocol && protocol.charAt(protocol.length - 1) !== \":\") protocol += \":\";\n var result = protocol + (url.protocol && url.slashes || isSpecial(url.protocol) ? \"//\" : \"\");\n if (url.username) {\n result += url.username;\n if (url.password) result += \":\" + url.password;\n result += \"@\";\n } else if (url.password) {\n result += \":\" + url.password;\n result += \"@\";\n } else if (url.protocol !== \"file:\" && isSpecial(url.protocol) && !host && url.pathname !== \"/\") {\n result += \"@\";\n }\n if (host[host.length - 1] === \":\" || port.test(url.hostname) && !url.port) {\n host += \":\";\n }\n result += host + url.pathname;\n query = \"object\" === typeof url.query ? stringify(url.query) : url.query;\n if (query) result += \"?\" !== query.charAt(0) ? \"?\" + query : query;\n if (url.hash) result += url.hash;\n return result;\n }\n Url.prototype = { set, toString };\n Url.extractProtocol = extractProtocol;\n Url.location = lolcation;\n Url.trimLeft = trimLeft;\n Url.qs = qs;\n module.exports = Url;\n }\n});\n\n// node_modules/psl/data/rules.json\nvar require_rules = __commonJS({\n \"node_modules/psl/data/rules.json\"(exports, module) {\n module.exports = [\n \"ac\",\n \"com.ac\",\n \"edu.ac\",\n \"gov.ac\",\n \"net.ac\",\n \"mil.ac\",\n \"org.ac\",\n \"ad\",\n \"nom.ad\",\n \"ae\",\n \"co.ae\",\n \"net.ae\",\n \"org.ae\",\n \"sch.ae\",\n \"ac.ae\",\n \"gov.ae\",\n \"mil.ae\",\n \"aero\",\n \"accident-investigation.aero\",\n \"accident-prevention.aero\",\n \"aerobatic.aero\",\n \"aeroclub.aero\",\n \"aerodrome.aero\",\n \"agents.aero\",\n \"aircraft.aero\",\n \"airline.aero\",\n \"airport.aero\",\n \"air-surveillance.aero\",\n \"airtraffic.aero\",\n \"air-traffic-control.aero\",\n \"ambulance.aero\",\n \"amusement.aero\",\n \"association.aero\",\n \"author.aero\",\n \"ballooning.aero\",\n \"broker.aero\",\n \"caa.aero\",\n \"cargo.aero\",\n \"catering.aero\",\n \"certification.aero\",\n \"championship.aero\",\n \"charter.aero\",\n \"civilaviation.aero\",\n \"club.aero\",\n \"conference.aero\",\n \"consultant.aero\",\n \"consulting.aero\",\n \"control.aero\",\n \"council.aero\",\n \"crew.aero\",\n \"design.aero\",\n \"dgca.aero\",\n \"educator.aero\",\n \"emergency.aero\",\n \"engine.aero\",\n \"engineer.aero\",\n \"entertainment.aero\",\n \"equipment.aero\",\n \"exchange.aero\",\n \"express.aero\",\n \"federation.aero\",\n \"flight.aero\",\n \"fuel.aero\",\n \"gliding.aero\",\n \"government.aero\",\n \"groundhandling.aero\",\n \"group.aero\",\n \"hanggliding.aero\",\n \"homebuilt.aero\",\n \"insurance.aero\",\n \"journal.aero\",\n \"journalist.aero\",\n \"leasing.aero\",\n \"logistics.aero\",\n \"magazine.aero\",\n \"maintenance.aero\",\n \"media.aero\",\n \"microlight.aero\",\n \"modelling.aero\",\n \"navigation.aero\",\n \"parachuting.aero\",\n \"paragliding.aero\",\n \"passenger-association.aero\",\n \"pilot.aero\",\n \"press.aero\",\n \"production.aero\",\n \"recreation.aero\",\n \"repbody.aero\",\n \"res.aero\",\n \"research.aero\",\n \"rotorcraft.aero\",\n \"safety.aero\",\n \"scientist.aero\",\n \"services.aero\",\n \"show.aero\",\n \"skydiving.aero\",\n \"software.aero\",\n \"student.aero\",\n \"trader.aero\",\n \"trading.aero\",\n \"trainer.aero\",\n \"union.aero\",\n \"workinggroup.aero\",\n \"works.aero\",\n \"af\",\n \"gov.af\",\n \"com.af\",\n \"org.af\",\n \"net.af\",\n \"edu.af\",\n \"ag\",\n \"com.ag\",\n \"org.ag\",\n \"net.ag\",\n \"co.ag\",\n \"nom.ag\",\n \"ai\",\n \"off.ai\",\n \"com.ai\",\n \"net.ai\",\n \"org.ai\",\n \"al\",\n \"com.al\",\n \"edu.al\",\n \"gov.al\",\n \"mil.al\",\n \"net.al\",\n \"org.al\",\n \"am\",\n \"co.am\",\n \"com.am\",\n \"commune.am\",\n \"net.am\",\n \"org.am\",\n \"ao\",\n \"ed.ao\",\n \"gv.ao\",\n \"og.ao\",\n \"co.ao\",\n \"pb.ao\",\n \"it.ao\",\n \"aq\",\n \"ar\",\n \"bet.ar\",\n \"com.ar\",\n \"coop.ar\",\n \"edu.ar\",\n \"gob.ar\",\n \"gov.ar\",\n \"int.ar\",\n \"mil.ar\",\n \"musica.ar\",\n \"mutual.ar\",\n \"net.ar\",\n \"org.ar\",\n \"senasa.ar\",\n \"tur.ar\",\n \"arpa\",\n \"e164.arpa\",\n \"in-addr.arpa\",\n \"ip6.arpa\",\n \"iris.arpa\",\n \"uri.arpa\",\n \"urn.arpa\",\n \"as\",\n \"gov.as\",\n \"asia\",\n \"at\",\n \"ac.at\",\n \"co.at\",\n \"gv.at\",\n \"or.at\",\n \"sth.ac.at\",\n \"au\",\n \"com.au\",\n \"net.au\",\n \"org.au\",\n \"edu.au\",\n \"gov.au\",\n \"asn.au\",\n \"id.au\",\n \"info.au\",\n \"conf.au\",\n \"oz.au\",\n \"act.au\",\n \"nsw.au\",\n \"nt.au\",\n \"qld.au\",\n \"sa.au\",\n \"tas.au\",\n \"vic.au\",\n \"wa.au\",\n \"act.edu.au\",\n \"catholic.edu.au\",\n \"nsw.edu.au\",\n \"nt.edu.au\",\n \"qld.edu.au\",\n \"sa.edu.au\",\n \"tas.edu.au\",\n \"vic.edu.au\",\n \"wa.edu.au\",\n \"qld.gov.au\",\n \"sa.gov.au\",\n \"tas.gov.au\",\n \"vic.gov.au\",\n \"wa.gov.au\",\n \"schools.nsw.edu.au\",\n \"aw\",\n \"com.aw\",\n \"ax\",\n \"az\",\n \"com.az\",\n \"net.az\",\n \"int.az\",\n \"gov.az\",\n \"org.az\",\n \"edu.az\",\n \"info.az\",\n \"pp.az\",\n \"mil.az\",\n \"name.az\",\n \"pro.az\",\n \"biz.az\",\n \"ba\",\n \"com.ba\",\n \"edu.ba\",\n \"gov.ba\",\n \"mil.ba\",\n \"net.ba\",\n \"org.ba\",\n \"bb\",\n \"biz.bb\",\n \"co.bb\",\n \"com.bb\",\n \"edu.bb\",\n \"gov.bb\",\n \"info.bb\",\n \"net.bb\",\n \"org.bb\",\n \"store.bb\",\n \"tv.bb\",\n \"*.bd\",\n \"be\",\n \"ac.be\",\n \"bf\",\n \"gov.bf\",\n \"bg\",\n \"a.bg\",\n \"b.bg\",\n \"c.bg\",\n \"d.bg\",\n \"e.bg\",\n \"f.bg\",\n \"g.bg\",\n \"h.bg\",\n \"i.bg\",\n \"j.bg\",\n \"k.bg\",\n \"l.bg\",\n \"m.bg\",\n \"n.bg\",\n \"o.bg\",\n \"p.bg\",\n \"q.bg\",\n \"r.bg\",\n \"s.bg\",\n \"t.bg\",\n \"u.bg\",\n \"v.bg\",\n \"w.bg\",\n \"x.bg\",\n \"y.bg\",\n \"z.bg\",\n \"0.bg\",\n \"1.bg\",\n \"2.bg\",\n \"3.bg\",\n \"4.bg\",\n \"5.bg\",\n \"6.bg\",\n \"7.bg\",\n \"8.bg\",\n \"9.bg\",\n \"bh\",\n \"com.bh\",\n \"edu.bh\",\n \"net.bh\",\n \"org.bh\",\n \"gov.bh\",\n \"bi\",\n \"co.bi\",\n \"com.bi\",\n \"edu.bi\",\n \"or.bi\",\n \"org.bi\",\n \"biz\",\n \"bj\",\n \"asso.bj\",\n \"barreau.bj\",\n \"gouv.bj\",\n \"bm\",\n \"com.bm\",\n \"edu.bm\",\n \"gov.bm\",\n \"net.bm\",\n \"org.bm\",\n \"bn\",\n \"com.bn\",\n \"edu.bn\",\n \"gov.bn\",\n \"net.bn\",\n \"org.bn\",\n \"bo\",\n \"com.bo\",\n \"edu.bo\",\n \"gob.bo\",\n \"int.bo\",\n \"org.bo\",\n \"net.bo\",\n \"mil.bo\",\n \"tv.bo\",\n \"web.bo\",\n \"academia.bo\",\n \"agro.bo\",\n \"arte.bo\",\n \"blog.bo\",\n \"bolivia.bo\",\n \"ciencia.bo\",\n \"cooperativa.bo\",\n \"democracia.bo\",\n \"deporte.bo\",\n \"ecologia.bo\",\n \"economia.bo\",\n \"empresa.bo\",\n \"indigena.bo\",\n \"industria.bo\",\n \"info.bo\",\n \"medicina.bo\",\n \"movimiento.bo\",\n \"musica.bo\",\n \"natural.bo\",\n \"nombre.bo\",\n \"noticias.bo\",\n \"patria.bo\",\n \"politica.bo\",\n \"profesional.bo\",\n \"plurinacional.bo\",\n \"pueblo.bo\",\n \"revista.bo\",\n \"salud.bo\",\n \"tecnologia.bo\",\n \"tksat.bo\",\n \"transporte.bo\",\n \"wiki.bo\",\n \"br\",\n \"9guacu.br\",\n \"abc.br\",\n \"adm.br\",\n \"adv.br\",\n \"agr.br\",\n \"aju.br\",\n \"am.br\",\n \"anani.br\",\n \"aparecida.br\",\n \"app.br\",\n \"arq.br\",\n \"art.br\",\n \"ato.br\",\n \"b.br\",\n \"barueri.br\",\n \"belem.br\",\n \"bhz.br\",\n \"bib.br\",\n \"bio.br\",\n \"blog.br\",\n \"bmd.br\",\n \"boavista.br\",\n \"bsb.br\",\n \"campinagrande.br\",\n \"campinas.br\",\n \"caxias.br\",\n \"cim.br\",\n \"cng.br\",\n \"cnt.br\",\n \"com.br\",\n \"contagem.br\",\n \"coop.br\",\n \"coz.br\",\n \"cri.br\",\n \"cuiaba.br\",\n \"curitiba.br\",\n \"def.br\",\n \"des.br\",\n \"det.br\",\n \"dev.br\",\n \"ecn.br\",\n \"eco.br\",\n \"edu.br\",\n \"emp.br\",\n \"enf.br\",\n \"eng.br\",\n \"esp.br\",\n \"etc.br\",\n \"eti.br\",\n \"far.br\",\n \"feira.br\",\n \"flog.br\",\n \"floripa.br\",\n \"fm.br\",\n \"fnd.br\",\n \"fortal.br\",\n \"fot.br\",\n \"foz.br\",\n \"fst.br\",\n \"g12.br\",\n \"geo.br\",\n \"ggf.br\",\n \"goiania.br\",\n \"gov.br\",\n \"ac.gov.br\",\n \"al.gov.br\",\n \"am.gov.br\",\n \"ap.gov.br\",\n \"ba.gov.br\",\n \"ce.gov.br\",\n \"df.gov.br\",\n \"es.gov.br\",\n \"go.gov.br\",\n \"ma.gov.br\",\n \"mg.gov.br\",\n \"ms.gov.br\",\n \"mt.gov.br\",\n \"pa.gov.br\",\n \"pb.gov.br\",\n \"pe.gov.br\",\n \"pi.gov.br\",\n \"pr.gov.br\",\n \"rj.gov.br\",\n \"rn.gov.br\",\n \"ro.gov.br\",\n \"rr.gov.br\",\n \"rs.gov.br\",\n \"sc.gov.br\",\n \"se.gov.br\",\n \"sp.gov.br\",\n \"to.gov.br\",\n \"gru.br\",\n \"imb.br\",\n \"ind.br\",\n \"inf.br\",\n \"jab.br\",\n \"jampa.br\",\n \"jdf.br\",\n \"joinville.br\",\n \"jor.br\",\n \"jus.br\",\n \"leg.br\",\n \"lel.br\",\n \"log.br\",\n \"londrina.br\",\n \"macapa.br\",\n \"maceio.br\",\n \"manaus.br\",\n \"maringa.br\",\n \"mat.br\",\n \"med.br\",\n \"mil.br\",\n \"morena.br\",\n \"mp.br\",\n \"mus.br\",\n \"natal.br\",\n \"net.br\",\n \"niteroi.br\",\n \"*.nom.br\",\n \"not.br\",\n \"ntr.br\",\n \"odo.br\",\n \"ong.br\",\n \"org.br\",\n \"osasco.br\",\n \"palmas.br\",\n \"poa.br\",\n \"ppg.br\",\n \"pro.br\",\n \"psc.br\",\n \"psi.br\",\n \"pvh.br\",\n \"qsl.br\",\n \"radio.br\",\n \"rec.br\",\n \"recife.br\",\n \"rep.br\",\n \"ribeirao.br\",\n \"rio.br\",\n \"riobranco.br\",\n \"riopreto.br\",\n \"salvador.br\",\n \"sampa.br\",\n \"santamaria.br\",\n \"santoandre.br\",\n \"saobernardo.br\",\n \"saogonca.br\",\n \"seg.br\",\n \"sjc.br\",\n \"slg.br\",\n \"slz.br\",\n \"sorocaba.br\",\n \"srv.br\",\n \"taxi.br\",\n \"tc.br\",\n \"tec.br\",\n \"teo.br\",\n \"the.br\",\n \"tmp.br\",\n \"trd.br\",\n \"tur.br\",\n \"tv.br\",\n \"udi.br\",\n \"vet.br\",\n \"vix.br\",\n \"vlog.br\",\n \"wiki.br\",\n \"zlg.br\",\n \"bs\",\n \"com.bs\",\n \"net.bs\",\n \"org.bs\",\n \"edu.bs\",\n \"gov.bs\",\n \"bt\",\n \"com.bt\",\n \"edu.bt\",\n \"gov.bt\",\n \"net.bt\",\n \"org.bt\",\n \"bv\",\n \"bw\",\n \"co.bw\",\n \"org.bw\",\n \"by\",\n \"gov.by\",\n \"mil.by\",\n \"com.by\",\n \"of.by\",\n \"bz\",\n \"com.bz\",\n \"net.bz\",\n \"org.bz\",\n \"edu.bz\",\n \"gov.bz\",\n \"ca\",\n \"ab.ca\",\n \"bc.ca\",\n \"mb.ca\",\n \"nb.ca\",\n \"nf.ca\",\n \"nl.ca\",\n \"ns.ca\",\n \"nt.ca\",\n \"nu.ca\",\n \"on.ca\",\n \"pe.ca\",\n \"qc.ca\",\n \"sk.ca\",\n \"yk.ca\",\n \"gc.ca\",\n \"cat\",\n \"cc\",\n \"cd\",\n \"gov.cd\",\n \"cf\",\n \"cg\",\n \"ch\",\n \"ci\",\n \"org.ci\",\n \"or.ci\",\n \"com.ci\",\n \"co.ci\",\n \"edu.ci\",\n \"ed.ci\",\n \"ac.ci\",\n \"net.ci\",\n \"go.ci\",\n \"asso.ci\",\n \"a\\xE9roport.ci\",\n \"int.ci\",\n \"presse.ci\",\n \"md.ci\",\n \"gouv.ci\",\n \"*.ck\",\n \"!www.ck\",\n \"cl\",\n \"co.cl\",\n \"gob.cl\",\n \"gov.cl\",\n \"mil.cl\",\n \"cm\",\n \"co.cm\",\n \"com.cm\",\n \"gov.cm\",\n \"net.cm\",\n \"cn\",\n \"ac.cn\",\n \"com.cn\",\n \"edu.cn\",\n \"gov.cn\",\n \"net.cn\",\n \"org.cn\",\n \"mil.cn\",\n \"\\u516C\\u53F8.cn\",\n \"\\u7F51\\u7EDC.cn\",\n \"\\u7DB2\\u7D61.cn\",\n \"ah.cn\",\n \"bj.cn\",\n \"cq.cn\",\n \"fj.cn\",\n \"gd.cn\",\n \"gs.cn\",\n \"gz.cn\",\n \"gx.cn\",\n \"ha.cn\",\n \"hb.cn\",\n \"he.cn\",\n \"hi.cn\",\n \"hl.cn\",\n \"hn.cn\",\n \"jl.cn\",\n \"js.cn\",\n \"jx.cn\",\n \"ln.cn\",\n \"nm.cn\",\n \"nx.cn\",\n \"qh.cn\",\n \"sc.cn\",\n \"sd.cn\",\n \"sh.cn\",\n \"sn.cn\",\n \"sx.cn\",\n \"tj.cn\",\n \"xj.cn\",\n \"xz.cn\",\n \"yn.cn\",\n \"zj.cn\",\n \"hk.cn\",\n \"mo.cn\",\n \"tw.cn\",\n \"co\",\n \"arts.co\",\n \"com.co\",\n \"edu.co\",\n \"firm.co\",\n \"gov.co\",\n \"info.co\",\n \"int.co\",\n \"mil.co\",\n \"net.co\",\n \"nom.co\",\n \"org.co\",\n \"rec.co\",\n \"web.co\",\n \"com\",\n \"coop\",\n \"cr\",\n \"ac.cr\",\n \"co.cr\",\n \"ed.cr\",\n \"fi.cr\",\n \"go.cr\",\n \"or.cr\",\n \"sa.cr\",\n \"cu\",\n \"com.cu\",\n \"edu.cu\",\n \"org.cu\",\n \"net.cu\",\n \"gov.cu\",\n \"inf.cu\",\n \"cv\",\n \"com.cv\",\n \"edu.cv\",\n \"int.cv\",\n \"nome.cv\",\n \"org.cv\",\n \"cw\",\n \"com.cw\",\n \"edu.cw\",\n \"net.cw\",\n \"org.cw\",\n \"cx\",\n \"gov.cx\",\n \"cy\",\n \"ac.cy\",\n \"biz.cy\",\n \"com.cy\",\n \"ekloges.cy\",\n \"gov.cy\",\n \"ltd.cy\",\n \"mil.cy\",\n \"net.cy\",\n \"org.cy\",\n \"press.cy\",\n \"pro.cy\",\n \"tm.cy\",\n \"cz\",\n \"de\",\n \"dj\",\n \"dk\",\n \"dm\",\n \"com.dm\",\n \"net.dm\",\n \"org.dm\",\n \"edu.dm\",\n \"gov.dm\",\n \"do\",\n \"art.do\",\n \"com.do\",\n \"edu.do\",\n \"gob.do\",\n \"gov.do\",\n \"mil.do\",\n \"net.do\",\n \"org.do\",\n \"sld.do\",\n \"web.do\",\n \"dz\",\n \"art.dz\",\n \"asso.dz\",\n \"com.dz\",\n \"edu.dz\",\n \"gov.dz\",\n \"org.dz\",\n \"net.dz\",\n \"pol.dz\",\n \"soc.dz\",\n \"tm.dz\",\n \"ec\",\n \"com.ec\",\n \"info.ec\",\n \"net.ec\",\n \"fin.ec\",\n \"k12.ec\",\n \"med.ec\",\n \"pro.ec\",\n \"org.ec\",\n \"edu.ec\",\n \"gov.ec\",\n \"gob.ec\",\n \"mil.ec\",\n \"edu\",\n \"ee\",\n \"edu.ee\",\n \"gov.ee\",\n \"riik.ee\",\n \"lib.ee\",\n \"med.ee\",\n \"com.ee\",\n \"pri.ee\",\n \"aip.ee\",\n \"org.ee\",\n \"fie.ee\",\n \"eg\",\n \"com.eg\",\n \"edu.eg\",\n \"eun.eg\",\n \"gov.eg\",\n \"mil.eg\",\n \"name.eg\",\n \"net.eg\",\n \"org.eg\",\n \"sci.eg\",\n \"*.er\",\n \"es\",\n \"com.es\",\n \"nom.es\",\n \"org.es\",\n \"gob.es\",\n \"edu.es\",\n \"et\",\n \"com.et\",\n \"gov.et\",\n \"org.et\",\n \"edu.et\",\n \"biz.et\",\n \"name.et\",\n \"info.et\",\n \"net.et\",\n \"eu\",\n \"fi\",\n \"aland.fi\",\n \"fj\",\n \"ac.fj\",\n \"biz.fj\",\n \"com.fj\",\n \"gov.fj\",\n \"info.fj\",\n \"mil.fj\",\n \"name.fj\",\n \"net.fj\",\n \"org.fj\",\n \"pro.fj\",\n \"*.fk\",\n \"com.fm\",\n \"edu.fm\",\n \"net.fm\",\n \"org.fm\",\n \"fm\",\n \"fo\",\n \"fr\",\n \"asso.fr\",\n \"com.fr\",\n \"gouv.fr\",\n \"nom.fr\",\n \"prd.fr\",\n \"tm.fr\",\n \"aeroport.fr\",\n \"avocat.fr\",\n \"avoues.fr\",\n \"cci.fr\",\n \"chambagri.fr\",\n \"chirurgiens-dentistes.fr\",\n \"experts-comptables.fr\",\n \"geometre-expert.fr\",\n \"greta.fr\",\n \"huissier-justice.fr\",\n \"medecin.fr\",\n \"notaires.fr\",\n \"pharmacien.fr\",\n \"port.fr\",\n \"veterinaire.fr\",\n \"ga\",\n \"gb\",\n \"edu.gd\",\n \"gov.gd\",\n \"gd\",\n \"ge\",\n \"com.ge\",\n \"edu.ge\",\n \"gov.ge\",\n \"org.ge\",\n \"mil.ge\",\n \"net.ge\",\n \"pvt.ge\",\n \"gf\",\n \"gg\",\n \"co.gg\",\n \"net.gg\",\n \"org.gg\",\n \"gh\",\n \"com.gh\",\n \"edu.gh\",\n \"gov.gh\",\n \"org.gh\",\n \"mil.gh\",\n \"gi\",\n \"com.gi\",\n \"ltd.gi\",\n \"gov.gi\",\n \"mod.gi\",\n \"edu.gi\",\n \"org.gi\",\n \"gl\",\n \"co.gl\",\n \"com.gl\",\n \"edu.gl\",\n \"net.gl\",\n \"org.gl\",\n \"gm\",\n \"gn\",\n \"ac.gn\",\n \"com.gn\",\n \"edu.gn\",\n \"gov.gn\",\n \"org.gn\",\n \"net.gn\",\n \"gov\",\n \"gp\",\n \"com.gp\",\n \"net.gp\",\n \"mobi.gp\",\n \"edu.gp\",\n \"org.gp\",\n \"asso.gp\",\n \"gq\",\n \"gr\",\n \"com.gr\",\n \"edu.gr\",\n \"net.gr\",\n \"org.gr\",\n \"gov.gr\",\n \"gs\",\n \"gt\",\n \"com.gt\",\n \"edu.gt\",\n \"gob.gt\",\n \"ind.gt\",\n \"mil.gt\",\n \"net.gt\",\n \"org.gt\",\n \"gu\",\n \"com.gu\",\n \"edu.gu\",\n \"gov.gu\",\n \"guam.gu\",\n \"info.gu\",\n \"net.gu\",\n \"org.gu\",\n \"web.gu\",\n \"gw\",\n \"gy\",\n \"co.gy\",\n \"com.gy\",\n \"edu.gy\",\n \"gov.gy\",\n \"net.gy\",\n \"org.gy\",\n \"hk\",\n \"com.hk\",\n \"edu.hk\",\n \"gov.hk\",\n \"idv.hk\",\n \"net.hk\",\n \"org.hk\",\n \"\\u516C\\u53F8.hk\",\n \"\\u6559\\u80B2.hk\",\n \"\\u654E\\u80B2.hk\",\n \"\\u653F\\u5E9C.hk\",\n \"\\u500B\\u4EBA.hk\",\n \"\\u4E2A\\uFFFD\\uFFFD.hk\",\n \"\\u7B87\\u4EBA.hk\",\n \"\\u7DB2\\u7EDC.hk\",\n \"\\u7F51\\u7EDC.hk\",\n \"\\u7EC4\\u7E54.hk\",\n \"\\u7DB2\\u7D61.hk\",\n \"\\u7F51\\u7D61.hk\",\n \"\\u7EC4\\u7EC7.hk\",\n \"\\u7D44\\u7E54.hk\",\n \"\\u7D44\\u7EC7.hk\",\n \"hm\",\n \"hn\",\n \"com.hn\",\n \"edu.hn\",\n \"org.hn\",\n \"net.hn\",\n \"mil.hn\",\n \"gob.hn\",\n \"hr\",\n \"iz.hr\",\n \"from.hr\",\n \"name.hr\",\n \"com.hr\",\n \"ht\",\n \"com.ht\",\n \"shop.ht\",\n \"firm.ht\",\n \"info.ht\",\n \"adult.ht\",\n \"net.ht\",\n \"pro.ht\",\n \"org.ht\",\n \"med.ht\",\n \"art.ht\",\n \"coop.ht\",\n \"pol.ht\",\n \"asso.ht\",\n \"edu.ht\",\n \"rel.ht\",\n \"gouv.ht\",\n \"perso.ht\",\n \"hu\",\n \"co.hu\",\n \"info.hu\",\n \"org.hu\",\n \"priv.hu\",\n \"sport.hu\",\n \"tm.hu\",\n \"2000.hu\",\n \"agrar.hu\",\n \"bolt.hu\",\n \"casino.hu\",\n \"city.hu\",\n \"erotica.hu\",\n \"erotika.hu\",\n \"film.hu\",\n \"forum.hu\",\n \"games.hu\",\n \"hotel.hu\",\n \"ingatlan.hu\",\n \"jogasz.hu\",\n \"konyvelo.hu\",\n \"lakas.hu\",\n \"media.hu\",\n \"news.hu\",\n \"reklam.hu\",\n \"sex.hu\",\n \"shop.hu\",\n \"suli.hu\",\n \"szex.hu\",\n \"tozsde.hu\",\n \"utazas.hu\",\n \"video.hu\",\n \"id\",\n \"ac.id\",\n \"biz.id\",\n \"co.id\",\n \"desa.id\",\n \"go.id\",\n \"mil.id\",\n \"my.id\",\n \"net.id\",\n \"or.id\",\n \"ponpes.id\",\n \"sch.id\",\n \"web.id\",\n \"ie\",\n \"gov.ie\",\n \"il\",\n \"ac.il\",\n \"co.il\",\n \"gov.il\",\n \"idf.il\",\n \"k12.il\",\n \"muni.il\",\n \"net.il\",\n \"org.il\",\n \"im\",\n \"ac.im\",\n \"co.im\",\n \"com.im\",\n \"ltd.co.im\",\n \"net.im\",\n \"org.im\",\n \"plc.co.im\",\n \"tt.im\",\n \"tv.im\",\n \"in\",\n \"co.in\",\n \"firm.in\",\n \"net.in\",\n \"org.in\",\n \"gen.in\",\n \"ind.in\",\n \"nic.in\",\n \"ac.in\",\n \"edu.in\",\n \"res.in\",\n \"gov.in\",\n \"mil.in\",\n \"info\",\n \"int\",\n \"eu.int\",\n \"io\",\n \"com.io\",\n \"iq\",\n \"gov.iq\",\n \"edu.iq\",\n \"mil.iq\",\n \"com.iq\",\n \"org.iq\",\n \"net.iq\",\n \"ir\",\n \"ac.ir\",\n \"co.ir\",\n \"gov.ir\",\n \"id.ir\",\n \"net.ir\",\n \"org.ir\",\n \"sch.ir\",\n \"\\u0627\\u06CC\\u0631\\u0627\\u0646.ir\",\n \"\\u0627\\u064A\\u0631\\u0627\\u0646.ir\",\n \"is\",\n \"net.is\",\n \"com.is\",\n \"edu.is\",\n \"gov.is\",\n \"org.is\",\n \"int.is\",\n \"it\",\n \"gov.it\",\n \"edu.it\",\n \"abr.it\",\n \"abruzzo.it\",\n \"aosta-valley.it\",\n \"aostavalley.it\",\n \"bas.it\",\n \"basilicata.it\",\n \"cal.it\",\n \"calabria.it\",\n \"cam.it\",\n \"campania.it\",\n \"emilia-romagna.it\",\n \"emiliaromagna.it\",\n \"emr.it\",\n \"friuli-v-giulia.it\",\n \"friuli-ve-giulia.it\",\n \"friuli-vegiulia.it\",\n \"friuli-venezia-giulia.it\",\n \"friuli-veneziagiulia.it\",\n \"friuli-vgiulia.it\",\n \"friuliv-giulia.it\",\n \"friulive-giulia.it\",\n \"friulivegiulia.it\",\n \"friulivenezia-giulia.it\",\n \"friuliveneziagiulia.it\",\n \"friulivgiulia.it\",\n \"fvg.it\",\n \"laz.it\",\n \"lazio.it\",\n \"lig.it\",\n \"liguria.it\",\n \"lom.it\",\n \"lombardia.it\",\n \"lombardy.it\",\n \"lucania.it\",\n \"mar.it\",\n \"marche.it\",\n \"mol.it\",\n \"molise.it\",\n \"piedmont.it\",\n \"piemonte.it\",\n \"pmn.it\",\n \"pug.it\",\n \"puglia.it\",\n \"sar.it\",\n \"sardegna.it\",\n \"sardinia.it\",\n \"sic.it\",\n \"sicilia.it\",\n \"sicily.it\",\n \"taa.it\",\n \"tos.it\",\n \"toscana.it\",\n \"trentin-sud-tirol.it\",\n \"trentin-s\\xFCd-tirol.it\",\n \"trentin-sudtirol.it\",\n \"trentin-s\\xFCdtirol.it\",\n \"trentin-sued-tirol.it\",\n \"trentin-suedtirol.it\",\n \"trentino-a-adige.it\",\n \"trentino-aadige.it\",\n \"trentino-alto-adige.it\",\n \"trentino-altoadige.it\",\n \"trentino-s-tirol.it\",\n \"trentino-stirol.it\",\n \"trentino-sud-tirol.it\",\n \"trentino-s\\xFCd-tirol.it\",\n \"trentino-sudtirol.it\",\n \"trentino-s\\xFCdtirol.it\",\n \"trentino-sued-tirol.it\",\n \"trentino-suedtirol.it\",\n \"trentino.it\",\n \"trentinoa-adige.it\",\n \"trentinoaadige.it\",\n \"trentinoalto-adige.it\",\n \"trentinoaltoadige.it\",\n \"trentinos-tirol.it\",\n \"trentinostirol.it\",\n \"trentinosud-tirol.it\",\n \"trentinos\\xFCd-tirol.it\",\n \"trentinosudtirol.it\",\n \"trentinos\\xFCdtirol.it\",\n \"trentinosued-tirol.it\",\n \"trentinosuedtirol.it\",\n \"trentinsud-tirol.it\",\n \"trentins\\xFCd-tirol.it\",\n \"trentinsudtirol.it\",\n \"trentins\\xFCdtirol.it\",\n \"trentinsued-tirol.it\",\n \"trentinsuedtirol.it\",\n \"tuscany.it\",\n \"umb.it\",\n \"umbria.it\",\n \"val-d-aosta.it\",\n \"val-daosta.it\",\n \"vald-aosta.it\",\n \"valdaosta.it\",\n \"valle-aosta.it\",\n \"valle-d-aosta.it\",\n \"valle-daosta.it\",\n \"valleaosta.it\",\n \"valled-aosta.it\",\n \"valledaosta.it\",\n \"vallee-aoste.it\",\n \"vall\\xE9e-aoste.it\",\n \"vallee-d-aoste.it\",\n \"vall\\xE9e-d-aoste.it\",\n \"valleeaoste.it\",\n \"vall\\xE9eaoste.it\",\n \"valleedaoste.it\",\n \"vall\\xE9edaoste.it\",\n \"vao.it\",\n \"vda.it\",\n \"ven.it\",\n \"veneto.it\",\n \"ag.it\",\n \"agrigento.it\",\n \"al.it\",\n \"alessandria.it\",\n \"alto-adige.it\",\n \"altoadige.it\",\n \"an.it\",\n \"ancona.it\",\n \"andria-barletta-trani.it\",\n \"andria-trani-barletta.it\",\n \"andriabarlettatrani.it\",\n \"andriatranibarletta.it\",\n \"ao.it\",\n \"aosta.it\",\n \"aoste.it\",\n \"ap.it\",\n \"aq.it\",\n \"aquila.it\",\n \"ar.it\",\n \"arezzo.it\",\n \"ascoli-piceno.it\",\n \"ascolipiceno.it\",\n \"asti.it\",\n \"at.it\",\n \"av.it\",\n \"avellino.it\",\n \"ba.it\",\n \"balsan-sudtirol.it\",\n \"balsan-s\\xFCdtirol.it\",\n \"balsan-suedtirol.it\",\n \"balsan.it\",\n \"bari.it\",\n \"barletta-trani-andria.it\",\n \"barlettatraniandria.it\",\n \"belluno.it\",\n \"benevento.it\",\n \"bergamo.it\",\n \"bg.it\",\n \"bi.it\",\n \"biella.it\",\n \"bl.it\",\n \"bn.it\",\n \"bo.it\",\n \"bologna.it\",\n \"bolzano-altoadige.it\",\n \"bolzano.it\",\n \"bozen-sudtirol.it\",\n \"bozen-s\\xFCdtirol.it\",\n \"bozen-suedtirol.it\",\n \"bozen.it\",\n \"br.it\",\n \"brescia.it\",\n \"brindisi.it\",\n \"bs.it\",\n \"bt.it\",\n \"bulsan-sudtirol.it\",\n \"bulsan-s\\xFCdtirol.it\",\n \"bulsan-suedtirol.it\",\n \"bulsan.it\",\n \"bz.it\",\n \"ca.it\",\n \"cagliari.it\",\n \"caltanissetta.it\",\n \"campidano-medio.it\",\n \"campidanomedio.it\",\n \"campobasso.it\",\n \"carbonia-iglesias.it\",\n \"carboniaiglesias.it\",\n \"carrara-massa.it\",\n \"carraramassa.it\",\n \"caserta.it\",\n \"catania.it\",\n \"catanzaro.it\",\n \"cb.it\",\n \"ce.it\",\n \"cesena-forli.it\",\n \"cesena-forl\\xEC.it\",\n \"cesenaforli.it\",\n \"cesenaforl\\xEC.it\",\n \"ch.it\",\n \"chieti.it\",\n \"ci.it\",\n \"cl.it\",\n \"cn.it\",\n \"co.it\",\n \"como.it\",\n \"cosenza.it\",\n \"cr.it\",\n \"cremona.it\",\n \"crotone.it\",\n \"cs.it\",\n \"ct.it\",\n \"cuneo.it\",\n \"cz.it\",\n \"dell-ogliastra.it\",\n \"dellogliastra.it\",\n \"en.it\",\n \"enna.it\",\n \"fc.it\",\n \"fe.it\",\n \"fermo.it\",\n \"ferrara.it\",\n \"fg.it\",\n \"fi.it\",\n \"firenze.it\",\n \"florence.it\",\n \"fm.it\",\n \"foggia.it\",\n \"forli-cesena.it\",\n \"forl\\xEC-cesena.it\",\n \"forlicesena.it\",\n \"forl\\xECcesena.it\",\n \"fr.it\",\n \"frosinone.it\",\n \"ge.it\",\n \"genoa.it\",\n \"genova.it\",\n \"go.it\",\n \"gorizia.it\",\n \"gr.it\",\n \"grosseto.it\",\n \"iglesias-carbonia.it\",\n \"iglesiascarbonia.it\",\n \"im.it\",\n \"imperia.it\",\n \"is.it\",\n \"isernia.it\",\n \"kr.it\",\n \"la-spezia.it\",\n \"laquila.it\",\n \"laspezia.it\",\n \"latina.it\",\n \"lc.it\",\n \"le.it\",\n \"lecce.it\",\n \"lecco.it\",\n \"li.it\",\n \"livorno.it\",\n \"lo.it\",\n \"lodi.it\",\n \"lt.it\",\n \"lu.it\",\n \"lucca.it\",\n \"macerata.it\",\n \"mantova.it\",\n \"massa-carrara.it\",\n \"massacarrara.it\",\n \"matera.it\",\n \"mb.it\",\n \"mc.it\",\n \"me.it\",\n \"medio-campidano.it\",\n \"mediocampidano.it\",\n \"messina.it\",\n \"mi.it\",\n \"milan.it\",\n \"milano.it\",\n \"mn.it\",\n \"mo.it\",\n \"modena.it\",\n \"monza-brianza.it\",\n \"monza-e-della-brianza.it\",\n \"monza.it\",\n \"monzabrianza.it\",\n \"monzaebrianza.it\",\n \"monzaedellabrianza.it\",\n \"ms.it\",\n \"mt.it\",\n \"na.it\",\n \"naples.it\",\n \"napoli.it\",\n \"no.it\",\n \"novara.it\",\n \"nu.it\",\n \"nuoro.it\",\n \"og.it\",\n \"ogliastra.it\",\n \"olbia-tempio.it\",\n \"olbiatempio.it\",\n \"or.it\",\n \"oristano.it\",\n \"ot.it\",\n \"pa.it\",\n \"padova.it\",\n \"padua.it\",\n \"palermo.it\",\n \"parma.it\",\n \"pavia.it\",\n \"pc.it\",\n \"pd.it\",\n \"pe.it\",\n \"perugia.it\",\n \"pesaro-urbino.it\",\n \"pesarourbino.it\",\n \"pescara.it\",\n \"pg.it\",\n \"pi.it\",\n \"piacenza.it\",\n \"pisa.it\",\n \"pistoia.it\",\n \"pn.it\",\n \"po.it\",\n \"pordenone.it\",\n \"potenza.it\",\n \"pr.it\",\n \"prato.it\",\n \"pt.it\",\n \"pu.it\",\n \"pv.it\",\n \"pz.it\",\n \"ra.it\",\n \"ragusa.it\",\n \"ravenna.it\",\n \"rc.it\",\n \"re.it\",\n \"reggio-calabria.it\",\n \"reggio-emilia.it\",\n \"reggiocalabria.it\",\n \"reggioemilia.it\",\n \"rg.it\",\n \"ri.it\",\n \"rieti.it\",\n \"rimini.it\",\n \"rm.it\",\n \"rn.it\",\n \"ro.it\",\n \"roma.it\",\n \"rome.it\",\n \"rovigo.it\",\n \"sa.it\",\n \"salerno.it\",\n \"sassari.it\",\n \"savona.it\",\n \"si.it\",\n \"siena.it\",\n \"siracusa.it\",\n \"so.it\",\n \"sondrio.it\",\n \"sp.it\",\n \"sr.it\",\n \"ss.it\",\n \"suedtirol.it\",\n \"s\\xFCdtirol.it\",\n \"sv.it\",\n \"ta.it\",\n \"taranto.it\",\n \"te.it\",\n \"tempio-olbia.it\",\n \"tempioolbia.it\",\n \"teramo.it\",\n \"terni.it\",\n \"tn.it\",\n \"to.it\",\n \"torino.it\",\n \"tp.it\",\n \"tr.it\",\n \"trani-andria-barletta.it\",\n \"trani-barletta-andria.it\",\n \"traniandriabarletta.it\",\n \"tranibarlettaandria.it\",\n \"trapani.it\",\n \"trento.it\",\n \"treviso.it\",\n \"trieste.it\",\n \"ts.it\",\n \"turin.it\",\n \"tv.it\",\n \"ud.it\",\n \"udine.it\",\n \"urbino-pesaro.it\",\n \"urbinopesaro.it\",\n \"va.it\",\n \"varese.it\",\n \"vb.it\",\n \"vc.it\",\n \"ve.it\",\n \"venezia.it\",\n \"venice.it\",\n \"verbania.it\",\n \"vercelli.it\",\n \"verona.it\",\n \"vi.it\",\n \"vibo-valentia.it\",\n \"vibovalentia.it\",\n \"vicenza.it\",\n \"viterbo.it\",\n \"vr.it\",\n \"vs.it\",\n \"vt.it\",\n \"vv.it\",\n \"je\",\n \"co.je\",\n \"net.je\",\n \"org.je\",\n \"*.jm\",\n \"jo\",\n \"com.jo\",\n \"org.jo\",\n \"net.jo\",\n \"edu.jo\",\n \"sch.jo\",\n \"gov.jo\",\n \"mil.jo\",\n \"name.jo\",\n \"jobs\",\n \"jp\",\n \"ac.jp\",\n \"ad.jp\",\n \"co.jp\",\n \"ed.jp\",\n \"go.jp\",\n \"gr.jp\",\n \"lg.jp\",\n \"ne.jp\",\n \"or.jp\",\n \"aichi.jp\",\n \"akita.jp\",\n \"aomori.jp\",\n \"chiba.jp\",\n \"ehime.jp\",\n \"fukui.jp\",\n \"fukuoka.jp\",\n \"fukushima.jp\",\n \"gifu.jp\",\n \"gunma.jp\",\n \"hiroshima.jp\",\n \"hokkaido.jp\",\n \"hyogo.jp\",\n \"ibaraki.jp\",\n \"ishikawa.jp\",\n \"iwate.jp\",\n \"kagawa.jp\",\n \"kagoshima.jp\",\n \"kanagawa.jp\",\n \"kochi.jp\",\n \"kumamoto.jp\",\n \"kyoto.jp\",\n \"mie.jp\",\n \"miyagi.jp\",\n \"miyazaki.jp\",\n \"nagano.jp\",\n \"nagasaki.jp\",\n \"nara.jp\",\n \"niigata.jp\",\n \"oita.jp\",\n \"okayama.jp\",\n \"okinawa.jp\",\n \"osaka.jp\",\n \"saga.jp\",\n \"saitama.jp\",\n \"shiga.jp\",\n \"shimane.jp\",\n \"shizuoka.jp\",\n \"tochigi.jp\",\n \"tokushima.jp\",\n \"tokyo.jp\",\n \"tottori.jp\",\n \"toyama.jp\",\n \"wakayama.jp\",\n \"yamagata.jp\",\n \"yamaguchi.jp\",\n \"yamanashi.jp\",\n \"\\u6803\\u6728.jp\",\n \"\\u611B\\u77E5.jp\",\n \"\\u611B\\u5A9B.jp\",\n \"\\u5175\\u5EAB.jp\",\n \"\\u718A\\u672C.jp\",\n \"\\u8328\\u57CE.jp\",\n \"\\u5317\\u6D77\\u9053.jp\",\n \"\\u5343\\u8449.jp\",\n \"\\u548C\\u6B4C\\u5C71.jp\",\n \"\\u9577\\u5D0E.jp\",\n \"\\u9577\\u91CE.jp\",\n \"\\u65B0\\u6F5F.jp\",\n \"\\u9752\\u68EE.jp\",\n \"\\u9759\\u5CA1.jp\",\n \"\\u6771\\u4EAC.jp\",\n \"\\u77F3\\u5DDD.jp\",\n \"\\u57FC\\u7389.jp\",\n \"\\u4E09\\u91CD.jp\",\n \"\\u4EAC\\u90FD.jp\",\n \"\\u4F50\\u8CC0.jp\",\n \"\\u5927\\u5206.jp\",\n \"\\u5927\\u962A.jp\",\n \"\\u5948\\u826F.jp\",\n \"\\u5BAE\\u57CE.jp\",\n \"\\u5BAE\\u5D0E.jp\",\n \"\\u5BCC\\u5C71.jp\",\n \"\\u5C71\\u53E3.jp\",\n \"\\u5C71\\u5F62.jp\",\n \"\\u5C71\\u68A8.jp\",\n \"\\u5CA9\\u624B.jp\",\n \"\\u5C90\\u961C.jp\",\n \"\\u5CA1\\u5C71.jp\",\n \"\\u5CF6\\u6839.jp\",\n \"\\u5E83\\u5CF6.jp\",\n \"\\u5FB3\\u5CF6.jp\",\n \"\\u6C96\\u7E04.jp\",\n \"\\u6ECB\\u8CC0.jp\",\n \"\\u795E\\u5948\\u5DDD.jp\",\n \"\\u798F\\u4E95.jp\",\n \"\\u798F\\u5CA1.jp\",\n \"\\u798F\\u5CF6.jp\",\n \"\\u79CB\\u7530.jp\",\n \"\\u7FA4\\u99AC.jp\",\n \"\\u9999\\u5DDD.jp\",\n \"\\u9AD8\\u77E5.jp\",\n \"\\u9CE5\\u53D6.jp\",\n \"\\u9E7F\\u5150\\u5CF6.jp\",\n \"*.kawasaki.jp\",\n \"*.kitakyushu.jp\",\n \"*.kobe.jp\",\n \"*.nagoya.jp\",\n \"*.sapporo.jp\",\n \"*.sendai.jp\",\n \"*.yokohama.jp\",\n \"!city.kawasaki.jp\",\n \"!city.kitakyushu.jp\",\n \"!city.kobe.jp\",\n \"!city.nagoya.jp\",\n \"!city.sapporo.jp\",\n \"!city.sendai.jp\",\n \"!city.yokohama.jp\",\n \"aisai.aichi.jp\",\n \"ama.aichi.jp\",\n \"anjo.aichi.jp\",\n \"asuke.aichi.jp\",\n \"chiryu.aichi.jp\",\n \"chita.aichi.jp\",\n \"fuso.aichi.jp\",\n \"gamagori.aichi.jp\",\n \"handa.aichi.jp\",\n \"hazu.aichi.jp\",\n \"hekinan.aichi.jp\",\n \"higashiura.aichi.jp\",\n \"ichinomiya.aichi.jp\",\n \"inazawa.aichi.jp\",\n \"inuyama.aichi.jp\",\n \"isshiki.aichi.jp\",\n \"iwakura.aichi.jp\",\n \"kanie.aichi.jp\",\n \"kariya.aichi.jp\",\n \"kasugai.aichi.jp\",\n \"kira.aichi.jp\",\n \"kiyosu.aichi.jp\",\n \"komaki.aichi.jp\",\n \"konan.aichi.jp\",\n \"kota.aichi.jp\",\n \"mihama.aichi.jp\",\n \"miyoshi.aichi.jp\",\n \"nishio.aichi.jp\",\n \"nisshin.aichi.jp\",\n \"obu.aichi.jp\",\n \"oguchi.aichi.jp\",\n \"oharu.aichi.jp\",\n \"okazaki.aichi.jp\",\n \"owariasahi.aichi.jp\",\n \"seto.aichi.jp\",\n \"shikatsu.aichi.jp\",\n \"shinshiro.aichi.jp\",\n \"shitara.aichi.jp\",\n \"tahara.aichi.jp\",\n \"takahama.aichi.jp\",\n \"tobishima.aichi.jp\",\n \"toei.aichi.jp\",\n \"togo.aichi.jp\",\n \"tokai.aichi.jp\",\n \"tokoname.aichi.jp\",\n \"toyoake.aichi.jp\",\n \"toyohashi.aichi.jp\",\n \"toyokawa.aichi.jp\",\n \"toyone.aichi.jp\",\n \"toyota.aichi.jp\",\n \"tsushima.aichi.jp\",\n \"yatomi.aichi.jp\",\n \"akita.akita.jp\",\n \"daisen.akita.jp\",\n \"fujisato.akita.jp\",\n \"gojome.akita.jp\",\n \"hachirogata.akita.jp\",\n \"happou.akita.jp\",\n \"higashinaruse.akita.jp\",\n \"honjo.akita.jp\",\n \"honjyo.akita.jp\",\n \"ikawa.akita.jp\",\n \"kamikoani.akita.jp\",\n \"kamioka.akita.jp\",\n \"katagami.akita.jp\",\n \"kazuno.akita.jp\",\n \"kitaakita.akita.jp\",\n \"kosaka.akita.jp\",\n \"kyowa.akita.jp\",\n \"misato.akita.jp\",\n \"mitane.akita.jp\",\n \"moriyoshi.akita.jp\",\n \"nikaho.akita.jp\",\n \"noshiro.akita.jp\",\n \"odate.akita.jp\",\n \"oga.akita.jp\",\n \"ogata.akita.jp\",\n \"semboku.akita.jp\",\n \"yokote.akita.jp\",\n \"yurihonjo.akita.jp\",\n \"aomori.aomori.jp\",\n \"gonohe.aomori.jp\",\n \"hachinohe.aomori.jp\",\n \"hashikami.aomori.jp\",\n \"hiranai.aomori.jp\",\n \"hirosaki.aomori.jp\",\n \"itayanagi.aomori.jp\",\n \"kuroishi.aomori.jp\",\n \"misawa.aomori.jp\",\n \"mutsu.aomori.jp\",\n \"nakadomari.aomori.jp\",\n \"noheji.aomori.jp\",\n \"oirase.aomori.jp\",\n \"owani.aomori.jp\",\n \"rokunohe.aomori.jp\",\n \"sannohe.aomori.jp\",\n \"shichinohe.aomori.jp\",\n \"shingo.aomori.jp\",\n \"takko.aomori.jp\",\n \"towada.aomori.jp\",\n \"tsugaru.aomori.jp\",\n \"tsuruta.aomori.jp\",\n \"abiko.chiba.jp\",\n \"asahi.chiba.jp\",\n \"chonan.chiba.jp\",\n \"chosei.chiba.jp\",\n \"choshi.chiba.jp\",\n \"chuo.chiba.jp\",\n \"funabashi.chiba.jp\",\n \"futtsu.chiba.jp\",\n \"hanamigawa.chiba.jp\",\n \"ichihara.chiba.jp\",\n \"ichikawa.chiba.jp\",\n \"ichinomiya.chiba.jp\",\n \"inzai.chiba.jp\",\n \"isumi.chiba.jp\",\n \"kamagaya.chiba.jp\",\n \"kamogawa.chiba.jp\",\n \"kashiwa.chiba.jp\",\n \"katori.chiba.jp\",\n \"katsuura.chiba.jp\",\n \"kimitsu.chiba.jp\",\n \"kisarazu.chiba.jp\",\n \"kozaki.chiba.jp\",\n \"kujukuri.chiba.jp\",\n \"kyonan.chiba.jp\",\n \"matsudo.chiba.jp\",\n \"midori.chiba.jp\",\n \"mihama.chiba.jp\",\n \"minamiboso.chiba.jp\",\n \"mobara.chiba.jp\",\n \"mutsuzawa.chiba.jp\",\n \"nagara.chiba.jp\",\n \"nagareyama.chiba.jp\",\n \"narashino.chiba.jp\",\n \"narita.chiba.jp\",\n \"noda.chiba.jp\",\n \"oamishirasato.chiba.jp\",\n \"omigawa.chiba.jp\",\n \"onjuku.chiba.jp\",\n \"otaki.chiba.jp\",\n \"sakae.chiba.jp\",\n \"sakura.chiba.jp\",\n \"shimofusa.chiba.jp\",\n \"shirako.chiba.jp\",\n \"shiroi.chiba.jp\",\n \"shisui.chiba.jp\",\n \"sodegaura.chiba.jp\",\n \"sosa.chiba.jp\",\n \"tako.chiba.jp\",\n \"tateyama.chiba.jp\",\n \"togane.chiba.jp\",\n \"tohnosho.chiba.jp\",\n \"tomisato.chiba.jp\",\n \"urayasu.chiba.jp\",\n \"yachimata.chiba.jp\",\n \"yachiyo.chiba.jp\",\n \"yokaichiba.chiba.jp\",\n \"yokoshibahikari.chiba.jp\",\n \"yotsukaido.chiba.jp\",\n \"ainan.ehime.jp\",\n \"honai.ehime.jp\",\n \"ikata.ehime.jp\",\n \"imabari.ehime.jp\",\n \"iyo.ehime.jp\",\n \"kamijima.ehime.jp\",\n \"kihoku.ehime.jp\",\n \"kumakogen.ehime.jp\",\n \"masaki.ehime.jp\",\n \"matsuno.ehime.jp\",\n \"matsuyama.ehime.jp\",\n \"namikata.ehime.jp\",\n \"niihama.ehime.jp\",\n \"ozu.ehime.jp\",\n \"saijo.ehime.jp\",\n \"seiyo.ehime.jp\",\n \"shikokuchuo.ehime.jp\",\n \"tobe.ehime.jp\",\n \"toon.ehime.jp\",\n \"uchiko.ehime.jp\",\n \"uwajima.ehime.jp\",\n \"yawatahama.ehime.jp\",\n \"echizen.fukui.jp\",\n \"eiheiji.fukui.jp\",\n \"fukui.fukui.jp\",\n \"ikeda.fukui.jp\",\n \"katsuyama.fukui.jp\",\n \"mihama.fukui.jp\",\n \"minamiechizen.fukui.jp\",\n \"obama.fukui.jp\",\n \"ohi.fukui.jp\",\n \"ono.fukui.jp\",\n \"sabae.fukui.jp\",\n \"sakai.fukui.jp\",\n \"takahama.fukui.jp\",\n \"tsuruga.fukui.jp\",\n \"wakasa.fukui.jp\",\n \"ashiya.fukuoka.jp\",\n \"buzen.fukuoka.jp\",\n \"chikugo.fukuoka.jp\",\n \"chikuho.fukuoka.jp\",\n \"chikujo.fukuoka.jp\",\n \"chikushino.fukuoka.jp\",\n \"chikuzen.fukuoka.jp\",\n \"chuo.fukuoka.jp\",\n \"dazaifu.fukuoka.jp\",\n \"fukuchi.fukuoka.jp\",\n \"hakata.fukuoka.jp\",\n \"higashi.fukuoka.jp\",\n \"hirokawa.fukuoka.jp\",\n \"hisayama.fukuoka.jp\",\n \"iizuka.fukuoka.jp\",\n \"inatsuki.fukuoka.jp\",\n \"kaho.fukuoka.jp\",\n \"kasuga.fukuoka.jp\",\n \"kasuya.fukuoka.jp\",\n \"kawara.fukuoka.jp\",\n \"keisen.fukuoka.jp\",\n \"koga.fukuoka.jp\",\n \"kurate.fukuoka.jp\",\n \"kurogi.fukuoka.jp\",\n \"kurume.fukuoka.jp\",\n \"minami.fukuoka.jp\",\n \"miyako.fukuoka.jp\",\n \"miyama.fukuoka.jp\",\n \"miyawaka.fukuoka.jp\",\n \"mizumaki.fukuoka.jp\",\n \"munakata.fukuoka.jp\",\n \"nakagawa.fukuoka.jp\",\n \"nakama.fukuoka.jp\",\n \"nishi.fukuoka.jp\",\n \"nogata.fukuoka.jp\",\n \"ogori.fukuoka.jp\",\n \"okagaki.fukuoka.jp\",\n \"okawa.fukuoka.jp\",\n \"oki.fukuoka.jp\",\n \"omuta.fukuoka.jp\",\n \"onga.fukuoka.jp\",\n \"onojo.fukuoka.jp\",\n \"oto.fukuoka.jp\",\n \"saigawa.fukuoka.jp\",\n \"sasaguri.fukuoka.jp\",\n \"shingu.fukuoka.jp\",\n \"shinyoshitomi.fukuoka.jp\",\n \"shonai.fukuoka.jp\",\n \"soeda.fukuoka.jp\",\n \"sue.fukuoka.jp\",\n \"tachiarai.fukuoka.jp\",\n \"tagawa.fukuoka.jp\",\n \"takata.fukuoka.jp\",\n \"toho.fukuoka.jp\",\n \"toyotsu.fukuoka.jp\",\n \"tsuiki.fukuoka.jp\",\n \"ukiha.fukuoka.jp\",\n \"umi.fukuoka.jp\",\n \"usui.fukuoka.jp\",\n \"yamada.fukuoka.jp\",\n \"yame.fukuoka.jp\",\n \"yanagawa.fukuoka.jp\",\n \"yukuhashi.fukuoka.jp\",\n \"aizubange.fukushima.jp\",\n \"aizumisato.fukushima.jp\",\n \"aizuwakamatsu.fukushima.jp\",\n \"asakawa.fukushima.jp\",\n \"bandai.fukushima.jp\",\n \"date.fukushima.jp\",\n \"fukushima.fukushima.jp\",\n \"furudono.fukushima.jp\",\n \"futaba.fukushima.jp\",\n \"hanawa.fukushima.jp\",\n \"higashi.fukushima.jp\",\n \"hirata.fukushima.jp\",\n \"hirono.fukushima.jp\",\n \"iitate.fukushima.jp\",\n \"inawashiro.fukushima.jp\",\n \"ishikawa.fukushima.jp\",\n \"iwaki.fukushima.jp\",\n \"izumizaki.fukushima.jp\",\n \"kagamiishi.fukushima.jp\",\n \"kaneyama.fukushima.jp\",\n \"kawamata.fukushima.jp\",\n \"kitakata.fukushima.jp\",\n \"kitashiobara.fukushima.jp\",\n \"koori.fukushima.jp\",\n \"koriyama.fukushima.jp\",\n \"kunimi.fukushima.jp\",\n \"miharu.fukushima.jp\",\n \"mishima.fukushima.jp\",\n \"namie.fukushima.jp\",\n \"nango.fukushima.jp\",\n \"nishiaizu.fukushima.jp\",\n \"nishigo.fukushima.jp\",\n \"okuma.fukushima.jp\",\n \"omotego.fukushima.jp\",\n \"ono.fukushima.jp\",\n \"otama.fukushima.jp\",\n \"samegawa.fukushima.jp\",\n \"shimogo.fukushima.jp\",\n \"shirakawa.fukushima.jp\",\n \"showa.fukushima.jp\",\n \"soma.fukushima.jp\",\n \"sukagawa.fukushima.jp\",\n \"taishin.fukushima.jp\",\n \"tamakawa.fukushima.jp\",\n \"tanagura.fukushima.jp\",\n \"tenei.fukushima.jp\",\n \"yabuki.fukushima.jp\",\n \"yamato.fukushima.jp\",\n \"yamatsuri.fukushima.jp\",\n \"yanaizu.fukushima.jp\",\n \"yugawa.fukushima.jp\",\n \"anpachi.gifu.jp\",\n \"ena.gifu.jp\",\n \"gifu.gifu.jp\",\n \"ginan.gifu.jp\",\n \"godo.gifu.jp\",\n \"gujo.gifu.jp\",\n \"hashima.gifu.jp\",\n \"hichiso.gifu.jp\",\n \"hida.gifu.jp\",\n \"higashishirakawa.gifu.jp\",\n \"ibigawa.gifu.jp\",\n \"ikeda.gifu.jp\",\n \"kakamigahara.gifu.jp\",\n \"kani.gifu.jp\",\n \"kasahara.gifu.jp\",\n \"kasamatsu.gifu.jp\",\n \"kawaue.gifu.jp\",\n \"kitagata.gifu.jp\",\n \"mino.gifu.jp\",\n \"minokamo.gifu.jp\",\n \"mitake.gifu.jp\",\n \"mizunami.gifu.jp\",\n \"motosu.gifu.jp\",\n \"nakatsugawa.gifu.jp\",\n \"ogaki.gifu.jp\",\n \"sakahogi.gifu.jp\",\n \"seki.gifu.jp\",\n \"sekigahara.gifu.jp\",\n \"shirakawa.gifu.jp\",\n \"tajimi.gifu.jp\",\n \"takayama.gifu.jp\",\n \"tarui.gifu.jp\",\n \"toki.gifu.jp\",\n \"tomika.gifu.jp\",\n \"wanouchi.gifu.jp\",\n \"yamagata.gifu.jp\",\n \"yaotsu.gifu.jp\",\n \"yoro.gifu.jp\",\n \"annaka.gunma.jp\",\n \"chiyoda.gunma.jp\",\n \"fujioka.gunma.jp\",\n \"higashiagatsuma.gunma.jp\",\n \"isesaki.gunma.jp\",\n \"itakura.gunma.jp\",\n \"kanna.gunma.jp\",\n \"kanra.gunma.jp\",\n \"katashina.gunma.jp\",\n \"kawaba.gunma.jp\",\n \"kiryu.gunma.jp\",\n \"kusatsu.gunma.jp\",\n \"maebashi.gunma.jp\",\n \"meiwa.gunma.jp\",\n \"midori.gunma.jp\",\n \"minakami.gunma.jp\",\n \"naganohara.gunma.jp\",\n \"nakanojo.gunma.jp\",\n \"nanmoku.gunma.jp\",\n \"numata.gunma.jp\",\n \"oizumi.gunma.jp\",\n \"ora.gunma.jp\",\n \"ota.gunma.jp\",\n \"shibukawa.gunma.jp\",\n \"shimonita.gunma.jp\",\n \"shinto.gunma.jp\",\n \"showa.gunma.jp\",\n \"takasaki.gunma.jp\",\n \"takayama.gunma.jp\",\n \"tamamura.gunma.jp\",\n \"tatebayashi.gunma.jp\",\n \"tomioka.gunma.jp\",\n \"tsukiyono.gunma.jp\",\n \"tsumagoi.gunma.jp\",\n \"ueno.gunma.jp\",\n \"yoshioka.gunma.jp\",\n \"asaminami.hiroshima.jp\",\n \"daiwa.hiroshima.jp\",\n \"etajima.hiroshima.jp\",\n \"fuchu.hiroshima.jp\",\n \"fukuyama.hiroshima.jp\",\n \"hatsukaichi.hiroshima.jp\",\n \"higashihiroshima.hiroshima.jp\",\n \"hongo.hiroshima.jp\",\n \"jinsekikogen.hiroshima.jp\",\n \"kaita.hiroshima.jp\",\n \"kui.hiroshima.jp\",\n \"kumano.hiroshima.jp\",\n \"kure.hiroshima.jp\",\n \"mihara.hiroshima.jp\",\n \"miyoshi.hiroshima.jp\",\n \"naka.hiroshima.jp\",\n \"onomichi.hiroshima.jp\",\n \"osakikamijima.hiroshima.jp\",\n \"otake.hiroshima.jp\",\n \"saka.hiroshima.jp\",\n \"sera.hiroshima.jp\",\n \"seranishi.hiroshima.jp\",\n \"shinichi.hiroshima.jp\",\n \"shobara.hiroshima.jp\",\n \"takehara.hiroshima.jp\",\n \"abashiri.hokkaido.jp\",\n \"abira.hokkaido.jp\",\n \"aibetsu.hokkaido.jp\",\n \"akabira.hokkaido.jp\",\n \"akkeshi.hokkaido.jp\",\n \"asahikawa.hokkaido.jp\",\n \"ashibetsu.hokkaido.jp\",\n \"ashoro.hokkaido.jp\",\n \"assabu.hokkaido.jp\",\n \"atsuma.hokkaido.jp\",\n \"bibai.hokkaido.jp\",\n \"biei.hokkaido.jp\",\n \"bifuka.hokkaido.jp\",\n \"bihoro.hokkaido.jp\",\n \"biratori.hokkaido.jp\",\n \"chippubetsu.hokkaido.jp\",\n \"chitose.hokkaido.jp\",\n \"date.hokkaido.jp\",\n \"ebetsu.hokkaido.jp\",\n \"embetsu.hokkaido.jp\",\n \"eniwa.hokkaido.jp\",\n \"erimo.hokkaido.jp\",\n \"esan.hokkaido.jp\",\n \"esashi.hokkaido.jp\",\n \"fukagawa.hokkaido.jp\",\n \"fukushima.hokkaido.jp\",\n \"furano.hokkaido.jp\",\n \"furubira.hokkaido.jp\",\n \"haboro.hokkaido.jp\",\n \"hakodate.hokkaido.jp\",\n \"hamatonbetsu.hokkaido.jp\",\n \"hidaka.hokkaido.jp\",\n \"higashikagura.hokkaido.jp\",\n \"higashikawa.hokkaido.jp\",\n \"hiroo.hokkaido.jp\",\n \"hokuryu.hokkaido.jp\",\n \"hokuto.hokkaido.jp\",\n \"honbetsu.hokkaido.jp\",\n \"horokanai.hokkaido.jp\",\n \"horonobe.hokkaido.jp\",\n \"ikeda.hokkaido.jp\",\n \"imakane.hokkaido.jp\",\n \"ishikari.hokkaido.jp\",\n \"iwamizawa.hokkaido.jp\",\n \"iwanai.hokkaido.jp\",\n \"kamifurano.hokkaido.jp\",\n \"kamikawa.hokkaido.jp\",\n \"kamishihoro.hokkaido.jp\",\n \"kamisunagawa.hokkaido.jp\",\n \"kamoenai.hokkaido.jp\",\n \"kayabe.hokkaido.jp\",\n \"kembuchi.hokkaido.jp\",\n \"kikonai.hokkaido.jp\",\n \"kimobetsu.hokkaido.jp\",\n \"kitahiroshima.hokkaido.jp\",\n \"kitami.hokkaido.jp\",\n \"kiyosato.hokkaido.jp\",\n \"koshimizu.hokkaido.jp\",\n \"kunneppu.hokkaido.jp\",\n \"kuriyama.hokkaido.jp\",\n \"kuromatsunai.hokkaido.jp\",\n \"kushiro.hokkaido.jp\",\n \"kutchan.hokkaido.jp\",\n \"kyowa.hokkaido.jp\",\n \"mashike.hokkaido.jp\",\n \"matsumae.hokkaido.jp\",\n \"mikasa.hokkaido.jp\",\n \"minamifurano.hokkaido.jp\",\n \"mombetsu.hokkaido.jp\",\n \"moseushi.hokkaido.jp\",\n \"mukawa.hokkaido.jp\",\n \"muroran.hokkaido.jp\",\n \"naie.hokkaido.jp\",\n \"nakagawa.hokkaido.jp\",\n \"nakasatsunai.hokkaido.jp\",\n \"nakatombetsu.hokkaido.jp\",\n \"nanae.hokkaido.jp\",\n \"nanporo.hokkaido.jp\",\n \"nayoro.hokkaido.jp\",\n \"nemuro.hokkaido.jp\",\n \"niikappu.hokkaido.jp\",\n \"niki.hokkaido.jp\",\n \"nishiokoppe.hokkaido.jp\",\n \"noboribetsu.hokkaido.jp\",\n \"numata.hokkaido.jp\",\n \"obihiro.hokkaido.jp\",\n \"obira.hokkaido.jp\",\n \"oketo.hokkaido.jp\",\n \"okoppe.hokkaido.jp\",\n \"otaru.hokkaido.jp\",\n \"otobe.hokkaido.jp\",\n \"otofuke.hokkaido.jp\",\n \"otoineppu.hokkaido.jp\",\n \"oumu.hokkaido.jp\",\n \"ozora.hokkaido.jp\",\n \"pippu.hokkaido.jp\",\n \"rankoshi.hokkaido.jp\",\n \"rebun.hokkaido.jp\",\n \"rikubetsu.hokkaido.jp\",\n \"rishiri.hokkaido.jp\",\n \"rishirifuji.hokkaido.jp\",\n \"saroma.hokkaido.jp\",\n \"sarufutsu.hokkaido.jp\",\n \"shakotan.hokkaido.jp\",\n \"shari.hokkaido.jp\",\n \"shibecha.hokkaido.jp\",\n \"shibetsu.hokkaido.jp\",\n \"shikabe.hokkaido.jp\",\n \"shikaoi.hokkaido.jp\",\n \"shimamaki.hokkaido.jp\",\n \"shimizu.hokkaido.jp\",\n \"shimokawa.hokkaido.jp\",\n \"shinshinotsu.hokkaido.jp\",\n \"shintoku.hokkaido.jp\",\n \"shiranuka.hokkaido.jp\",\n \"shiraoi.hokkaido.jp\",\n \"shiriuchi.hokkaido.jp\",\n \"sobetsu.hokkaido.jp\",\n \"sunagawa.hokkaido.jp\",\n \"taiki.hokkaido.jp\",\n \"takasu.hokkaido.jp\",\n \"takikawa.hokkaido.jp\",\n \"takinoue.hokkaido.jp\",\n \"teshikaga.hokkaido.jp\",\n \"tobetsu.hokkaido.jp\",\n \"tohma.hokkaido.jp\",\n \"tomakomai.hokkaido.jp\",\n \"tomari.hokkaido.jp\",\n \"toya.hokkaido.jp\",\n \"toyako.hokkaido.jp\",\n \"toyotomi.hokkaido.jp\",\n \"toyoura.hokkaido.jp\",\n \"tsubetsu.hokkaido.jp\",\n \"tsukigata.hokkaido.jp\",\n \"urakawa.hokkaido.jp\",\n \"urausu.hokkaido.jp\",\n \"uryu.hokkaido.jp\",\n \"utashinai.hokkaido.jp\",\n \"wakkanai.hokkaido.jp\",\n \"wassamu.hokkaido.jp\",\n \"yakumo.hokkaido.jp\",\n \"yoichi.hokkaido.jp\",\n \"aioi.hyogo.jp\",\n \"akashi.hyogo.jp\",\n \"ako.hyogo.jp\",\n \"amagasaki.hyogo.jp\",\n \"aogaki.hyogo.jp\",\n \"asago.hyogo.jp\",\n \"ashiya.hyogo.jp\",\n \"awaji.hyogo.jp\",\n \"fukusaki.hyogo.jp\",\n \"goshiki.hyogo.jp\",\n \"harima.hyogo.jp\",\n \"himeji.hyogo.jp\",\n \"ichikawa.hyogo.jp\",\n \"inagawa.hyogo.jp\",\n \"itami.hyogo.jp\",\n \"kakogawa.hyogo.jp\",\n \"kamigori.hyogo.jp\",\n \"kamikawa.hyogo.jp\",\n \"kasai.hyogo.jp\",\n \"kasuga.hyogo.jp\",\n \"kawanishi.hyogo.jp\",\n \"miki.hyogo.jp\",\n \"minamiawaji.hyogo.jp\",\n \"nishinomiya.hyogo.jp\",\n \"nishiwaki.hyogo.jp\",\n \"ono.hyogo.jp\",\n \"sanda.hyogo.jp\",\n \"sannan.hyogo.jp\",\n \"sasayama.hyogo.jp\",\n \"sayo.hyogo.jp\",\n \"shingu.hyogo.jp\",\n \"shinonsen.hyogo.jp\",\n \"shiso.hyogo.jp\",\n \"sumoto.hyogo.jp\",\n \"taishi.hyogo.jp\",\n \"taka.hyogo.jp\",\n \"takarazuka.hyogo.jp\",\n \"takasago.hyogo.jp\",\n \"takino.hyogo.jp\",\n \"tamba.hyogo.jp\",\n \"tatsuno.hyogo.jp\",\n \"toyooka.hyogo.jp\",\n \"yabu.hyogo.jp\",\n \"yashiro.hyogo.jp\",\n \"yoka.hyogo.jp\",\n \"yokawa.hyogo.jp\",\n \"ami.ibaraki.jp\",\n \"asahi.ibaraki.jp\",\n \"bando.ibaraki.jp\",\n \"chikusei.ibaraki.jp\",\n \"daigo.ibaraki.jp\",\n \"fujishiro.ibaraki.jp\",\n \"hitachi.ibaraki.jp\",\n \"hitachinaka.ibaraki.jp\",\n \"hitachiomiya.ibaraki.jp\",\n \"hitachiota.ibaraki.jp\",\n \"ibaraki.ibaraki.jp\",\n \"ina.ibaraki.jp\",\n \"inashiki.ibaraki.jp\",\n \"itako.ibaraki.jp\",\n \"iwama.ibaraki.jp\",\n \"joso.ibaraki.jp\",\n \"kamisu.ibaraki.jp\",\n \"kasama.ibaraki.jp\",\n \"kashima.ibaraki.jp\",\n \"kasumigaura.ibaraki.jp\",\n \"koga.ibaraki.jp\",\n \"miho.ibaraki.jp\",\n \"mito.ibaraki.jp\",\n \"moriya.ibaraki.jp\",\n \"naka.ibaraki.jp\",\n \"namegata.ibaraki.jp\",\n \"oarai.ibaraki.jp\",\n \"ogawa.ibaraki.jp\",\n \"omitama.ibaraki.jp\",\n \"ryugasaki.ibaraki.jp\",\n \"sakai.ibaraki.jp\",\n \"sakuragawa.ibaraki.jp\",\n \"shimodate.ibaraki.jp\",\n \"shimotsuma.ibaraki.jp\",\n \"shirosato.ibaraki.jp\",\n \"sowa.ibaraki.jp\",\n \"suifu.ibaraki.jp\",\n \"takahagi.ibaraki.jp\",\n \"tamatsukuri.ibaraki.jp\",\n \"tokai.ibaraki.jp\",\n \"tomobe.ibaraki.jp\",\n \"tone.ibaraki.jp\",\n \"toride.ibaraki.jp\",\n \"tsuchiura.ibaraki.jp\",\n \"tsukuba.ibaraki.jp\",\n \"uchihara.ibaraki.jp\",\n \"ushiku.ibaraki.jp\",\n \"yachiyo.ibaraki.jp\",\n \"yamagata.ibaraki.jp\",\n \"yawara.ibaraki.jp\",\n \"yuki.ibaraki.jp\",\n \"anamizu.ishikawa.jp\",\n \"hakui.ishikawa.jp\",\n \"hakusan.ishikawa.jp\",\n \"kaga.ishikawa.jp\",\n \"kahoku.ishikawa.jp\",\n \"kanazawa.ishikawa.jp\",\n \"kawakita.ishikawa.jp\",\n \"komatsu.ishikawa.jp\",\n \"nakanoto.ishikawa.jp\",\n \"nanao.ishikawa.jp\",\n \"nomi.ishikawa.jp\",\n \"nonoichi.ishikawa.jp\",\n \"noto.ishikawa.jp\",\n \"shika.ishikawa.jp\",\n \"suzu.ishikawa.jp\",\n \"tsubata.ishikawa.jp\",\n \"tsurugi.ishikawa.jp\",\n \"uchinada.ishikawa.jp\",\n \"wajima.ishikawa.jp\",\n \"fudai.iwate.jp\",\n \"fujisawa.iwate.jp\",\n \"hanamaki.iwate.jp\",\n \"hiraizumi.iwate.jp\",\n \"hirono.iwate.jp\",\n \"ichinohe.iwate.jp\",\n \"ichinoseki.iwate.jp\",\n \"iwaizumi.iwate.jp\",\n \"iwate.iwate.jp\",\n \"joboji.iwate.jp\",\n \"kamaishi.iwate.jp\",\n \"kanegasaki.iwate.jp\",\n \"karumai.iwate.jp\",\n \"kawai.iwate.jp\",\n \"kitakami.iwate.jp\",\n \"kuji.iwate.jp\",\n \"kunohe.iwate.jp\",\n \"kuzumaki.iwate.jp\",\n \"miyako.iwate.jp\",\n \"mizusawa.iwate.jp\",\n \"morioka.iwate.jp\",\n \"ninohe.iwate.jp\",\n \"noda.iwate.jp\",\n \"ofunato.iwate.jp\",\n \"oshu.iwate.jp\",\n \"otsuchi.iwate.jp\",\n \"rikuzentakata.iwate.jp\",\n \"shiwa.iwate.jp\",\n \"shizukuishi.iwate.jp\",\n \"sumita.iwate.jp\",\n \"tanohata.iwate.jp\",\n \"tono.iwate.jp\",\n \"yahaba.iwate.jp\",\n \"yamada.iwate.jp\",\n \"ayagawa.kagawa.jp\",\n \"higashikagawa.kagawa.jp\",\n \"kanonji.kagawa.jp\",\n \"kotohira.kagawa.jp\",\n \"manno.kagawa.jp\",\n \"marugame.kagawa.jp\",\n \"mitoyo.kagawa.jp\",\n \"naoshima.kagawa.jp\",\n \"sanuki.kagawa.jp\",\n \"tadotsu.kagawa.jp\",\n \"takamatsu.kagawa.jp\",\n \"tonosho.kagawa.jp\",\n \"uchinomi.kagawa.jp\",\n \"utazu.kagawa.jp\",\n \"zentsuji.kagawa.jp\",\n \"akune.kagoshima.jp\",\n \"amami.kagoshima.jp\",\n \"hioki.kagoshima.jp\",\n \"isa.kagoshima.jp\",\n \"isen.kagoshima.jp\",\n \"izumi.kagoshima.jp\",\n \"kagoshima.kagoshima.jp\",\n \"kanoya.kagoshima.jp\",\n \"kawanabe.kagoshima.jp\",\n \"kinko.kagoshima.jp\",\n \"kouyama.kagoshima.jp\",\n \"makurazaki.kagoshima.jp\",\n \"matsumoto.kagoshima.jp\",\n \"minamitane.kagoshima.jp\",\n \"nakatane.kagoshima.jp\",\n \"nishinoomote.kagoshima.jp\",\n \"satsumasendai.kagoshima.jp\",\n \"soo.kagoshima.jp\",\n \"tarumizu.kagoshima.jp\",\n \"yusui.kagoshima.jp\",\n \"aikawa.kanagawa.jp\",\n \"atsugi.kanagawa.jp\",\n \"ayase.kanagawa.jp\",\n \"chigasaki.kanagawa.jp\",\n \"ebina.kanagawa.jp\",\n \"fujisawa.kanagawa.jp\",\n \"hadano.kanagawa.jp\",\n \"hakone.kanagawa.jp\",\n \"hiratsuka.kanagawa.jp\",\n \"isehara.kanagawa.jp\",\n \"kaisei.kanagawa.jp\",\n \"kamakura.kanagawa.jp\",\n \"kiyokawa.kanagawa.jp\",\n \"matsuda.kanagawa.jp\",\n \"minamiashigara.kanagawa.jp\",\n \"miura.kanagawa.jp\",\n \"nakai.kanagawa.jp\",\n \"ninomiya.kanagawa.jp\",\n \"odawara.kanagawa.jp\",\n \"oi.kanagawa.jp\",\n \"oiso.kanagawa.jp\",\n \"sagamihara.kanagawa.jp\",\n \"samukawa.kanagawa.jp\",\n \"tsukui.kanagawa.jp\",\n \"yamakita.kanagawa.jp\",\n \"yamato.kanagawa.jp\",\n \"yokosuka.kanagawa.jp\",\n \"yugawara.kanagawa.jp\",\n \"zama.kanagawa.jp\",\n \"zushi.kanagawa.jp\",\n \"aki.kochi.jp\",\n \"geisei.kochi.jp\",\n \"hidaka.kochi.jp\",\n \"higashitsuno.kochi.jp\",\n \"ino.kochi.jp\",\n \"kagami.kochi.jp\",\n \"kami.kochi.jp\",\n \"kitagawa.kochi.jp\",\n \"kochi.kochi.jp\",\n \"mihara.kochi.jp\",\n \"motoyama.kochi.jp\",\n \"muroto.kochi.jp\",\n \"nahari.kochi.jp\",\n \"nakamura.kochi.jp\",\n \"nankoku.kochi.jp\",\n \"nishitosa.kochi.jp\",\n \"niyodogawa.kochi.jp\",\n \"ochi.kochi.jp\",\n \"okawa.kochi.jp\",\n \"otoyo.kochi.jp\",\n \"otsuki.kochi.jp\",\n \"sakawa.kochi.jp\",\n \"sukumo.kochi.jp\",\n \"susaki.kochi.jp\",\n \"tosa.kochi.jp\",\n \"tosashimizu.kochi.jp\",\n \"toyo.kochi.jp\",\n \"tsuno.kochi.jp\",\n \"umaji.kochi.jp\",\n \"yasuda.kochi.jp\",\n \"yusuhara.kochi.jp\",\n \"amakusa.kumamoto.jp\",\n \"arao.kumamoto.jp\",\n \"aso.kumamoto.jp\",\n \"choyo.kumamoto.jp\",\n \"gyokuto.kumamoto.jp\",\n \"kamiamakusa.kumamoto.jp\",\n \"kikuchi.kumamoto.jp\",\n \"kumamoto.kumamoto.jp\",\n \"mashiki.kumamoto.jp\",\n \"mifune.kumamoto.jp\",\n \"minamata.kumamoto.jp\",\n \"minamioguni.kumamoto.jp\",\n \"nagasu.kumamoto.jp\",\n \"nishihara.kumamoto.jp\",\n \"oguni.kumamoto.jp\",\n \"ozu.kumamoto.jp\",\n \"sumoto.kumamoto.jp\",\n \"takamori.kumamoto.jp\",\n \"uki.kumamoto.jp\",\n \"uto.kumamoto.jp\",\n \"yamaga.kumamoto.jp\",\n \"yamato.kumamoto.jp\",\n \"yatsushiro.kumamoto.jp\",\n \"ayabe.kyoto.jp\",\n \"fukuchiyama.kyoto.jp\",\n \"higashiyama.kyoto.jp\",\n \"ide.kyoto.jp\",\n \"ine.kyoto.jp\",\n \"joyo.kyoto.jp\",\n \"kameoka.kyoto.jp\",\n \"kamo.kyoto.jp\",\n \"kita.kyoto.jp\",\n \"kizu.kyoto.jp\",\n \"kumiyama.kyoto.jp\",\n \"kyotamba.kyoto.jp\",\n \"kyotanabe.kyoto.jp\",\n \"kyotango.kyoto.jp\",\n \"maizuru.kyoto.jp\",\n \"minami.kyoto.jp\",\n \"minamiyamashiro.kyoto.jp\",\n \"miyazu.kyoto.jp\",\n \"muko.kyoto.jp\",\n \"nagaokakyo.kyoto.jp\",\n \"nakagyo.kyoto.jp\",\n \"nantan.kyoto.jp\",\n \"oyamazaki.kyoto.jp\",\n \"sakyo.kyoto.jp\",\n \"seika.kyoto.jp\",\n \"tanabe.kyoto.jp\",\n \"uji.kyoto.jp\",\n \"ujitawara.kyoto.jp\",\n \"wazuka.kyoto.jp\",\n \"yamashina.kyoto.jp\",\n \"yawata.kyoto.jp\",\n \"asahi.mie.jp\",\n \"inabe.mie.jp\",\n \"ise.mie.jp\",\n \"kameyama.mie.jp\",\n \"kawagoe.mie.jp\",\n \"kiho.mie.jp\",\n \"kisosaki.mie.jp\",\n \"kiwa.mie.jp\",\n \"komono.mie.jp\",\n \"kumano.mie.jp\",\n \"kuwana.mie.jp\",\n \"matsusaka.mie.jp\",\n \"meiwa.mie.jp\",\n \"mihama.mie.jp\",\n \"minamiise.mie.jp\",\n \"misugi.mie.jp\",\n \"miyama.mie.jp\",\n \"nabari.mie.jp\",\n \"shima.mie.jp\",\n \"suzuka.mie.jp\",\n \"tado.mie.jp\",\n \"taiki.mie.jp\",\n \"taki.mie.jp\",\n \"tamaki.mie.jp\",\n \"toba.mie.jp\",\n \"tsu.mie.jp\",\n \"udono.mie.jp\",\n \"ureshino.mie.jp\",\n \"watarai.mie.jp\",\n \"yokkaichi.mie.jp\",\n \"furukawa.miyagi.jp\",\n \"higashimatsushima.miyagi.jp\",\n \"ishinomaki.miyagi.jp\",\n \"iwanuma.miyagi.jp\",\n \"kakuda.miyagi.jp\",\n \"kami.miyagi.jp\",\n \"kawasaki.miyagi.jp\",\n \"marumori.miyagi.jp\",\n \"matsushima.miyagi.jp\",\n \"minamisanriku.miyagi.jp\",\n \"misato.miyagi.jp\",\n \"murata.miyagi.jp\",\n \"natori.miyagi.jp\",\n \"ogawara.miyagi.jp\",\n \"ohira.miyagi.jp\",\n \"onagawa.miyagi.jp\",\n \"osaki.miyagi.jp\",\n \"rifu.miyagi.jp\",\n \"semine.miyagi.jp\",\n \"shibata.miyagi.jp\",\n \"shichikashuku.miyagi.jp\",\n \"shikama.miyagi.jp\",\n \"shiogama.miyagi.jp\",\n \"shiroishi.miyagi.jp\",\n \"tagajo.miyagi.jp\",\n \"taiwa.miyagi.jp\",\n \"tome.miyagi.jp\",\n \"tomiya.miyagi.jp\",\n \"wakuya.miyagi.jp\",\n \"watari.miyagi.jp\",\n \"yamamoto.miyagi.jp\",\n \"zao.miyagi.jp\",\n \"aya.miyazaki.jp\",\n \"ebino.miyazaki.jp\",\n \"gokase.miyazaki.jp\",\n \"hyuga.miyazaki.jp\",\n \"kadogawa.miyazaki.jp\",\n \"kawaminami.miyazaki.jp\",\n \"kijo.miyazaki.jp\",\n \"kitagawa.miyazaki.jp\",\n \"kitakata.miyazaki.jp\",\n \"kitaura.miyazaki.jp\",\n \"kobayashi.miyazaki.jp\",\n \"kunitomi.miyazaki.jp\",\n \"kushima.miyazaki.jp\",\n \"mimata.miyazaki.jp\",\n \"miyakonojo.miyazaki.jp\",\n \"miyazaki.miyazaki.jp\",\n \"morotsuka.miyazaki.jp\",\n \"nichinan.miyazaki.jp\",\n \"nishimera.miyazaki.jp\",\n \"nobeoka.miyazaki.jp\",\n \"saito.miyazaki.jp\",\n \"shiiba.miyazaki.jp\",\n \"shintomi.miyazaki.jp\",\n \"takaharu.miyazaki.jp\",\n \"takanabe.miyazaki.jp\",\n \"takazaki.miyazaki.jp\",\n \"tsuno.miyazaki.jp\",\n \"achi.nagano.jp\",\n \"agematsu.nagano.jp\",\n \"anan.nagano.jp\",\n \"aoki.nagano.jp\",\n \"asahi.nagano.jp\",\n \"azumino.nagano.jp\",\n \"chikuhoku.nagano.jp\",\n \"chikuma.nagano.jp\",\n \"chino.nagano.jp\",\n \"fujimi.nagano.jp\",\n \"hakuba.nagano.jp\",\n \"hara.nagano.jp\",\n \"hiraya.nagano.jp\",\n \"iida.nagano.jp\",\n \"iijima.nagano.jp\",\n \"iiyama.nagano.jp\",\n \"iizuna.nagano.jp\",\n \"ikeda.nagano.jp\",\n \"ikusaka.nagano.jp\",\n \"ina.nagano.jp\",\n \"karuizawa.nagano.jp\",\n \"kawakami.nagano.jp\",\n \"kiso.nagano.jp\",\n \"kisofukushima.nagano.jp\",\n \"kitaaiki.nagano.jp\",\n \"komagane.nagano.jp\",\n \"komoro.nagano.jp\",\n \"matsukawa.nagano.jp\",\n \"matsumoto.nagano.jp\",\n \"miasa.nagano.jp\",\n \"minamiaiki.nagano.jp\",\n \"minamimaki.nagano.jp\",\n \"minamiminowa.nagano.jp\",\n \"minowa.nagano.jp\",\n \"miyada.nagano.jp\",\n \"miyota.nagano.jp\",\n \"mochizuki.nagano.jp\",\n \"nagano.nagano.jp\",\n \"nagawa.nagano.jp\",\n \"nagiso.nagano.jp\",\n \"nakagawa.nagano.jp\",\n \"nakano.nagano.jp\",\n \"nozawaonsen.nagano.jp\",\n \"obuse.nagano.jp\",\n \"ogawa.nagano.jp\",\n \"okaya.nagano.jp\",\n \"omachi.nagano.jp\",\n \"omi.nagano.jp\",\n \"ookuwa.nagano.jp\",\n \"ooshika.nagano.jp\",\n \"otaki.nagano.jp\",\n \"otari.nagano.jp\",\n \"sakae.nagano.jp\",\n \"sakaki.nagano.jp\",\n \"saku.nagano.jp\",\n \"sakuho.nagano.jp\",\n \"shimosuwa.nagano.jp\",\n \"shinanomachi.nagano.jp\",\n \"shiojiri.nagano.jp\",\n \"suwa.nagano.jp\",\n \"suzaka.nagano.jp\",\n \"takagi.nagano.jp\",\n \"takamori.nagano.jp\",\n \"takayama.nagano.jp\",\n \"tateshina.nagano.jp\",\n \"tatsuno.nagano.jp\",\n \"togakushi.nagano.jp\",\n \"togura.nagano.jp\",\n \"tomi.nagano.jp\",\n \"ueda.nagano.jp\",\n \"wada.nagano.jp\",\n \"yamagata.nagano.jp\",\n \"yamanouchi.nagano.jp\",\n \"yasaka.nagano.jp\",\n \"yasuoka.nagano.jp\",\n \"chijiwa.nagasaki.jp\",\n \"futsu.nagasaki.jp\",\n \"goto.nagasaki.jp\",\n \"hasami.nagasaki.jp\",\n \"hirado.nagasaki.jp\",\n \"iki.nagasaki.jp\",\n \"isahaya.nagasaki.jp\",\n \"kawatana.nagasaki.jp\",\n \"kuchinotsu.nagasaki.jp\",\n \"matsuura.nagasaki.jp\",\n \"nagasaki.nagasaki.jp\",\n \"obama.nagasaki.jp\",\n \"omura.nagasaki.jp\",\n \"oseto.nagasaki.jp\",\n \"saikai.nagasaki.jp\",\n \"sasebo.nagasaki.jp\",\n \"seihi.nagasaki.jp\",\n \"shimabara.nagasaki.jp\",\n \"shinkamigoto.nagasaki.jp\",\n \"togitsu.nagasaki.jp\",\n \"tsushima.nagasaki.jp\",\n \"unzen.nagasaki.jp\",\n \"ando.nara.jp\",\n \"gose.nara.jp\",\n \"heguri.nara.jp\",\n \"higashiyoshino.nara.jp\",\n \"ikaruga.nara.jp\",\n \"ikoma.nara.jp\",\n \"kamikitayama.nara.jp\",\n \"kanmaki.nara.jp\",\n \"kashiba.nara.jp\",\n \"kashihara.nara.jp\",\n \"katsuragi.nara.jp\",\n \"kawai.nara.jp\",\n \"kawakami.nara.jp\",\n \"kawanishi.nara.jp\",\n \"koryo.nara.jp\",\n \"kurotaki.nara.jp\",\n \"mitsue.nara.jp\",\n \"miyake.nara.jp\",\n \"nara.nara.jp\",\n \"nosegawa.nara.jp\",\n \"oji.nara.jp\",\n \"ouda.nara.jp\",\n \"oyodo.nara.jp\",\n \"sakurai.nara.jp\",\n \"sango.nara.jp\",\n \"shimoichi.nara.jp\",\n \"shimokitayama.nara.jp\",\n \"shinjo.nara.jp\",\n \"soni.nara.jp\",\n \"takatori.nara.jp\",\n \"tawaramoto.nara.jp\",\n \"tenkawa.nara.jp\",\n \"tenri.nara.jp\",\n \"uda.nara.jp\",\n \"yamatokoriyama.nara.jp\",\n \"yamatotakada.nara.jp\",\n \"yamazoe.nara.jp\",\n \"yoshino.nara.jp\",\n \"aga.niigata.jp\",\n \"agano.niigata.jp\",\n \"gosen.niigata.jp\",\n \"itoigawa.niigata.jp\",\n \"izumozaki.niigata.jp\",\n \"joetsu.niigata.jp\",\n \"kamo.niigata.jp\",\n \"kariwa.niigata.jp\",\n \"kashiwazaki.niigata.jp\",\n \"minamiuonuma.niigata.jp\",\n \"mitsuke.niigata.jp\",\n \"muika.niigata.jp\",\n \"murakami.niigata.jp\",\n \"myoko.niigata.jp\",\n \"nagaoka.niigata.jp\",\n \"niigata.niigata.jp\",\n \"ojiya.niigata.jp\",\n \"omi.niigata.jp\",\n \"sado.niigata.jp\",\n \"sanjo.niigata.jp\",\n \"seiro.niigata.jp\",\n \"seirou.niigata.jp\",\n \"sekikawa.niigata.jp\",\n \"shibata.niigata.jp\",\n \"tagami.niigata.jp\",\n \"tainai.niigata.jp\",\n \"tochio.niigata.jp\",\n \"tokamachi.niigata.jp\",\n \"tsubame.niigata.jp\",\n \"tsunan.niigata.jp\",\n \"uonuma.niigata.jp\",\n \"yahiko.niigata.jp\",\n \"yoita.niigata.jp\",\n \"yuzawa.niigata.jp\",\n \"beppu.oita.jp\",\n \"bungoono.oita.jp\",\n \"bungotakada.oita.jp\",\n \"hasama.oita.jp\",\n \"hiji.oita.jp\",\n \"himeshima.oita.jp\",\n \"hita.oita.jp\",\n \"kamitsue.oita.jp\",\n \"kokonoe.oita.jp\",\n \"kuju.oita.jp\",\n \"kunisaki.oita.jp\",\n \"kusu.oita.jp\",\n \"oita.oita.jp\",\n \"saiki.oita.jp\",\n \"taketa.oita.jp\",\n \"tsukumi.oita.jp\",\n \"usa.oita.jp\",\n \"usuki.oita.jp\",\n \"yufu.oita.jp\",\n \"akaiwa.okayama.jp\",\n \"asakuchi.okayama.jp\",\n \"bizen.okayama.jp\",\n \"hayashima.okayama.jp\",\n \"ibara.okayama.jp\",\n \"kagamino.okayama.jp\",\n \"kasaoka.okayama.jp\",\n \"kibichuo.okayama.jp\",\n \"kumenan.okayama.jp\",\n \"kurashiki.okayama.jp\",\n \"maniwa.okayama.jp\",\n \"misaki.okayama.jp\",\n \"nagi.okayama.jp\",\n \"niimi.okayama.jp\",\n \"nishiawakura.okayama.jp\",\n \"okayama.okayama.jp\",\n \"satosho.okayama.jp\",\n \"setouchi.okayama.jp\",\n \"shinjo.okayama.jp\",\n \"shoo.okayama.jp\",\n \"soja.okayama.jp\",\n \"takahashi.okayama.jp\",\n \"tamano.okayama.jp\",\n \"tsuyama.okayama.jp\",\n \"wake.okayama.jp\",\n \"yakage.okayama.jp\",\n \"aguni.okinawa.jp\",\n \"ginowan.okinawa.jp\",\n \"ginoza.okinawa.jp\",\n \"gushikami.okinawa.jp\",\n \"haebaru.okinawa.jp\",\n \"higashi.okinawa.jp\",\n \"hirara.okinawa.jp\",\n \"iheya.okinawa.jp\",\n \"ishigaki.okinawa.jp\",\n \"ishikawa.okinawa.jp\",\n \"itoman.okinawa.jp\",\n \"izena.okinawa.jp\",\n \"kadena.okinawa.jp\",\n \"kin.okinawa.jp\",\n \"kitadaito.okinawa.jp\",\n \"kitanakagusuku.okinawa.jp\",\n \"kumejima.okinawa.jp\",\n \"kunigami.okinawa.jp\",\n \"minamidaito.okinawa.jp\",\n \"motobu.okinawa.jp\",\n \"nago.okinawa.jp\",\n \"naha.okinawa.jp\",\n \"nakagusuku.okinawa.jp\",\n \"nakijin.okinawa.jp\",\n \"nanjo.okinawa.jp\",\n \"nishihara.okinawa.jp\",\n \"ogimi.okinawa.jp\",\n \"okinawa.okinawa.jp\",\n \"onna.okinawa.jp\",\n \"shimoji.okinawa.jp\",\n \"taketomi.okinawa.jp\",\n \"tarama.okinawa.jp\",\n \"tokashiki.okinawa.jp\",\n \"tomigusuku.okinawa.jp\",\n \"tonaki.okinawa.jp\",\n \"urasoe.okinawa.jp\",\n \"uruma.okinawa.jp\",\n \"yaese.okinawa.jp\",\n \"yomitan.okinawa.jp\",\n \"yonabaru.okinawa.jp\",\n \"yonaguni.okinawa.jp\",\n \"zamami.okinawa.jp\",\n \"abeno.osaka.jp\",\n \"chihayaakasaka.osaka.jp\",\n \"chuo.osaka.jp\",\n \"daito.osaka.jp\",\n \"fujiidera.osaka.jp\",\n \"habikino.osaka.jp\",\n \"hannan.osaka.jp\",\n \"higashiosaka.osaka.jp\",\n \"higashisumiyoshi.osaka.jp\",\n \"higashiyodogawa.osaka.jp\",\n \"hirakata.osaka.jp\",\n \"ibaraki.osaka.jp\",\n \"ikeda.osaka.jp\",\n \"izumi.osaka.jp\",\n \"izumiotsu.osaka.jp\",\n \"izumisano.osaka.jp\",\n \"kadoma.osaka.jp\",\n \"kaizuka.osaka.jp\",\n \"kanan.osaka.jp\",\n \"kashiwara.osaka.jp\",\n \"katano.osaka.jp\",\n \"kawachinagano.osaka.jp\",\n \"kishiwada.osaka.jp\",\n \"kita.osaka.jp\",\n \"kumatori.osaka.jp\",\n \"matsubara.osaka.jp\",\n \"minato.osaka.jp\",\n \"minoh.osaka.jp\",\n \"misaki.osaka.jp\",\n \"moriguchi.osaka.jp\",\n \"neyagawa.osaka.jp\",\n \"nishi.osaka.jp\",\n \"nose.osaka.jp\",\n \"osakasayama.osaka.jp\",\n \"sakai.osaka.jp\",\n \"sayama.osaka.jp\",\n \"sennan.osaka.jp\",\n \"settsu.osaka.jp\",\n \"shijonawate.osaka.jp\",\n \"shimamoto.osaka.jp\",\n \"suita.osaka.jp\",\n \"tadaoka.osaka.jp\",\n \"taishi.osaka.jp\",\n \"tajiri.osaka.jp\",\n \"takaishi.osaka.jp\",\n \"takatsuki.osaka.jp\",\n \"tondabayashi.osaka.jp\",\n \"toyonaka.osaka.jp\",\n \"toyono.osaka.jp\",\n \"yao.osaka.jp\",\n \"ariake.saga.jp\",\n \"arita.saga.jp\",\n \"fukudomi.saga.jp\",\n \"genkai.saga.jp\",\n \"hamatama.saga.jp\",\n \"hizen.saga.jp\",\n \"imari.saga.jp\",\n \"kamimine.saga.jp\",\n \"kanzaki.saga.jp\",\n \"karatsu.saga.jp\",\n \"kashima.saga.jp\",\n \"kitagata.saga.jp\",\n \"kitahata.saga.jp\",\n \"kiyama.saga.jp\",\n \"kouhoku.saga.jp\",\n \"kyuragi.saga.jp\",\n \"nishiarita.saga.jp\",\n \"ogi.saga.jp\",\n \"omachi.saga.jp\",\n \"ouchi.saga.jp\",\n \"saga.saga.jp\",\n \"shiroishi.saga.jp\",\n \"taku.saga.jp\",\n \"tara.saga.jp\",\n \"tosu.saga.jp\",\n \"yoshinogari.saga.jp\",\n \"arakawa.saitama.jp\",\n \"asaka.saitama.jp\",\n \"chichibu.saitama.jp\",\n \"fujimi.saitama.jp\",\n \"fujimino.saitama.jp\",\n \"fukaya.saitama.jp\",\n \"hanno.saitama.jp\",\n \"hanyu.saitama.jp\",\n \"hasuda.saitama.jp\",\n \"hatogaya.saitama.jp\",\n \"hatoyama.saitama.jp\",\n \"hidaka.saitama.jp\",\n \"higashichichibu.saitama.jp\",\n \"higashimatsuyama.saitama.jp\",\n \"honjo.saitama.jp\",\n \"ina.saitama.jp\",\n \"iruma.saitama.jp\",\n \"iwatsuki.saitama.jp\",\n \"kamiizumi.saitama.jp\",\n \"kamikawa.saitama.jp\",\n \"kamisato.saitama.jp\",\n \"kasukabe.saitama.jp\",\n \"kawagoe.saitama.jp\",\n \"kawaguchi.saitama.jp\",\n \"kawajima.saitama.jp\",\n \"kazo.saitama.jp\",\n \"kitamoto.saitama.jp\",\n \"koshigaya.saitama.jp\",\n \"kounosu.saitama.jp\",\n \"kuki.saitama.jp\",\n \"kumagaya.saitama.jp\",\n \"matsubushi.saitama.jp\",\n \"minano.saitama.jp\",\n \"misato.saitama.jp\",\n \"miyashiro.saitama.jp\",\n \"miyoshi.saitama.jp\",\n \"moroyama.saitama.jp\",\n \"nagatoro.saitama.jp\",\n \"namegawa.saitama.jp\",\n \"niiza.saitama.jp\",\n \"ogano.saitama.jp\",\n \"ogawa.saitama.jp\",\n \"ogose.saitama.jp\",\n \"okegawa.saitama.jp\",\n \"omiya.saitama.jp\",\n \"otaki.saitama.jp\",\n \"ranzan.saitama.jp\",\n \"ryokami.saitama.jp\",\n \"saitama.saitama.jp\",\n \"sakado.saitama.jp\",\n \"satte.saitama.jp\",\n \"sayama.saitama.jp\",\n \"shiki.saitama.jp\",\n \"shiraoka.saitama.jp\",\n \"soka.saitama.jp\",\n \"sugito.saitama.jp\",\n \"toda.saitama.jp\",\n \"tokigawa.saitama.jp\",\n \"tokorozawa.saitama.jp\",\n \"tsurugashima.saitama.jp\",\n \"urawa.saitama.jp\",\n \"warabi.saitama.jp\",\n \"yashio.saitama.jp\",\n \"yokoze.saitama.jp\",\n \"yono.saitama.jp\",\n \"yorii.saitama.jp\",\n \"yoshida.saitama.jp\",\n \"yoshikawa.saitama.jp\",\n \"yoshimi.saitama.jp\",\n \"aisho.shiga.jp\",\n \"gamo.shiga.jp\",\n \"higashiomi.shiga.jp\",\n \"hikone.shiga.jp\",\n \"koka.shiga.jp\",\n \"konan.shiga.jp\",\n \"kosei.shiga.jp\",\n \"koto.shiga.jp\",\n \"kusatsu.shiga.jp\",\n \"maibara.shiga.jp\",\n \"moriyama.shiga.jp\",\n \"nagahama.shiga.jp\",\n \"nishiazai.shiga.jp\",\n \"notogawa.shiga.jp\",\n \"omihachiman.shiga.jp\",\n \"otsu.shiga.jp\",\n \"ritto.shiga.jp\",\n \"ryuoh.shiga.jp\",\n \"takashima.shiga.jp\",\n \"takatsuki.shiga.jp\",\n \"torahime.shiga.jp\",\n \"toyosato.shiga.jp\",\n \"yasu.shiga.jp\",\n \"akagi.shimane.jp\",\n \"ama.shimane.jp\",\n \"gotsu.shimane.jp\",\n \"hamada.shimane.jp\",\n \"higashiizumo.shimane.jp\",\n \"hikawa.shimane.jp\",\n \"hikimi.shimane.jp\",\n \"izumo.shimane.jp\",\n \"kakinoki.shimane.jp\",\n \"masuda.shimane.jp\",\n \"matsue.shimane.jp\",\n \"misato.shimane.jp\",\n \"nishinoshima.shimane.jp\",\n \"ohda.shimane.jp\",\n \"okinoshima.shimane.jp\",\n \"okuizumo.shimane.jp\",\n \"shimane.shimane.jp\",\n \"tamayu.shimane.jp\",\n \"tsuwano.shimane.jp\",\n \"unnan.shimane.jp\",\n \"yakumo.shimane.jp\",\n \"yasugi.shimane.jp\",\n \"yatsuka.shimane.jp\",\n \"arai.shizuoka.jp\",\n \"atami.shizuoka.jp\",\n \"fuji.shizuoka.jp\",\n \"fujieda.shizuoka.jp\",\n \"fujikawa.shizuoka.jp\",\n \"fujinomiya.shizuoka.jp\",\n \"fukuroi.shizuoka.jp\",\n \"gotemba.shizuoka.jp\",\n \"haibara.shizuoka.jp\",\n \"hamamatsu.shizuoka.jp\",\n \"higashiizu.shizuoka.jp\",\n \"ito.shizuoka.jp\",\n \"iwata.shizuoka.jp\",\n \"izu.shizuoka.jp\",\n \"izunokuni.shizuoka.jp\",\n \"kakegawa.shizuoka.jp\",\n \"kannami.shizuoka.jp\",\n \"kawanehon.shizuoka.jp\",\n \"kawazu.shizuoka.jp\",\n \"kikugawa.shizuoka.jp\",\n \"kosai.shizuoka.jp\",\n \"makinohara.shizuoka.jp\",\n \"matsuzaki.shizuoka.jp\",\n \"minamiizu.shizuoka.jp\",\n \"mishima.shizuoka.jp\",\n \"morimachi.shizuoka.jp\",\n \"nishiizu.shizuoka.jp\",\n \"numazu.shizuoka.jp\",\n \"omaezaki.shizuoka.jp\",\n \"shimada.shizuoka.jp\",\n \"shimizu.shizuoka.jp\",\n \"shimoda.shizuoka.jp\",\n \"shizuoka.shizuoka.jp\",\n \"susono.shizuoka.jp\",\n \"yaizu.shizuoka.jp\",\n \"yoshida.shizuoka.jp\",\n \"ashikaga.tochigi.jp\",\n \"bato.tochigi.jp\",\n \"haga.tochigi.jp\",\n \"ichikai.tochigi.jp\",\n \"iwafune.tochigi.jp\",\n \"kaminokawa.tochigi.jp\",\n \"kanuma.tochigi.jp\",\n \"karasuyama.tochigi.jp\",\n \"kuroiso.tochigi.jp\",\n \"mashiko.tochigi.jp\",\n \"mibu.tochigi.jp\",\n \"moka.tochigi.jp\",\n \"motegi.tochigi.jp\",\n \"nasu.tochigi.jp\",\n \"nasushiobara.tochigi.jp\",\n \"nikko.tochigi.jp\",\n \"nishikata.tochigi.jp\",\n \"nogi.tochigi.jp\",\n \"ohira.tochigi.jp\",\n \"ohtawara.tochigi.jp\",\n \"oyama.tochigi.jp\",\n \"sakura.tochigi.jp\",\n \"sano.tochigi.jp\",\n \"shimotsuke.tochigi.jp\",\n \"shioya.tochigi.jp\",\n \"takanezawa.tochigi.jp\",\n \"tochigi.tochigi.jp\",\n \"tsuga.tochigi.jp\",\n \"ujiie.tochigi.jp\",\n \"utsunomiya.tochigi.jp\",\n \"yaita.tochigi.jp\",\n \"aizumi.tokushima.jp\",\n \"anan.tokushima.jp\",\n \"ichiba.tokushima.jp\",\n \"itano.tokushima.jp\",\n \"kainan.tokushima.jp\",\n \"komatsushima.tokushima.jp\",\n \"matsushige.tokushima.jp\",\n \"mima.tokushima.jp\",\n \"minami.tokushima.jp\",\n \"miyoshi.tokushima.jp\",\n \"mugi.tokushima.jp\",\n \"nakagawa.tokushima.jp\",\n \"naruto.tokushima.jp\",\n \"sanagochi.tokushima.jp\",\n \"shishikui.tokushima.jp\",\n \"tokushima.tokushima.jp\",\n \"wajiki.tokushima.jp\",\n \"adachi.tokyo.jp\",\n \"akiruno.tokyo.jp\",\n \"akishima.tokyo.jp\",\n \"aogashima.tokyo.jp\",\n \"arakawa.tokyo.jp\",\n \"bunkyo.tokyo.jp\",\n \"chiyoda.tokyo.jp\",\n \"chofu.tokyo.jp\",\n \"chuo.tokyo.jp\",\n \"edogawa.tokyo.jp\",\n \"fuchu.tokyo.jp\",\n \"fussa.tokyo.jp\",\n \"hachijo.tokyo.jp\",\n \"hachioji.tokyo.jp\",\n \"hamura.tokyo.jp\",\n \"higashikurume.tokyo.jp\",\n \"higashimurayama.tokyo.jp\",\n \"higashiyamato.tokyo.jp\",\n \"hino.tokyo.jp\",\n \"hinode.tokyo.jp\",\n \"hinohara.tokyo.jp\",\n \"inagi.tokyo.jp\",\n \"itabashi.tokyo.jp\",\n \"katsushika.tokyo.jp\",\n \"kita.tokyo.jp\",\n \"kiyose.tokyo.jp\",\n \"kodaira.tokyo.jp\",\n \"koganei.tokyo.jp\",\n \"kokubunji.tokyo.jp\",\n \"komae.tokyo.jp\",\n \"koto.tokyo.jp\",\n \"kouzushima.tokyo.jp\",\n \"kunitachi.tokyo.jp\",\n \"machida.tokyo.jp\",\n \"meguro.tokyo.jp\",\n \"minato.tokyo.jp\",\n \"mitaka.tokyo.jp\",\n \"mizuho.tokyo.jp\",\n \"musashimurayama.tokyo.jp\",\n \"musashino.tokyo.jp\",\n \"nakano.tokyo.jp\",\n \"nerima.tokyo.jp\",\n \"ogasawara.tokyo.jp\",\n \"okutama.tokyo.jp\",\n \"ome.tokyo.jp\",\n \"oshima.tokyo.jp\",\n \"ota.tokyo.jp\",\n \"setagaya.tokyo.jp\",\n \"shibuya.tokyo.jp\",\n \"shinagawa.tokyo.jp\",\n \"shinjuku.tokyo.jp\",\n \"suginami.tokyo.jp\",\n \"sumida.tokyo.jp\",\n \"tachikawa.tokyo.jp\",\n \"taito.tokyo.jp\",\n \"tama.tokyo.jp\",\n \"toshima.tokyo.jp\",\n \"chizu.tottori.jp\",\n \"hino.tottori.jp\",\n \"kawahara.tottori.jp\",\n \"koge.tottori.jp\",\n \"kotoura.tottori.jp\",\n \"misasa.tottori.jp\",\n \"nanbu.tottori.jp\",\n \"nichinan.tottori.jp\",\n \"sakaiminato.tottori.jp\",\n \"tottori.tottori.jp\",\n \"wakasa.tottori.jp\",\n \"yazu.tottori.jp\",\n \"yonago.tottori.jp\",\n \"asahi.toyama.jp\",\n \"fuchu.toyama.jp\",\n \"fukumitsu.toyama.jp\",\n \"funahashi.toyama.jp\",\n \"himi.toyama.jp\",\n \"imizu.toyama.jp\",\n \"inami.toyama.jp\",\n \"johana.toyama.jp\",\n \"kamiichi.toyama.jp\",\n \"kurobe.toyama.jp\",\n \"nakaniikawa.toyama.jp\",\n \"namerikawa.toyama.jp\",\n \"nanto.toyama.jp\",\n \"nyuzen.toyama.jp\",\n \"oyabe.toyama.jp\",\n \"taira.toyama.jp\",\n \"takaoka.toyama.jp\",\n \"tateyama.toyama.jp\",\n \"toga.toyama.jp\",\n \"tonami.toyama.jp\",\n \"toyama.toyama.jp\",\n \"unazuki.toyama.jp\",\n \"uozu.toyama.jp\",\n \"yamada.toyama.jp\",\n \"arida.wakayama.jp\",\n \"aridagawa.wakayama.jp\",\n \"gobo.wakayama.jp\",\n \"hashimoto.wakayama.jp\",\n \"hidaka.wakayama.jp\",\n \"hirogawa.wakayama.jp\",\n \"inami.wakayama.jp\",\n \"iwade.wakayama.jp\",\n \"kainan.wakayama.jp\",\n \"kamitonda.wakayama.jp\",\n \"katsuragi.wakayama.jp\",\n \"kimino.wakayama.jp\",\n \"kinokawa.wakayama.jp\",\n \"kitayama.wakayama.jp\",\n \"koya.wakayama.jp\",\n \"koza.wakayama.jp\",\n \"kozagawa.wakayama.jp\",\n \"kudoyama.wakayama.jp\",\n \"kushimoto.wakayama.jp\",\n \"mihama.wakayama.jp\",\n \"misato.wakayama.jp\",\n \"nachikatsuura.wakayama.jp\",\n \"shingu.wakayama.jp\",\n \"shirahama.wakayama.jp\",\n \"taiji.wakayama.jp\",\n \"tanabe.wakayama.jp\",\n \"wakayama.wakayama.jp\",\n \"yuasa.wakayama.jp\",\n \"yura.wakayama.jp\",\n \"asahi.yamagata.jp\",\n \"funagata.yamagata.jp\",\n \"higashine.yamagata.jp\",\n \"iide.yamagata.jp\",\n \"kahoku.yamagata.jp\",\n \"kaminoyama.yamagata.jp\",\n \"kaneyama.yamagata.jp\",\n \"kawanishi.yamagata.jp\",\n \"mamurogawa.yamagata.jp\",\n \"mikawa.yamagata.jp\",\n \"murayama.yamagata.jp\",\n \"nagai.yamagata.jp\",\n \"nakayama.yamagata.jp\",\n \"nanyo.yamagata.jp\",\n \"nishikawa.yamagata.jp\",\n \"obanazawa.yamagata.jp\",\n \"oe.yamagata.jp\",\n \"oguni.yamagata.jp\",\n \"ohkura.yamagata.jp\",\n \"oishida.yamagata.jp\",\n \"sagae.yamagata.jp\",\n \"sakata.yamagata.jp\",\n \"sakegawa.yamagata.jp\",\n \"shinjo.yamagata.jp\",\n \"shirataka.yamagata.jp\",\n \"shonai.yamagata.jp\",\n \"takahata.yamagata.jp\",\n \"tendo.yamagata.jp\",\n \"tozawa.yamagata.jp\",\n \"tsuruoka.yamagata.jp\",\n \"yamagata.yamagata.jp\",\n \"yamanobe.yamagata.jp\",\n \"yonezawa.yamagata.jp\",\n \"yuza.yamagata.jp\",\n \"abu.yamaguchi.jp\",\n \"hagi.yamaguchi.jp\",\n \"hikari.yamaguchi.jp\",\n \"hofu.yamaguchi.jp\",\n \"iwakuni.yamaguchi.jp\",\n \"kudamatsu.yamaguchi.jp\",\n \"mitou.yamaguchi.jp\",\n \"nagato.yamaguchi.jp\",\n \"oshima.yamaguchi.jp\",\n \"shimonoseki.yamaguchi.jp\",\n \"shunan.yamaguchi.jp\",\n \"tabuse.yamaguchi.jp\",\n \"tokuyama.yamaguchi.jp\",\n \"toyota.yamaguchi.jp\",\n \"ube.yamaguchi.jp\",\n \"yuu.yamaguchi.jp\",\n \"chuo.yamanashi.jp\",\n \"doshi.yamanashi.jp\",\n \"fuefuki.yamanashi.jp\",\n \"fujikawa.yamanashi.jp\",\n \"fujikawaguchiko.yamanashi.jp\",\n \"fujiyoshida.yamanashi.jp\",\n \"hayakawa.yamanashi.jp\",\n \"hokuto.yamanashi.jp\",\n \"ichikawamisato.yamanashi.jp\",\n \"kai.yamanashi.jp\",\n \"kofu.yamanashi.jp\",\n \"koshu.yamanashi.jp\",\n \"kosuge.yamanashi.jp\",\n \"minami-alps.yamanashi.jp\",\n \"minobu.yamanashi.jp\",\n \"nakamichi.yamanashi.jp\",\n \"nanbu.yamanashi.jp\",\n \"narusawa.yamanashi.jp\",\n \"nirasaki.yamanashi.jp\",\n \"nishikatsura.yamanashi.jp\",\n \"oshino.yamanashi.jp\",\n \"otsuki.yamanashi.jp\",\n \"showa.yamanashi.jp\",\n \"tabayama.yamanashi.jp\",\n \"tsuru.yamanashi.jp\",\n \"uenohara.yamanashi.jp\",\n \"yamanakako.yamanashi.jp\",\n \"yamanashi.yamanashi.jp\",\n \"ke\",\n \"ac.ke\",\n \"co.ke\",\n \"go.ke\",\n \"info.ke\",\n \"me.ke\",\n \"mobi.ke\",\n \"ne.ke\",\n \"or.ke\",\n \"sc.ke\",\n \"kg\",\n \"org.kg\",\n \"net.kg\",\n \"com.kg\",\n \"edu.kg\",\n \"gov.kg\",\n \"mil.kg\",\n \"*.kh\",\n \"ki\",\n \"edu.ki\",\n \"biz.ki\",\n \"net.ki\",\n \"org.ki\",\n \"gov.ki\",\n \"info.ki\",\n \"com.ki\",\n \"km\",\n \"org.km\",\n \"nom.km\",\n \"gov.km\",\n \"prd.km\",\n \"tm.km\",\n \"edu.km\",\n \"mil.km\",\n \"ass.km\",\n \"com.km\",\n \"coop.km\",\n \"asso.km\",\n \"presse.km\",\n \"medecin.km\",\n \"notaires.km\",\n \"pharmaciens.km\",\n \"veterinaire.km\",\n \"gouv.km\",\n \"kn\",\n \"net.kn\",\n \"org.kn\",\n \"edu.kn\",\n \"gov.kn\",\n \"kp\",\n \"com.kp\",\n \"edu.kp\",\n \"gov.kp\",\n \"org.kp\",\n \"rep.kp\",\n \"tra.kp\",\n \"kr\",\n \"ac.kr\",\n \"co.kr\",\n \"es.kr\",\n \"go.kr\",\n \"hs.kr\",\n \"kg.kr\",\n \"mil.kr\",\n \"ms.kr\",\n \"ne.kr\",\n \"or.kr\",\n \"pe.kr\",\n \"re.kr\",\n \"sc.kr\",\n \"busan.kr\",\n \"chungbuk.kr\",\n \"chungnam.kr\",\n \"daegu.kr\",\n \"daejeon.kr\",\n \"gangwon.kr\",\n \"gwangju.kr\",\n \"gyeongbuk.kr\",\n \"gyeonggi.kr\",\n \"gyeongnam.kr\",\n \"incheon.kr\",\n \"jeju.kr\",\n \"jeonbuk.kr\",\n \"jeonnam.kr\",\n \"seoul.kr\",\n \"ulsan.kr\",\n \"kw\",\n \"com.kw\",\n \"edu.kw\",\n \"emb.kw\",\n \"gov.kw\",\n \"ind.kw\",\n \"net.kw\",\n \"org.kw\",\n \"ky\",\n \"com.ky\",\n \"edu.ky\",\n \"net.ky\",\n \"org.ky\",\n \"kz\",\n \"org.kz\",\n \"edu.kz\",\n \"net.kz\",\n \"gov.kz\",\n \"mil.kz\",\n \"com.kz\",\n \"la\",\n \"int.la\",\n \"net.la\",\n \"info.la\",\n \"edu.la\",\n \"gov.la\",\n \"per.la\",\n \"com.la\",\n \"org.la\",\n \"lb\",\n \"com.lb\",\n \"edu.lb\",\n \"gov.lb\",\n \"net.lb\",\n \"org.lb\",\n \"lc\",\n \"com.lc\",\n \"net.lc\",\n \"co.lc\",\n \"org.lc\",\n \"edu.lc\",\n \"gov.lc\",\n \"li\",\n \"lk\",\n \"gov.lk\",\n \"sch.lk\",\n \"net.lk\",\n \"int.lk\",\n \"com.lk\",\n \"org.lk\",\n \"edu.lk\",\n \"ngo.lk\",\n \"soc.lk\",\n \"web.lk\",\n \"ltd.lk\",\n \"assn.lk\",\n \"grp.lk\",\n \"hotel.lk\",\n \"ac.lk\",\n \"lr\",\n \"com.lr\",\n \"edu.lr\",\n \"gov.lr\",\n \"org.lr\",\n \"net.lr\",\n \"ls\",\n \"ac.ls\",\n \"biz.ls\",\n \"co.ls\",\n \"edu.ls\",\n \"gov.ls\",\n \"info.ls\",\n \"net.ls\",\n \"org.ls\",\n \"sc.ls\",\n \"lt\",\n \"gov.lt\",\n \"lu\",\n \"lv\",\n \"com.lv\",\n \"edu.lv\",\n \"gov.lv\",\n \"org.lv\",\n \"mil.lv\",\n \"id.lv\",\n \"net.lv\",\n \"asn.lv\",\n \"conf.lv\",\n \"ly\",\n \"com.ly\",\n \"net.ly\",\n \"gov.ly\",\n \"plc.ly\",\n \"edu.ly\",\n \"sch.ly\",\n \"med.ly\",\n \"org.ly\",\n \"id.ly\",\n \"ma\",\n \"co.ma\",\n \"net.ma\",\n \"gov.ma\",\n \"org.ma\",\n \"ac.ma\",\n \"press.ma\",\n \"mc\",\n \"tm.mc\",\n \"asso.mc\",\n \"md\",\n \"me\",\n \"co.me\",\n \"net.me\",\n \"org.me\",\n \"edu.me\",\n \"ac.me\",\n \"gov.me\",\n \"its.me\",\n \"priv.me\",\n \"mg\",\n \"org.mg\",\n \"nom.mg\",\n \"gov.mg\",\n \"prd.mg\",\n \"tm.mg\",\n \"edu.mg\",\n \"mil.mg\",\n \"com.mg\",\n \"co.mg\",\n \"mh\",\n \"mil\",\n \"mk\",\n \"com.mk\",\n \"org.mk\",\n \"net.mk\",\n \"edu.mk\",\n \"gov.mk\",\n \"inf.mk\",\n \"name.mk\",\n \"ml\",\n \"com.ml\",\n \"edu.ml\",\n \"gouv.ml\",\n \"gov.ml\",\n \"net.ml\",\n \"org.ml\",\n \"presse.ml\",\n \"*.mm\",\n \"mn\",\n \"gov.mn\",\n \"edu.mn\",\n \"org.mn\",\n \"mo\",\n \"com.mo\",\n \"net.mo\",\n \"org.mo\",\n \"edu.mo\",\n \"gov.mo\",\n \"mobi\",\n \"mp\",\n \"mq\",\n \"mr\",\n \"gov.mr\",\n \"ms\",\n \"com.ms\",\n \"edu.ms\",\n \"gov.ms\",\n \"net.ms\",\n \"org.ms\",\n \"mt\",\n \"com.mt\",\n \"edu.mt\",\n \"net.mt\",\n \"org.mt\",\n \"mu\",\n \"com.mu\",\n \"net.mu\",\n \"org.mu\",\n \"gov.mu\",\n \"ac.mu\",\n \"co.mu\",\n \"or.mu\",\n \"museum\",\n \"academy.museum\",\n \"agriculture.museum\",\n \"air.museum\",\n \"airguard.museum\",\n \"alabama.museum\",\n \"alaska.museum\",\n \"amber.museum\",\n \"ambulance.museum\",\n \"american.museum\",\n \"americana.museum\",\n \"americanantiques.museum\",\n \"americanart.museum\",\n \"amsterdam.museum\",\n \"and.museum\",\n \"annefrank.museum\",\n \"anthro.museum\",\n \"anthropology.museum\",\n \"antiques.museum\",\n \"aquarium.museum\",\n \"arboretum.museum\",\n \"archaeological.museum\",\n \"archaeology.museum\",\n \"architecture.museum\",\n \"art.museum\",\n \"artanddesign.museum\",\n \"artcenter.museum\",\n \"artdeco.museum\",\n \"arteducation.museum\",\n \"artgallery.museum\",\n \"arts.museum\",\n \"artsandcrafts.museum\",\n \"asmatart.museum\",\n \"assassination.museum\",\n \"assisi.museum\",\n \"association.museum\",\n \"astronomy.museum\",\n \"atlanta.museum\",\n \"austin.museum\",\n \"australia.museum\",\n \"automotive.museum\",\n \"aviation.museum\",\n \"axis.museum\",\n \"badajoz.museum\",\n \"baghdad.museum\",\n \"bahn.museum\",\n \"bale.museum\",\n \"baltimore.museum\",\n \"barcelona.museum\",\n \"baseball.museum\",\n \"basel.museum\",\n \"baths.museum\",\n \"bauern.museum\",\n \"beauxarts.museum\",\n \"beeldengeluid.museum\",\n \"bellevue.museum\",\n \"bergbau.museum\",\n \"berkeley.museum\",\n \"berlin.museum\",\n \"bern.museum\",\n \"bible.museum\",\n \"bilbao.museum\",\n \"bill.museum\",\n \"birdart.museum\",\n \"birthplace.museum\",\n \"bonn.museum\",\n \"boston.museum\",\n \"botanical.museum\",\n \"botanicalgarden.museum\",\n \"botanicgarden.museum\",\n \"botany.museum\",\n \"brandywinevalley.museum\",\n \"brasil.museum\",\n \"bristol.museum\",\n \"british.museum\",\n \"britishcolumbia.museum\",\n \"broadcast.museum\",\n \"brunel.museum\",\n \"brussel.museum\",\n \"brussels.museum\",\n \"bruxelles.museum\",\n \"building.museum\",\n \"burghof.museum\",\n \"bus.museum\",\n \"bushey.museum\",\n \"cadaques.museum\",\n \"california.museum\",\n \"cambridge.museum\",\n \"can.museum\",\n \"canada.museum\",\n \"capebreton.museum\",\n \"carrier.museum\",\n \"cartoonart.museum\",\n \"casadelamoneda.museum\",\n \"castle.museum\",\n \"castres.museum\",\n \"celtic.museum\",\n \"center.museum\",\n \"chattanooga.museum\",\n \"cheltenham.museum\",\n \"chesapeakebay.museum\",\n \"chicago.museum\",\n \"children.museum\",\n \"childrens.museum\",\n \"childrensgarden.museum\",\n \"chiropractic.museum\",\n \"chocolate.museum\",\n \"christiansburg.museum\",\n \"cincinnati.museum\",\n \"cinema.museum\",\n \"circus.museum\",\n \"civilisation.museum\",\n \"civilization.museum\",\n \"civilwar.museum\",\n \"clinton.museum\",\n \"clock.museum\",\n \"coal.museum\",\n \"coastaldefence.museum\",\n \"cody.museum\",\n \"coldwar.museum\",\n \"collection.museum\",\n \"colonialwilliamsburg.museum\",\n \"coloradoplateau.museum\",\n \"columbia.museum\",\n \"columbus.museum\",\n \"communication.museum\",\n \"communications.museum\",\n \"community.museum\",\n \"computer.museum\",\n \"computerhistory.museum\",\n \"comunica\\xE7\\xF5es.museum\",\n \"contemporary.museum\",\n \"contemporaryart.museum\",\n \"convent.museum\",\n \"copenhagen.museum\",\n \"corporation.museum\",\n \"correios-e-telecomunica\\xE7\\xF5es.museum\",\n \"corvette.museum\",\n \"costume.museum\",\n \"countryestate.museum\",\n \"county.museum\",\n \"crafts.museum\",\n \"cranbrook.museum\",\n \"creation.museum\",\n \"cultural.museum\",\n \"culturalcenter.museum\",\n \"culture.museum\",\n \"cyber.museum\",\n \"cymru.museum\",\n \"dali.museum\",\n \"dallas.museum\",\n \"database.museum\",\n \"ddr.museum\",\n \"decorativearts.museum\",\n \"delaware.museum\",\n \"delmenhorst.museum\",\n \"denmark.museum\",\n \"depot.museum\",\n \"design.museum\",\n \"detroit.museum\",\n \"dinosaur.museum\",\n \"discovery.museum\",\n \"dolls.museum\",\n \"donostia.museum\",\n \"durham.museum\",\n \"eastafrica.museum\",\n \"eastcoast.museum\",\n \"education.museum\",\n \"educational.museum\",\n \"egyptian.museum\",\n \"eisenbahn.museum\",\n \"elburg.museum\",\n \"elvendrell.museum\",\n \"embroidery.museum\",\n \"encyclopedic.museum\",\n \"england.museum\",\n \"entomology.museum\",\n \"environment.museum\",\n \"environmentalconservation.museum\",\n \"epilepsy.museum\",\n \"essex.museum\",\n \"estate.museum\",\n \"ethnology.museum\",\n \"exeter.museum\",\n \"exhibition.museum\",\n \"family.museum\",\n \"farm.museum\",\n \"farmequipment.museum\",\n \"farmers.museum\",\n \"farmstead.museum\",\n \"field.museum\",\n \"figueres.museum\",\n \"filatelia.museum\",\n \"film.museum\",\n \"fineart.museum\",\n \"finearts.museum\",\n \"finland.museum\",\n \"flanders.museum\",\n \"florida.museum\",\n \"force.museum\",\n \"fortmissoula.museum\",\n \"fortworth.museum\",\n \"foundation.museum\",\n \"francaise.museum\",\n \"frankfurt.museum\",\n \"franziskaner.museum\",\n \"freemasonry.museum\",\n \"freiburg.museum\",\n \"fribourg.museum\",\n \"frog.museum\",\n \"fundacio.museum\",\n \"furniture.museum\",\n \"gallery.museum\",\n \"garden.museum\",\n \"gateway.museum\",\n \"geelvinck.museum\",\n \"gemological.museum\",\n \"geology.museum\",\n \"georgia.museum\",\n \"giessen.museum\",\n \"glas.museum\",\n \"glass.museum\",\n \"gorge.museum\",\n \"grandrapids.museum\",\n \"graz.museum\",\n \"guernsey.museum\",\n \"halloffame.museum\",\n \"hamburg.museum\",\n \"handson.museum\",\n \"harvestcelebration.museum\",\n \"hawaii.museum\",\n \"health.museum\",\n \"heimatunduhren.museum\",\n \"hellas.museum\",\n \"helsinki.museum\",\n \"hembygdsforbund.museum\",\n \"heritage.museum\",\n \"histoire.museum\",\n \"historical.museum\",\n \"historicalsociety.museum\",\n \"historichouses.museum\",\n \"historisch.museum\",\n \"historisches.museum\",\n \"history.museum\",\n \"historyofscience.museum\",\n \"horology.museum\",\n \"house.museum\",\n \"humanities.museum\",\n \"illustration.museum\",\n \"imageandsound.museum\",\n \"indian.museum\",\n \"indiana.museum\",\n \"indianapolis.museum\",\n \"indianmarket.museum\",\n \"intelligence.museum\",\n \"interactive.museum\",\n \"iraq.museum\",\n \"iron.museum\",\n \"isleofman.museum\",\n \"jamison.museum\",\n \"jefferson.museum\",\n \"jerusalem.museum\",\n \"jewelry.museum\",\n \"jewish.museum\",\n \"jewishart.museum\",\n \"jfk.museum\",\n \"journalism.museum\",\n \"judaica.museum\",\n \"judygarland.museum\",\n \"juedisches.museum\",\n \"juif.museum\",\n \"karate.museum\",\n \"karikatur.museum\",\n \"kids.museum\",\n \"koebenhavn.museum\",\n \"koeln.museum\",\n \"kunst.museum\",\n \"kunstsammlung.museum\",\n \"kunstunddesign.museum\",\n \"labor.museum\",\n \"labour.museum\",\n \"lajolla.museum\",\n \"lancashire.museum\",\n \"landes.museum\",\n \"lans.museum\",\n \"l\\xE4ns.museum\",\n \"larsson.museum\",\n \"lewismiller.museum\",\n \"lincoln.museum\",\n \"linz.museum\",\n \"living.museum\",\n \"livinghistory.museum\",\n \"localhistory.museum\",\n \"london.museum\",\n \"losangeles.museum\",\n \"louvre.museum\",\n \"loyalist.museum\",\n \"lucerne.museum\",\n \"luxembourg.museum\",\n \"luzern.museum\",\n \"mad.museum\",\n \"madrid.museum\",\n \"mallorca.museum\",\n \"manchester.museum\",\n \"mansion.museum\",\n \"mansions.museum\",\n \"manx.museum\",\n \"marburg.museum\",\n \"maritime.museum\",\n \"maritimo.museum\",\n \"maryland.museum\",\n \"marylhurst.museum\",\n \"media.museum\",\n \"medical.museum\",\n \"medizinhistorisches.museum\",\n \"meeres.museum\",\n \"memorial.museum\",\n \"mesaverde.museum\",\n \"michigan.museum\",\n \"midatlantic.museum\",\n \"military.museum\",\n \"mill.museum\",\n \"miners.museum\",\n \"mining.museum\",\n \"minnesota.museum\",\n \"missile.museum\",\n \"missoula.museum\",\n \"modern.museum\",\n \"moma.museum\",\n \"money.museum\",\n \"monmouth.museum\",\n \"monticello.museum\",\n \"montreal.museum\",\n \"moscow.museum\",\n \"motorcycle.museum\",\n \"muenchen.museum\",\n \"muenster.museum\",\n \"mulhouse.museum\",\n \"muncie.museum\",\n \"museet.museum\",\n \"museumcenter.museum\",\n \"museumvereniging.museum\",\n \"music.museum\",\n \"national.museum\",\n \"nationalfirearms.museum\",\n \"nationalheritage.museum\",\n \"nativeamerican.museum\",\n \"naturalhistory.museum\",\n \"naturalhistorymuseum.museum\",\n \"naturalsciences.museum\",\n \"nature.museum\",\n \"naturhistorisches.museum\",\n \"natuurwetenschappen.museum\",\n \"naumburg.museum\",\n \"naval.museum\",\n \"nebraska.museum\",\n \"neues.museum\",\n \"newhampshire.museum\",\n \"newjersey.museum\",\n \"newmexico.museum\",\n \"newport.museum\",\n \"newspaper.museum\",\n \"newyork.museum\",\n \"niepce.museum\",\n \"norfolk.museum\",\n \"north.museum\",\n \"nrw.museum\",\n \"nyc.museum\",\n \"nyny.museum\",\n \"oceanographic.museum\",\n \"oceanographique.museum\",\n \"omaha.museum\",\n \"online.museum\",\n \"ontario.museum\",\n \"openair.museum\",\n \"oregon.museum\",\n \"oregontrail.museum\",\n \"otago.museum\",\n \"oxford.museum\",\n \"pacific.museum\",\n \"paderborn.museum\",\n \"palace.museum\",\n \"paleo.museum\",\n \"palmsprings.museum\",\n \"panama.museum\",\n \"paris.museum\",\n \"pasadena.museum\",\n \"pharmacy.museum\",\n \"philadelphia.museum\",\n \"philadelphiaarea.museum\",\n \"philately.museum\",\n \"phoenix.museum\",\n \"photography.museum\",\n \"pilots.museum\",\n \"pittsburgh.museum\",\n \"planetarium.museum\",\n \"plantation.museum\",\n \"plants.museum\",\n \"plaza.museum\",\n \"portal.museum\",\n \"portland.museum\",\n \"portlligat.museum\",\n \"posts-and-telecommunications.museum\",\n \"preservation.museum\",\n \"presidio.museum\",\n \"press.museum\",\n \"project.museum\",\n \"public.museum\",\n \"pubol.museum\",\n \"quebec.museum\",\n \"railroad.museum\",\n \"railway.museum\",\n \"research.museum\",\n \"resistance.museum\",\n \"riodejaneiro.museum\",\n \"rochester.museum\",\n \"rockart.museum\",\n \"roma.museum\",\n \"russia.museum\",\n \"saintlouis.museum\",\n \"salem.museum\",\n \"salvadordali.museum\",\n \"salzburg.museum\",\n \"sandiego.museum\",\n \"sanfrancisco.museum\",\n \"santabarbara.museum\",\n \"santacruz.museum\",\n \"santafe.museum\",\n \"saskatchewan.museum\",\n \"satx.museum\",\n \"savannahga.museum\",\n \"schlesisches.museum\",\n \"schoenbrunn.museum\",\n \"schokoladen.museum\",\n \"school.museum\",\n \"schweiz.museum\",\n \"science.museum\",\n \"scienceandhistory.museum\",\n \"scienceandindustry.museum\",\n \"sciencecenter.museum\",\n \"sciencecenters.museum\",\n \"science-fiction.museum\",\n \"sciencehistory.museum\",\n \"sciences.museum\",\n \"sciencesnaturelles.museum\",\n \"scotland.museum\",\n \"seaport.museum\",\n \"settlement.museum\",\n \"settlers.museum\",\n \"shell.museum\",\n \"sherbrooke.museum\",\n \"sibenik.museum\",\n \"silk.museum\",\n \"ski.museum\",\n \"skole.museum\",\n \"society.museum\",\n \"sologne.museum\",\n \"soundandvision.museum\",\n \"southcarolina.museum\",\n \"southwest.museum\",\n \"space.museum\",\n \"spy.museum\",\n \"square.museum\",\n \"stadt.museum\",\n \"stalbans.museum\",\n \"starnberg.museum\",\n \"state.museum\",\n \"stateofdelaware.museum\",\n \"station.museum\",\n \"steam.museum\",\n \"steiermark.museum\",\n \"stjohn.museum\",\n \"stockholm.museum\",\n \"stpetersburg.museum\",\n \"stuttgart.museum\",\n \"suisse.museum\",\n \"surgeonshall.museum\",\n \"surrey.museum\",\n \"svizzera.museum\",\n \"sweden.museum\",\n \"sydney.museum\",\n \"tank.museum\",\n \"tcm.museum\",\n \"technology.museum\",\n \"telekommunikation.museum\",\n \"television.museum\",\n \"texas.museum\",\n \"textile.museum\",\n \"theater.museum\",\n \"time.museum\",\n \"timekeeping.museum\",\n \"topology.museum\",\n \"torino.museum\",\n \"touch.museum\",\n \"town.museum\",\n \"transport.museum\",\n \"tree.museum\",\n \"trolley.museum\",\n \"trust.museum\",\n \"trustee.museum\",\n \"uhren.museum\",\n \"ulm.museum\",\n \"undersea.museum\",\n \"university.museum\",\n \"usa.museum\",\n \"usantiques.museum\",\n \"usarts.museum\",\n \"uscountryestate.museum\",\n \"usculture.museum\",\n \"usdecorativearts.museum\",\n \"usgarden.museum\",\n \"ushistory.museum\",\n \"ushuaia.museum\",\n \"uslivinghistory.museum\",\n \"utah.museum\",\n \"uvic.museum\",\n \"valley.museum\",\n \"vantaa.museum\",\n \"versailles.museum\",\n \"viking.museum\",\n \"village.museum\",\n \"virginia.museum\",\n \"virtual.museum\",\n \"virtuel.museum\",\n \"vlaanderen.museum\",\n \"volkenkunde.museum\",\n \"wales.museum\",\n \"wallonie.museum\",\n \"war.museum\",\n \"washingtondc.museum\",\n \"watchandclock.museum\",\n \"watch-and-clock.museum\",\n \"western.museum\",\n \"westfalen.museum\",\n \"whaling.museum\",\n \"wildlife.museum\",\n \"williamsburg.museum\",\n \"windmill.museum\",\n \"workshop.museum\",\n \"york.museum\",\n \"yorkshire.museum\",\n \"yosemite.museum\",\n \"youth.museum\",\n \"zoological.museum\",\n \"zoology.museum\",\n \"\\u05D9\\u05E8\\u05D5\\u05E9\\u05DC\\u05D9\\u05DD.museum\",\n \"\\u0438\\u043A\\u043E\\u043C.museum\",\n \"mv\",\n \"aero.mv\",\n \"biz.mv\",\n \"com.mv\",\n \"coop.mv\",\n \"edu.mv\",\n \"gov.mv\",\n \"info.mv\",\n \"int.mv\",\n \"mil.mv\",\n \"museum.mv\",\n \"name.mv\",\n \"net.mv\",\n \"org.mv\",\n \"pro.mv\",\n \"mw\",\n \"ac.mw\",\n \"biz.mw\",\n \"co.mw\",\n \"com.mw\",\n \"coop.mw\",\n \"edu.mw\",\n \"gov.mw\",\n \"int.mw\",\n \"museum.mw\",\n \"net.mw\",\n \"org.mw\",\n \"mx\",\n \"com.mx\",\n \"org.mx\",\n \"gob.mx\",\n \"edu.mx\",\n \"net.mx\",\n \"my\",\n \"biz.my\",\n \"com.my\",\n \"edu.my\",\n \"gov.my\",\n \"mil.my\",\n \"name.my\",\n \"net.my\",\n \"org.my\",\n \"mz\",\n \"ac.mz\",\n \"adv.mz\",\n \"co.mz\",\n \"edu.mz\",\n \"gov.mz\",\n \"mil.mz\",\n \"net.mz\",\n \"org.mz\",\n \"na\",\n \"info.na\",\n \"pro.na\",\n \"name.na\",\n \"school.na\",\n \"or.na\",\n \"dr.na\",\n \"us.na\",\n \"mx.na\",\n \"ca.na\",\n \"in.na\",\n \"cc.na\",\n \"tv.na\",\n \"ws.na\",\n \"mobi.na\",\n \"co.na\",\n \"com.na\",\n \"org.na\",\n \"name\",\n \"nc\",\n \"asso.nc\",\n \"nom.nc\",\n \"ne\",\n \"net\",\n \"nf\",\n \"com.nf\",\n \"net.nf\",\n \"per.nf\",\n \"rec.nf\",\n \"web.nf\",\n \"arts.nf\",\n \"firm.nf\",\n \"info.nf\",\n \"other.nf\",\n \"store.nf\",\n \"ng\",\n \"com.ng\",\n \"edu.ng\",\n \"gov.ng\",\n \"i.ng\",\n \"mil.ng\",\n \"mobi.ng\",\n \"name.ng\",\n \"net.ng\",\n \"org.ng\",\n \"sch.ng\",\n \"ni\",\n \"ac.ni\",\n \"biz.ni\",\n \"co.ni\",\n \"com.ni\",\n \"edu.ni\",\n \"gob.ni\",\n \"in.ni\",\n \"info.ni\",\n \"int.ni\",\n \"mil.ni\",\n \"net.ni\",\n \"nom.ni\",\n \"org.ni\",\n \"web.ni\",\n \"nl\",\n \"no\",\n \"fhs.no\",\n \"vgs.no\",\n \"fylkesbibl.no\",\n \"folkebibl.no\",\n \"museum.no\",\n \"idrett.no\",\n \"priv.no\",\n \"mil.no\",\n \"stat.no\",\n \"dep.no\",\n \"kommune.no\",\n \"herad.no\",\n \"aa.no\",\n \"ah.no\",\n \"bu.no\",\n \"fm.no\",\n \"hl.no\",\n \"hm.no\",\n \"jan-mayen.no\",\n \"mr.no\",\n \"nl.no\",\n \"nt.no\",\n \"of.no\",\n \"ol.no\",\n \"oslo.no\",\n \"rl.no\",\n \"sf.no\",\n \"st.no\",\n \"svalbard.no\",\n \"tm.no\",\n \"tr.no\",\n \"va.no\",\n \"vf.no\",\n \"gs.aa.no\",\n \"gs.ah.no\",\n \"gs.bu.no\",\n \"gs.fm.no\",\n \"gs.hl.no\",\n \"gs.hm.no\",\n \"gs.jan-mayen.no\",\n \"gs.mr.no\",\n \"gs.nl.no\",\n \"gs.nt.no\",\n \"gs.of.no\",\n \"gs.ol.no\",\n \"gs.oslo.no\",\n \"gs.rl.no\",\n \"gs.sf.no\",\n \"gs.st.no\",\n \"gs.svalbard.no\",\n \"gs.tm.no\",\n \"gs.tr.no\",\n \"gs.va.no\",\n \"gs.vf.no\",\n \"akrehamn.no\",\n \"\\xE5krehamn.no\",\n \"algard.no\",\n \"\\xE5lg\\xE5rd.no\",\n \"arna.no\",\n \"brumunddal.no\",\n \"bryne.no\",\n \"bronnoysund.no\",\n \"br\\xF8nn\\xF8ysund.no\",\n \"drobak.no\",\n \"dr\\xF8bak.no\",\n \"egersund.no\",\n \"fetsund.no\",\n \"floro.no\",\n \"flor\\xF8.no\",\n \"fredrikstad.no\",\n \"hokksund.no\",\n \"honefoss.no\",\n \"h\\xF8nefoss.no\",\n \"jessheim.no\",\n \"jorpeland.no\",\n \"j\\xF8rpeland.no\",\n \"kirkenes.no\",\n \"kopervik.no\",\n \"krokstadelva.no\",\n \"langevag.no\",\n \"langev\\xE5g.no\",\n \"leirvik.no\",\n \"mjondalen.no\",\n \"mj\\xF8ndalen.no\",\n \"mo-i-rana.no\",\n \"mosjoen.no\",\n \"mosj\\xF8en.no\",\n \"nesoddtangen.no\",\n \"orkanger.no\",\n \"osoyro.no\",\n \"os\\xF8yro.no\",\n \"raholt.no\",\n \"r\\xE5holt.no\",\n \"sandnessjoen.no\",\n \"sandnessj\\xF8en.no\",\n \"skedsmokorset.no\",\n \"slattum.no\",\n \"spjelkavik.no\",\n \"stathelle.no\",\n \"stavern.no\",\n \"stjordalshalsen.no\",\n \"stj\\xF8rdalshalsen.no\",\n \"tananger.no\",\n \"tranby.no\",\n \"vossevangen.no\",\n \"afjord.no\",\n \"\\xE5fjord.no\",\n \"agdenes.no\",\n \"al.no\",\n \"\\xE5l.no\",\n \"alesund.no\",\n \"\\xE5lesund.no\",\n \"alstahaug.no\",\n \"alta.no\",\n \"\\xE1lt\\xE1.no\",\n \"alaheadju.no\",\n \"\\xE1laheadju.no\",\n \"alvdal.no\",\n \"amli.no\",\n \"\\xE5mli.no\",\n \"amot.no\",\n \"\\xE5mot.no\",\n \"andebu.no\",\n \"andoy.no\",\n \"and\\xF8y.no\",\n \"andasuolo.no\",\n \"ardal.no\",\n \"\\xE5rdal.no\",\n \"aremark.no\",\n \"arendal.no\",\n \"\\xE5s.no\",\n \"aseral.no\",\n \"\\xE5seral.no\",\n \"asker.no\",\n \"askim.no\",\n \"askvoll.no\",\n \"askoy.no\",\n \"ask\\xF8y.no\",\n \"asnes.no\",\n \"\\xE5snes.no\",\n \"audnedaln.no\",\n \"aukra.no\",\n \"aure.no\",\n \"aurland.no\",\n \"aurskog-holand.no\",\n \"aurskog-h\\xF8land.no\",\n \"austevoll.no\",\n \"austrheim.no\",\n \"averoy.no\",\n \"aver\\xF8y.no\",\n \"balestrand.no\",\n \"ballangen.no\",\n \"balat.no\",\n \"b\\xE1l\\xE1t.no\",\n \"balsfjord.no\",\n \"bahccavuotna.no\",\n \"b\\xE1hccavuotna.no\",\n \"bamble.no\",\n \"bardu.no\",\n \"beardu.no\",\n \"beiarn.no\",\n \"bajddar.no\",\n \"b\\xE1jddar.no\",\n \"baidar.no\",\n \"b\\xE1id\\xE1r.no\",\n \"berg.no\",\n \"bergen.no\",\n \"berlevag.no\",\n \"berlev\\xE5g.no\",\n \"bearalvahki.no\",\n \"bearalv\\xE1hki.no\",\n \"bindal.no\",\n \"birkenes.no\",\n \"bjarkoy.no\",\n \"bjark\\xF8y.no\",\n \"bjerkreim.no\",\n \"bjugn.no\",\n \"bodo.no\",\n \"bod\\xF8.no\",\n \"badaddja.no\",\n \"b\\xE5d\\xE5ddj\\xE5.no\",\n \"budejju.no\",\n \"bokn.no\",\n \"bremanger.no\",\n \"bronnoy.no\",\n \"br\\xF8nn\\xF8y.no\",\n \"bygland.no\",\n \"bykle.no\",\n \"barum.no\",\n \"b\\xE6rum.no\",\n \"bo.telemark.no\",\n \"b\\xF8.telemark.no\",\n \"bo.nordland.no\",\n \"b\\xF8.nordland.no\",\n \"bievat.no\",\n \"biev\\xE1t.no\",\n \"bomlo.no\",\n \"b\\xF8mlo.no\",\n \"batsfjord.no\",\n \"b\\xE5tsfjord.no\",\n \"bahcavuotna.no\",\n \"b\\xE1hcavuotna.no\",\n \"dovre.no\",\n \"drammen.no\",\n \"drangedal.no\",\n \"dyroy.no\",\n \"dyr\\xF8y.no\",\n \"donna.no\",\n \"d\\xF8nna.no\",\n \"eid.no\",\n \"eidfjord.no\",\n \"eidsberg.no\",\n \"eidskog.no\",\n \"eidsvoll.no\",\n \"eigersund.no\",\n \"elverum.no\",\n \"enebakk.no\",\n \"engerdal.no\",\n \"etne.no\",\n \"etnedal.no\",\n \"evenes.no\",\n \"evenassi.no\",\n \"even\\xE1\\u0161\\u0161i.no\",\n \"evje-og-hornnes.no\",\n \"farsund.no\",\n \"fauske.no\",\n \"fuossko.no\",\n \"fuoisku.no\",\n \"fedje.no\",\n \"fet.no\",\n \"finnoy.no\",\n \"finn\\xF8y.no\",\n \"fitjar.no\",\n \"fjaler.no\",\n \"fjell.no\",\n \"flakstad.no\",\n \"flatanger.no\",\n \"flekkefjord.no\",\n \"flesberg.no\",\n \"flora.no\",\n \"fla.no\",\n \"fl\\xE5.no\",\n \"folldal.no\",\n \"forsand.no\",\n \"fosnes.no\",\n \"frei.no\",\n \"frogn.no\",\n \"froland.no\",\n \"frosta.no\",\n \"frana.no\",\n \"fr\\xE6na.no\",\n \"froya.no\",\n \"fr\\xF8ya.no\",\n \"fusa.no\",\n \"fyresdal.no\",\n \"forde.no\",\n \"f\\xF8rde.no\",\n \"gamvik.no\",\n \"gangaviika.no\",\n \"g\\xE1\\u014Bgaviika.no\",\n \"gaular.no\",\n \"gausdal.no\",\n \"gildeskal.no\",\n \"gildesk\\xE5l.no\",\n \"giske.no\",\n \"gjemnes.no\",\n \"gjerdrum.no\",\n \"gjerstad.no\",\n \"gjesdal.no\",\n \"gjovik.no\",\n \"gj\\xF8vik.no\",\n \"gloppen.no\",\n \"gol.no\",\n \"gran.no\",\n \"grane.no\",\n \"granvin.no\",\n \"gratangen.no\",\n \"grimstad.no\",\n \"grong.no\",\n \"kraanghke.no\",\n \"kr\\xE5anghke.no\",\n \"grue.no\",\n \"gulen.no\",\n \"hadsel.no\",\n \"halden.no\",\n \"halsa.no\",\n \"hamar.no\",\n \"hamaroy.no\",\n \"habmer.no\",\n \"h\\xE1bmer.no\",\n \"hapmir.no\",\n \"h\\xE1pmir.no\",\n \"hammerfest.no\",\n \"hammarfeasta.no\",\n \"h\\xE1mm\\xE1rfeasta.no\",\n \"haram.no\",\n \"hareid.no\",\n \"harstad.no\",\n \"hasvik.no\",\n \"aknoluokta.no\",\n \"\\xE1k\\u014Boluokta.no\",\n \"hattfjelldal.no\",\n \"aarborte.no\",\n \"haugesund.no\",\n \"hemne.no\",\n \"hemnes.no\",\n \"hemsedal.no\",\n \"heroy.more-og-romsdal.no\",\n \"her\\xF8y.m\\xF8re-og-romsdal.no\",\n \"heroy.nordland.no\",\n \"her\\xF8y.nordland.no\",\n \"hitra.no\",\n \"hjartdal.no\",\n \"hjelmeland.no\",\n \"hobol.no\",\n \"hob\\xF8l.no\",\n \"hof.no\",\n \"hol.no\",\n \"hole.no\",\n \"holmestrand.no\",\n \"holtalen.no\",\n \"holt\\xE5len.no\",\n \"hornindal.no\",\n \"horten.no\",\n \"hurdal.no\",\n \"hurum.no\",\n \"hvaler.no\",\n \"hyllestad.no\",\n \"hagebostad.no\",\n \"h\\xE6gebostad.no\",\n \"hoyanger.no\",\n \"h\\xF8yanger.no\",\n \"hoylandet.no\",\n \"h\\xF8ylandet.no\",\n \"ha.no\",\n \"h\\xE5.no\",\n \"ibestad.no\",\n \"inderoy.no\",\n \"inder\\xF8y.no\",\n \"iveland.no\",\n \"jevnaker.no\",\n \"jondal.no\",\n \"jolster.no\",\n \"j\\xF8lster.no\",\n \"karasjok.no\",\n \"karasjohka.no\",\n \"k\\xE1r\\xE1\\u0161johka.no\",\n \"karlsoy.no\",\n \"galsa.no\",\n \"g\\xE1ls\\xE1.no\",\n \"karmoy.no\",\n \"karm\\xF8y.no\",\n \"kautokeino.no\",\n \"guovdageaidnu.no\",\n \"klepp.no\",\n \"klabu.no\",\n \"kl\\xE6bu.no\",\n \"kongsberg.no\",\n \"kongsvinger.no\",\n \"kragero.no\",\n \"krager\\xF8.no\",\n \"kristiansand.no\",\n \"kristiansund.no\",\n \"krodsherad.no\",\n \"kr\\xF8dsherad.no\",\n \"kvalsund.no\",\n \"rahkkeravju.no\",\n \"r\\xE1hkker\\xE1vju.no\",\n \"kvam.no\",\n \"kvinesdal.no\",\n \"kvinnherad.no\",\n \"kviteseid.no\",\n \"kvitsoy.no\",\n \"kvits\\xF8y.no\",\n \"kvafjord.no\",\n \"kv\\xE6fjord.no\",\n \"giehtavuoatna.no\",\n \"kvanangen.no\",\n \"kv\\xE6nangen.no\",\n \"navuotna.no\",\n \"n\\xE1vuotna.no\",\n \"kafjord.no\",\n \"k\\xE5fjord.no\",\n \"gaivuotna.no\",\n \"g\\xE1ivuotna.no\",\n \"larvik.no\",\n \"lavangen.no\",\n \"lavagis.no\",\n \"loabat.no\",\n \"loab\\xE1t.no\",\n \"lebesby.no\",\n \"davvesiida.no\",\n \"leikanger.no\",\n \"leirfjord.no\",\n \"leka.no\",\n \"leksvik.no\",\n \"lenvik.no\",\n \"leangaviika.no\",\n \"lea\\u014Bgaviika.no\",\n \"lesja.no\",\n \"levanger.no\",\n \"lier.no\",\n \"lierne.no\",\n \"lillehammer.no\",\n \"lillesand.no\",\n \"lindesnes.no\",\n \"lindas.no\",\n \"lind\\xE5s.no\",\n \"lom.no\",\n \"loppa.no\",\n \"lahppi.no\",\n \"l\\xE1hppi.no\",\n \"lund.no\",\n \"lunner.no\",\n \"luroy.no\",\n \"lur\\xF8y.no\",\n \"luster.no\",\n \"lyngdal.no\",\n \"lyngen.no\",\n \"ivgu.no\",\n \"lardal.no\",\n \"lerdal.no\",\n \"l\\xE6rdal.no\",\n \"lodingen.no\",\n \"l\\xF8dingen.no\",\n \"lorenskog.no\",\n \"l\\xF8renskog.no\",\n \"loten.no\",\n \"l\\xF8ten.no\",\n \"malvik.no\",\n \"masoy.no\",\n \"m\\xE5s\\xF8y.no\",\n \"muosat.no\",\n \"muos\\xE1t.no\",\n \"mandal.no\",\n \"marker.no\",\n \"marnardal.no\",\n \"masfjorden.no\",\n \"meland.no\",\n \"meldal.no\",\n \"melhus.no\",\n \"meloy.no\",\n \"mel\\xF8y.no\",\n \"meraker.no\",\n \"mer\\xE5ker.no\",\n \"moareke.no\",\n \"mo\\xE5reke.no\",\n \"midsund.no\",\n \"midtre-gauldal.no\",\n \"modalen.no\",\n \"modum.no\",\n \"molde.no\",\n \"moskenes.no\",\n \"moss.no\",\n \"mosvik.no\",\n \"malselv.no\",\n \"m\\xE5lselv.no\",\n \"malatvuopmi.no\",\n \"m\\xE1latvuopmi.no\",\n \"namdalseid.no\",\n \"aejrie.no\",\n \"namsos.no\",\n \"namsskogan.no\",\n \"naamesjevuemie.no\",\n \"n\\xE5\\xE5mesjevuemie.no\",\n \"laakesvuemie.no\",\n \"nannestad.no\",\n \"narvik.no\",\n \"narviika.no\",\n \"naustdal.no\",\n \"nedre-eiker.no\",\n \"nes.akershus.no\",\n \"nes.buskerud.no\",\n \"nesna.no\",\n \"nesodden.no\",\n \"nesseby.no\",\n \"unjarga.no\",\n \"unj\\xE1rga.no\",\n \"nesset.no\",\n \"nissedal.no\",\n \"nittedal.no\",\n \"nord-aurdal.no\",\n \"nord-fron.no\",\n \"nord-odal.no\",\n \"norddal.no\",\n \"nordkapp.no\",\n \"davvenjarga.no\",\n \"davvenj\\xE1rga.no\",\n \"nordre-land.no\",\n \"nordreisa.no\",\n \"raisa.no\",\n \"r\\xE1isa.no\",\n \"nore-og-uvdal.no\",\n \"notodden.no\",\n \"naroy.no\",\n \"n\\xE6r\\xF8y.no\",\n \"notteroy.no\",\n \"n\\xF8tter\\xF8y.no\",\n \"odda.no\",\n \"oksnes.no\",\n \"\\xF8ksnes.no\",\n \"oppdal.no\",\n \"oppegard.no\",\n \"oppeg\\xE5rd.no\",\n \"orkdal.no\",\n \"orland.no\",\n \"\\xF8rland.no\",\n \"orskog.no\",\n \"\\xF8rskog.no\",\n \"orsta.no\",\n \"\\xF8rsta.no\",\n \"os.hedmark.no\",\n \"os.hordaland.no\",\n \"osen.no\",\n \"osteroy.no\",\n \"oster\\xF8y.no\",\n \"ostre-toten.no\",\n \"\\xF8stre-toten.no\",\n \"overhalla.no\",\n \"ovre-eiker.no\",\n \"\\xF8vre-eiker.no\",\n \"oyer.no\",\n \"\\xF8yer.no\",\n \"oygarden.no\",\n \"\\xF8ygarden.no\",\n \"oystre-slidre.no\",\n \"\\xF8ystre-slidre.no\",\n \"porsanger.no\",\n \"porsangu.no\",\n \"pors\\xE1\\u014Bgu.no\",\n \"porsgrunn.no\",\n \"radoy.no\",\n \"rad\\xF8y.no\",\n \"rakkestad.no\",\n \"rana.no\",\n \"ruovat.no\",\n \"randaberg.no\",\n \"rauma.no\",\n \"rendalen.no\",\n \"rennebu.no\",\n \"rennesoy.no\",\n \"rennes\\xF8y.no\",\n \"rindal.no\",\n \"ringebu.no\",\n \"ringerike.no\",\n \"ringsaker.no\",\n \"rissa.no\",\n \"risor.no\",\n \"ris\\xF8r.no\",\n \"roan.no\",\n \"rollag.no\",\n \"rygge.no\",\n \"ralingen.no\",\n \"r\\xE6lingen.no\",\n \"rodoy.no\",\n \"r\\xF8d\\xF8y.no\",\n \"romskog.no\",\n \"r\\xF8mskog.no\",\n \"roros.no\",\n \"r\\xF8ros.no\",\n \"rost.no\",\n \"r\\xF8st.no\",\n \"royken.no\",\n \"r\\xF8yken.no\",\n \"royrvik.no\",\n \"r\\xF8yrvik.no\",\n \"rade.no\",\n \"r\\xE5de.no\",\n \"salangen.no\",\n \"siellak.no\",\n \"saltdal.no\",\n \"salat.no\",\n \"s\\xE1l\\xE1t.no\",\n \"s\\xE1lat.no\",\n \"samnanger.no\",\n \"sande.more-og-romsdal.no\",\n \"sande.m\\xF8re-og-romsdal.no\",\n \"sande.vestfold.no\",\n \"sandefjord.no\",\n \"sandnes.no\",\n \"sandoy.no\",\n \"sand\\xF8y.no\",\n \"sarpsborg.no\",\n \"sauda.no\",\n \"sauherad.no\",\n \"sel.no\",\n \"selbu.no\",\n \"selje.no\",\n \"seljord.no\",\n \"sigdal.no\",\n \"siljan.no\",\n \"sirdal.no\",\n \"skaun.no\",\n \"skedsmo.no\",\n \"ski.no\",\n \"skien.no\",\n \"skiptvet.no\",\n \"skjervoy.no\",\n \"skjerv\\xF8y.no\",\n \"skierva.no\",\n \"skierv\\xE1.no\",\n \"skjak.no\",\n \"skj\\xE5k.no\",\n \"skodje.no\",\n \"skanland.no\",\n \"sk\\xE5nland.no\",\n \"skanit.no\",\n \"sk\\xE1nit.no\",\n \"smola.no\",\n \"sm\\xF8la.no\",\n \"snillfjord.no\",\n \"snasa.no\",\n \"sn\\xE5sa.no\",\n \"snoasa.no\",\n \"snaase.no\",\n \"sn\\xE5ase.no\",\n \"sogndal.no\",\n \"sokndal.no\",\n \"sola.no\",\n \"solund.no\",\n \"songdalen.no\",\n \"sortland.no\",\n \"spydeberg.no\",\n \"stange.no\",\n \"stavanger.no\",\n \"steigen.no\",\n \"steinkjer.no\",\n \"stjordal.no\",\n \"stj\\xF8rdal.no\",\n \"stokke.no\",\n \"stor-elvdal.no\",\n \"stord.no\",\n \"stordal.no\",\n \"storfjord.no\",\n \"omasvuotna.no\",\n \"strand.no\",\n \"stranda.no\",\n \"stryn.no\",\n \"sula.no\",\n \"suldal.no\",\n \"sund.no\",\n \"sunndal.no\",\n \"surnadal.no\",\n \"sveio.no\",\n \"svelvik.no\",\n \"sykkylven.no\",\n \"sogne.no\",\n \"s\\xF8gne.no\",\n \"somna.no\",\n \"s\\xF8mna.no\",\n \"sondre-land.no\",\n \"s\\xF8ndre-land.no\",\n \"sor-aurdal.no\",\n \"s\\xF8r-aurdal.no\",\n \"sor-fron.no\",\n \"s\\xF8r-fron.no\",\n \"sor-odal.no\",\n \"s\\xF8r-odal.no\",\n \"sor-varanger.no\",\n \"s\\xF8r-varanger.no\",\n \"matta-varjjat.no\",\n \"m\\xE1tta-v\\xE1rjjat.no\",\n \"sorfold.no\",\n \"s\\xF8rfold.no\",\n \"sorreisa.no\",\n \"s\\xF8rreisa.no\",\n \"sorum.no\",\n \"s\\xF8rum.no\",\n \"tana.no\",\n \"deatnu.no\",\n \"time.no\",\n \"tingvoll.no\",\n \"tinn.no\",\n \"tjeldsund.no\",\n \"dielddanuorri.no\",\n \"tjome.no\",\n \"tj\\xF8me.no\",\n \"tokke.no\",\n \"tolga.no\",\n \"torsken.no\",\n \"tranoy.no\",\n \"tran\\xF8y.no\",\n \"tromso.no\",\n \"troms\\xF8.no\",\n \"tromsa.no\",\n \"romsa.no\",\n \"trondheim.no\",\n \"troandin.no\",\n \"trysil.no\",\n \"trana.no\",\n \"tr\\xE6na.no\",\n \"trogstad.no\",\n \"tr\\xF8gstad.no\",\n \"tvedestrand.no\",\n \"tydal.no\",\n \"tynset.no\",\n \"tysfjord.no\",\n \"divtasvuodna.no\",\n \"divttasvuotna.no\",\n \"tysnes.no\",\n \"tysvar.no\",\n \"tysv\\xE6r.no\",\n \"tonsberg.no\",\n \"t\\xF8nsberg.no\",\n \"ullensaker.no\",\n \"ullensvang.no\",\n \"ulvik.no\",\n \"utsira.no\",\n \"vadso.no\",\n \"vads\\xF8.no\",\n \"cahcesuolo.no\",\n \"\\u010D\\xE1hcesuolo.no\",\n \"vaksdal.no\",\n \"valle.no\",\n \"vang.no\",\n \"vanylven.no\",\n \"vardo.no\",\n \"vard\\xF8.no\",\n \"varggat.no\",\n \"v\\xE1rgg\\xE1t.no\",\n \"vefsn.no\",\n \"vaapste.no\",\n \"vega.no\",\n \"vegarshei.no\",\n \"veg\\xE5rshei.no\",\n \"vennesla.no\",\n \"verdal.no\",\n \"verran.no\",\n \"vestby.no\",\n \"vestnes.no\",\n \"vestre-slidre.no\",\n \"vestre-toten.no\",\n \"vestvagoy.no\",\n \"vestv\\xE5g\\xF8y.no\",\n \"vevelstad.no\",\n \"vik.no\",\n \"vikna.no\",\n \"vindafjord.no\",\n \"volda.no\",\n \"voss.no\",\n \"varoy.no\",\n \"v\\xE6r\\xF8y.no\",\n \"vagan.no\",\n \"v\\xE5gan.no\",\n \"voagat.no\",\n \"vagsoy.no\",\n \"v\\xE5gs\\xF8y.no\",\n \"vaga.no\",\n \"v\\xE5g\\xE5.no\",\n \"valer.ostfold.no\",\n \"v\\xE5ler.\\xF8stfold.no\",\n \"valer.hedmark.no\",\n \"v\\xE5ler.hedmark.no\",\n \"*.np\",\n \"nr\",\n \"biz.nr\",\n \"info.nr\",\n \"gov.nr\",\n \"edu.nr\",\n \"org.nr\",\n \"net.nr\",\n \"com.nr\",\n \"nu\",\n \"nz\",\n \"ac.nz\",\n \"co.nz\",\n \"cri.nz\",\n \"geek.nz\",\n \"gen.nz\",\n \"govt.nz\",\n \"health.nz\",\n \"iwi.nz\",\n \"kiwi.nz\",\n \"maori.nz\",\n \"mil.nz\",\n \"m\\u0101ori.nz\",\n \"net.nz\",\n \"org.nz\",\n \"parliament.nz\",\n \"school.nz\",\n \"om\",\n \"co.om\",\n \"com.om\",\n \"edu.om\",\n \"gov.om\",\n \"med.om\",\n \"museum.om\",\n \"net.om\",\n \"org.om\",\n \"pro.om\",\n \"onion\",\n \"org\",\n \"pa\",\n \"ac.pa\",\n \"gob.pa\",\n \"com.pa\",\n \"org.pa\",\n \"sld.pa\",\n \"edu.pa\",\n \"net.pa\",\n \"ing.pa\",\n \"abo.pa\",\n \"med.pa\",\n \"nom.pa\",\n \"pe\",\n \"edu.pe\",\n \"gob.pe\",\n \"nom.pe\",\n \"mil.pe\",\n \"org.pe\",\n \"com.pe\",\n \"net.pe\",\n \"pf\",\n \"com.pf\",\n \"org.pf\",\n \"edu.pf\",\n \"*.pg\",\n \"ph\",\n \"com.ph\",\n \"net.ph\",\n \"org.ph\",\n \"gov.ph\",\n \"edu.ph\",\n \"ngo.ph\",\n \"mil.ph\",\n \"i.ph\",\n \"pk\",\n \"com.pk\",\n \"net.pk\",\n \"edu.pk\",\n \"org.pk\",\n \"fam.pk\",\n \"biz.pk\",\n \"web.pk\",\n \"gov.pk\",\n \"gob.pk\",\n \"gok.pk\",\n \"gon.pk\",\n \"gop.pk\",\n \"gos.pk\",\n \"info.pk\",\n \"pl\",\n \"com.pl\",\n \"net.pl\",\n \"org.pl\",\n \"aid.pl\",\n \"agro.pl\",\n \"atm.pl\",\n \"auto.pl\",\n \"biz.pl\",\n \"edu.pl\",\n \"gmina.pl\",\n \"gsm.pl\",\n \"info.pl\",\n \"mail.pl\",\n \"miasta.pl\",\n \"media.pl\",\n \"mil.pl\",\n \"nieruchomosci.pl\",\n \"nom.pl\",\n \"pc.pl\",\n \"powiat.pl\",\n \"priv.pl\",\n \"realestate.pl\",\n \"rel.pl\",\n \"sex.pl\",\n \"shop.pl\",\n \"sklep.pl\",\n \"sos.pl\",\n \"szkola.pl\",\n \"targi.pl\",\n \"tm.pl\",\n \"tourism.pl\",\n \"travel.pl\",\n \"turystyka.pl\",\n \"gov.pl\",\n \"ap.gov.pl\",\n \"ic.gov.pl\",\n \"is.gov.pl\",\n \"us.gov.pl\",\n \"kmpsp.gov.pl\",\n \"kppsp.gov.pl\",\n \"kwpsp.gov.pl\",\n \"psp.gov.pl\",\n \"wskr.gov.pl\",\n \"kwp.gov.pl\",\n \"mw.gov.pl\",\n \"ug.gov.pl\",\n \"um.gov.pl\",\n \"umig.gov.pl\",\n \"ugim.gov.pl\",\n \"upow.gov.pl\",\n \"uw.gov.pl\",\n \"starostwo.gov.pl\",\n \"pa.gov.pl\",\n \"po.gov.pl\",\n \"psse.gov.pl\",\n \"pup.gov.pl\",\n \"rzgw.gov.pl\",\n \"sa.gov.pl\",\n \"so.gov.pl\",\n \"sr.gov.pl\",\n \"wsa.gov.pl\",\n \"sko.gov.pl\",\n \"uzs.gov.pl\",\n \"wiih.gov.pl\",\n \"winb.gov.pl\",\n \"pinb.gov.pl\",\n \"wios.gov.pl\",\n \"witd.gov.pl\",\n \"wzmiuw.gov.pl\",\n \"piw.gov.pl\",\n \"wiw.gov.pl\",\n \"griw.gov.pl\",\n \"wif.gov.pl\",\n \"oum.gov.pl\",\n \"sdn.gov.pl\",\n \"zp.gov.pl\",\n \"uppo.gov.pl\",\n \"mup.gov.pl\",\n \"wuoz.gov.pl\",\n \"konsulat.gov.pl\",\n \"oirm.gov.pl\",\n \"augustow.pl\",\n \"babia-gora.pl\",\n \"bedzin.pl\",\n \"beskidy.pl\",\n \"bialowieza.pl\",\n \"bialystok.pl\",\n \"bielawa.pl\",\n \"bieszczady.pl\",\n \"boleslawiec.pl\",\n \"bydgoszcz.pl\",\n \"bytom.pl\",\n \"cieszyn.pl\",\n \"czeladz.pl\",\n \"czest.pl\",\n \"dlugoleka.pl\",\n \"elblag.pl\",\n \"elk.pl\",\n \"glogow.pl\",\n \"gniezno.pl\",\n \"gorlice.pl\",\n \"grajewo.pl\",\n \"ilawa.pl\",\n \"jaworzno.pl\",\n \"jelenia-gora.pl\",\n \"jgora.pl\",\n \"kalisz.pl\",\n \"kazimierz-dolny.pl\",\n \"karpacz.pl\",\n \"kartuzy.pl\",\n \"kaszuby.pl\",\n \"katowice.pl\",\n \"kepno.pl\",\n \"ketrzyn.pl\",\n \"klodzko.pl\",\n \"kobierzyce.pl\",\n \"kolobrzeg.pl\",\n \"konin.pl\",\n \"konskowola.pl\",\n \"kutno.pl\",\n \"lapy.pl\",\n \"lebork.pl\",\n \"legnica.pl\",\n \"lezajsk.pl\",\n \"limanowa.pl\",\n \"lomza.pl\",\n \"lowicz.pl\",\n \"lubin.pl\",\n \"lukow.pl\",\n \"malbork.pl\",\n \"malopolska.pl\",\n \"mazowsze.pl\",\n \"mazury.pl\",\n \"mielec.pl\",\n \"mielno.pl\",\n \"mragowo.pl\",\n \"naklo.pl\",\n \"nowaruda.pl\",\n \"nysa.pl\",\n \"olawa.pl\",\n \"olecko.pl\",\n \"olkusz.pl\",\n \"olsztyn.pl\",\n \"opoczno.pl\",\n \"opole.pl\",\n \"ostroda.pl\",\n \"ostroleka.pl\",\n \"ostrowiec.pl\",\n \"ostrowwlkp.pl\",\n \"pila.pl\",\n \"pisz.pl\",\n \"podhale.pl\",\n \"podlasie.pl\",\n \"polkowice.pl\",\n \"pomorze.pl\",\n \"pomorskie.pl\",\n \"prochowice.pl\",\n \"pruszkow.pl\",\n \"przeworsk.pl\",\n \"pulawy.pl\",\n \"radom.pl\",\n \"rawa-maz.pl\",\n \"rybnik.pl\",\n \"rzeszow.pl\",\n \"sanok.pl\",\n \"sejny.pl\",\n \"slask.pl\",\n \"slupsk.pl\",\n \"sosnowiec.pl\",\n \"stalowa-wola.pl\",\n \"skoczow.pl\",\n \"starachowice.pl\",\n \"stargard.pl\",\n \"suwalki.pl\",\n \"swidnica.pl\",\n \"swiebodzin.pl\",\n \"swinoujscie.pl\",\n \"szczecin.pl\",\n \"szczytno.pl\",\n \"tarnobrzeg.pl\",\n \"tgory.pl\",\n \"turek.pl\",\n \"tychy.pl\",\n \"ustka.pl\",\n \"walbrzych.pl\",\n \"warmia.pl\",\n \"warszawa.pl\",\n \"waw.pl\",\n \"wegrow.pl\",\n \"wielun.pl\",\n \"wlocl.pl\",\n \"wloclawek.pl\",\n \"wodzislaw.pl\",\n \"wolomin.pl\",\n \"wroclaw.pl\",\n \"zachpomor.pl\",\n \"zagan.pl\",\n \"zarow.pl\",\n \"zgora.pl\",\n \"zgorzelec.pl\",\n \"pm\",\n \"pn\",\n \"gov.pn\",\n \"co.pn\",\n \"org.pn\",\n \"edu.pn\",\n \"net.pn\",\n \"post\",\n \"pr\",\n \"com.pr\",\n \"net.pr\",\n \"org.pr\",\n \"gov.pr\",\n \"edu.pr\",\n \"isla.pr\",\n \"pro.pr\",\n \"biz.pr\",\n \"info.pr\",\n \"name.pr\",\n \"est.pr\",\n \"prof.pr\",\n \"ac.pr\",\n \"pro\",\n \"aaa.pro\",\n \"aca.pro\",\n \"acct.pro\",\n \"avocat.pro\",\n \"bar.pro\",\n \"cpa.pro\",\n \"eng.pro\",\n \"jur.pro\",\n \"law.pro\",\n \"med.pro\",\n \"recht.pro\",\n \"ps\",\n \"edu.ps\",\n \"gov.ps\",\n \"sec.ps\",\n \"plo.ps\",\n \"com.ps\",\n \"org.ps\",\n \"net.ps\",\n \"pt\",\n \"net.pt\",\n \"gov.pt\",\n \"org.pt\",\n \"edu.pt\",\n \"int.pt\",\n \"publ.pt\",\n \"com.pt\",\n \"nome.pt\",\n \"pw\",\n \"co.pw\",\n \"ne.pw\",\n \"or.pw\",\n \"ed.pw\",\n \"go.pw\",\n \"belau.pw\",\n \"py\",\n \"com.py\",\n \"coop.py\",\n \"edu.py\",\n \"gov.py\",\n \"mil.py\",\n \"net.py\",\n \"org.py\",\n \"qa\",\n \"com.qa\",\n \"edu.qa\",\n \"gov.qa\",\n \"mil.qa\",\n \"name.qa\",\n \"net.qa\",\n \"org.qa\",\n \"sch.qa\",\n \"re\",\n \"asso.re\",\n \"com.re\",\n \"nom.re\",\n \"ro\",\n \"arts.ro\",\n \"com.ro\",\n \"firm.ro\",\n \"info.ro\",\n \"nom.ro\",\n \"nt.ro\",\n \"org.ro\",\n \"rec.ro\",\n \"store.ro\",\n \"tm.ro\",\n \"www.ro\",\n \"rs\",\n \"ac.rs\",\n \"co.rs\",\n \"edu.rs\",\n \"gov.rs\",\n \"in.rs\",\n \"org.rs\",\n \"ru\",\n \"rw\",\n \"ac.rw\",\n \"co.rw\",\n \"coop.rw\",\n \"gov.rw\",\n \"mil.rw\",\n \"net.rw\",\n \"org.rw\",\n \"sa\",\n \"com.sa\",\n \"net.sa\",\n \"org.sa\",\n \"gov.sa\",\n \"med.sa\",\n \"pub.sa\",\n \"edu.sa\",\n \"sch.sa\",\n \"sb\",\n \"com.sb\",\n \"edu.sb\",\n \"gov.sb\",\n \"net.sb\",\n \"org.sb\",\n \"sc\",\n \"com.sc\",\n \"gov.sc\",\n \"net.sc\",\n \"org.sc\",\n \"edu.sc\",\n \"sd\",\n \"com.sd\",\n \"net.sd\",\n \"org.sd\",\n \"edu.sd\",\n \"med.sd\",\n \"tv.sd\",\n \"gov.sd\",\n \"info.sd\",\n \"se\",\n \"a.se\",\n \"ac.se\",\n \"b.se\",\n \"bd.se\",\n \"brand.se\",\n \"c.se\",\n \"d.se\",\n \"e.se\",\n \"f.se\",\n \"fh.se\",\n \"fhsk.se\",\n \"fhv.se\",\n \"g.se\",\n \"h.se\",\n \"i.se\",\n \"k.se\",\n \"komforb.se\",\n \"kommunalforbund.se\",\n \"komvux.se\",\n \"l.se\",\n \"lanbib.se\",\n \"m.se\",\n \"n.se\",\n \"naturbruksgymn.se\",\n \"o.se\",\n \"org.se\",\n \"p.se\",\n \"parti.se\",\n \"pp.se\",\n \"press.se\",\n \"r.se\",\n \"s.se\",\n \"t.se\",\n \"tm.se\",\n \"u.se\",\n \"w.se\",\n \"x.se\",\n \"y.se\",\n \"z.se\",\n \"sg\",\n \"com.sg\",\n \"net.sg\",\n \"org.sg\",\n \"gov.sg\",\n \"edu.sg\",\n \"per.sg\",\n \"sh\",\n \"com.sh\",\n \"net.sh\",\n \"gov.sh\",\n \"org.sh\",\n \"mil.sh\",\n \"si\",\n \"sj\",\n \"sk\",\n \"sl\",\n \"com.sl\",\n \"net.sl\",\n \"edu.sl\",\n \"gov.sl\",\n \"org.sl\",\n \"sm\",\n \"sn\",\n \"art.sn\",\n \"com.sn\",\n \"edu.sn\",\n \"gouv.sn\",\n \"org.sn\",\n \"perso.sn\",\n \"univ.sn\",\n \"so\",\n \"com.so\",\n \"edu.so\",\n \"gov.so\",\n \"me.so\",\n \"net.so\",\n \"org.so\",\n \"sr\",\n \"ss\",\n \"biz.ss\",\n \"com.ss\",\n \"edu.ss\",\n \"gov.ss\",\n \"me.ss\",\n \"net.ss\",\n \"org.ss\",\n \"sch.ss\",\n \"st\",\n \"co.st\",\n \"com.st\",\n \"consulado.st\",\n \"edu.st\",\n \"embaixada.st\",\n \"mil.st\",\n \"net.st\",\n \"org.st\",\n \"principe.st\",\n \"saotome.st\",\n \"store.st\",\n \"su\",\n \"sv\",\n \"com.sv\",\n \"edu.sv\",\n \"gob.sv\",\n \"org.sv\",\n \"red.sv\",\n \"sx\",\n \"gov.sx\",\n \"sy\",\n \"edu.sy\",\n \"gov.sy\",\n \"net.sy\",\n \"mil.sy\",\n \"com.sy\",\n \"org.sy\",\n \"sz\",\n \"co.sz\",\n \"ac.sz\",\n \"org.sz\",\n \"tc\",\n \"td\",\n \"tel\",\n \"tf\",\n \"tg\",\n \"th\",\n \"ac.th\",\n \"co.th\",\n \"go.th\",\n \"in.th\",\n \"mi.th\",\n \"net.th\",\n \"or.th\",\n \"tj\",\n \"ac.tj\",\n \"biz.tj\",\n \"co.tj\",\n \"com.tj\",\n \"edu.tj\",\n \"go.tj\",\n \"gov.tj\",\n \"int.tj\",\n \"mil.tj\",\n \"name.tj\",\n \"net.tj\",\n \"nic.tj\",\n \"org.tj\",\n \"test.tj\",\n \"web.tj\",\n \"tk\",\n \"tl\",\n \"gov.tl\",\n \"tm\",\n \"com.tm\",\n \"co.tm\",\n \"org.tm\",\n \"net.tm\",\n \"nom.tm\",\n \"gov.tm\",\n \"mil.tm\",\n \"edu.tm\",\n \"tn\",\n \"com.tn\",\n \"ens.tn\",\n \"fin.tn\",\n \"gov.tn\",\n \"ind.tn\",\n \"info.tn\",\n \"intl.tn\",\n \"mincom.tn\",\n \"nat.tn\",\n \"net.tn\",\n \"org.tn\",\n \"perso.tn\",\n \"tourism.tn\",\n \"to\",\n \"com.to\",\n \"gov.to\",\n \"net.to\",\n \"org.to\",\n \"edu.to\",\n \"mil.to\",\n \"tr\",\n \"av.tr\",\n \"bbs.tr\",\n \"bel.tr\",\n \"biz.tr\",\n \"com.tr\",\n \"dr.tr\",\n \"edu.tr\",\n \"gen.tr\",\n \"gov.tr\",\n \"info.tr\",\n \"mil.tr\",\n \"k12.tr\",\n \"kep.tr\",\n \"name.tr\",\n \"net.tr\",\n \"org.tr\",\n \"pol.tr\",\n \"tel.tr\",\n \"tsk.tr\",\n \"tv.tr\",\n \"web.tr\",\n \"nc.tr\",\n \"gov.nc.tr\",\n \"tt\",\n \"co.tt\",\n \"com.tt\",\n \"org.tt\",\n \"net.tt\",\n \"biz.tt\",\n \"info.tt\",\n \"pro.tt\",\n \"int.tt\",\n \"coop.tt\",\n \"jobs.tt\",\n \"mobi.tt\",\n \"travel.tt\",\n \"museum.tt\",\n \"aero.tt\",\n \"name.tt\",\n \"gov.tt\",\n \"edu.tt\",\n \"tv\",\n \"tw\",\n \"edu.tw\",\n \"gov.tw\",\n \"mil.tw\",\n \"com.tw\",\n \"net.tw\",\n \"org.tw\",\n \"idv.tw\",\n \"game.tw\",\n \"ebiz.tw\",\n \"club.tw\",\n \"\\u7DB2\\u8DEF.tw\",\n \"\\u7D44\\u7E54.tw\",\n \"\\u5546\\u696D.tw\",\n \"tz\",\n \"ac.tz\",\n \"co.tz\",\n \"go.tz\",\n \"hotel.tz\",\n \"info.tz\",\n \"me.tz\",\n \"mil.tz\",\n \"mobi.tz\",\n \"ne.tz\",\n \"or.tz\",\n \"sc.tz\",\n \"tv.tz\",\n \"ua\",\n \"com.ua\",\n \"edu.ua\",\n \"gov.ua\",\n \"in.ua\",\n \"net.ua\",\n \"org.ua\",\n \"cherkassy.ua\",\n \"cherkasy.ua\",\n \"chernigov.ua\",\n \"chernihiv.ua\",\n \"chernivtsi.ua\",\n \"chernovtsy.ua\",\n \"ck.ua\",\n \"cn.ua\",\n \"cr.ua\",\n \"crimea.ua\",\n \"cv.ua\",\n \"dn.ua\",\n \"dnepropetrovsk.ua\",\n \"dnipropetrovsk.ua\",\n \"donetsk.ua\",\n \"dp.ua\",\n \"if.ua\",\n \"ivano-frankivsk.ua\",\n \"kh.ua\",\n \"kharkiv.ua\",\n \"kharkov.ua\",\n \"kherson.ua\",\n \"khmelnitskiy.ua\",\n \"khmelnytskyi.ua\",\n \"kiev.ua\",\n \"kirovograd.ua\",\n \"km.ua\",\n \"kr.ua\",\n \"krym.ua\",\n \"ks.ua\",\n \"kv.ua\",\n \"kyiv.ua\",\n \"lg.ua\",\n \"lt.ua\",\n \"lugansk.ua\",\n \"lutsk.ua\",\n \"lv.ua\",\n \"lviv.ua\",\n \"mk.ua\",\n \"mykolaiv.ua\",\n \"nikolaev.ua\",\n \"od.ua\",\n \"odesa.ua\",\n \"odessa.ua\",\n \"pl.ua\",\n \"poltava.ua\",\n \"rivne.ua\",\n \"rovno.ua\",\n \"rv.ua\",\n \"sb.ua\",\n \"sebastopol.ua\",\n \"sevastopol.ua\",\n \"sm.ua\",\n \"sumy.ua\",\n \"te.ua\",\n \"ternopil.ua\",\n \"uz.ua\",\n \"uzhgorod.ua\",\n \"vinnica.ua\",\n \"vinnytsia.ua\",\n \"vn.ua\",\n \"volyn.ua\",\n \"yalta.ua\",\n \"zaporizhzhe.ua\",\n \"zaporizhzhia.ua\",\n \"zhitomir.ua\",\n \"zhytomyr.ua\",\n \"zp.ua\",\n \"zt.ua\",\n \"ug\",\n \"co.ug\",\n \"or.ug\",\n \"ac.ug\",\n \"sc.ug\",\n \"go.ug\",\n \"ne.ug\",\n \"com.ug\",\n \"org.ug\",\n \"uk\",\n \"ac.uk\",\n \"co.uk\",\n \"gov.uk\",\n \"ltd.uk\",\n \"me.uk\",\n \"net.uk\",\n \"nhs.uk\",\n \"org.uk\",\n \"plc.uk\",\n \"police.uk\",\n \"*.sch.uk\",\n \"us\",\n \"dni.us\",\n \"fed.us\",\n \"isa.us\",\n \"kids.us\",\n \"nsn.us\",\n \"ak.us\",\n \"al.us\",\n \"ar.us\",\n \"as.us\",\n \"az.us\",\n \"ca.us\",\n \"co.us\",\n \"ct.us\",\n \"dc.us\",\n \"de.us\",\n \"fl.us\",\n \"ga.us\",\n \"gu.us\",\n \"hi.us\",\n \"ia.us\",\n \"id.us\",\n \"il.us\",\n \"in.us\",\n \"ks.us\",\n \"ky.us\",\n \"la.us\",\n \"ma.us\",\n \"md.us\",\n \"me.us\",\n \"mi.us\",\n \"mn.us\",\n \"mo.us\",\n \"ms.us\",\n \"mt.us\",\n \"nc.us\",\n \"nd.us\",\n \"ne.us\",\n \"nh.us\",\n \"nj.us\",\n \"nm.us\",\n \"nv.us\",\n \"ny.us\",\n \"oh.us\",\n \"ok.us\",\n \"or.us\",\n \"pa.us\",\n \"pr.us\",\n \"ri.us\",\n \"sc.us\",\n \"sd.us\",\n \"tn.us\",\n \"tx.us\",\n \"ut.us\",\n \"vi.us\",\n \"vt.us\",\n \"va.us\",\n \"wa.us\",\n \"wi.us\",\n \"wv.us\",\n \"wy.us\",\n \"k12.ak.us\",\n \"k12.al.us\",\n \"k12.ar.us\",\n \"k12.as.us\",\n \"k12.az.us\",\n \"k12.ca.us\",\n \"k12.co.us\",\n \"k12.ct.us\",\n \"k12.dc.us\",\n \"k12.de.us\",\n \"k12.fl.us\",\n \"k12.ga.us\",\n \"k12.gu.us\",\n \"k12.ia.us\",\n \"k12.id.us\",\n \"k12.il.us\",\n \"k12.in.us\",\n \"k12.ks.us\",\n \"k12.ky.us\",\n \"k12.la.us\",\n \"k12.ma.us\",\n \"k12.md.us\",\n \"k12.me.us\",\n \"k12.mi.us\",\n \"k12.mn.us\",\n \"k12.mo.us\",\n \"k12.ms.us\",\n \"k12.mt.us\",\n \"k12.nc.us\",\n \"k12.ne.us\",\n \"k12.nh.us\",\n \"k12.nj.us\",\n \"k12.nm.us\",\n \"k12.nv.us\",\n \"k12.ny.us\",\n \"k12.oh.us\",\n \"k12.ok.us\",\n \"k12.or.us\",\n \"k12.pa.us\",\n \"k12.pr.us\",\n \"k12.sc.us\",\n \"k12.tn.us\",\n \"k12.tx.us\",\n \"k12.ut.us\",\n \"k12.vi.us\",\n \"k12.vt.us\",\n \"k12.va.us\",\n \"k12.wa.us\",\n \"k12.wi.us\",\n \"k12.wy.us\",\n \"cc.ak.us\",\n \"cc.al.us\",\n \"cc.ar.us\",\n \"cc.as.us\",\n \"cc.az.us\",\n \"cc.ca.us\",\n \"cc.co.us\",\n \"cc.ct.us\",\n \"cc.dc.us\",\n \"cc.de.us\",\n \"cc.fl.us\",\n \"cc.ga.us\",\n \"cc.gu.us\",\n \"cc.hi.us\",\n \"cc.ia.us\",\n \"cc.id.us\",\n \"cc.il.us\",\n \"cc.in.us\",\n \"cc.ks.us\",\n \"cc.ky.us\",\n \"cc.la.us\",\n \"cc.ma.us\",\n \"cc.md.us\",\n \"cc.me.us\",\n \"cc.mi.us\",\n \"cc.mn.us\",\n \"cc.mo.us\",\n \"cc.ms.us\",\n \"cc.mt.us\",\n \"cc.nc.us\",\n \"cc.nd.us\",\n \"cc.ne.us\",\n \"cc.nh.us\",\n \"cc.nj.us\",\n \"cc.nm.us\",\n \"cc.nv.us\",\n \"cc.ny.us\",\n \"cc.oh.us\",\n \"cc.ok.us\",\n \"cc.or.us\",\n \"cc.pa.us\",\n \"cc.pr.us\",\n \"cc.ri.us\",\n \"cc.sc.us\",\n \"cc.sd.us\",\n \"cc.tn.us\",\n \"cc.tx.us\",\n \"cc.ut.us\",\n \"cc.vi.us\",\n \"cc.vt.us\",\n \"cc.va.us\",\n \"cc.wa.us\",\n \"cc.wi.us\",\n \"cc.wv.us\",\n \"cc.wy.us\",\n \"lib.ak.us\",\n \"lib.al.us\",\n \"lib.ar.us\",\n \"lib.as.us\",\n \"lib.az.us\",\n \"lib.ca.us\",\n \"lib.co.us\",\n \"lib.ct.us\",\n \"lib.dc.us\",\n \"lib.fl.us\",\n \"lib.ga.us\",\n \"lib.gu.us\",\n \"lib.hi.us\",\n \"lib.ia.us\",\n \"lib.id.us\",\n \"lib.il.us\",\n \"lib.in.us\",\n \"lib.ks.us\",\n \"lib.ky.us\",\n \"lib.la.us\",\n \"lib.ma.us\",\n \"lib.md.us\",\n \"lib.me.us\",\n \"lib.mi.us\",\n \"lib.mn.us\",\n \"lib.mo.us\",\n \"lib.ms.us\",\n \"lib.mt.us\",\n \"lib.nc.us\",\n \"lib.nd.us\",\n \"lib.ne.us\",\n \"lib.nh.us\",\n \"lib.nj.us\",\n \"lib.nm.us\",\n \"lib.nv.us\",\n \"lib.ny.us\",\n \"lib.oh.us\",\n \"lib.ok.us\",\n \"lib.or.us\",\n \"lib.pa.us\",\n \"lib.pr.us\",\n \"lib.ri.us\",\n \"lib.sc.us\",\n \"lib.sd.us\",\n \"lib.tn.us\",\n \"lib.tx.us\",\n \"lib.ut.us\",\n \"lib.vi.us\",\n \"lib.vt.us\",\n \"lib.va.us\",\n \"lib.wa.us\",\n \"lib.wi.us\",\n \"lib.wy.us\",\n \"pvt.k12.ma.us\",\n \"chtr.k12.ma.us\",\n \"paroch.k12.ma.us\",\n \"ann-arbor.mi.us\",\n \"cog.mi.us\",\n \"dst.mi.us\",\n \"eaton.mi.us\",\n \"gen.mi.us\",\n \"mus.mi.us\",\n \"tec.mi.us\",\n \"washtenaw.mi.us\",\n \"uy\",\n \"com.uy\",\n \"edu.uy\",\n \"gub.uy\",\n \"mil.uy\",\n \"net.uy\",\n \"org.uy\",\n \"uz\",\n \"co.uz\",\n \"com.uz\",\n \"net.uz\",\n \"org.uz\",\n \"va\",\n \"vc\",\n \"com.vc\",\n \"net.vc\",\n \"org.vc\",\n \"gov.vc\",\n \"mil.vc\",\n \"edu.vc\",\n \"ve\",\n \"arts.ve\",\n \"bib.ve\",\n \"co.ve\",\n \"com.ve\",\n \"e12.ve\",\n \"edu.ve\",\n \"firm.ve\",\n \"gob.ve\",\n \"gov.ve\",\n \"info.ve\",\n \"int.ve\",\n \"mil.ve\",\n \"net.ve\",\n \"nom.ve\",\n \"org.ve\",\n \"rar.ve\",\n \"rec.ve\",\n \"store.ve\",\n \"tec.ve\",\n \"web.ve\",\n \"vg\",\n \"vi\",\n \"co.vi\",\n \"com.vi\",\n \"k12.vi\",\n \"net.vi\",\n \"org.vi\",\n \"vn\",\n \"com.vn\",\n \"net.vn\",\n \"org.vn\",\n \"edu.vn\",\n \"gov.vn\",\n \"int.vn\",\n \"ac.vn\",\n \"biz.vn\",\n \"info.vn\",\n \"name.vn\",\n \"pro.vn\",\n \"health.vn\",\n \"vu\",\n \"com.vu\",\n \"edu.vu\",\n \"net.vu\",\n \"org.vu\",\n \"wf\",\n \"ws\",\n \"com.ws\",\n \"net.ws\",\n \"org.ws\",\n \"gov.ws\",\n \"edu.ws\",\n \"yt\",\n \"\\u0627\\u0645\\u0627\\u0631\\u0627\\u062A\",\n \"\\u0570\\u0561\\u0575\",\n \"\\u09AC\\u09BE\\u0982\\u09B2\\u09BE\",\n \"\\u0431\\u0433\",\n \"\\u0627\\u0644\\u0628\\u062D\\u0631\\u064A\\u0646\",\n \"\\u0431\\u0435\\u043B\",\n \"\\u4E2D\\u56FD\",\n \"\\u4E2D\\u570B\",\n \"\\u0627\\u0644\\u062C\\u0632\\u0627\\u0626\\u0631\",\n \"\\u0645\\u0635\\u0631\",\n \"\\u0435\\u044E\",\n \"\\u03B5\\u03C5\",\n \"\\u0645\\u0648\\u0631\\u064A\\u062A\\u0627\\u0646\\u064A\\u0627\",\n \"\\u10D2\\u10D4\",\n \"\\u03B5\\u03BB\",\n \"\\u9999\\u6E2F\",\n \"\\u516C\\u53F8.\\u9999\\u6E2F\",\n \"\\u6559\\u80B2.\\u9999\\u6E2F\",\n \"\\u653F\\u5E9C.\\u9999\\u6E2F\",\n \"\\u500B\\u4EBA.\\u9999\\u6E2F\",\n \"\\u7DB2\\u7D61.\\u9999\\u6E2F\",\n \"\\u7D44\\u7E54.\\u9999\\u6E2F\",\n \"\\u0CAD\\u0CBE\\u0CB0\\u0CA4\",\n \"\\u0B2D\\u0B3E\\u0B30\\u0B24\",\n \"\\u09AD\\u09BE\\u09F0\\u09A4\",\n \"\\u092D\\u093E\\u0930\\u0924\\u092E\\u094D\",\n \"\\u092D\\u093E\\u0930\\u094B\\u0924\",\n \"\\u0680\\u0627\\u0631\\u062A\",\n \"\\u0D2D\\u0D3E\\u0D30\\u0D24\\u0D02\",\n \"\\u092D\\u093E\\u0930\\u0924\",\n \"\\u0628\\u0627\\u0631\\u062A\",\n \"\\u0628\\u06BE\\u0627\\u0631\\u062A\",\n \"\\u0C2D\\u0C3E\\u0C30\\u0C24\\u0C4D\",\n \"\\u0AAD\\u0ABE\\u0AB0\\u0AA4\",\n \"\\u0A2D\\u0A3E\\u0A30\\u0A24\",\n \"\\u09AD\\u09BE\\u09B0\\u09A4\",\n \"\\u0B87\\u0BA8\\u0BCD\\u0BA4\\u0BBF\\u0BAF\\u0BBE\",\n \"\\u0627\\u06CC\\u0631\\u0627\\u0646\",\n \"\\u0627\\u064A\\u0631\\u0627\\u0646\",\n \"\\u0639\\u0631\\u0627\\u0642\",\n \"\\u0627\\u0644\\u0627\\u0631\\u062F\\u0646\",\n \"\\uD55C\\uAD6D\",\n \"\\u049B\\u0430\\u0437\",\n \"\\u0EA5\\u0EB2\\u0EA7\",\n \"\\u0DBD\\u0D82\\u0D9A\\u0DCF\",\n \"\\u0B87\\u0BB2\\u0B99\\u0BCD\\u0B95\\u0BC8\",\n \"\\u0627\\u0644\\u0645\\u063A\\u0631\\u0628\",\n \"\\u043C\\u043A\\u0434\",\n \"\\u043C\\u043E\\u043D\",\n \"\\u6FB3\\u9580\",\n \"\\u6FB3\\u95E8\",\n \"\\u0645\\u0644\\u064A\\u0633\\u064A\\u0627\",\n \"\\u0639\\u0645\\u0627\\u0646\",\n \"\\u067E\\u0627\\u06A9\\u0633\\u062A\\u0627\\u0646\",\n \"\\u067E\\u0627\\u0643\\u0633\\u062A\\u0627\\u0646\",\n \"\\u0641\\u0644\\u0633\\u0637\\u064A\\u0646\",\n \"\\u0441\\u0440\\u0431\",\n \"\\u043F\\u0440.\\u0441\\u0440\\u0431\",\n \"\\u043E\\u0440\\u0433.\\u0441\\u0440\\u0431\",\n \"\\u043E\\u0431\\u0440.\\u0441\\u0440\\u0431\",\n \"\\u043E\\u0434.\\u0441\\u0440\\u0431\",\n \"\\u0443\\u043F\\u0440.\\u0441\\u0440\\u0431\",\n \"\\u0430\\u043A.\\u0441\\u0440\\u0431\",\n \"\\u0440\\u0444\",\n \"\\u0642\\u0637\\u0631\",\n \"\\u0627\\u0644\\u0633\\u0639\\u0648\\u062F\\u064A\\u0629\",\n \"\\u0627\\u0644\\u0633\\u0639\\u0648\\u062F\\u06CC\\u0629\",\n \"\\u0627\\u0644\\u0633\\u0639\\u0648\\u062F\\u06CC\\u06C3\",\n \"\\u0627\\u0644\\u0633\\u0639\\u0648\\u062F\\u064A\\u0647\",\n \"\\u0633\\u0648\\u062F\\u0627\\u0646\",\n \"\\u65B0\\u52A0\\u5761\",\n \"\\u0B9A\\u0BBF\\u0B99\\u0BCD\\u0B95\\u0BAA\\u0BCD\\u0BAA\\u0BC2\\u0BB0\\u0BCD\",\n \"\\u0633\\u0648\\u0631\\u064A\\u0629\",\n \"\\u0633\\u0648\\u0631\\u064A\\u0627\",\n \"\\u0E44\\u0E17\\u0E22\",\n \"\\u0E28\\u0E36\\u0E01\\u0E29\\u0E32.\\u0E44\\u0E17\\u0E22\",\n \"\\u0E18\\u0E38\\u0E23\\u0E01\\u0E34\\u0E08.\\u0E44\\u0E17\\u0E22\",\n \"\\u0E23\\u0E31\\u0E10\\u0E1A\\u0E32\\u0E25.\\u0E44\\u0E17\\u0E22\",\n \"\\u0E17\\u0E2B\\u0E32\\u0E23.\\u0E44\\u0E17\\u0E22\",\n \"\\u0E40\\u0E19\\u0E47\\u0E15.\\u0E44\\u0E17\\u0E22\",\n \"\\u0E2D\\u0E07\\u0E04\\u0E4C\\u0E01\\u0E23.\\u0E44\\u0E17\\u0E22\",\n \"\\u062A\\u0648\\u0646\\u0633\",\n \"\\u53F0\\u7063\",\n \"\\u53F0\\u6E7E\",\n \"\\u81FA\\u7063\",\n \"\\u0443\\u043A\\u0440\",\n \"\\u0627\\u0644\\u064A\\u0645\\u0646\",\n \"xxx\",\n \"ye\",\n \"com.ye\",\n \"edu.ye\",\n \"gov.ye\",\n \"net.ye\",\n \"mil.ye\",\n \"org.ye\",\n \"ac.za\",\n \"agric.za\",\n \"alt.za\",\n \"co.za\",\n \"edu.za\",\n \"gov.za\",\n \"grondar.za\",\n \"law.za\",\n \"mil.za\",\n \"net.za\",\n \"ngo.za\",\n \"nic.za\",\n \"nis.za\",\n \"nom.za\",\n \"org.za\",\n \"school.za\",\n \"tm.za\",\n \"web.za\",\n \"zm\",\n \"ac.zm\",\n \"biz.zm\",\n \"co.zm\",\n \"com.zm\",\n \"edu.zm\",\n \"gov.zm\",\n \"info.zm\",\n \"mil.zm\",\n \"net.zm\",\n \"org.zm\",\n \"sch.zm\",\n \"zw\",\n \"ac.zw\",\n \"co.zw\",\n \"gov.zw\",\n \"mil.zw\",\n \"org.zw\",\n \"aaa\",\n \"aarp\",\n \"abarth\",\n \"abb\",\n \"abbott\",\n \"abbvie\",\n \"abc\",\n \"able\",\n \"abogado\",\n \"abudhabi\",\n \"academy\",\n \"accenture\",\n \"accountant\",\n \"accountants\",\n \"aco\",\n \"actor\",\n \"adac\",\n \"ads\",\n \"adult\",\n \"aeg\",\n \"aetna\",\n \"afl\",\n \"africa\",\n \"agakhan\",\n \"agency\",\n \"aig\",\n \"airbus\",\n \"airforce\",\n \"airtel\",\n \"akdn\",\n \"alfaromeo\",\n \"alibaba\",\n \"alipay\",\n \"allfinanz\",\n \"allstate\",\n \"ally\",\n \"alsace\",\n \"alstom\",\n \"amazon\",\n \"americanexpress\",\n \"americanfamily\",\n \"amex\",\n \"amfam\",\n \"amica\",\n \"amsterdam\",\n \"analytics\",\n \"android\",\n \"anquan\",\n \"anz\",\n \"aol\",\n \"apartments\",\n \"app\",\n \"apple\",\n \"aquarelle\",\n \"arab\",\n \"aramco\",\n \"archi\",\n \"army\",\n \"art\",\n \"arte\",\n \"asda\",\n \"associates\",\n \"athleta\",\n \"attorney\",\n \"auction\",\n \"audi\",\n \"audible\",\n \"audio\",\n \"auspost\",\n \"author\",\n \"auto\",\n \"autos\",\n \"avianca\",\n \"aws\",\n \"axa\",\n \"azure\",\n \"baby\",\n \"baidu\",\n \"banamex\",\n \"bananarepublic\",\n \"band\",\n \"bank\",\n \"bar\",\n \"barcelona\",\n \"barclaycard\",\n \"barclays\",\n \"barefoot\",\n \"bargains\",\n \"baseball\",\n \"basketball\",\n \"bauhaus\",\n \"bayern\",\n \"bbc\",\n \"bbt\",\n \"bbva\",\n \"bcg\",\n \"bcn\",\n \"beats\",\n \"beauty\",\n \"beer\",\n \"bentley\",\n \"berlin\",\n \"best\",\n \"bestbuy\",\n \"bet\",\n \"bharti\",\n \"bible\",\n \"bid\",\n \"bike\",\n \"bing\",\n \"bingo\",\n \"bio\",\n \"black\",\n \"blackfriday\",\n \"blockbuster\",\n \"blog\",\n \"bloomberg\",\n \"blue\",\n \"bms\",\n \"bmw\",\n \"bnpparibas\",\n \"boats\",\n \"boehringer\",\n \"bofa\",\n \"bom\",\n \"bond\",\n \"boo\",\n \"book\",\n \"booking\",\n \"bosch\",\n \"bostik\",\n \"boston\",\n \"bot\",\n \"boutique\",\n \"box\",\n \"bradesco\",\n \"bridgestone\",\n \"broadway\",\n \"broker\",\n \"brother\",\n \"brussels\",\n \"bugatti\",\n \"build\",\n \"builders\",\n \"business\",\n \"buy\",\n \"buzz\",\n \"bzh\",\n \"cab\",\n \"cafe\",\n \"cal\",\n \"call\",\n \"calvinklein\",\n \"cam\",\n \"camera\",\n \"camp\",\n \"cancerresearch\",\n \"canon\",\n \"capetown\",\n \"capital\",\n \"capitalone\",\n \"car\",\n \"caravan\",\n \"cards\",\n \"care\",\n \"career\",\n \"careers\",\n \"cars\",\n \"casa\",\n \"case\",\n \"cash\",\n \"casino\",\n \"catering\",\n \"catholic\",\n \"cba\",\n \"cbn\",\n \"cbre\",\n \"cbs\",\n \"center\",\n \"ceo\",\n \"cern\",\n \"cfa\",\n \"cfd\",\n \"chanel\",\n \"channel\",\n \"charity\",\n \"chase\",\n \"chat\",\n \"cheap\",\n \"chintai\",\n \"christmas\",\n \"chrome\",\n \"church\",\n \"cipriani\",\n \"circle\",\n \"cisco\",\n \"citadel\",\n \"citi\",\n \"citic\",\n \"city\",\n \"cityeats\",\n \"claims\",\n \"cleaning\",\n \"click\",\n \"clinic\",\n \"clinique\",\n \"clothing\",\n \"cloud\",\n \"club\",\n \"clubmed\",\n \"coach\",\n \"codes\",\n \"coffee\",\n \"college\",\n \"cologne\",\n \"comcast\",\n \"commbank\",\n \"community\",\n \"company\",\n \"compare\",\n \"computer\",\n \"comsec\",\n \"condos\",\n \"construction\",\n \"consulting\",\n \"contact\",\n \"contractors\",\n \"cooking\",\n \"cookingchannel\",\n \"cool\",\n \"corsica\",\n \"country\",\n \"coupon\",\n \"coupons\",\n \"courses\",\n \"cpa\",\n \"credit\",\n \"creditcard\",\n \"creditunion\",\n \"cricket\",\n \"crown\",\n \"crs\",\n \"cruise\",\n \"cruises\",\n \"cuisinella\",\n \"cymru\",\n \"cyou\",\n \"dabur\",\n \"dad\",\n \"dance\",\n \"data\",\n \"date\",\n \"dating\",\n \"datsun\",\n \"day\",\n \"dclk\",\n \"dds\",\n \"deal\",\n \"dealer\",\n \"deals\",\n \"degree\",\n \"delivery\",\n \"dell\",\n \"deloitte\",\n \"delta\",\n \"democrat\",\n \"dental\",\n \"dentist\",\n \"desi\",\n \"design\",\n \"dev\",\n \"dhl\",\n \"diamonds\",\n \"diet\",\n \"digital\",\n \"direct\",\n \"directory\",\n \"discount\",\n \"discover\",\n \"dish\",\n \"diy\",\n \"dnp\",\n \"docs\",\n \"doctor\",\n \"dog\",\n \"domains\",\n \"dot\",\n \"download\",\n \"drive\",\n \"dtv\",\n \"dubai\",\n \"dunlop\",\n \"dupont\",\n \"durban\",\n \"dvag\",\n \"dvr\",\n \"earth\",\n \"eat\",\n \"eco\",\n \"edeka\",\n \"education\",\n \"email\",\n \"emerck\",\n \"energy\",\n \"engineer\",\n \"engineering\",\n \"enterprises\",\n \"epson\",\n \"equipment\",\n \"ericsson\",\n \"erni\",\n \"esq\",\n \"estate\",\n \"etisalat\",\n \"eurovision\",\n \"eus\",\n \"events\",\n \"exchange\",\n \"expert\",\n \"exposed\",\n \"express\",\n \"extraspace\",\n \"fage\",\n \"fail\",\n \"fairwinds\",\n \"faith\",\n \"family\",\n \"fan\",\n \"fans\",\n \"farm\",\n \"farmers\",\n \"fashion\",\n \"fast\",\n \"fedex\",\n \"feedback\",\n \"ferrari\",\n \"ferrero\",\n \"fiat\",\n \"fidelity\",\n \"fido\",\n \"film\",\n \"final\",\n \"finance\",\n \"financial\",\n \"fire\",\n \"firestone\",\n \"firmdale\",\n \"fish\",\n \"fishing\",\n \"fit\",\n \"fitness\",\n \"flickr\",\n \"flights\",\n \"flir\",\n \"florist\",\n \"flowers\",\n \"fly\",\n \"foo\",\n \"food\",\n \"foodnetwork\",\n \"football\",\n \"ford\",\n \"forex\",\n \"forsale\",\n \"forum\",\n \"foundation\",\n \"fox\",\n \"free\",\n \"fresenius\",\n \"frl\",\n \"frogans\",\n \"frontdoor\",\n \"frontier\",\n \"ftr\",\n \"fujitsu\",\n \"fun\",\n \"fund\",\n \"furniture\",\n \"futbol\",\n \"fyi\",\n \"gal\",\n \"gallery\",\n \"gallo\",\n \"gallup\",\n \"game\",\n \"games\",\n \"gap\",\n \"garden\",\n \"gay\",\n \"gbiz\",\n \"gdn\",\n \"gea\",\n \"gent\",\n \"genting\",\n \"george\",\n \"ggee\",\n \"gift\",\n \"gifts\",\n \"gives\",\n \"giving\",\n \"glass\",\n \"gle\",\n \"global\",\n \"globo\",\n \"gmail\",\n \"gmbh\",\n \"gmo\",\n \"gmx\",\n \"godaddy\",\n \"gold\",\n \"goldpoint\",\n \"golf\",\n \"goo\",\n \"goodyear\",\n \"goog\",\n \"google\",\n \"gop\",\n \"got\",\n \"grainger\",\n \"graphics\",\n \"gratis\",\n \"green\",\n \"gripe\",\n \"grocery\",\n \"group\",\n \"guardian\",\n \"gucci\",\n \"guge\",\n \"guide\",\n \"guitars\",\n \"guru\",\n \"hair\",\n \"hamburg\",\n \"hangout\",\n \"haus\",\n \"hbo\",\n \"hdfc\",\n \"hdfcbank\",\n \"health\",\n \"healthcare\",\n \"help\",\n \"helsinki\",\n \"here\",\n \"hermes\",\n \"hgtv\",\n \"hiphop\",\n \"hisamitsu\",\n \"hitachi\",\n \"hiv\",\n \"hkt\",\n \"hockey\",\n \"holdings\",\n \"holiday\",\n \"homedepot\",\n \"homegoods\",\n \"homes\",\n \"homesense\",\n \"honda\",\n \"horse\",\n \"hospital\",\n \"host\",\n \"hosting\",\n \"hot\",\n \"hoteles\",\n \"hotels\",\n \"hotmail\",\n \"house\",\n \"how\",\n \"hsbc\",\n \"hughes\",\n \"hyatt\",\n \"hyundai\",\n \"ibm\",\n \"icbc\",\n \"ice\",\n \"icu\",\n \"ieee\",\n \"ifm\",\n \"ikano\",\n \"imamat\",\n \"imdb\",\n \"immo\",\n \"immobilien\",\n \"inc\",\n \"industries\",\n \"infiniti\",\n \"ing\",\n \"ink\",\n \"institute\",\n \"insurance\",\n \"insure\",\n \"international\",\n \"intuit\",\n \"investments\",\n \"ipiranga\",\n \"irish\",\n \"ismaili\",\n \"ist\",\n \"istanbul\",\n \"itau\",\n \"itv\",\n \"jaguar\",\n \"java\",\n \"jcb\",\n \"jeep\",\n \"jetzt\",\n \"jewelry\",\n \"jio\",\n \"jll\",\n \"jmp\",\n \"jnj\",\n \"joburg\",\n \"jot\",\n \"joy\",\n \"jpmorgan\",\n \"jprs\",\n \"juegos\",\n \"juniper\",\n \"kaufen\",\n \"kddi\",\n \"kerryhotels\",\n \"kerrylogistics\",\n \"kerryproperties\",\n \"kfh\",\n \"kia\",\n \"kids\",\n \"kim\",\n \"kinder\",\n \"kindle\",\n \"kitchen\",\n \"kiwi\",\n \"koeln\",\n \"komatsu\",\n \"kosher\",\n \"kpmg\",\n \"kpn\",\n \"krd\",\n \"kred\",\n \"kuokgroup\",\n \"kyoto\",\n \"lacaixa\",\n \"lamborghini\",\n \"lamer\",\n \"lancaster\",\n \"lancia\",\n \"land\",\n \"landrover\",\n \"lanxess\",\n \"lasalle\",\n \"lat\",\n \"latino\",\n \"latrobe\",\n \"law\",\n \"lawyer\",\n \"lds\",\n \"lease\",\n \"leclerc\",\n \"lefrak\",\n \"legal\",\n \"lego\",\n \"lexus\",\n \"lgbt\",\n \"lidl\",\n \"life\",\n \"lifeinsurance\",\n \"lifestyle\",\n \"lighting\",\n \"like\",\n \"lilly\",\n \"limited\",\n \"limo\",\n \"lincoln\",\n \"linde\",\n \"link\",\n \"lipsy\",\n \"live\",\n \"living\",\n \"llc\",\n \"llp\",\n \"loan\",\n \"loans\",\n \"locker\",\n \"locus\",\n \"loft\",\n \"lol\",\n \"london\",\n \"lotte\",\n \"lotto\",\n \"love\",\n \"lpl\",\n \"lplfinancial\",\n \"ltd\",\n \"ltda\",\n \"lundbeck\",\n \"luxe\",\n \"luxury\",\n \"macys\",\n \"madrid\",\n \"maif\",\n \"maison\",\n \"makeup\",\n \"man\",\n \"management\",\n \"mango\",\n \"map\",\n \"market\",\n \"marketing\",\n \"markets\",\n \"marriott\",\n \"marshalls\",\n \"maserati\",\n \"mattel\",\n \"mba\",\n \"mckinsey\",\n \"med\",\n \"media\",\n \"meet\",\n \"melbourne\",\n \"meme\",\n \"memorial\",\n \"men\",\n \"menu\",\n \"merckmsd\",\n \"miami\",\n \"microsoft\",\n \"mini\",\n \"mint\",\n \"mit\",\n \"mitsubishi\",\n \"mlb\",\n \"mls\",\n \"mma\",\n \"mobile\",\n \"moda\",\n \"moe\",\n \"moi\",\n \"mom\",\n \"monash\",\n \"money\",\n \"monster\",\n \"mormon\",\n \"mortgage\",\n \"moscow\",\n \"moto\",\n \"motorcycles\",\n \"mov\",\n \"movie\",\n \"msd\",\n \"mtn\",\n \"mtr\",\n \"music\",\n \"mutual\",\n \"nab\",\n \"nagoya\",\n \"natura\",\n \"navy\",\n \"nba\",\n \"nec\",\n \"netbank\",\n \"netflix\",\n \"network\",\n \"neustar\",\n \"new\",\n \"news\",\n \"next\",\n \"nextdirect\",\n \"nexus\",\n \"nfl\",\n \"ngo\",\n \"nhk\",\n \"nico\",\n \"nike\",\n \"nikon\",\n \"ninja\",\n \"nissan\",\n \"nissay\",\n \"nokia\",\n \"northwesternmutual\",\n \"norton\",\n \"now\",\n \"nowruz\",\n \"nowtv\",\n \"nra\",\n \"nrw\",\n \"ntt\",\n \"nyc\",\n \"obi\",\n \"observer\",\n \"office\",\n \"okinawa\",\n \"olayan\",\n \"olayangroup\",\n \"oldnavy\",\n \"ollo\",\n \"omega\",\n \"one\",\n \"ong\",\n \"onl\",\n \"online\",\n \"ooo\",\n \"open\",\n \"oracle\",\n \"orange\",\n \"organic\",\n \"origins\",\n \"osaka\",\n \"otsuka\",\n \"ott\",\n \"ovh\",\n \"page\",\n \"panasonic\",\n \"paris\",\n \"pars\",\n \"partners\",\n \"parts\",\n \"party\",\n \"passagens\",\n \"pay\",\n \"pccw\",\n \"pet\",\n \"pfizer\",\n \"pharmacy\",\n \"phd\",\n \"philips\",\n \"phone\",\n \"photo\",\n \"photography\",\n \"photos\",\n \"physio\",\n \"pics\",\n \"pictet\",\n \"pictures\",\n \"pid\",\n \"pin\",\n \"ping\",\n \"pink\",\n \"pioneer\",\n \"pizza\",\n \"place\",\n \"play\",\n \"playstation\",\n \"plumbing\",\n \"plus\",\n \"pnc\",\n \"pohl\",\n \"poker\",\n \"politie\",\n \"porn\",\n \"pramerica\",\n \"praxi\",\n \"press\",\n \"prime\",\n \"prod\",\n \"productions\",\n \"prof\",\n \"progressive\",\n \"promo\",\n \"properties\",\n \"property\",\n \"protection\",\n \"pru\",\n \"prudential\",\n \"pub\",\n \"pwc\",\n \"qpon\",\n \"quebec\",\n \"quest\",\n \"racing\",\n \"radio\",\n \"read\",\n \"realestate\",\n \"realtor\",\n \"realty\",\n \"recipes\",\n \"red\",\n \"redstone\",\n \"redumbrella\",\n \"rehab\",\n \"reise\",\n \"reisen\",\n \"reit\",\n \"reliance\",\n \"ren\",\n \"rent\",\n \"rentals\",\n \"repair\",\n \"report\",\n \"republican\",\n \"rest\",\n \"restaurant\",\n \"review\",\n \"reviews\",\n \"rexroth\",\n \"rich\",\n \"richardli\",\n \"ricoh\",\n \"ril\",\n \"rio\",\n \"rip\",\n \"rocher\",\n \"rocks\",\n \"rodeo\",\n \"rogers\",\n \"room\",\n \"rsvp\",\n \"rugby\",\n \"ruhr\",\n \"run\",\n \"rwe\",\n \"ryukyu\",\n \"saarland\",\n \"safe\",\n \"safety\",\n \"sakura\",\n \"sale\",\n \"salon\",\n \"samsclub\",\n \"samsung\",\n \"sandvik\",\n \"sandvikcoromant\",\n \"sanofi\",\n \"sap\",\n \"sarl\",\n \"sas\",\n \"save\",\n \"saxo\",\n \"sbi\",\n \"sbs\",\n \"sca\",\n \"scb\",\n \"schaeffler\",\n \"schmidt\",\n \"scholarships\",\n \"school\",\n \"schule\",\n \"schwarz\",\n \"science\",\n \"scot\",\n \"search\",\n \"seat\",\n \"secure\",\n \"security\",\n \"seek\",\n \"select\",\n \"sener\",\n \"services\",\n \"ses\",\n \"seven\",\n \"sew\",\n \"sex\",\n \"sexy\",\n \"sfr\",\n \"shangrila\",\n \"sharp\",\n \"shaw\",\n \"shell\",\n \"shia\",\n \"shiksha\",\n \"shoes\",\n \"shop\",\n \"shopping\",\n \"shouji\",\n \"show\",\n \"showtime\",\n \"silk\",\n \"sina\",\n \"singles\",\n \"site\",\n \"ski\",\n \"skin\",\n \"sky\",\n \"skype\",\n \"sling\",\n \"smart\",\n \"smile\",\n \"sncf\",\n \"soccer\",\n \"social\",\n \"softbank\",\n \"software\",\n \"sohu\",\n \"solar\",\n \"solutions\",\n \"song\",\n \"sony\",\n \"soy\",\n \"spa\",\n \"space\",\n \"sport\",\n \"spot\",\n \"srl\",\n \"stada\",\n \"staples\",\n \"star\",\n \"statebank\",\n \"statefarm\",\n \"stc\",\n \"stcgroup\",\n \"stockholm\",\n \"storage\",\n \"store\",\n \"stream\",\n \"studio\",\n \"study\",\n \"style\",\n \"sucks\",\n \"supplies\",\n \"supply\",\n \"support\",\n \"surf\",\n \"surgery\",\n \"suzuki\",\n \"swatch\",\n \"swiss\",\n \"sydney\",\n \"systems\",\n \"tab\",\n \"taipei\",\n \"talk\",\n \"taobao\",\n \"target\",\n \"tatamotors\",\n \"tatar\",\n \"tattoo\",\n \"tax\",\n \"taxi\",\n \"tci\",\n \"tdk\",\n \"team\",\n \"tech\",\n \"technology\",\n \"temasek\",\n \"tennis\",\n \"teva\",\n \"thd\",\n \"theater\",\n \"theatre\",\n \"tiaa\",\n \"tickets\",\n \"tienda\",\n \"tiffany\",\n \"tips\",\n \"tires\",\n \"tirol\",\n \"tjmaxx\",\n \"tjx\",\n \"tkmaxx\",\n \"tmall\",\n \"today\",\n \"tokyo\",\n \"tools\",\n \"top\",\n \"toray\",\n \"toshiba\",\n \"total\",\n \"tours\",\n \"town\",\n \"toyota\",\n \"toys\",\n \"trade\",\n \"trading\",\n \"training\",\n \"travel\",\n \"travelchannel\",\n \"travelers\",\n \"travelersinsurance\",\n \"trust\",\n \"trv\",\n \"tube\",\n \"tui\",\n \"tunes\",\n \"tushu\",\n \"tvs\",\n \"ubank\",\n \"ubs\",\n \"unicom\",\n \"university\",\n \"uno\",\n \"uol\",\n \"ups\",\n \"vacations\",\n \"vana\",\n \"vanguard\",\n \"vegas\",\n \"ventures\",\n \"verisign\",\n \"versicherung\",\n \"vet\",\n \"viajes\",\n \"video\",\n \"vig\",\n \"viking\",\n \"villas\",\n \"vin\",\n \"vip\",\n \"virgin\",\n \"visa\",\n \"vision\",\n \"viva\",\n \"vivo\",\n \"vlaanderen\",\n \"vodka\",\n \"volkswagen\",\n \"volvo\",\n \"vote\",\n \"voting\",\n \"voto\",\n \"voyage\",\n \"vuelos\",\n \"wales\",\n \"walmart\",\n \"walter\",\n \"wang\",\n \"wanggou\",\n \"watch\",\n \"watches\",\n \"weather\",\n \"weatherchannel\",\n \"webcam\",\n \"weber\",\n \"website\",\n \"wedding\",\n \"weibo\",\n \"weir\",\n \"whoswho\",\n \"wien\",\n \"wiki\",\n \"williamhill\",\n \"win\",\n \"windows\",\n \"wine\",\n \"winners\",\n \"wme\",\n \"wolterskluwer\",\n \"woodside\",\n \"work\",\n \"works\",\n \"world\",\n \"wow\",\n \"wtc\",\n \"wtf\",\n \"xbox\",\n \"xerox\",\n \"xfinity\",\n \"xihuan\",\n \"xin\",\n \"\\u0915\\u0949\\u092E\",\n \"\\u30BB\\u30FC\\u30EB\",\n \"\\u4F5B\\u5C71\",\n \"\\u6148\\u5584\",\n \"\\u96C6\\u56E2\",\n \"\\u5728\\u7EBF\",\n \"\\u70B9\\u770B\",\n \"\\u0E04\\u0E2D\\u0E21\",\n \"\\u516B\\u5366\",\n \"\\u0645\\u0648\\u0642\\u0639\",\n \"\\u516C\\u76CA\",\n \"\\u516C\\u53F8\",\n \"\\u9999\\u683C\\u91CC\\u62C9\",\n \"\\u7F51\\u7AD9\",\n \"\\u79FB\\u52A8\",\n \"\\u6211\\u7231\\u4F60\",\n \"\\u043C\\u043E\\u0441\\u043A\\u0432\\u0430\",\n \"\\u043A\\u0430\\u0442\\u043E\\u043B\\u0438\\u043A\",\n \"\\u043E\\u043D\\u043B\\u0430\\u0439\\u043D\",\n \"\\u0441\\u0430\\u0439\\u0442\",\n \"\\u8054\\u901A\",\n \"\\u05E7\\u05D5\\u05DD\",\n \"\\u65F6\\u5C1A\",\n \"\\u5FAE\\u535A\",\n \"\\u6DE1\\u9A6C\\u9521\",\n \"\\u30D5\\u30A1\\u30C3\\u30B7\\u30E7\\u30F3\",\n \"\\u043E\\u0440\\u0433\",\n \"\\u0928\\u0947\\u091F\",\n \"\\u30B9\\u30C8\\u30A2\",\n \"\\u30A2\\u30DE\\u30BE\\u30F3\",\n \"\\uC0BC\\uC131\",\n \"\\u5546\\u6807\",\n \"\\u5546\\u5E97\",\n \"\\u5546\\u57CE\",\n \"\\u0434\\u0435\\u0442\\u0438\",\n \"\\u30DD\\u30A4\\u30F3\\u30C8\",\n \"\\u65B0\\u95FB\",\n \"\\u5BB6\\u96FB\",\n \"\\u0643\\u0648\\u0645\",\n \"\\u4E2D\\u6587\\u7F51\",\n \"\\u4E2D\\u4FE1\",\n \"\\u5A31\\u4E50\",\n \"\\u8C37\\u6B4C\",\n \"\\u96FB\\u8A0A\\u76C8\\u79D1\",\n \"\\u8D2D\\u7269\",\n \"\\u30AF\\u30E9\\u30A6\\u30C9\",\n \"\\u901A\\u8CA9\",\n \"\\u7F51\\u5E97\",\n \"\\u0938\\u0902\\u0917\\u0920\\u0928\",\n \"\\u9910\\u5385\",\n \"\\u7F51\\u7EDC\",\n \"\\u043A\\u043E\\u043C\",\n \"\\u4E9A\\u9A6C\\u900A\",\n \"\\u8BFA\\u57FA\\u4E9A\",\n \"\\u98DF\\u54C1\",\n \"\\u98DE\\u5229\\u6D66\",\n \"\\u624B\\u673A\",\n \"\\u0627\\u0631\\u0627\\u0645\\u0643\\u0648\",\n \"\\u0627\\u0644\\u0639\\u0644\\u064A\\u0627\\u0646\",\n \"\\u0627\\u062A\\u0635\\u0627\\u0644\\u0627\\u062A\",\n \"\\u0628\\u0627\\u0632\\u0627\\u0631\",\n \"\\u0627\\u0628\\u0648\\u0638\\u0628\\u064A\",\n \"\\u0643\\u0627\\u062B\\u0648\\u0644\\u064A\\u0643\",\n \"\\u0647\\u0645\\u0631\\u0627\\u0647\",\n \"\\uB2F7\\uCEF4\",\n \"\\u653F\\u5E9C\",\n \"\\u0634\\u0628\\u0643\\u0629\",\n \"\\u0628\\u064A\\u062A\\u0643\",\n \"\\u0639\\u0631\\u0628\",\n \"\\u673A\\u6784\",\n \"\\u7EC4\\u7EC7\\u673A\\u6784\",\n \"\\u5065\\u5EB7\",\n \"\\u62DB\\u8058\",\n \"\\u0440\\u0443\\u0441\",\n \"\\u5927\\u62FF\",\n \"\\u307F\\u3093\\u306A\",\n \"\\u30B0\\u30FC\\u30B0\\u30EB\",\n \"\\u4E16\\u754C\",\n \"\\u66F8\\u7C4D\",\n \"\\u7F51\\u5740\",\n \"\\uB2F7\\uB137\",\n \"\\u30B3\\u30E0\",\n \"\\u5929\\u4E3B\\u6559\",\n \"\\u6E38\\u620F\",\n \"verm\\xF6gensberater\",\n \"verm\\xF6gensberatung\",\n \"\\u4F01\\u4E1A\",\n \"\\u4FE1\\u606F\",\n \"\\u5609\\u91CC\\u5927\\u9152\\u5E97\",\n \"\\u5609\\u91CC\",\n \"\\u5E7F\\u4E1C\",\n \"\\u653F\\u52A1\",\n \"xyz\",\n \"yachts\",\n \"yahoo\",\n \"yamaxun\",\n \"yandex\",\n \"yodobashi\",\n \"yoga\",\n \"yokohama\",\n \"you\",\n \"youtube\",\n \"yun\",\n \"zappos\",\n \"zara\",\n \"zero\",\n \"zip\",\n \"zone\",\n \"zuerich\",\n \"cc.ua\",\n \"inf.ua\",\n \"ltd.ua\",\n \"611.to\",\n \"graphox.us\",\n \"*.devcdnaccesso.com\",\n \"adobeaemcloud.com\",\n \"*.dev.adobeaemcloud.com\",\n \"hlx.live\",\n \"adobeaemcloud.net\",\n \"hlx.page\",\n \"hlx3.page\",\n \"beep.pl\",\n \"airkitapps.com\",\n \"airkitapps-au.com\",\n \"airkitapps.eu\",\n \"aivencloud.com\",\n \"barsy.ca\",\n \"*.compute.estate\",\n \"*.alces.network\",\n \"kasserver.com\",\n \"altervista.org\",\n \"alwaysdata.net\",\n \"cloudfront.net\",\n \"*.compute.amazonaws.com\",\n \"*.compute-1.amazonaws.com\",\n \"*.compute.amazonaws.com.cn\",\n \"us-east-1.amazonaws.com\",\n \"cn-north-1.eb.amazonaws.com.cn\",\n \"cn-northwest-1.eb.amazonaws.com.cn\",\n \"elasticbeanstalk.com\",\n \"ap-northeast-1.elasticbeanstalk.com\",\n \"ap-northeast-2.elasticbeanstalk.com\",\n \"ap-northeast-3.elasticbeanstalk.com\",\n \"ap-south-1.elasticbeanstalk.com\",\n \"ap-southeast-1.elasticbeanstalk.com\",\n \"ap-southeast-2.elasticbeanstalk.com\",\n \"ca-central-1.elasticbeanstalk.com\",\n \"eu-central-1.elasticbeanstalk.com\",\n \"eu-west-1.elasticbeanstalk.com\",\n \"eu-west-2.elasticbeanstalk.com\",\n \"eu-west-3.elasticbeanstalk.com\",\n \"sa-east-1.elasticbeanstalk.com\",\n \"us-east-1.elasticbeanstalk.com\",\n \"us-east-2.elasticbeanstalk.com\",\n \"us-gov-west-1.elasticbeanstalk.com\",\n \"us-west-1.elasticbeanstalk.com\",\n \"us-west-2.elasticbeanstalk.com\",\n \"*.elb.amazonaws.com\",\n \"*.elb.amazonaws.com.cn\",\n \"awsglobalaccelerator.com\",\n \"s3.amazonaws.com\",\n \"s3-ap-northeast-1.amazonaws.com\",\n \"s3-ap-northeast-2.amazonaws.com\",\n \"s3-ap-south-1.amazonaws.com\",\n \"s3-ap-southeast-1.amazonaws.com\",\n \"s3-ap-southeast-2.amazonaws.com\",\n \"s3-ca-central-1.amazonaws.com\",\n \"s3-eu-central-1.amazonaws.com\",\n \"s3-eu-west-1.amazonaws.com\",\n \"s3-eu-west-2.amazonaws.com\",\n \"s3-eu-west-3.amazonaws.com\",\n \"s3-external-1.amazonaws.com\",\n \"s3-fips-us-gov-west-1.amazonaws.com\",\n \"s3-sa-east-1.amazonaws.com\",\n \"s3-us-gov-west-1.amazonaws.com\",\n \"s3-us-east-2.amazonaws.com\",\n \"s3-us-west-1.amazonaws.com\",\n \"s3-us-west-2.amazonaws.com\",\n \"s3.ap-northeast-2.amazonaws.com\",\n \"s3.ap-south-1.amazonaws.com\",\n \"s3.cn-north-1.amazonaws.com.cn\",\n \"s3.ca-central-1.amazonaws.com\",\n \"s3.eu-central-1.amazonaws.com\",\n \"s3.eu-west-2.amazonaws.com\",\n \"s3.eu-west-3.amazonaws.com\",\n \"s3.us-east-2.amazonaws.com\",\n \"s3.dualstack.ap-northeast-1.amazonaws.com\",\n \"s3.dualstack.ap-northeast-2.amazonaws.com\",\n \"s3.dualstack.ap-south-1.amazonaws.com\",\n \"s3.dualstack.ap-southeast-1.amazonaws.com\",\n \"s3.dualstack.ap-southeast-2.amazonaws.com\",\n \"s3.dualstack.ca-central-1.amazonaws.com\",\n \"s3.dualstack.eu-central-1.amazonaws.com\",\n \"s3.dualstack.eu-west-1.amazonaws.com\",\n \"s3.dualstack.eu-west-2.amazonaws.com\",\n \"s3.dualstack.eu-west-3.amazonaws.com\",\n \"s3.dualstack.sa-east-1.amazonaws.com\",\n \"s3.dualstack.us-east-1.amazonaws.com\",\n \"s3.dualstack.us-east-2.amazonaws.com\",\n \"s3-website-us-east-1.amazonaws.com\",\n \"s3-website-us-west-1.amazonaws.com\",\n \"s3-website-us-west-2.amazonaws.com\",\n \"s3-website-ap-northeast-1.amazonaws.com\",\n \"s3-website-ap-southeast-1.amazonaws.com\",\n \"s3-website-ap-southeast-2.amazonaws.com\",\n \"s3-website-eu-west-1.amazonaws.com\",\n \"s3-website-sa-east-1.amazonaws.com\",\n \"s3-website.ap-northeast-2.amazonaws.com\",\n \"s3-website.ap-south-1.amazonaws.com\",\n \"s3-website.ca-central-1.amazonaws.com\",\n \"s3-website.eu-central-1.amazonaws.com\",\n \"s3-website.eu-west-2.amazonaws.com\",\n \"s3-website.eu-west-3.amazonaws.com\",\n \"s3-website.us-east-2.amazonaws.com\",\n \"t3l3p0rt.net\",\n \"tele.amune.org\",\n \"apigee.io\",\n \"siiites.com\",\n \"appspacehosted.com\",\n \"appspaceusercontent.com\",\n \"appudo.net\",\n \"on-aptible.com\",\n \"user.aseinet.ne.jp\",\n \"gv.vc\",\n \"d.gv.vc\",\n \"user.party.eus\",\n \"pimienta.org\",\n \"poivron.org\",\n \"potager.org\",\n \"sweetpepper.org\",\n \"myasustor.com\",\n \"cdn.prod.atlassian-dev.net\",\n \"translated.page\",\n \"myfritz.net\",\n \"onavstack.net\",\n \"*.awdev.ca\",\n \"*.advisor.ws\",\n \"ecommerce-shop.pl\",\n \"b-data.io\",\n \"backplaneapp.io\",\n \"balena-devices.com\",\n \"rs.ba\",\n \"*.banzai.cloud\",\n \"app.banzaicloud.io\",\n \"*.backyards.banzaicloud.io\",\n \"base.ec\",\n \"official.ec\",\n \"buyshop.jp\",\n \"fashionstore.jp\",\n \"handcrafted.jp\",\n \"kawaiishop.jp\",\n \"supersale.jp\",\n \"theshop.jp\",\n \"shopselect.net\",\n \"base.shop\",\n \"*.beget.app\",\n \"betainabox.com\",\n \"bnr.la\",\n \"bitbucket.io\",\n \"blackbaudcdn.net\",\n \"of.je\",\n \"bluebite.io\",\n \"boomla.net\",\n \"boutir.com\",\n \"boxfuse.io\",\n \"square7.ch\",\n \"bplaced.com\",\n \"bplaced.de\",\n \"square7.de\",\n \"bplaced.net\",\n \"square7.net\",\n \"shop.brendly.rs\",\n \"browsersafetymark.io\",\n \"uk0.bigv.io\",\n \"dh.bytemark.co.uk\",\n \"vm.bytemark.co.uk\",\n \"cafjs.com\",\n \"mycd.eu\",\n \"drr.ac\",\n \"uwu.ai\",\n \"carrd.co\",\n \"crd.co\",\n \"ju.mp\",\n \"ae.org\",\n \"br.com\",\n \"cn.com\",\n \"com.de\",\n \"com.se\",\n \"de.com\",\n \"eu.com\",\n \"gb.net\",\n \"hu.net\",\n \"jp.net\",\n \"jpn.com\",\n \"mex.com\",\n \"ru.com\",\n \"sa.com\",\n \"se.net\",\n \"uk.com\",\n \"uk.net\",\n \"us.com\",\n \"za.bz\",\n \"za.com\",\n \"ar.com\",\n \"hu.com\",\n \"kr.com\",\n \"no.com\",\n \"qc.com\",\n \"uy.com\",\n \"africa.com\",\n \"gr.com\",\n \"in.net\",\n \"web.in\",\n \"us.org\",\n \"co.com\",\n \"aus.basketball\",\n \"nz.basketball\",\n \"radio.am\",\n \"radio.fm\",\n \"c.la\",\n \"certmgr.org\",\n \"cx.ua\",\n \"discourse.group\",\n \"discourse.team\",\n \"cleverapps.io\",\n \"clerk.app\",\n \"clerkstage.app\",\n \"*.lcl.dev\",\n \"*.lclstage.dev\",\n \"*.stg.dev\",\n \"*.stgstage.dev\",\n \"clickrising.net\",\n \"c66.me\",\n \"cloud66.ws\",\n \"cloud66.zone\",\n \"jdevcloud.com\",\n \"wpdevcloud.com\",\n \"cloudaccess.host\",\n \"freesite.host\",\n \"cloudaccess.net\",\n \"cloudcontrolled.com\",\n \"cloudcontrolapp.com\",\n \"*.cloudera.site\",\n \"pages.dev\",\n \"trycloudflare.com\",\n \"workers.dev\",\n \"wnext.app\",\n \"co.ca\",\n \"*.otap.co\",\n \"co.cz\",\n \"c.cdn77.org\",\n \"cdn77-ssl.net\",\n \"r.cdn77.net\",\n \"rsc.cdn77.org\",\n \"ssl.origin.cdn77-secure.org\",\n \"cloudns.asia\",\n \"cloudns.biz\",\n \"cloudns.club\",\n \"cloudns.cc\",\n \"cloudns.eu\",\n \"cloudns.in\",\n \"cloudns.info\",\n \"cloudns.org\",\n \"cloudns.pro\",\n \"cloudns.pw\",\n \"cloudns.us\",\n \"cnpy.gdn\",\n \"codeberg.page\",\n \"co.nl\",\n \"co.no\",\n \"webhosting.be\",\n \"hosting-cluster.nl\",\n \"ac.ru\",\n \"edu.ru\",\n \"gov.ru\",\n \"int.ru\",\n \"mil.ru\",\n \"test.ru\",\n \"dyn.cosidns.de\",\n \"dynamisches-dns.de\",\n \"dnsupdater.de\",\n \"internet-dns.de\",\n \"l-o-g-i-n.de\",\n \"dynamic-dns.info\",\n \"feste-ip.net\",\n \"knx-server.net\",\n \"static-access.net\",\n \"realm.cz\",\n \"*.cryptonomic.net\",\n \"cupcake.is\",\n \"curv.dev\",\n \"*.customer-oci.com\",\n \"*.oci.customer-oci.com\",\n \"*.ocp.customer-oci.com\",\n \"*.ocs.customer-oci.com\",\n \"cyon.link\",\n \"cyon.site\",\n \"fnwk.site\",\n \"folionetwork.site\",\n \"platform0.app\",\n \"daplie.me\",\n \"localhost.daplie.me\",\n \"dattolocal.com\",\n \"dattorelay.com\",\n \"dattoweb.com\",\n \"mydatto.com\",\n \"dattolocal.net\",\n \"mydatto.net\",\n \"biz.dk\",\n \"co.dk\",\n \"firm.dk\",\n \"reg.dk\",\n \"store.dk\",\n \"dyndns.dappnode.io\",\n \"*.dapps.earth\",\n \"*.bzz.dapps.earth\",\n \"builtwithdark.com\",\n \"demo.datadetect.com\",\n \"instance.datadetect.com\",\n \"edgestack.me\",\n \"ddns5.com\",\n \"debian.net\",\n \"deno.dev\",\n \"deno-staging.dev\",\n \"dedyn.io\",\n \"deta.app\",\n \"deta.dev\",\n \"*.rss.my.id\",\n \"*.diher.solutions\",\n \"discordsays.com\",\n \"discordsez.com\",\n \"jozi.biz\",\n \"dnshome.de\",\n \"online.th\",\n \"shop.th\",\n \"drayddns.com\",\n \"shoparena.pl\",\n \"dreamhosters.com\",\n \"mydrobo.com\",\n \"drud.io\",\n \"drud.us\",\n \"duckdns.org\",\n \"bip.sh\",\n \"bitbridge.net\",\n \"dy.fi\",\n \"tunk.org\",\n \"dyndns-at-home.com\",\n \"dyndns-at-work.com\",\n \"dyndns-blog.com\",\n \"dyndns-free.com\",\n \"dyndns-home.com\",\n \"dyndns-ip.com\",\n \"dyndns-mail.com\",\n \"dyndns-office.com\",\n \"dyndns-pics.com\",\n \"dyndns-remote.com\",\n \"dyndns-server.com\",\n \"dyndns-web.com\",\n \"dyndns-wiki.com\",\n \"dyndns-work.com\",\n \"dyndns.biz\",\n \"dyndns.info\",\n \"dyndns.org\",\n \"dyndns.tv\",\n \"at-band-camp.net\",\n \"ath.cx\",\n \"barrel-of-knowledge.info\",\n \"barrell-of-knowledge.info\",\n \"better-than.tv\",\n \"blogdns.com\",\n \"blogdns.net\",\n \"blogdns.org\",\n \"blogsite.org\",\n \"boldlygoingnowhere.org\",\n \"broke-it.net\",\n \"buyshouses.net\",\n \"cechire.com\",\n \"dnsalias.com\",\n \"dnsalias.net\",\n \"dnsalias.org\",\n \"dnsdojo.com\",\n \"dnsdojo.net\",\n \"dnsdojo.org\",\n \"does-it.net\",\n \"doesntexist.com\",\n \"doesntexist.org\",\n \"dontexist.com\",\n \"dontexist.net\",\n \"dontexist.org\",\n \"doomdns.com\",\n \"doomdns.org\",\n \"dvrdns.org\",\n \"dyn-o-saur.com\",\n \"dynalias.com\",\n \"dynalias.net\",\n \"dynalias.org\",\n \"dynathome.net\",\n \"dyndns.ws\",\n \"endofinternet.net\",\n \"endofinternet.org\",\n \"endoftheinternet.org\",\n \"est-a-la-maison.com\",\n \"est-a-la-masion.com\",\n \"est-le-patron.com\",\n \"est-mon-blogueur.com\",\n \"for-better.biz\",\n \"for-more.biz\",\n \"for-our.info\",\n \"for-some.biz\",\n \"for-the.biz\",\n \"forgot.her.name\",\n \"forgot.his.name\",\n \"from-ak.com\",\n \"from-al.com\",\n \"from-ar.com\",\n \"from-az.net\",\n \"from-ca.com\",\n \"from-co.net\",\n \"from-ct.com\",\n \"from-dc.com\",\n \"from-de.com\",\n \"from-fl.com\",\n \"from-ga.com\",\n \"from-hi.com\",\n \"from-ia.com\",\n \"from-id.com\",\n \"from-il.com\",\n \"from-in.com\",\n \"from-ks.com\",\n \"from-ky.com\",\n \"from-la.net\",\n \"from-ma.com\",\n \"from-md.com\",\n \"from-me.org\",\n \"from-mi.com\",\n \"from-mn.com\",\n \"from-mo.com\",\n \"from-ms.com\",\n \"from-mt.com\",\n \"from-nc.com\",\n \"from-nd.com\",\n \"from-ne.com\",\n \"from-nh.com\",\n \"from-nj.com\",\n \"from-nm.com\",\n \"from-nv.com\",\n \"from-ny.net\",\n \"from-oh.com\",\n \"from-ok.com\",\n \"from-or.com\",\n \"from-pa.com\",\n \"from-pr.com\",\n \"from-ri.com\",\n \"from-sc.com\",\n \"from-sd.com\",\n \"from-tn.com\",\n \"from-tx.com\",\n \"from-ut.com\",\n \"from-va.com\",\n \"from-vt.com\",\n \"from-wa.com\",\n \"from-wi.com\",\n \"from-wv.com\",\n \"from-wy.com\",\n \"ftpaccess.cc\",\n \"fuettertdasnetz.de\",\n \"game-host.org\",\n \"game-server.cc\",\n \"getmyip.com\",\n \"gets-it.net\",\n \"go.dyndns.org\",\n \"gotdns.com\",\n \"gotdns.org\",\n \"groks-the.info\",\n \"groks-this.info\",\n \"ham-radio-op.net\",\n \"here-for-more.info\",\n \"hobby-site.com\",\n \"hobby-site.org\",\n \"home.dyndns.org\",\n \"homedns.org\",\n \"homeftp.net\",\n \"homeftp.org\",\n \"homeip.net\",\n \"homelinux.com\",\n \"homelinux.net\",\n \"homelinux.org\",\n \"homeunix.com\",\n \"homeunix.net\",\n \"homeunix.org\",\n \"iamallama.com\",\n \"in-the-band.net\",\n \"is-a-anarchist.com\",\n \"is-a-blogger.com\",\n \"is-a-bookkeeper.com\",\n \"is-a-bruinsfan.org\",\n \"is-a-bulls-fan.com\",\n \"is-a-candidate.org\",\n \"is-a-caterer.com\",\n \"is-a-celticsfan.org\",\n \"is-a-chef.com\",\n \"is-a-chef.net\",\n \"is-a-chef.org\",\n \"is-a-conservative.com\",\n \"is-a-cpa.com\",\n \"is-a-cubicle-slave.com\",\n \"is-a-democrat.com\",\n \"is-a-designer.com\",\n \"is-a-doctor.com\",\n \"is-a-financialadvisor.com\",\n \"is-a-geek.com\",\n \"is-a-geek.net\",\n \"is-a-geek.org\",\n \"is-a-green.com\",\n \"is-a-guru.com\",\n \"is-a-hard-worker.com\",\n \"is-a-hunter.com\",\n \"is-a-knight.org\",\n \"is-a-landscaper.com\",\n \"is-a-lawyer.com\",\n \"is-a-liberal.com\",\n \"is-a-libertarian.com\",\n \"is-a-linux-user.org\",\n \"is-a-llama.com\",\n \"is-a-musician.com\",\n \"is-a-nascarfan.com\",\n \"is-a-nurse.com\",\n \"is-a-painter.com\",\n \"is-a-patsfan.org\",\n \"is-a-personaltrainer.com\",\n \"is-a-photographer.com\",\n \"is-a-player.com\",\n \"is-a-republican.com\",\n \"is-a-rockstar.com\",\n \"is-a-socialist.com\",\n \"is-a-soxfan.org\",\n \"is-a-student.com\",\n \"is-a-teacher.com\",\n \"is-a-techie.com\",\n \"is-a-therapist.com\",\n \"is-an-accountant.com\",\n \"is-an-actor.com\",\n \"is-an-actress.com\",\n \"is-an-anarchist.com\",\n \"is-an-artist.com\",\n \"is-an-engineer.com\",\n \"is-an-entertainer.com\",\n \"is-by.us\",\n \"is-certified.com\",\n \"is-found.org\",\n \"is-gone.com\",\n \"is-into-anime.com\",\n \"is-into-cars.com\",\n \"is-into-cartoons.com\",\n \"is-into-games.com\",\n \"is-leet.com\",\n \"is-lost.org\",\n \"is-not-certified.com\",\n \"is-saved.org\",\n \"is-slick.com\",\n \"is-uberleet.com\",\n \"is-very-bad.org\",\n \"is-very-evil.org\",\n \"is-very-good.org\",\n \"is-very-nice.org\",\n \"is-very-sweet.org\",\n \"is-with-theband.com\",\n \"isa-geek.com\",\n \"isa-geek.net\",\n \"isa-geek.org\",\n \"isa-hockeynut.com\",\n \"issmarterthanyou.com\",\n \"isteingeek.de\",\n \"istmein.de\",\n \"kicks-ass.net\",\n \"kicks-ass.org\",\n \"knowsitall.info\",\n \"land-4-sale.us\",\n \"lebtimnetz.de\",\n \"leitungsen.de\",\n \"likes-pie.com\",\n \"likescandy.com\",\n \"merseine.nu\",\n \"mine.nu\",\n \"misconfused.org\",\n \"mypets.ws\",\n \"myphotos.cc\",\n \"neat-url.com\",\n \"office-on-the.net\",\n \"on-the-web.tv\",\n \"podzone.net\",\n \"podzone.org\",\n \"readmyblog.org\",\n \"saves-the-whales.com\",\n \"scrapper-site.net\",\n \"scrapping.cc\",\n \"selfip.biz\",\n \"selfip.com\",\n \"selfip.info\",\n \"selfip.net\",\n \"selfip.org\",\n \"sells-for-less.com\",\n \"sells-for-u.com\",\n \"sells-it.net\",\n \"sellsyourhome.org\",\n \"servebbs.com\",\n \"servebbs.net\",\n \"servebbs.org\",\n \"serveftp.net\",\n \"serveftp.org\",\n \"servegame.org\",\n \"shacknet.nu\",\n \"simple-url.com\",\n \"space-to-rent.com\",\n \"stuff-4-sale.org\",\n \"stuff-4-sale.us\",\n \"teaches-yoga.com\",\n \"thruhere.net\",\n \"traeumtgerade.de\",\n \"webhop.biz\",\n \"webhop.info\",\n \"webhop.net\",\n \"webhop.org\",\n \"worse-than.tv\",\n \"writesthisblog.com\",\n \"ddnss.de\",\n \"dyn.ddnss.de\",\n \"dyndns.ddnss.de\",\n \"dyndns1.de\",\n \"dyn-ip24.de\",\n \"home-webserver.de\",\n \"dyn.home-webserver.de\",\n \"myhome-server.de\",\n \"ddnss.org\",\n \"definima.net\",\n \"definima.io\",\n \"ondigitalocean.app\",\n \"*.digitaloceanspaces.com\",\n \"bci.dnstrace.pro\",\n \"ddnsfree.com\",\n \"ddnsgeek.com\",\n \"giize.com\",\n \"gleeze.com\",\n \"kozow.com\",\n \"loseyourip.com\",\n \"ooguy.com\",\n \"theworkpc.com\",\n \"casacam.net\",\n \"dynu.net\",\n \"accesscam.org\",\n \"camdvr.org\",\n \"freeddns.org\",\n \"mywire.org\",\n \"webredirect.org\",\n \"myddns.rocks\",\n \"blogsite.xyz\",\n \"dynv6.net\",\n \"e4.cz\",\n \"eero.online\",\n \"eero-stage.online\",\n \"elementor.cloud\",\n \"elementor.cool\",\n \"en-root.fr\",\n \"mytuleap.com\",\n \"tuleap-partners.com\",\n \"encr.app\",\n \"encoreapi.com\",\n \"onred.one\",\n \"staging.onred.one\",\n \"eu.encoway.cloud\",\n \"eu.org\",\n \"al.eu.org\",\n \"asso.eu.org\",\n \"at.eu.org\",\n \"au.eu.org\",\n \"be.eu.org\",\n \"bg.eu.org\",\n \"ca.eu.org\",\n \"cd.eu.org\",\n \"ch.eu.org\",\n \"cn.eu.org\",\n \"cy.eu.org\",\n \"cz.eu.org\",\n \"de.eu.org\",\n \"dk.eu.org\",\n \"edu.eu.org\",\n \"ee.eu.org\",\n \"es.eu.org\",\n \"fi.eu.org\",\n \"fr.eu.org\",\n \"gr.eu.org\",\n \"hr.eu.org\",\n \"hu.eu.org\",\n \"ie.eu.org\",\n \"il.eu.org\",\n \"in.eu.org\",\n \"int.eu.org\",\n \"is.eu.org\",\n \"it.eu.org\",\n \"jp.eu.org\",\n \"kr.eu.org\",\n \"lt.eu.org\",\n \"lu.eu.org\",\n \"lv.eu.org\",\n \"mc.eu.org\",\n \"me.eu.org\",\n \"mk.eu.org\",\n \"mt.eu.org\",\n \"my.eu.org\",\n \"net.eu.org\",\n \"ng.eu.org\",\n \"nl.eu.org\",\n \"no.eu.org\",\n \"nz.eu.org\",\n \"paris.eu.org\",\n \"pl.eu.org\",\n \"pt.eu.org\",\n \"q-a.eu.org\",\n \"ro.eu.org\",\n \"ru.eu.org\",\n \"se.eu.org\",\n \"si.eu.org\",\n \"sk.eu.org\",\n \"tr.eu.org\",\n \"uk.eu.org\",\n \"us.eu.org\",\n \"eurodir.ru\",\n \"eu-1.evennode.com\",\n \"eu-2.evennode.com\",\n \"eu-3.evennode.com\",\n \"eu-4.evennode.com\",\n \"us-1.evennode.com\",\n \"us-2.evennode.com\",\n \"us-3.evennode.com\",\n \"us-4.evennode.com\",\n \"twmail.cc\",\n \"twmail.net\",\n \"twmail.org\",\n \"mymailer.com.tw\",\n \"url.tw\",\n \"onfabrica.com\",\n \"apps.fbsbx.com\",\n \"ru.net\",\n \"adygeya.ru\",\n \"bashkiria.ru\",\n \"bir.ru\",\n \"cbg.ru\",\n \"com.ru\",\n \"dagestan.ru\",\n \"grozny.ru\",\n \"kalmykia.ru\",\n \"kustanai.ru\",\n \"marine.ru\",\n \"mordovia.ru\",\n \"msk.ru\",\n \"mytis.ru\",\n \"nalchik.ru\",\n \"nov.ru\",\n \"pyatigorsk.ru\",\n \"spb.ru\",\n \"vladikavkaz.ru\",\n \"vladimir.ru\",\n \"abkhazia.su\",\n \"adygeya.su\",\n \"aktyubinsk.su\",\n \"arkhangelsk.su\",\n \"armenia.su\",\n \"ashgabad.su\",\n \"azerbaijan.su\",\n \"balashov.su\",\n \"bashkiria.su\",\n \"bryansk.su\",\n \"bukhara.su\",\n \"chimkent.su\",\n \"dagestan.su\",\n \"east-kazakhstan.su\",\n \"exnet.su\",\n \"georgia.su\",\n \"grozny.su\",\n \"ivanovo.su\",\n \"jambyl.su\",\n \"kalmykia.su\",\n \"kaluga.su\",\n \"karacol.su\",\n \"karaganda.su\",\n \"karelia.su\",\n \"khakassia.su\",\n \"krasnodar.su\",\n \"kurgan.su\",\n \"kustanai.su\",\n \"lenug.su\",\n \"mangyshlak.su\",\n \"mordovia.su\",\n \"msk.su\",\n \"murmansk.su\",\n \"nalchik.su\",\n \"navoi.su\",\n \"north-kazakhstan.su\",\n \"nov.su\",\n \"obninsk.su\",\n \"penza.su\",\n \"pokrovsk.su\",\n \"sochi.su\",\n \"spb.su\",\n \"tashkent.su\",\n \"termez.su\",\n \"togliatti.su\",\n \"troitsk.su\",\n \"tselinograd.su\",\n \"tula.su\",\n \"tuva.su\",\n \"vladikavkaz.su\",\n \"vladimir.su\",\n \"vologda.su\",\n \"channelsdvr.net\",\n \"u.channelsdvr.net\",\n \"edgecompute.app\",\n \"fastly-terrarium.com\",\n \"fastlylb.net\",\n \"map.fastlylb.net\",\n \"freetls.fastly.net\",\n \"map.fastly.net\",\n \"a.prod.fastly.net\",\n \"global.prod.fastly.net\",\n \"a.ssl.fastly.net\",\n \"b.ssl.fastly.net\",\n \"global.ssl.fastly.net\",\n \"fastvps-server.com\",\n \"fastvps.host\",\n \"myfast.host\",\n \"fastvps.site\",\n \"myfast.space\",\n \"fedorainfracloud.org\",\n \"fedorapeople.org\",\n \"cloud.fedoraproject.org\",\n \"app.os.fedoraproject.org\",\n \"app.os.stg.fedoraproject.org\",\n \"conn.uk\",\n \"copro.uk\",\n \"hosp.uk\",\n \"mydobiss.com\",\n \"fh-muenster.io\",\n \"filegear.me\",\n \"filegear-au.me\",\n \"filegear-de.me\",\n \"filegear-gb.me\",\n \"filegear-ie.me\",\n \"filegear-jp.me\",\n \"filegear-sg.me\",\n \"firebaseapp.com\",\n \"fireweb.app\",\n \"flap.id\",\n \"onflashdrive.app\",\n \"fldrv.com\",\n \"fly.dev\",\n \"edgeapp.net\",\n \"shw.io\",\n \"flynnhosting.net\",\n \"forgeblocks.com\",\n \"id.forgerock.io\",\n \"framer.app\",\n \"framercanvas.com\",\n \"*.frusky.de\",\n \"ravpage.co.il\",\n \"0e.vc\",\n \"freebox-os.com\",\n \"freeboxos.com\",\n \"fbx-os.fr\",\n \"fbxos.fr\",\n \"freebox-os.fr\",\n \"freeboxos.fr\",\n \"freedesktop.org\",\n \"freemyip.com\",\n \"wien.funkfeuer.at\",\n \"*.futurecms.at\",\n \"*.ex.futurecms.at\",\n \"*.in.futurecms.at\",\n \"futurehosting.at\",\n \"futuremailing.at\",\n \"*.ex.ortsinfo.at\",\n \"*.kunden.ortsinfo.at\",\n \"*.statics.cloud\",\n \"independent-commission.uk\",\n \"independent-inquest.uk\",\n \"independent-inquiry.uk\",\n \"independent-panel.uk\",\n \"independent-review.uk\",\n \"public-inquiry.uk\",\n \"royal-commission.uk\",\n \"campaign.gov.uk\",\n \"service.gov.uk\",\n \"api.gov.uk\",\n \"gehirn.ne.jp\",\n \"usercontent.jp\",\n \"gentapps.com\",\n \"gentlentapis.com\",\n \"lab.ms\",\n \"cdn-edges.net\",\n \"ghost.io\",\n \"gsj.bz\",\n \"githubusercontent.com\",\n \"githubpreview.dev\",\n \"github.io\",\n \"gitlab.io\",\n \"gitapp.si\",\n \"gitpage.si\",\n \"glitch.me\",\n \"nog.community\",\n \"co.ro\",\n \"shop.ro\",\n \"lolipop.io\",\n \"angry.jp\",\n \"babyblue.jp\",\n \"babymilk.jp\",\n \"backdrop.jp\",\n \"bambina.jp\",\n \"bitter.jp\",\n \"blush.jp\",\n \"boo.jp\",\n \"boy.jp\",\n \"boyfriend.jp\",\n \"but.jp\",\n \"candypop.jp\",\n \"capoo.jp\",\n \"catfood.jp\",\n \"cheap.jp\",\n \"chicappa.jp\",\n \"chillout.jp\",\n \"chips.jp\",\n \"chowder.jp\",\n \"chu.jp\",\n \"ciao.jp\",\n \"cocotte.jp\",\n \"coolblog.jp\",\n \"cranky.jp\",\n \"cutegirl.jp\",\n \"daa.jp\",\n \"deca.jp\",\n \"deci.jp\",\n \"digick.jp\",\n \"egoism.jp\",\n \"fakefur.jp\",\n \"fem.jp\",\n \"flier.jp\",\n \"floppy.jp\",\n \"fool.jp\",\n \"frenchkiss.jp\",\n \"girlfriend.jp\",\n \"girly.jp\",\n \"gloomy.jp\",\n \"gonna.jp\",\n \"greater.jp\",\n \"hacca.jp\",\n \"heavy.jp\",\n \"her.jp\",\n \"hiho.jp\",\n \"hippy.jp\",\n \"holy.jp\",\n \"hungry.jp\",\n \"icurus.jp\",\n \"itigo.jp\",\n \"jellybean.jp\",\n \"kikirara.jp\",\n \"kill.jp\",\n \"kilo.jp\",\n \"kuron.jp\",\n \"littlestar.jp\",\n \"lolipopmc.jp\",\n \"lolitapunk.jp\",\n \"lomo.jp\",\n \"lovepop.jp\",\n \"lovesick.jp\",\n \"main.jp\",\n \"mods.jp\",\n \"mond.jp\",\n \"mongolian.jp\",\n \"moo.jp\",\n \"namaste.jp\",\n \"nikita.jp\",\n \"nobushi.jp\",\n \"noor.jp\",\n \"oops.jp\",\n \"parallel.jp\",\n \"parasite.jp\",\n \"pecori.jp\",\n \"peewee.jp\",\n \"penne.jp\",\n \"pepper.jp\",\n \"perma.jp\",\n \"pigboat.jp\",\n \"pinoko.jp\",\n \"punyu.jp\",\n \"pupu.jp\",\n \"pussycat.jp\",\n \"pya.jp\",\n \"raindrop.jp\",\n \"readymade.jp\",\n \"sadist.jp\",\n \"schoolbus.jp\",\n \"secret.jp\",\n \"staba.jp\",\n \"stripper.jp\",\n \"sub.jp\",\n \"sunnyday.jp\",\n \"thick.jp\",\n \"tonkotsu.jp\",\n \"under.jp\",\n \"upper.jp\",\n \"velvet.jp\",\n \"verse.jp\",\n \"versus.jp\",\n \"vivian.jp\",\n \"watson.jp\",\n \"weblike.jp\",\n \"whitesnow.jp\",\n \"zombie.jp\",\n \"heteml.net\",\n \"cloudapps.digital\",\n \"london.cloudapps.digital\",\n \"pymnt.uk\",\n \"homeoffice.gov.uk\",\n \"ro.im\",\n \"goip.de\",\n \"run.app\",\n \"a.run.app\",\n \"web.app\",\n \"*.0emm.com\",\n \"appspot.com\",\n \"*.r.appspot.com\",\n \"codespot.com\",\n \"googleapis.com\",\n \"googlecode.com\",\n \"pagespeedmobilizer.com\",\n \"publishproxy.com\",\n \"withgoogle.com\",\n \"withyoutube.com\",\n \"*.gateway.dev\",\n \"cloud.goog\",\n \"translate.goog\",\n \"*.usercontent.goog\",\n \"cloudfunctions.net\",\n \"blogspot.ae\",\n \"blogspot.al\",\n \"blogspot.am\",\n \"blogspot.ba\",\n \"blogspot.be\",\n \"blogspot.bg\",\n \"blogspot.bj\",\n \"blogspot.ca\",\n \"blogspot.cf\",\n \"blogspot.ch\",\n \"blogspot.cl\",\n \"blogspot.co.at\",\n \"blogspot.co.id\",\n \"blogspot.co.il\",\n \"blogspot.co.ke\",\n \"blogspot.co.nz\",\n \"blogspot.co.uk\",\n \"blogspot.co.za\",\n \"blogspot.com\",\n \"blogspot.com.ar\",\n \"blogspot.com.au\",\n \"blogspot.com.br\",\n \"blogspot.com.by\",\n \"blogspot.com.co\",\n \"blogspot.com.cy\",\n \"blogspot.com.ee\",\n \"blogspot.com.eg\",\n \"blogspot.com.es\",\n \"blogspot.com.mt\",\n \"blogspot.com.ng\",\n \"blogspot.com.tr\",\n \"blogspot.com.uy\",\n \"blogspot.cv\",\n \"blogspot.cz\",\n \"blogspot.de\",\n \"blogspot.dk\",\n \"blogspot.fi\",\n \"blogspot.fr\",\n \"blogspot.gr\",\n \"blogspot.hk\",\n \"blogspot.hr\",\n \"blogspot.hu\",\n \"blogspot.ie\",\n \"blogspot.in\",\n \"blogspot.is\",\n \"blogspot.it\",\n \"blogspot.jp\",\n \"blogspot.kr\",\n \"blogspot.li\",\n \"blogspot.lt\",\n \"blogspot.lu\",\n \"blogspot.md\",\n \"blogspot.mk\",\n \"blogspot.mr\",\n \"blogspot.mx\",\n \"blogspot.my\",\n \"blogspot.nl\",\n \"blogspot.no\",\n \"blogspot.pe\",\n \"blogspot.pt\",\n \"blogspot.qa\",\n \"blogspot.re\",\n \"blogspot.ro\",\n \"blogspot.rs\",\n \"blogspot.ru\",\n \"blogspot.se\",\n \"blogspot.sg\",\n \"blogspot.si\",\n \"blogspot.sk\",\n \"blogspot.sn\",\n \"blogspot.td\",\n \"blogspot.tw\",\n \"blogspot.ug\",\n \"blogspot.vn\",\n \"goupile.fr\",\n \"gov.nl\",\n \"awsmppl.com\",\n \"g\\xFCnstigbestellen.de\",\n \"g\\xFCnstigliefern.de\",\n \"fin.ci\",\n \"free.hr\",\n \"caa.li\",\n \"ua.rs\",\n \"conf.se\",\n \"hs.zone\",\n \"hs.run\",\n \"hashbang.sh\",\n \"hasura.app\",\n \"hasura-app.io\",\n \"pages.it.hs-heilbronn.de\",\n \"hepforge.org\",\n \"herokuapp.com\",\n \"herokussl.com\",\n \"ravendb.cloud\",\n \"myravendb.com\",\n \"ravendb.community\",\n \"ravendb.me\",\n \"development.run\",\n \"ravendb.run\",\n \"homesklep.pl\",\n \"secaas.hk\",\n \"hoplix.shop\",\n \"orx.biz\",\n \"biz.gl\",\n \"col.ng\",\n \"firm.ng\",\n \"gen.ng\",\n \"ltd.ng\",\n \"ngo.ng\",\n \"edu.scot\",\n \"sch.so\",\n \"hostyhosting.io\",\n \"h\\xE4kkinen.fi\",\n \"*.moonscale.io\",\n \"moonscale.net\",\n \"iki.fi\",\n \"ibxos.it\",\n \"iliadboxos.it\",\n \"impertrixcdn.com\",\n \"impertrix.com\",\n \"smushcdn.com\",\n \"wphostedmail.com\",\n \"wpmucdn.com\",\n \"tempurl.host\",\n \"wpmudev.host\",\n \"dyn-berlin.de\",\n \"in-berlin.de\",\n \"in-brb.de\",\n \"in-butter.de\",\n \"in-dsl.de\",\n \"in-dsl.net\",\n \"in-dsl.org\",\n \"in-vpn.de\",\n \"in-vpn.net\",\n \"in-vpn.org\",\n \"biz.at\",\n \"info.at\",\n \"info.cx\",\n \"ac.leg.br\",\n \"al.leg.br\",\n \"am.leg.br\",\n \"ap.leg.br\",\n \"ba.leg.br\",\n \"ce.leg.br\",\n \"df.leg.br\",\n \"es.leg.br\",\n \"go.leg.br\",\n \"ma.leg.br\",\n \"mg.leg.br\",\n \"ms.leg.br\",\n \"mt.leg.br\",\n \"pa.leg.br\",\n \"pb.leg.br\",\n \"pe.leg.br\",\n \"pi.leg.br\",\n \"pr.leg.br\",\n \"rj.leg.br\",\n \"rn.leg.br\",\n \"ro.leg.br\",\n \"rr.leg.br\",\n \"rs.leg.br\",\n \"sc.leg.br\",\n \"se.leg.br\",\n \"sp.leg.br\",\n \"to.leg.br\",\n \"pixolino.com\",\n \"na4u.ru\",\n \"iopsys.se\",\n \"ipifony.net\",\n \"iservschule.de\",\n \"mein-iserv.de\",\n \"schulplattform.de\",\n \"schulserver.de\",\n \"test-iserv.de\",\n \"iserv.dev\",\n \"iobb.net\",\n \"mel.cloudlets.com.au\",\n \"cloud.interhostsolutions.be\",\n \"users.scale.virtualcloud.com.br\",\n \"mycloud.by\",\n \"alp1.ae.flow.ch\",\n \"appengine.flow.ch\",\n \"es-1.axarnet.cloud\",\n \"diadem.cloud\",\n \"vip.jelastic.cloud\",\n \"jele.cloud\",\n \"it1.eur.aruba.jenv-aruba.cloud\",\n \"it1.jenv-aruba.cloud\",\n \"keliweb.cloud\",\n \"cs.keliweb.cloud\",\n \"oxa.cloud\",\n \"tn.oxa.cloud\",\n \"uk.oxa.cloud\",\n \"primetel.cloud\",\n \"uk.primetel.cloud\",\n \"ca.reclaim.cloud\",\n \"uk.reclaim.cloud\",\n \"us.reclaim.cloud\",\n \"ch.trendhosting.cloud\",\n \"de.trendhosting.cloud\",\n \"jele.club\",\n \"amscompute.com\",\n \"clicketcloud.com\",\n \"dopaas.com\",\n \"hidora.com\",\n \"paas.hosted-by-previder.com\",\n \"rag-cloud.hosteur.com\",\n \"rag-cloud-ch.hosteur.com\",\n \"jcloud.ik-server.com\",\n \"jcloud-ver-jpc.ik-server.com\",\n \"demo.jelastic.com\",\n \"kilatiron.com\",\n \"paas.massivegrid.com\",\n \"jed.wafaicloud.com\",\n \"lon.wafaicloud.com\",\n \"ryd.wafaicloud.com\",\n \"j.scaleforce.com.cy\",\n \"jelastic.dogado.eu\",\n \"fi.cloudplatform.fi\",\n \"demo.datacenter.fi\",\n \"paas.datacenter.fi\",\n \"jele.host\",\n \"mircloud.host\",\n \"paas.beebyte.io\",\n \"sekd1.beebyteapp.io\",\n \"jele.io\",\n \"cloud-fr1.unispace.io\",\n \"jc.neen.it\",\n \"cloud.jelastic.open.tim.it\",\n \"jcloud.kz\",\n \"upaas.kazteleport.kz\",\n \"cloudjiffy.net\",\n \"fra1-de.cloudjiffy.net\",\n \"west1-us.cloudjiffy.net\",\n \"jls-sto1.elastx.net\",\n \"jls-sto2.elastx.net\",\n \"jls-sto3.elastx.net\",\n \"faststacks.net\",\n \"fr-1.paas.massivegrid.net\",\n \"lon-1.paas.massivegrid.net\",\n \"lon-2.paas.massivegrid.net\",\n \"ny-1.paas.massivegrid.net\",\n \"ny-2.paas.massivegrid.net\",\n \"sg-1.paas.massivegrid.net\",\n \"jelastic.saveincloud.net\",\n \"nordeste-idc.saveincloud.net\",\n \"j.scaleforce.net\",\n \"jelastic.tsukaeru.net\",\n \"sdscloud.pl\",\n \"unicloud.pl\",\n \"mircloud.ru\",\n \"jelastic.regruhosting.ru\",\n \"enscaled.sg\",\n \"jele.site\",\n \"jelastic.team\",\n \"orangecloud.tn\",\n \"j.layershift.co.uk\",\n \"phx.enscaled.us\",\n \"mircloud.us\",\n \"myjino.ru\",\n \"*.hosting.myjino.ru\",\n \"*.landing.myjino.ru\",\n \"*.spectrum.myjino.ru\",\n \"*.vps.myjino.ru\",\n \"jotelulu.cloud\",\n \"*.triton.zone\",\n \"*.cns.joyent.com\",\n \"js.org\",\n \"kaas.gg\",\n \"khplay.nl\",\n \"ktistory.com\",\n \"kapsi.fi\",\n \"keymachine.de\",\n \"kinghost.net\",\n \"uni5.net\",\n \"knightpoint.systems\",\n \"koobin.events\",\n \"oya.to\",\n \"kuleuven.cloud\",\n \"ezproxy.kuleuven.be\",\n \"co.krd\",\n \"edu.krd\",\n \"krellian.net\",\n \"webthings.io\",\n \"git-repos.de\",\n \"lcube-server.de\",\n \"svn-repos.de\",\n \"leadpages.co\",\n \"lpages.co\",\n \"lpusercontent.com\",\n \"lelux.site\",\n \"co.business\",\n \"co.education\",\n \"co.events\",\n \"co.financial\",\n \"co.network\",\n \"co.place\",\n \"co.technology\",\n \"app.lmpm.com\",\n \"linkyard.cloud\",\n \"linkyard-cloud.ch\",\n \"members.linode.com\",\n \"*.nodebalancer.linode.com\",\n \"*.linodeobjects.com\",\n \"ip.linodeusercontent.com\",\n \"we.bs\",\n \"*.user.localcert.dev\",\n \"localzone.xyz\",\n \"loginline.app\",\n \"loginline.dev\",\n \"loginline.io\",\n \"loginline.services\",\n \"loginline.site\",\n \"servers.run\",\n \"lohmus.me\",\n \"krasnik.pl\",\n \"leczna.pl\",\n \"lubartow.pl\",\n \"lublin.pl\",\n \"poniatowa.pl\",\n \"swidnik.pl\",\n \"glug.org.uk\",\n \"lug.org.uk\",\n \"lugs.org.uk\",\n \"barsy.bg\",\n \"barsy.co.uk\",\n \"barsyonline.co.uk\",\n \"barsycenter.com\",\n \"barsyonline.com\",\n \"barsy.club\",\n \"barsy.de\",\n \"barsy.eu\",\n \"barsy.in\",\n \"barsy.info\",\n \"barsy.io\",\n \"barsy.me\",\n \"barsy.menu\",\n \"barsy.mobi\",\n \"barsy.net\",\n \"barsy.online\",\n \"barsy.org\",\n \"barsy.pro\",\n \"barsy.pub\",\n \"barsy.ro\",\n \"barsy.shop\",\n \"barsy.site\",\n \"barsy.support\",\n \"barsy.uk\",\n \"*.magentosite.cloud\",\n \"mayfirst.info\",\n \"mayfirst.org\",\n \"hb.cldmail.ru\",\n \"cn.vu\",\n \"mazeplay.com\",\n \"mcpe.me\",\n \"mcdir.me\",\n \"mcdir.ru\",\n \"mcpre.ru\",\n \"vps.mcdir.ru\",\n \"mediatech.by\",\n \"mediatech.dev\",\n \"hra.health\",\n \"miniserver.com\",\n \"memset.net\",\n \"messerli.app\",\n \"*.cloud.metacentrum.cz\",\n \"custom.metacentrum.cz\",\n \"flt.cloud.muni.cz\",\n \"usr.cloud.muni.cz\",\n \"meteorapp.com\",\n \"eu.meteorapp.com\",\n \"co.pl\",\n \"*.azurecontainer.io\",\n \"azurewebsites.net\",\n \"azure-mobile.net\",\n \"cloudapp.net\",\n \"azurestaticapps.net\",\n \"1.azurestaticapps.net\",\n \"centralus.azurestaticapps.net\",\n \"eastasia.azurestaticapps.net\",\n \"eastus2.azurestaticapps.net\",\n \"westeurope.azurestaticapps.net\",\n \"westus2.azurestaticapps.net\",\n \"csx.cc\",\n \"mintere.site\",\n \"forte.id\",\n \"mozilla-iot.org\",\n \"bmoattachments.org\",\n \"net.ru\",\n \"org.ru\",\n \"pp.ru\",\n \"hostedpi.com\",\n \"customer.mythic-beasts.com\",\n \"caracal.mythic-beasts.com\",\n \"fentiger.mythic-beasts.com\",\n \"lynx.mythic-beasts.com\",\n \"ocelot.mythic-beasts.com\",\n \"oncilla.mythic-beasts.com\",\n \"onza.mythic-beasts.com\",\n \"sphinx.mythic-beasts.com\",\n \"vs.mythic-beasts.com\",\n \"x.mythic-beasts.com\",\n \"yali.mythic-beasts.com\",\n \"cust.retrosnub.co.uk\",\n \"ui.nabu.casa\",\n \"pony.club\",\n \"of.fashion\",\n \"in.london\",\n \"of.london\",\n \"from.marketing\",\n \"with.marketing\",\n \"for.men\",\n \"repair.men\",\n \"and.mom\",\n \"for.mom\",\n \"for.one\",\n \"under.one\",\n \"for.sale\",\n \"that.win\",\n \"from.work\",\n \"to.work\",\n \"cloud.nospamproxy.com\",\n \"netlify.app\",\n \"4u.com\",\n \"ngrok.io\",\n \"nh-serv.co.uk\",\n \"nfshost.com\",\n \"*.developer.app\",\n \"noop.app\",\n \"*.northflank.app\",\n \"*.build.run\",\n \"*.code.run\",\n \"*.database.run\",\n \"*.migration.run\",\n \"noticeable.news\",\n \"dnsking.ch\",\n \"mypi.co\",\n \"n4t.co\",\n \"001www.com\",\n \"ddnslive.com\",\n \"myiphost.com\",\n \"forumz.info\",\n \"16-b.it\",\n \"32-b.it\",\n \"64-b.it\",\n \"soundcast.me\",\n \"tcp4.me\",\n \"dnsup.net\",\n \"hicam.net\",\n \"now-dns.net\",\n \"ownip.net\",\n \"vpndns.net\",\n \"dynserv.org\",\n \"now-dns.org\",\n \"x443.pw\",\n \"now-dns.top\",\n \"ntdll.top\",\n \"freeddns.us\",\n \"crafting.xyz\",\n \"zapto.xyz\",\n \"nsupdate.info\",\n \"nerdpol.ovh\",\n \"blogsyte.com\",\n \"brasilia.me\",\n \"cable-modem.org\",\n \"ciscofreak.com\",\n \"collegefan.org\",\n \"couchpotatofries.org\",\n \"damnserver.com\",\n \"ddns.me\",\n \"ditchyourip.com\",\n \"dnsfor.me\",\n \"dnsiskinky.com\",\n \"dvrcam.info\",\n \"dynns.com\",\n \"eating-organic.net\",\n \"fantasyleague.cc\",\n \"geekgalaxy.com\",\n \"golffan.us\",\n \"health-carereform.com\",\n \"homesecuritymac.com\",\n \"homesecuritypc.com\",\n \"hopto.me\",\n \"ilovecollege.info\",\n \"loginto.me\",\n \"mlbfan.org\",\n \"mmafan.biz\",\n \"myactivedirectory.com\",\n \"mydissent.net\",\n \"myeffect.net\",\n \"mymediapc.net\",\n \"mypsx.net\",\n \"mysecuritycamera.com\",\n \"mysecuritycamera.net\",\n \"mysecuritycamera.org\",\n \"net-freaks.com\",\n \"nflfan.org\",\n \"nhlfan.net\",\n \"no-ip.ca\",\n \"no-ip.co.uk\",\n \"no-ip.net\",\n \"noip.us\",\n \"onthewifi.com\",\n \"pgafan.net\",\n \"point2this.com\",\n \"pointto.us\",\n \"privatizehealthinsurance.net\",\n \"quicksytes.com\",\n \"read-books.org\",\n \"securitytactics.com\",\n \"serveexchange.com\",\n \"servehumour.com\",\n \"servep2p.com\",\n \"servesarcasm.com\",\n \"stufftoread.com\",\n \"ufcfan.org\",\n \"unusualperson.com\",\n \"workisboring.com\",\n \"3utilities.com\",\n \"bounceme.net\",\n \"ddns.net\",\n \"ddnsking.com\",\n \"gotdns.ch\",\n \"hopto.org\",\n \"myftp.biz\",\n \"myftp.org\",\n \"myvnc.com\",\n \"no-ip.biz\",\n \"no-ip.info\",\n \"no-ip.org\",\n \"noip.me\",\n \"redirectme.net\",\n \"servebeer.com\",\n \"serveblog.net\",\n \"servecounterstrike.com\",\n \"serveftp.com\",\n \"servegame.com\",\n \"servehalflife.com\",\n \"servehttp.com\",\n \"serveirc.com\",\n \"serveminecraft.net\",\n \"servemp3.com\",\n \"servepics.com\",\n \"servequake.com\",\n \"sytes.net\",\n \"webhop.me\",\n \"zapto.org\",\n \"stage.nodeart.io\",\n \"pcloud.host\",\n \"nyc.mn\",\n \"static.observableusercontent.com\",\n \"cya.gg\",\n \"omg.lol\",\n \"cloudycluster.net\",\n \"omniwe.site\",\n \"service.one\",\n \"nid.io\",\n \"opensocial.site\",\n \"opencraft.hosting\",\n \"orsites.com\",\n \"operaunite.com\",\n \"tech.orange\",\n \"authgear-staging.com\",\n \"authgearapps.com\",\n \"skygearapp.com\",\n \"outsystemscloud.com\",\n \"*.webpaas.ovh.net\",\n \"*.hosting.ovh.net\",\n \"ownprovider.com\",\n \"own.pm\",\n \"*.owo.codes\",\n \"ox.rs\",\n \"oy.lc\",\n \"pgfog.com\",\n \"pagefrontapp.com\",\n \"pagexl.com\",\n \"*.paywhirl.com\",\n \"bar0.net\",\n \"bar1.net\",\n \"bar2.net\",\n \"rdv.to\",\n \"art.pl\",\n \"gliwice.pl\",\n \"krakow.pl\",\n \"poznan.pl\",\n \"wroc.pl\",\n \"zakopane.pl\",\n \"pantheonsite.io\",\n \"gotpantheon.com\",\n \"mypep.link\",\n \"perspecta.cloud\",\n \"lk3.ru\",\n \"on-web.fr\",\n \"bc.platform.sh\",\n \"ent.platform.sh\",\n \"eu.platform.sh\",\n \"us.platform.sh\",\n \"*.platformsh.site\",\n \"*.tst.site\",\n \"platter-app.com\",\n \"platter-app.dev\",\n \"platterp.us\",\n \"pdns.page\",\n \"plesk.page\",\n \"pleskns.com\",\n \"dyn53.io\",\n \"onporter.run\",\n \"co.bn\",\n \"postman-echo.com\",\n \"pstmn.io\",\n \"mock.pstmn.io\",\n \"httpbin.org\",\n \"prequalifyme.today\",\n \"xen.prgmr.com\",\n \"priv.at\",\n \"prvcy.page\",\n \"*.dweb.link\",\n \"protonet.io\",\n \"chirurgiens-dentistes-en-france.fr\",\n \"byen.site\",\n \"pubtls.org\",\n \"pythonanywhere.com\",\n \"eu.pythonanywhere.com\",\n \"qoto.io\",\n \"qualifioapp.com\",\n \"qbuser.com\",\n \"cloudsite.builders\",\n \"instances.spawn.cc\",\n \"instantcloud.cn\",\n \"ras.ru\",\n \"qa2.com\",\n \"qcx.io\",\n \"*.sys.qcx.io\",\n \"dev-myqnapcloud.com\",\n \"alpha-myqnapcloud.com\",\n \"myqnapcloud.com\",\n \"*.quipelements.com\",\n \"vapor.cloud\",\n \"vaporcloud.io\",\n \"rackmaze.com\",\n \"rackmaze.net\",\n \"g.vbrplsbx.io\",\n \"*.on-k3s.io\",\n \"*.on-rancher.cloud\",\n \"*.on-rio.io\",\n \"readthedocs.io\",\n \"rhcloud.com\",\n \"app.render.com\",\n \"onrender.com\",\n \"repl.co\",\n \"id.repl.co\",\n \"repl.run\",\n \"resindevice.io\",\n \"devices.resinstaging.io\",\n \"hzc.io\",\n \"wellbeingzone.eu\",\n \"wellbeingzone.co.uk\",\n \"adimo.co.uk\",\n \"itcouldbewor.se\",\n \"git-pages.rit.edu\",\n \"rocky.page\",\n \"\\u0431\\u0438\\u0437.\\u0440\\u0443\\u0441\",\n \"\\u043A\\u043E\\u043C.\\u0440\\u0443\\u0441\",\n \"\\u043A\\u0440\\u044B\\u043C.\\u0440\\u0443\\u0441\",\n \"\\u043C\\u0438\\u0440.\\u0440\\u0443\\u0441\",\n \"\\u043C\\u0441\\u043A.\\u0440\\u0443\\u0441\",\n \"\\u043E\\u0440\\u0433.\\u0440\\u0443\\u0441\",\n \"\\u0441\\u0430\\u043C\\u0430\\u0440\\u0430.\\u0440\\u0443\\u0441\",\n \"\\u0441\\u043E\\u0447\\u0438.\\u0440\\u0443\\u0441\",\n \"\\u0441\\u043F\\u0431.\\u0440\\u0443\\u0441\",\n \"\\u044F.\\u0440\\u0443\\u0441\",\n \"*.builder.code.com\",\n \"*.dev-builder.code.com\",\n \"*.stg-builder.code.com\",\n \"sandcats.io\",\n \"logoip.de\",\n \"logoip.com\",\n \"fr-par-1.baremetal.scw.cloud\",\n \"fr-par-2.baremetal.scw.cloud\",\n \"nl-ams-1.baremetal.scw.cloud\",\n \"fnc.fr-par.scw.cloud\",\n \"functions.fnc.fr-par.scw.cloud\",\n \"k8s.fr-par.scw.cloud\",\n \"nodes.k8s.fr-par.scw.cloud\",\n \"s3.fr-par.scw.cloud\",\n \"s3-website.fr-par.scw.cloud\",\n \"whm.fr-par.scw.cloud\",\n \"priv.instances.scw.cloud\",\n \"pub.instances.scw.cloud\",\n \"k8s.scw.cloud\",\n \"k8s.nl-ams.scw.cloud\",\n \"nodes.k8s.nl-ams.scw.cloud\",\n \"s3.nl-ams.scw.cloud\",\n \"s3-website.nl-ams.scw.cloud\",\n \"whm.nl-ams.scw.cloud\",\n \"k8s.pl-waw.scw.cloud\",\n \"nodes.k8s.pl-waw.scw.cloud\",\n \"s3.pl-waw.scw.cloud\",\n \"s3-website.pl-waw.scw.cloud\",\n \"scalebook.scw.cloud\",\n \"smartlabeling.scw.cloud\",\n \"dedibox.fr\",\n \"schokokeks.net\",\n \"gov.scot\",\n \"service.gov.scot\",\n \"scrysec.com\",\n \"firewall-gateway.com\",\n \"firewall-gateway.de\",\n \"my-gateway.de\",\n \"my-router.de\",\n \"spdns.de\",\n \"spdns.eu\",\n \"firewall-gateway.net\",\n \"my-firewall.org\",\n \"myfirewall.org\",\n \"spdns.org\",\n \"seidat.net\",\n \"sellfy.store\",\n \"senseering.net\",\n \"minisite.ms\",\n \"magnet.page\",\n \"biz.ua\",\n \"co.ua\",\n \"pp.ua\",\n \"shiftcrypto.dev\",\n \"shiftcrypto.io\",\n \"shiftedit.io\",\n \"myshopblocks.com\",\n \"myshopify.com\",\n \"shopitsite.com\",\n \"shopware.store\",\n \"mo-siemens.io\",\n \"1kapp.com\",\n \"appchizi.com\",\n \"applinzi.com\",\n \"sinaapp.com\",\n \"vipsinaapp.com\",\n \"siteleaf.net\",\n \"bounty-full.com\",\n \"alpha.bounty-full.com\",\n \"beta.bounty-full.com\",\n \"small-web.org\",\n \"vp4.me\",\n \"try-snowplow.com\",\n \"srht.site\",\n \"stackhero-network.com\",\n \"musician.io\",\n \"novecore.site\",\n \"static.land\",\n \"dev.static.land\",\n \"sites.static.land\",\n \"storebase.store\",\n \"vps-host.net\",\n \"atl.jelastic.vps-host.net\",\n \"njs.jelastic.vps-host.net\",\n \"ric.jelastic.vps-host.net\",\n \"playstation-cloud.com\",\n \"apps.lair.io\",\n \"*.stolos.io\",\n \"spacekit.io\",\n \"customer.speedpartner.de\",\n \"myspreadshop.at\",\n \"myspreadshop.com.au\",\n \"myspreadshop.be\",\n \"myspreadshop.ca\",\n \"myspreadshop.ch\",\n \"myspreadshop.com\",\n \"myspreadshop.de\",\n \"myspreadshop.dk\",\n \"myspreadshop.es\",\n \"myspreadshop.fi\",\n \"myspreadshop.fr\",\n \"myspreadshop.ie\",\n \"myspreadshop.it\",\n \"myspreadshop.net\",\n \"myspreadshop.nl\",\n \"myspreadshop.no\",\n \"myspreadshop.pl\",\n \"myspreadshop.se\",\n \"myspreadshop.co.uk\",\n \"api.stdlib.com\",\n \"storj.farm\",\n \"utwente.io\",\n \"soc.srcf.net\",\n \"user.srcf.net\",\n \"temp-dns.com\",\n \"supabase.co\",\n \"supabase.in\",\n \"supabase.net\",\n \"su.paba.se\",\n \"*.s5y.io\",\n \"*.sensiosite.cloud\",\n \"syncloud.it\",\n \"dscloud.biz\",\n \"direct.quickconnect.cn\",\n \"dsmynas.com\",\n \"familyds.com\",\n \"diskstation.me\",\n \"dscloud.me\",\n \"i234.me\",\n \"myds.me\",\n \"synology.me\",\n \"dscloud.mobi\",\n \"dsmynas.net\",\n \"familyds.net\",\n \"dsmynas.org\",\n \"familyds.org\",\n \"vpnplus.to\",\n \"direct.quickconnect.to\",\n \"tabitorder.co.il\",\n \"taifun-dns.de\",\n \"beta.tailscale.net\",\n \"ts.net\",\n \"gda.pl\",\n \"gdansk.pl\",\n \"gdynia.pl\",\n \"med.pl\",\n \"sopot.pl\",\n \"site.tb-hosting.com\",\n \"edugit.io\",\n \"s3.teckids.org\",\n \"telebit.app\",\n \"telebit.io\",\n \"*.telebit.xyz\",\n \"gwiddle.co.uk\",\n \"*.firenet.ch\",\n \"*.svc.firenet.ch\",\n \"reservd.com\",\n \"thingdustdata.com\",\n \"cust.dev.thingdust.io\",\n \"cust.disrec.thingdust.io\",\n \"cust.prod.thingdust.io\",\n \"cust.testing.thingdust.io\",\n \"reservd.dev.thingdust.io\",\n \"reservd.disrec.thingdust.io\",\n \"reservd.testing.thingdust.io\",\n \"tickets.io\",\n \"arvo.network\",\n \"azimuth.network\",\n \"tlon.network\",\n \"torproject.net\",\n \"pages.torproject.net\",\n \"bloxcms.com\",\n \"townnews-staging.com\",\n \"tbits.me\",\n \"12hp.at\",\n \"2ix.at\",\n \"4lima.at\",\n \"lima-city.at\",\n \"12hp.ch\",\n \"2ix.ch\",\n \"4lima.ch\",\n \"lima-city.ch\",\n \"trafficplex.cloud\",\n \"de.cool\",\n \"12hp.de\",\n \"2ix.de\",\n \"4lima.de\",\n \"lima-city.de\",\n \"1337.pictures\",\n \"clan.rip\",\n \"lima-city.rocks\",\n \"webspace.rocks\",\n \"lima.zone\",\n \"*.transurl.be\",\n \"*.transurl.eu\",\n \"*.transurl.nl\",\n \"site.transip.me\",\n \"tuxfamily.org\",\n \"dd-dns.de\",\n \"diskstation.eu\",\n \"diskstation.org\",\n \"dray-dns.de\",\n \"draydns.de\",\n \"dyn-vpn.de\",\n \"dynvpn.de\",\n \"mein-vigor.de\",\n \"my-vigor.de\",\n \"my-wan.de\",\n \"syno-ds.de\",\n \"synology-diskstation.de\",\n \"synology-ds.de\",\n \"typedream.app\",\n \"pro.typeform.com\",\n \"uber.space\",\n \"*.uberspace.de\",\n \"hk.com\",\n \"hk.org\",\n \"ltd.hk\",\n \"inc.hk\",\n \"name.pm\",\n \"sch.tf\",\n \"biz.wf\",\n \"sch.wf\",\n \"org.yt\",\n \"virtualuser.de\",\n \"virtual-user.de\",\n \"upli.io\",\n \"urown.cloud\",\n \"dnsupdate.info\",\n \"lib.de.us\",\n \"2038.io\",\n \"vercel.app\",\n \"vercel.dev\",\n \"now.sh\",\n \"router.management\",\n \"v-info.info\",\n \"voorloper.cloud\",\n \"neko.am\",\n \"nyaa.am\",\n \"be.ax\",\n \"cat.ax\",\n \"es.ax\",\n \"eu.ax\",\n \"gg.ax\",\n \"mc.ax\",\n \"us.ax\",\n \"xy.ax\",\n \"nl.ci\",\n \"xx.gl\",\n \"app.gp\",\n \"blog.gt\",\n \"de.gt\",\n \"to.gt\",\n \"be.gy\",\n \"cc.hn\",\n \"blog.kg\",\n \"io.kg\",\n \"jp.kg\",\n \"tv.kg\",\n \"uk.kg\",\n \"us.kg\",\n \"de.ls\",\n \"at.md\",\n \"de.md\",\n \"jp.md\",\n \"to.md\",\n \"indie.porn\",\n \"vxl.sh\",\n \"ch.tc\",\n \"me.tc\",\n \"we.tc\",\n \"nyan.to\",\n \"at.vg\",\n \"blog.vu\",\n \"dev.vu\",\n \"me.vu\",\n \"v.ua\",\n \"*.vultrobjects.com\",\n \"wafflecell.com\",\n \"*.webhare.dev\",\n \"reserve-online.net\",\n \"reserve-online.com\",\n \"bookonline.app\",\n \"hotelwithflight.com\",\n \"wedeploy.io\",\n \"wedeploy.me\",\n \"wedeploy.sh\",\n \"remotewd.com\",\n \"pages.wiardweb.com\",\n \"wmflabs.org\",\n \"toolforge.org\",\n \"wmcloud.org\",\n \"panel.gg\",\n \"daemon.panel.gg\",\n \"messwithdns.com\",\n \"woltlab-demo.com\",\n \"myforum.community\",\n \"community-pro.de\",\n \"diskussionsbereich.de\",\n \"community-pro.net\",\n \"meinforum.net\",\n \"affinitylottery.org.uk\",\n \"raffleentry.org.uk\",\n \"weeklylottery.org.uk\",\n \"wpenginepowered.com\",\n \"js.wpenginepowered.com\",\n \"wixsite.com\",\n \"editorx.io\",\n \"half.host\",\n \"xnbay.com\",\n \"u2.xnbay.com\",\n \"u2-local.xnbay.com\",\n \"cistron.nl\",\n \"demon.nl\",\n \"xs4all.space\",\n \"yandexcloud.net\",\n \"storage.yandexcloud.net\",\n \"website.yandexcloud.net\",\n \"official.academy\",\n \"yolasite.com\",\n \"ybo.faith\",\n \"yombo.me\",\n \"homelink.one\",\n \"ybo.party\",\n \"ybo.review\",\n \"ybo.science\",\n \"ybo.trade\",\n \"ynh.fr\",\n \"nohost.me\",\n \"noho.st\",\n \"za.net\",\n \"za.org\",\n \"bss.design\",\n \"basicserver.io\",\n \"virtualserver.io\",\n \"enterprisecloud.nu\"\n ];\n }\n});\n\n// node_modules/psl/index.js\nvar require_psl = __commonJS({\n \"node_modules/psl/index.js\"(exports) {\n \"use strict\";\n var Punycode = require_punycode();\n var internals = {};\n internals.rules = require_rules().map(function(rule) {\n return {\n rule,\n suffix: rule.replace(/^(\\*\\.|\\!)/, \"\"),\n punySuffix: -1,\n wildcard: rule.charAt(0) === \"*\",\n exception: rule.charAt(0) === \"!\"\n };\n });\n internals.endsWith = function(str, suffix) {\n return str.indexOf(suffix, str.length - suffix.length) !== -1;\n };\n internals.findRule = function(domain) {\n var punyDomain = Punycode.toASCII(domain);\n return internals.rules.reduce(function(memo, rule) {\n if (rule.punySuffix === -1) {\n rule.punySuffix = Punycode.toASCII(rule.suffix);\n }\n if (!internals.endsWith(punyDomain, \".\" + rule.punySuffix) && punyDomain !== rule.punySuffix) {\n return memo;\n }\n return rule;\n }, null);\n };\n exports.errorCodes = {\n DOMAIN_TOO_SHORT: \"Domain name too short.\",\n DOMAIN_TOO_LONG: \"Domain name too long. It should be no more than 255 chars.\",\n LABEL_STARTS_WITH_DASH: \"Domain name label can not start with a dash.\",\n LABEL_ENDS_WITH_DASH: \"Domain name label can not end with a dash.\",\n LABEL_TOO_LONG: \"Domain name label should be at most 63 chars long.\",\n LABEL_TOO_SHORT: \"Domain name label should be at least 1 character long.\",\n LABEL_INVALID_CHARS: \"Domain name label can only contain alphanumeric characters or dashes.\"\n };\n internals.validate = function(input) {\n var ascii = Punycode.toASCII(input);\n if (ascii.length < 1) {\n return \"DOMAIN_TOO_SHORT\";\n }\n if (ascii.length > 255) {\n return \"DOMAIN_TOO_LONG\";\n }\n var labels = ascii.split(\".\");\n var label;\n for (var i = 0; i < labels.length; ++i) {\n label = labels[i];\n if (!label.length) {\n return \"LABEL_TOO_SHORT\";\n }\n if (label.length > 63) {\n return \"LABEL_TOO_LONG\";\n }\n if (label.charAt(0) === \"-\") {\n return \"LABEL_STARTS_WITH_DASH\";\n }\n if (label.charAt(label.length - 1) === \"-\") {\n return \"LABEL_ENDS_WITH_DASH\";\n }\n if (!/^[a-z0-9\\-]+$/.test(label)) {\n return \"LABEL_INVALID_CHARS\";\n }\n }\n };\n exports.parse = function(input) {\n if (typeof input !== \"string\") {\n throw new TypeError(\"Domain name must be a string.\");\n }\n var domain = input.slice(0).toLowerCase();\n if (domain.charAt(domain.length - 1) === \".\") {\n domain = domain.slice(0, domain.length - 1);\n }\n var error = internals.validate(domain);\n if (error) {\n return {\n input,\n error: {\n message: exports.errorCodes[error],\n code: error\n }\n };\n }\n var parsed = {\n input,\n tld: null,\n sld: null,\n domain: null,\n subdomain: null,\n listed: false\n };\n var domainParts = domain.split(\".\");\n if (domainParts[domainParts.length - 1] === \"local\") {\n return parsed;\n }\n var handlePunycode = function() {\n if (!/xn--/.test(domain)) {\n return parsed;\n }\n if (parsed.domain) {\n parsed.domain = Punycode.toASCII(parsed.domain);\n }\n if (parsed.subdomain) {\n parsed.subdomain = Punycode.toASCII(parsed.subdomain);\n }\n return parsed;\n };\n var rule = internals.findRule(domain);\n if (!rule) {\n if (domainParts.length < 2) {\n return parsed;\n }\n parsed.tld = domainParts.pop();\n parsed.sld = domainParts.pop();\n parsed.domain = [parsed.sld, parsed.tld].join(\".\");\n if (domainParts.length) {\n parsed.subdomain = domainParts.pop();\n }\n return handlePunycode();\n }\n parsed.listed = true;\n var tldParts = rule.suffix.split(\".\");\n var privateParts = domainParts.slice(0, domainParts.length - tldParts.length);\n if (rule.exception) {\n privateParts.push(tldParts.shift());\n }\n parsed.tld = tldParts.join(\".\");\n if (!privateParts.length) {\n return handlePunycode();\n }\n if (rule.wildcard) {\n tldParts.unshift(privateParts.pop());\n parsed.tld = tldParts.join(\".\");\n }\n if (!privateParts.length) {\n return handlePunycode();\n }\n parsed.sld = privateParts.pop();\n parsed.domain = [parsed.sld, parsed.tld].join(\".\");\n if (privateParts.length) {\n parsed.subdomain = privateParts.join(\".\");\n }\n return handlePunycode();\n };\n exports.get = function(domain) {\n if (!domain) {\n return null;\n }\n return exports.parse(domain).domain || null;\n };\n exports.isValid = function(domain) {\n var parsed = exports.parse(domain);\n return Boolean(parsed.domain && parsed.listed);\n };\n }\n});\n\n// node_modules/tough-cookie/lib/pubsuffix-psl.js\nvar require_pubsuffix_psl = __commonJS({\n \"node_modules/tough-cookie/lib/pubsuffix-psl.js\"(exports) {\n \"use strict\";\n var psl = require_psl();\n var SPECIAL_USE_DOMAINS = [\n \"local\",\n \"example\",\n \"invalid\",\n \"localhost\",\n \"test\"\n ];\n var SPECIAL_TREATMENT_DOMAINS = [\"localhost\", \"invalid\"];\n function getPublicSuffix(domain, options = {}) {\n const domainParts = domain.split(\".\");\n const topLevelDomain = domainParts[domainParts.length - 1];\n const allowSpecialUseDomain = !!options.allowSpecialUseDomain;\n const ignoreError = !!options.ignoreError;\n if (allowSpecialUseDomain && SPECIAL_USE_DOMAINS.includes(topLevelDomain)) {\n if (domainParts.length > 1) {\n const secondLevelDomain = domainParts[domainParts.length - 2];\n return `${secondLevelDomain}.${topLevelDomain}`;\n } else if (SPECIAL_TREATMENT_DOMAINS.includes(topLevelDomain)) {\n return `${topLevelDomain}`;\n }\n }\n if (!ignoreError && SPECIAL_USE_DOMAINS.includes(topLevelDomain)) {\n throw new Error(\n `Cookie has domain set to the public suffix \"${topLevelDomain}\" which is a special use domain. To allow this, configure your CookieJar with {allowSpecialUseDomain:true, rejectPublicSuffixes: false}.`\n );\n }\n return psl.get(domain);\n }\n exports.getPublicSuffix = getPublicSuffix;\n }\n});\n\n// node_modules/tough-cookie/lib/store.js\nvar require_store = __commonJS({\n \"node_modules/tough-cookie/lib/store.js\"(exports) {\n \"use strict\";\n var Store = class {\n constructor() {\n this.synchronous = false;\n }\n findCookie(domain, path, key, cb) {\n throw new Error(\"findCookie is not implemented\");\n }\n findCookies(domain, path, allowSpecialUseDomain, cb) {\n throw new Error(\"findCookies is not implemented\");\n }\n putCookie(cookie, cb) {\n throw new Error(\"putCookie is not implemented\");\n }\n updateCookie(oldCookie, newCookie, cb) {\n throw new Error(\"updateCookie is not implemented\");\n }\n removeCookie(domain, path, key, cb) {\n throw new Error(\"removeCookie is not implemented\");\n }\n removeCookies(domain, path, cb) {\n throw new Error(\"removeCookies is not implemented\");\n }\n removeAllCookies(cb) {\n throw new Error(\"removeAllCookies is not implemented\");\n }\n getAllCookies(cb) {\n throw new Error(\n \"getAllCookies is not implemented (therefore jar cannot be serialized)\"\n );\n }\n };\n exports.Store = Store;\n }\n});\n\n// node_modules/universalify/index.js\nvar require_universalify = __commonJS({\n \"node_modules/universalify/index.js\"(exports) {\n \"use strict\";\n exports.fromCallback = function(fn) {\n return Object.defineProperty(function() {\n if (typeof arguments[arguments.length - 1] === \"function\") fn.apply(this, arguments);\n else {\n return new Promise((resolve, reject) => {\n arguments[arguments.length] = (err, res) => {\n if (err) return reject(err);\n resolve(res);\n };\n arguments.length++;\n fn.apply(this, arguments);\n });\n }\n }, \"name\", { value: fn.name });\n };\n exports.fromPromise = function(fn) {\n return Object.defineProperty(function() {\n const cb = arguments[arguments.length - 1];\n if (typeof cb !== \"function\") return fn.apply(this, arguments);\n else {\n delete arguments[arguments.length - 1];\n arguments.length--;\n fn.apply(this, arguments).then((r) => cb(null, r), cb);\n }\n }, \"name\", { value: fn.name });\n };\n }\n});\n\n// node_modules/tough-cookie/lib/permuteDomain.js\nvar require_permuteDomain = __commonJS({\n \"node_modules/tough-cookie/lib/permuteDomain.js\"(exports) {\n \"use strict\";\n var pubsuffix = require_pubsuffix_psl();\n function permuteDomain(domain, allowSpecialUseDomain) {\n const pubSuf = pubsuffix.getPublicSuffix(domain, {\n allowSpecialUseDomain\n });\n if (!pubSuf) {\n return null;\n }\n if (pubSuf == domain) {\n return [domain];\n }\n if (domain.slice(-1) == \".\") {\n domain = domain.slice(0, -1);\n }\n const prefix = domain.slice(0, -(pubSuf.length + 1));\n const parts = prefix.split(\".\").reverse();\n let cur = pubSuf;\n const permutations = [cur];\n while (parts.length) {\n cur = `${parts.shift()}.${cur}`;\n permutations.push(cur);\n }\n return permutations;\n }\n exports.permuteDomain = permuteDomain;\n }\n});\n\n// node_modules/tough-cookie/lib/pathMatch.js\nvar require_pathMatch = __commonJS({\n \"node_modules/tough-cookie/lib/pathMatch.js\"(exports) {\n \"use strict\";\n function pathMatch(reqPath, cookiePath) {\n if (cookiePath === reqPath) {\n return true;\n }\n const idx = reqPath.indexOf(cookiePath);\n if (idx === 0) {\n if (cookiePath.substr(-1) === \"/\") {\n return true;\n }\n if (reqPath.substr(cookiePath.length, 1) === \"/\") {\n return true;\n }\n }\n return false;\n }\n exports.pathMatch = pathMatch;\n }\n});\n\n// node_modules/tough-cookie/lib/utilHelper.js\nvar require_utilHelper = __commonJS({\n \"node_modules/tough-cookie/lib/utilHelper.js\"(exports) {\n function requireUtil() {\n try {\n return __require(\"util\");\n } catch (e) {\n return null;\n }\n }\n function lookupCustomInspectSymbol() {\n return Symbol.for(\"nodejs.util.inspect.custom\");\n }\n function tryReadingCustomSymbolFromUtilInspect(options) {\n const _requireUtil = options.requireUtil || requireUtil;\n const util = _requireUtil();\n return util ? util.inspect.custom : null;\n }\n exports.getUtilInspect = function getUtilInspect(fallback, options = {}) {\n const _requireUtil = options.requireUtil || requireUtil;\n const util = _requireUtil();\n return function inspect(value, showHidden, depth) {\n return util ? util.inspect(value, showHidden, depth) : fallback(value);\n };\n };\n exports.getCustomInspectSymbol = function getCustomInspectSymbol(options = {}) {\n const _lookupCustomInspectSymbol = options.lookupCustomInspectSymbol || lookupCustomInspectSymbol;\n return _lookupCustomInspectSymbol() || tryReadingCustomSymbolFromUtilInspect(options);\n };\n }\n});\n\n// node_modules/tough-cookie/lib/memstore.js\nvar require_memstore = __commonJS({\n \"node_modules/tough-cookie/lib/memstore.js\"(exports) {\n \"use strict\";\n var { fromCallback } = require_universalify();\n var Store = require_store().Store;\n var permuteDomain = require_permuteDomain().permuteDomain;\n var pathMatch = require_pathMatch().pathMatch;\n var { getCustomInspectSymbol, getUtilInspect } = require_utilHelper();\n var MemoryCookieStore = class extends Store {\n constructor() {\n super();\n this.synchronous = true;\n this.idx = /* @__PURE__ */ Object.create(null);\n const customInspectSymbol = getCustomInspectSymbol();\n if (customInspectSymbol) {\n this[customInspectSymbol] = this.inspect;\n }\n }\n inspect() {\n const util = { inspect: getUtilInspect(inspectFallback) };\n return `{ idx: ${util.inspect(this.idx, false, 2)} }`;\n }\n findCookie(domain, path, key, cb) {\n if (!this.idx[domain]) {\n return cb(null, void 0);\n }\n if (!this.idx[domain][path]) {\n return cb(null, void 0);\n }\n return cb(null, this.idx[domain][path][key] || null);\n }\n findCookies(domain, path, allowSpecialUseDomain, cb) {\n const results = [];\n if (typeof allowSpecialUseDomain === \"function\") {\n cb = allowSpecialUseDomain;\n allowSpecialUseDomain = true;\n }\n if (!domain) {\n return cb(null, []);\n }\n let pathMatcher;\n if (!path) {\n pathMatcher = function matchAll(domainIndex) {\n for (const curPath in domainIndex) {\n const pathIndex = domainIndex[curPath];\n for (const key in pathIndex) {\n results.push(pathIndex[key]);\n }\n }\n };\n } else {\n pathMatcher = function matchRFC(domainIndex) {\n Object.keys(domainIndex).forEach((cookiePath) => {\n if (pathMatch(path, cookiePath)) {\n const pathIndex = domainIndex[cookiePath];\n for (const key in pathIndex) {\n results.push(pathIndex[key]);\n }\n }\n });\n };\n }\n const domains = permuteDomain(domain, allowSpecialUseDomain) || [domain];\n const idx = this.idx;\n domains.forEach((curDomain) => {\n const domainIndex = idx[curDomain];\n if (!domainIndex) {\n return;\n }\n pathMatcher(domainIndex);\n });\n cb(null, results);\n }\n putCookie(cookie, cb) {\n if (!this.idx[cookie.domain]) {\n this.idx[cookie.domain] = /* @__PURE__ */ Object.create(null);\n }\n if (!this.idx[cookie.domain][cookie.path]) {\n this.idx[cookie.domain][cookie.path] = /* @__PURE__ */ Object.create(null);\n }\n this.idx[cookie.domain][cookie.path][cookie.key] = cookie;\n cb(null);\n }\n updateCookie(oldCookie, newCookie, cb) {\n this.putCookie(newCookie, cb);\n }\n removeCookie(domain, path, key, cb) {\n if (this.idx[domain] && this.idx[domain][path] && this.idx[domain][path][key]) {\n delete this.idx[domain][path][key];\n }\n cb(null);\n }\n removeCookies(domain, path, cb) {\n if (this.idx[domain]) {\n if (path) {\n delete this.idx[domain][path];\n } else {\n delete this.idx[domain];\n }\n }\n return cb(null);\n }\n removeAllCookies(cb) {\n this.idx = /* @__PURE__ */ Object.create(null);\n return cb(null);\n }\n getAllCookies(cb) {\n const cookies = [];\n const idx = this.idx;\n const domains = Object.keys(idx);\n domains.forEach((domain) => {\n const paths = Object.keys(idx[domain]);\n paths.forEach((path) => {\n const keys = Object.keys(idx[domain][path]);\n keys.forEach((key) => {\n if (key !== null) {\n cookies.push(idx[domain][path][key]);\n }\n });\n });\n });\n cookies.sort((a, b) => {\n return (a.creationIndex || 0) - (b.creationIndex || 0);\n });\n cb(null, cookies);\n }\n };\n [\n \"findCookie\",\n \"findCookies\",\n \"putCookie\",\n \"updateCookie\",\n \"removeCookie\",\n \"removeCookies\",\n \"removeAllCookies\",\n \"getAllCookies\"\n ].forEach((name) => {\n MemoryCookieStore.prototype[name] = fromCallback(\n MemoryCookieStore.prototype[name]\n );\n });\n exports.MemoryCookieStore = MemoryCookieStore;\n function inspectFallback(val) {\n const domains = Object.keys(val);\n if (domains.length === 0) {\n return \"[Object: null prototype] {}\";\n }\n let result = \"[Object: null prototype] {\\n\";\n Object.keys(val).forEach((domain, i) => {\n result += formatDomain(domain, val[domain]);\n if (i < domains.length - 1) {\n result += \",\";\n }\n result += \"\\n\";\n });\n result += \"}\";\n return result;\n }\n function formatDomain(domainName, domainValue) {\n const indent = \" \";\n let result = `${indent}'${domainName}': [Object: null prototype] {\n`;\n Object.keys(domainValue).forEach((path, i, paths) => {\n result += formatPath(path, domainValue[path]);\n if (i < paths.length - 1) {\n result += \",\";\n }\n result += \"\\n\";\n });\n result += `${indent}}`;\n return result;\n }\n function formatPath(pathName, pathValue) {\n const indent = \" \";\n let result = `${indent}'${pathName}': [Object: null prototype] {\n`;\n Object.keys(pathValue).forEach((cookieName, i, cookieNames) => {\n const cookie = pathValue[cookieName];\n result += ` ${cookieName}: ${cookie.inspect()}`;\n if (i < cookieNames.length - 1) {\n result += \",\";\n }\n result += \"\\n\";\n });\n result += `${indent}}`;\n return result;\n }\n exports.inspectFallback = inspectFallback;\n }\n});\n\n// node_modules/tough-cookie/lib/validators.js\nvar require_validators = __commonJS({\n \"node_modules/tough-cookie/lib/validators.js\"(exports) {\n \"use strict\";\n var toString = Object.prototype.toString;\n function isFunction(data) {\n return typeof data === \"function\";\n }\n function isNonEmptyString(data) {\n return isString(data) && data !== \"\";\n }\n function isDate(data) {\n return isInstanceStrict(data, Date) && isInteger(data.getTime());\n }\n function isEmptyString(data) {\n return data === \"\" || data instanceof String && data.toString() === \"\";\n }\n function isString(data) {\n return typeof data === \"string\" || data instanceof String;\n }\n function isObject(data) {\n return toString.call(data) === \"[object Object]\";\n }\n function isInstanceStrict(data, prototype) {\n try {\n return data instanceof prototype;\n } catch (error) {\n return false;\n }\n }\n function isUrlStringOrObject(data) {\n return isNonEmptyString(data) || isObject(data) && \"hostname\" in data && \"pathname\" in data && \"protocol\" in data || isInstanceStrict(data, URL);\n }\n function isInteger(data) {\n return typeof data === \"number\" && data % 1 === 0;\n }\n function validate(bool, cb, options) {\n if (!isFunction(cb)) {\n options = cb;\n cb = null;\n }\n if (!isObject(options)) options = { Error: \"Failed Check\" };\n if (!bool) {\n if (cb) {\n cb(new ParameterError(options));\n } else {\n throw new ParameterError(options);\n }\n }\n }\n var ParameterError = class extends Error {\n constructor(...params) {\n super(...params);\n }\n };\n exports.ParameterError = ParameterError;\n exports.isFunction = isFunction;\n exports.isNonEmptyString = isNonEmptyString;\n exports.isDate = isDate;\n exports.isEmptyString = isEmptyString;\n exports.isString = isString;\n exports.isObject = isObject;\n exports.isUrlStringOrObject = isUrlStringOrObject;\n exports.validate = validate;\n }\n});\n\n// node_modules/tough-cookie/lib/version.js\nvar require_version = __commonJS({\n \"node_modules/tough-cookie/lib/version.js\"(exports, module) {\n module.exports = \"4.1.4\";\n }\n});\n\n// node_modules/tough-cookie/lib/cookie.js\nvar require_cookie = __commonJS({\n \"node_modules/tough-cookie/lib/cookie.js\"(exports) {\n \"use strict\";\n var punycode = require_punycode();\n var urlParse = require_url_parse();\n var pubsuffix = require_pubsuffix_psl();\n var Store = require_store().Store;\n var MemoryCookieStore = require_memstore().MemoryCookieStore;\n var pathMatch = require_pathMatch().pathMatch;\n var validators = require_validators();\n var VERSION = require_version();\n var { fromCallback } = require_universalify();\n var { getCustomInspectSymbol } = require_utilHelper();\n var COOKIE_OCTETS = /^[\\x21\\x23-\\x2B\\x2D-\\x3A\\x3C-\\x5B\\x5D-\\x7E]+$/;\n var CONTROL_CHARS = /[\\x00-\\x1F]/;\n var TERMINATORS = [\"\\n\", \"\\r\", \"\\0\"];\n var PATH_VALUE = /[\\x20-\\x3A\\x3C-\\x7E]+/;\n var DATE_DELIM = /[\\x09\\x20-\\x2F\\x3B-\\x40\\x5B-\\x60\\x7B-\\x7E]/;\n var MONTH_TO_NUM = {\n jan: 0,\n feb: 1,\n mar: 2,\n apr: 3,\n may: 4,\n jun: 5,\n jul: 6,\n aug: 7,\n sep: 8,\n oct: 9,\n nov: 10,\n dec: 11\n };\n var MAX_TIME = 2147483647e3;\n var MIN_TIME = 0;\n var SAME_SITE_CONTEXT_VAL_ERR = 'Invalid sameSiteContext option for getCookies(); expected one of \"strict\", \"lax\", or \"none\"';\n function checkSameSiteContext(value) {\n validators.validate(validators.isNonEmptyString(value), value);\n const context = String(value).toLowerCase();\n if (context === \"none\" || context === \"lax\" || context === \"strict\") {\n return context;\n } else {\n return null;\n }\n }\n var PrefixSecurityEnum = Object.freeze({\n SILENT: \"silent\",\n STRICT: \"strict\",\n DISABLED: \"unsafe-disabled\"\n });\n var IP_REGEX_LOWERCASE = /(?:^(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}$)|(?:^(?:(?:[a-f\\d]{1,4}:){7}(?:[a-f\\d]{1,4}|:)|(?:[a-f\\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|:[a-f\\d]{1,4}|:)|(?:[a-f\\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-f\\d]{1,4}){1,2}|:)|(?:[a-f\\d]{1,4}:){4}(?:(?::[a-f\\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-f\\d]{1,4}){1,3}|:)|(?:[a-f\\d]{1,4}:){3}(?:(?::[a-f\\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-f\\d]{1,4}){1,4}|:)|(?:[a-f\\d]{1,4}:){2}(?:(?::[a-f\\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-f\\d]{1,4}){1,5}|:)|(?:[a-f\\d]{1,4}:){1}(?:(?::[a-f\\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-f\\d]{1,4}){1,6}|:)|(?::(?:(?::[a-f\\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-f\\d]{1,4}){1,7}|:)))$)/;\n var IP_V6_REGEX = `\n\\\\[?(?:\n(?:[a-fA-F\\\\d]{1,4}:){7}(?:[a-fA-F\\\\d]{1,4}|:)|\n(?:[a-fA-F\\\\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}|:[a-fA-F\\\\d]{1,4}|:)|\n(?:[a-fA-F\\\\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}|(?::[a-fA-F\\\\d]{1,4}){1,2}|:)|\n(?:[a-fA-F\\\\d]{1,4}:){4}(?:(?::[a-fA-F\\\\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}|(?::[a-fA-F\\\\d]{1,4}){1,3}|:)|\n(?:[a-fA-F\\\\d]{1,4}:){3}(?:(?::[a-fA-F\\\\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}|(?::[a-fA-F\\\\d]{1,4}){1,4}|:)|\n(?:[a-fA-F\\\\d]{1,4}:){2}(?:(?::[a-fA-F\\\\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}|(?::[a-fA-F\\\\d]{1,4}){1,5}|:)|\n(?:[a-fA-F\\\\d]{1,4}:){1}(?:(?::[a-fA-F\\\\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}|(?::[a-fA-F\\\\d]{1,4}){1,6}|:)|\n(?::(?:(?::[a-fA-F\\\\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}|(?::[a-fA-F\\\\d]{1,4}){1,7}|:))\n)(?:%[0-9a-zA-Z]{1,})?\\\\]?\n`.replace(/\\s*\\/\\/.*$/gm, \"\").replace(/\\n/g, \"\").trim();\n var IP_V6_REGEX_OBJECT = new RegExp(`^${IP_V6_REGEX}$`);\n function parseDigits(token, minDigits, maxDigits, trailingOK) {\n let count = 0;\n while (count < token.length) {\n const c = token.charCodeAt(count);\n if (c <= 47 || c >= 58) {\n break;\n }\n count++;\n }\n if (count < minDigits || count > maxDigits) {\n return null;\n }\n if (!trailingOK && count != token.length) {\n return null;\n }\n return parseInt(token.substr(0, count), 10);\n }\n function parseTime(token) {\n const parts = token.split(\":\");\n const result = [0, 0, 0];\n if (parts.length !== 3) {\n return null;\n }\n for (let i = 0; i < 3; i++) {\n const trailingOK = i == 2;\n const num = parseDigits(parts[i], 1, 2, trailingOK);\n if (num === null) {\n return null;\n }\n result[i] = num;\n }\n return result;\n }\n function parseMonth(token) {\n token = String(token).substr(0, 3).toLowerCase();\n const num = MONTH_TO_NUM[token];\n return num >= 0 ? num : null;\n }\n function parseDate(str) {\n if (!str) {\n return;\n }\n const tokens = str.split(DATE_DELIM);\n if (!tokens) {\n return;\n }\n let hour = null;\n let minute = null;\n let second = null;\n let dayOfMonth = null;\n let month = null;\n let year = null;\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i].trim();\n if (!token.length) {\n continue;\n }\n let result;\n if (second === null) {\n result = parseTime(token);\n if (result) {\n hour = result[0];\n minute = result[1];\n second = result[2];\n continue;\n }\n }\n if (dayOfMonth === null) {\n result = parseDigits(token, 1, 2, true);\n if (result !== null) {\n dayOfMonth = result;\n continue;\n }\n }\n if (month === null) {\n result = parseMonth(token);\n if (result !== null) {\n month = result;\n continue;\n }\n }\n if (year === null) {\n result = parseDigits(token, 2, 4, true);\n if (result !== null) {\n year = result;\n if (year >= 70 && year <= 99) {\n year += 1900;\n } else if (year >= 0 && year <= 69) {\n year += 2e3;\n }\n }\n }\n }\n if (dayOfMonth === null || month === null || year === null || second === null || dayOfMonth < 1 || dayOfMonth > 31 || year < 1601 || hour > 23 || minute > 59 || second > 59) {\n return;\n }\n return new Date(Date.UTC(year, month, dayOfMonth, hour, minute, second));\n }\n function formatDate(date) {\n validators.validate(validators.isDate(date), date);\n return date.toUTCString();\n }\n function canonicalDomain(str) {\n if (str == null) {\n return null;\n }\n str = str.trim().replace(/^\\./, \"\");\n if (IP_V6_REGEX_OBJECT.test(str)) {\n str = str.replace(\"[\", \"\").replace(\"]\", \"\");\n }\n if (punycode && /[^\\u0001-\\u007f]/.test(str)) {\n str = punycode.toASCII(str);\n }\n return str.toLowerCase();\n }\n function domainMatch(str, domStr, canonicalize) {\n if (str == null || domStr == null) {\n return null;\n }\n if (canonicalize !== false) {\n str = canonicalDomain(str);\n domStr = canonicalDomain(domStr);\n }\n if (str == domStr) {\n return true;\n }\n const idx = str.lastIndexOf(domStr);\n if (idx <= 0) {\n return false;\n }\n if (str.length !== domStr.length + idx) {\n return false;\n }\n if (str.substr(idx - 1, 1) !== \".\") {\n return false;\n }\n if (IP_REGEX_LOWERCASE.test(str)) {\n return false;\n }\n return true;\n }\n function defaultPath(path) {\n if (!path || path.substr(0, 1) !== \"/\") {\n return \"/\";\n }\n if (path === \"/\") {\n return path;\n }\n const rightSlash = path.lastIndexOf(\"/\");\n if (rightSlash === 0) {\n return \"/\";\n }\n return path.slice(0, rightSlash);\n }\n function trimTerminator(str) {\n if (validators.isEmptyString(str)) return str;\n for (let t = 0; t < TERMINATORS.length; t++) {\n const terminatorIdx = str.indexOf(TERMINATORS[t]);\n if (terminatorIdx !== -1) {\n str = str.substr(0, terminatorIdx);\n }\n }\n return str;\n }\n function parseCookiePair(cookiePair, looseMode) {\n cookiePair = trimTerminator(cookiePair);\n validators.validate(validators.isString(cookiePair), cookiePair);\n let firstEq = cookiePair.indexOf(\"=\");\n if (looseMode) {\n if (firstEq === 0) {\n cookiePair = cookiePair.substr(1);\n firstEq = cookiePair.indexOf(\"=\");\n }\n } else {\n if (firstEq <= 0) {\n return;\n }\n }\n let cookieName, cookieValue;\n if (firstEq <= 0) {\n cookieName = \"\";\n cookieValue = cookiePair.trim();\n } else {\n cookieName = cookiePair.substr(0, firstEq).trim();\n cookieValue = cookiePair.substr(firstEq + 1).trim();\n }\n if (CONTROL_CHARS.test(cookieName) || CONTROL_CHARS.test(cookieValue)) {\n return;\n }\n const c = new Cookie();\n c.key = cookieName;\n c.value = cookieValue;\n return c;\n }\n function parse(str, options) {\n if (!options || typeof options !== \"object\") {\n options = {};\n }\n if (validators.isEmptyString(str) || !validators.isString(str)) {\n return null;\n }\n str = str.trim();\n const firstSemi = str.indexOf(\";\");\n const cookiePair = firstSemi === -1 ? str : str.substr(0, firstSemi);\n const c = parseCookiePair(cookiePair, !!options.loose);\n if (!c) {\n return;\n }\n if (firstSemi === -1) {\n return c;\n }\n const unparsed = str.slice(firstSemi + 1).trim();\n if (unparsed.length === 0) {\n return c;\n }\n const cookie_avs = unparsed.split(\";\");\n while (cookie_avs.length) {\n const av = cookie_avs.shift().trim();\n if (av.length === 0) {\n continue;\n }\n const av_sep = av.indexOf(\"=\");\n let av_key, av_value;\n if (av_sep === -1) {\n av_key = av;\n av_value = null;\n } else {\n av_key = av.substr(0, av_sep);\n av_value = av.substr(av_sep + 1);\n }\n av_key = av_key.trim().toLowerCase();\n if (av_value) {\n av_value = av_value.trim();\n }\n switch (av_key) {\n case \"expires\":\n if (av_value) {\n const exp = parseDate(av_value);\n if (exp) {\n c.expires = exp;\n }\n }\n break;\n case \"max-age\":\n if (av_value) {\n if (/^-?[0-9]+$/.test(av_value)) {\n const delta = parseInt(av_value, 10);\n c.setMaxAge(delta);\n }\n }\n break;\n case \"domain\":\n if (av_value) {\n const domain = av_value.trim().replace(/^\\./, \"\");\n if (domain) {\n c.domain = domain.toLowerCase();\n }\n }\n break;\n case \"path\":\n c.path = av_value && av_value[0] === \"/\" ? av_value : null;\n break;\n case \"secure\":\n c.secure = true;\n break;\n case \"httponly\":\n c.httpOnly = true;\n break;\n case \"samesite\":\n const enforcement = av_value ? av_value.toLowerCase() : \"\";\n switch (enforcement) {\n case \"strict\":\n c.sameSite = \"strict\";\n break;\n case \"lax\":\n c.sameSite = \"lax\";\n break;\n case \"none\":\n c.sameSite = \"none\";\n break;\n default:\n c.sameSite = void 0;\n break;\n }\n break;\n default:\n c.extensions = c.extensions || [];\n c.extensions.push(av);\n break;\n }\n }\n return c;\n }\n function isSecurePrefixConditionMet(cookie) {\n validators.validate(validators.isObject(cookie), cookie);\n return !cookie.key.startsWith(\"__Secure-\") || cookie.secure;\n }\n function isHostPrefixConditionMet(cookie) {\n validators.validate(validators.isObject(cookie));\n return !cookie.key.startsWith(\"__Host-\") || cookie.secure && cookie.hostOnly && cookie.path != null && cookie.path === \"/\";\n }\n function jsonParse(str) {\n let obj;\n try {\n obj = JSON.parse(str);\n } catch (e) {\n return e;\n }\n return obj;\n }\n function fromJSON(str) {\n if (!str || validators.isEmptyString(str)) {\n return null;\n }\n let obj;\n if (typeof str === \"string\") {\n obj = jsonParse(str);\n if (obj instanceof Error) {\n return null;\n }\n } else {\n obj = str;\n }\n const c = new Cookie();\n for (let i = 0; i < Cookie.serializableProperties.length; i++) {\n const prop = Cookie.serializableProperties[i];\n if (obj[prop] === void 0 || obj[prop] === cookieDefaults[prop]) {\n continue;\n }\n if (prop === \"expires\" || prop === \"creation\" || prop === \"lastAccessed\") {\n if (obj[prop] === null) {\n c[prop] = null;\n } else {\n c[prop] = obj[prop] == \"Infinity\" ? \"Infinity\" : new Date(obj[prop]);\n }\n } else {\n c[prop] = obj[prop];\n }\n }\n return c;\n }\n function cookieCompare(a, b) {\n validators.validate(validators.isObject(a), a);\n validators.validate(validators.isObject(b), b);\n let cmp = 0;\n const aPathLen = a.path ? a.path.length : 0;\n const bPathLen = b.path ? b.path.length : 0;\n cmp = bPathLen - aPathLen;\n if (cmp !== 0) {\n return cmp;\n }\n const aTime = a.creation ? a.creation.getTime() : MAX_TIME;\n const bTime = b.creation ? b.creation.getTime() : MAX_TIME;\n cmp = aTime - bTime;\n if (cmp !== 0) {\n return cmp;\n }\n cmp = a.creationIndex - b.creationIndex;\n return cmp;\n }\n function permutePath(path) {\n validators.validate(validators.isString(path));\n if (path === \"/\") {\n return [\"/\"];\n }\n const permutations = [path];\n while (path.length > 1) {\n const lindex = path.lastIndexOf(\"/\");\n if (lindex === 0) {\n break;\n }\n path = path.substr(0, lindex);\n permutations.push(path);\n }\n permutations.push(\"/\");\n return permutations;\n }\n function getCookieContext(url) {\n if (url instanceof Object) {\n return url;\n }\n try {\n url = decodeURI(url);\n } catch (err) {\n }\n return urlParse(url);\n }\n var cookieDefaults = {\n // the order in which the RFC has them:\n key: \"\",\n value: \"\",\n expires: \"Infinity\",\n maxAge: null,\n domain: null,\n path: null,\n secure: false,\n httpOnly: false,\n extensions: null,\n // set by the CookieJar:\n hostOnly: null,\n pathIsDefault: null,\n creation: null,\n lastAccessed: null,\n sameSite: void 0\n };\n var Cookie = class _Cookie {\n constructor(options = {}) {\n const customInspectSymbol = getCustomInspectSymbol();\n if (customInspectSymbol) {\n this[customInspectSymbol] = this.inspect;\n }\n Object.assign(this, cookieDefaults, options);\n this.creation = this.creation || /* @__PURE__ */ new Date();\n Object.defineProperty(this, \"creationIndex\", {\n configurable: false,\n enumerable: false,\n // important for assert.deepEqual checks\n writable: true,\n value: ++_Cookie.cookiesCreated\n });\n }\n inspect() {\n const now = Date.now();\n const hostOnly = this.hostOnly != null ? this.hostOnly : \"?\";\n const createAge = this.creation ? `${now - this.creation.getTime()}ms` : \"?\";\n const accessAge = this.lastAccessed ? `${now - this.lastAccessed.getTime()}ms` : \"?\";\n return `Cookie=\"${this.toString()}; hostOnly=${hostOnly}; aAge=${accessAge}; cAge=${createAge}\"`;\n }\n toJSON() {\n const obj = {};\n for (const prop of _Cookie.serializableProperties) {\n if (this[prop] === cookieDefaults[prop]) {\n continue;\n }\n if (prop === \"expires\" || prop === \"creation\" || prop === \"lastAccessed\") {\n if (this[prop] === null) {\n obj[prop] = null;\n } else {\n obj[prop] = this[prop] == \"Infinity\" ? \"Infinity\" : this[prop].toISOString();\n }\n } else if (prop === \"maxAge\") {\n if (this[prop] !== null) {\n obj[prop] = this[prop] == Infinity || this[prop] == -Infinity ? this[prop].toString() : this[prop];\n }\n } else {\n if (this[prop] !== cookieDefaults[prop]) {\n obj[prop] = this[prop];\n }\n }\n }\n return obj;\n }\n clone() {\n return fromJSON(this.toJSON());\n }\n validate() {\n if (!COOKIE_OCTETS.test(this.value)) {\n return false;\n }\n if (this.expires != Infinity && !(this.expires instanceof Date) && !parseDate(this.expires)) {\n return false;\n }\n if (this.maxAge != null && this.maxAge <= 0) {\n return false;\n }\n if (this.path != null && !PATH_VALUE.test(this.path)) {\n return false;\n }\n const cdomain = this.cdomain();\n if (cdomain) {\n if (cdomain.match(/\\.$/)) {\n return false;\n }\n const suffix = pubsuffix.getPublicSuffix(cdomain);\n if (suffix == null) {\n return false;\n }\n }\n return true;\n }\n setExpires(exp) {\n if (exp instanceof Date) {\n this.expires = exp;\n } else {\n this.expires = parseDate(exp) || \"Infinity\";\n }\n }\n setMaxAge(age) {\n if (age === Infinity || age === -Infinity) {\n this.maxAge = age.toString();\n } else {\n this.maxAge = age;\n }\n }\n cookieString() {\n let val = this.value;\n if (val == null) {\n val = \"\";\n }\n if (this.key === \"\") {\n return val;\n }\n return `${this.key}=${val}`;\n }\n // gives Set-Cookie header format\n toString() {\n let str = this.cookieString();\n if (this.expires != Infinity) {\n if (this.expires instanceof Date) {\n str += `; Expires=${formatDate(this.expires)}`;\n } else {\n str += `; Expires=${this.expires}`;\n }\n }\n if (this.maxAge != null && this.maxAge != Infinity) {\n str += `; Max-Age=${this.maxAge}`;\n }\n if (this.domain && !this.hostOnly) {\n str += `; Domain=${this.domain}`;\n }\n if (this.path) {\n str += `; Path=${this.path}`;\n }\n if (this.secure) {\n str += \"; Secure\";\n }\n if (this.httpOnly) {\n str += \"; HttpOnly\";\n }\n if (this.sameSite && this.sameSite !== \"none\") {\n const ssCanon = _Cookie.sameSiteCanonical[this.sameSite.toLowerCase()];\n str += `; SameSite=${ssCanon ? ssCanon : this.sameSite}`;\n }\n if (this.extensions) {\n this.extensions.forEach((ext) => {\n str += `; ${ext}`;\n });\n }\n return str;\n }\n // TTL() partially replaces the \"expiry-time\" parts of S5.3 step 3 (setCookie()\n // elsewhere)\n // S5.3 says to give the \"latest representable date\" for which we use Infinity\n // For \"expired\" we use 0\n TTL(now) {\n if (this.maxAge != null) {\n return this.maxAge <= 0 ? 0 : this.maxAge * 1e3;\n }\n let expires = this.expires;\n if (expires != Infinity) {\n if (!(expires instanceof Date)) {\n expires = parseDate(expires) || Infinity;\n }\n if (expires == Infinity) {\n return Infinity;\n }\n return expires.getTime() - (now || Date.now());\n }\n return Infinity;\n }\n // expiryTime() replaces the \"expiry-time\" parts of S5.3 step 3 (setCookie()\n // elsewhere)\n expiryTime(now) {\n if (this.maxAge != null) {\n const relativeTo = now || this.creation || /* @__PURE__ */ new Date();\n const age = this.maxAge <= 0 ? -Infinity : this.maxAge * 1e3;\n return relativeTo.getTime() + age;\n }\n if (this.expires == Infinity) {\n return Infinity;\n }\n return this.expires.getTime();\n }\n // expiryDate() replaces the \"expiry-time\" parts of S5.3 step 3 (setCookie()\n // elsewhere), except it returns a Date\n expiryDate(now) {\n const millisec = this.expiryTime(now);\n if (millisec == Infinity) {\n return new Date(MAX_TIME);\n } else if (millisec == -Infinity) {\n return new Date(MIN_TIME);\n } else {\n return new Date(millisec);\n }\n }\n // This replaces the \"persistent-flag\" parts of S5.3 step 3\n isPersistent() {\n return this.maxAge != null || this.expires != Infinity;\n }\n // Mostly S5.1.2 and S5.2.3:\n canonicalizedDomain() {\n if (this.domain == null) {\n return null;\n }\n return canonicalDomain(this.domain);\n }\n cdomain() {\n return this.canonicalizedDomain();\n }\n };\n Cookie.cookiesCreated = 0;\n Cookie.parse = parse;\n Cookie.fromJSON = fromJSON;\n Cookie.serializableProperties = Object.keys(cookieDefaults);\n Cookie.sameSiteLevel = {\n strict: 3,\n lax: 2,\n none: 1\n };\n Cookie.sameSiteCanonical = {\n strict: \"Strict\",\n lax: \"Lax\"\n };\n function getNormalizedPrefixSecurity(prefixSecurity) {\n if (prefixSecurity != null) {\n const normalizedPrefixSecurity = prefixSecurity.toLowerCase();\n switch (normalizedPrefixSecurity) {\n case PrefixSecurityEnum.STRICT:\n case PrefixSecurityEnum.SILENT:\n case PrefixSecurityEnum.DISABLED:\n return normalizedPrefixSecurity;\n }\n }\n return PrefixSecurityEnum.SILENT;\n }\n var CookieJar = class _CookieJar {\n constructor(store, options = { rejectPublicSuffixes: true }) {\n if (typeof options === \"boolean\") {\n options = { rejectPublicSuffixes: options };\n }\n validators.validate(validators.isObject(options), options);\n this.rejectPublicSuffixes = options.rejectPublicSuffixes;\n this.enableLooseMode = !!options.looseMode;\n this.allowSpecialUseDomain = typeof options.allowSpecialUseDomain === \"boolean\" ? options.allowSpecialUseDomain : true;\n this.store = store || new MemoryCookieStore();\n this.prefixSecurity = getNormalizedPrefixSecurity(options.prefixSecurity);\n this._cloneSync = syncWrap(\"clone\");\n this._importCookiesSync = syncWrap(\"_importCookies\");\n this.getCookiesSync = syncWrap(\"getCookies\");\n this.getCookieStringSync = syncWrap(\"getCookieString\");\n this.getSetCookieStringsSync = syncWrap(\"getSetCookieStrings\");\n this.removeAllCookiesSync = syncWrap(\"removeAllCookies\");\n this.setCookieSync = syncWrap(\"setCookie\");\n this.serializeSync = syncWrap(\"serialize\");\n }\n setCookie(cookie, url, options, cb) {\n validators.validate(validators.isUrlStringOrObject(url), cb, options);\n let err;\n if (validators.isFunction(url)) {\n cb = url;\n return cb(new Error(\"No URL was specified\"));\n }\n const context = getCookieContext(url);\n if (validators.isFunction(options)) {\n cb = options;\n options = {};\n }\n validators.validate(validators.isFunction(cb), cb);\n if (!validators.isNonEmptyString(cookie) && !validators.isObject(cookie) && cookie instanceof String && cookie.length == 0) {\n return cb(null);\n }\n const host = canonicalDomain(context.hostname);\n const loose = options.loose || this.enableLooseMode;\n let sameSiteContext = null;\n if (options.sameSiteContext) {\n sameSiteContext = checkSameSiteContext(options.sameSiteContext);\n if (!sameSiteContext) {\n return cb(new Error(SAME_SITE_CONTEXT_VAL_ERR));\n }\n }\n if (typeof cookie === \"string\" || cookie instanceof String) {\n cookie = Cookie.parse(cookie, { loose });\n if (!cookie) {\n err = new Error(\"Cookie failed to parse\");\n return cb(options.ignoreError ? null : err);\n }\n } else if (!(cookie instanceof Cookie)) {\n err = new Error(\n \"First argument to setCookie must be a Cookie object or string\"\n );\n return cb(options.ignoreError ? null : err);\n }\n const now = options.now || /* @__PURE__ */ new Date();\n if (this.rejectPublicSuffixes && cookie.domain) {\n const suffix = pubsuffix.getPublicSuffix(cookie.cdomain(), {\n allowSpecialUseDomain: this.allowSpecialUseDomain,\n ignoreError: options.ignoreError\n });\n if (suffix == null && !IP_V6_REGEX_OBJECT.test(cookie.domain)) {\n err = new Error(\"Cookie has domain set to a public suffix\");\n return cb(options.ignoreError ? null : err);\n }\n }\n if (cookie.domain) {\n if (!domainMatch(host, cookie.cdomain(), false)) {\n err = new Error(\n `Cookie not in this host's domain. Cookie:${cookie.cdomain()} Request:${host}`\n );\n return cb(options.ignoreError ? null : err);\n }\n if (cookie.hostOnly == null) {\n cookie.hostOnly = false;\n }\n } else {\n cookie.hostOnly = true;\n cookie.domain = host;\n }\n if (!cookie.path || cookie.path[0] !== \"/\") {\n cookie.path = defaultPath(context.pathname);\n cookie.pathIsDefault = true;\n }\n if (options.http === false && cookie.httpOnly) {\n err = new Error(\"Cookie is HttpOnly and this isn't an HTTP API\");\n return cb(options.ignoreError ? null : err);\n }\n if (cookie.sameSite !== \"none\" && cookie.sameSite !== void 0 && sameSiteContext) {\n if (sameSiteContext === \"none\") {\n err = new Error(\n \"Cookie is SameSite but this is a cross-origin request\"\n );\n return cb(options.ignoreError ? null : err);\n }\n }\n const ignoreErrorForPrefixSecurity = this.prefixSecurity === PrefixSecurityEnum.SILENT;\n const prefixSecurityDisabled = this.prefixSecurity === PrefixSecurityEnum.DISABLED;\n if (!prefixSecurityDisabled) {\n let errorFound = false;\n let errorMsg;\n if (!isSecurePrefixConditionMet(cookie)) {\n errorFound = true;\n errorMsg = \"Cookie has __Secure prefix but Secure attribute is not set\";\n } else if (!isHostPrefixConditionMet(cookie)) {\n errorFound = true;\n errorMsg = \"Cookie has __Host prefix but either Secure or HostOnly attribute is not set or Path is not '/'\";\n }\n if (errorFound) {\n return cb(\n options.ignoreError || ignoreErrorForPrefixSecurity ? null : new Error(errorMsg)\n );\n }\n }\n const store = this.store;\n if (!store.updateCookie) {\n store.updateCookie = function(oldCookie, newCookie, cb2) {\n this.putCookie(newCookie, cb2);\n };\n }\n function withCookie(err2, oldCookie) {\n if (err2) {\n return cb(err2);\n }\n const next = function(err3) {\n if (err3) {\n return cb(err3);\n } else {\n cb(null, cookie);\n }\n };\n if (oldCookie) {\n if (options.http === false && oldCookie.httpOnly) {\n err2 = new Error(\"old Cookie is HttpOnly and this isn't an HTTP API\");\n return cb(options.ignoreError ? null : err2);\n }\n cookie.creation = oldCookie.creation;\n cookie.creationIndex = oldCookie.creationIndex;\n cookie.lastAccessed = now;\n store.updateCookie(oldCookie, cookie, next);\n } else {\n cookie.creation = cookie.lastAccessed = now;\n store.putCookie(cookie, next);\n }\n }\n store.findCookie(cookie.domain, cookie.path, cookie.key, withCookie);\n }\n // RFC6365 S5.4\n getCookies(url, options, cb) {\n validators.validate(validators.isUrlStringOrObject(url), cb, url);\n const context = getCookieContext(url);\n if (validators.isFunction(options)) {\n cb = options;\n options = {};\n }\n validators.validate(validators.isObject(options), cb, options);\n validators.validate(validators.isFunction(cb), cb);\n const host = canonicalDomain(context.hostname);\n const path = context.pathname || \"/\";\n let secure = options.secure;\n if (secure == null && context.protocol && (context.protocol == \"https:\" || context.protocol == \"wss:\")) {\n secure = true;\n }\n let sameSiteLevel = 0;\n if (options.sameSiteContext) {\n const sameSiteContext = checkSameSiteContext(options.sameSiteContext);\n sameSiteLevel = Cookie.sameSiteLevel[sameSiteContext];\n if (!sameSiteLevel) {\n return cb(new Error(SAME_SITE_CONTEXT_VAL_ERR));\n }\n }\n let http = options.http;\n if (http == null) {\n http = true;\n }\n const now = options.now || Date.now();\n const expireCheck = options.expire !== false;\n const allPaths = !!options.allPaths;\n const store = this.store;\n function matchingCookie(c) {\n if (c.hostOnly) {\n if (c.domain != host) {\n return false;\n }\n } else {\n if (!domainMatch(host, c.domain, false)) {\n return false;\n }\n }\n if (!allPaths && !pathMatch(path, c.path)) {\n return false;\n }\n if (c.secure && !secure) {\n return false;\n }\n if (c.httpOnly && !http) {\n return false;\n }\n if (sameSiteLevel) {\n const cookieLevel = Cookie.sameSiteLevel[c.sameSite || \"none\"];\n if (cookieLevel > sameSiteLevel) {\n return false;\n }\n }\n if (expireCheck && c.expiryTime() <= now) {\n store.removeCookie(c.domain, c.path, c.key, () => {\n });\n return false;\n }\n return true;\n }\n store.findCookies(\n host,\n allPaths ? null : path,\n this.allowSpecialUseDomain,\n (err, cookies) => {\n if (err) {\n return cb(err);\n }\n cookies = cookies.filter(matchingCookie);\n if (options.sort !== false) {\n cookies = cookies.sort(cookieCompare);\n }\n const now2 = /* @__PURE__ */ new Date();\n for (const cookie of cookies) {\n cookie.lastAccessed = now2;\n }\n cb(null, cookies);\n }\n );\n }\n getCookieString(...args) {\n const cb = args.pop();\n validators.validate(validators.isFunction(cb), cb);\n const next = function(err, cookies) {\n if (err) {\n cb(err);\n } else {\n cb(\n null,\n cookies.sort(cookieCompare).map((c) => c.cookieString()).join(\"; \")\n );\n }\n };\n args.push(next);\n this.getCookies.apply(this, args);\n }\n getSetCookieStrings(...args) {\n const cb = args.pop();\n validators.validate(validators.isFunction(cb), cb);\n const next = function(err, cookies) {\n if (err) {\n cb(err);\n } else {\n cb(\n null,\n cookies.map((c) => {\n return c.toString();\n })\n );\n }\n };\n args.push(next);\n this.getCookies.apply(this, args);\n }\n serialize(cb) {\n validators.validate(validators.isFunction(cb), cb);\n let type = this.store.constructor.name;\n if (validators.isObject(type)) {\n type = null;\n }\n const serialized = {\n // The version of tough-cookie that serialized this jar. Generally a good\n // practice since future versions can make data import decisions based on\n // known past behavior. When/if this matters, use `semver`.\n version: `tough-cookie@${VERSION}`,\n // add the store type, to make humans happy:\n storeType: type,\n // CookieJar configuration:\n rejectPublicSuffixes: !!this.rejectPublicSuffixes,\n enableLooseMode: !!this.enableLooseMode,\n allowSpecialUseDomain: !!this.allowSpecialUseDomain,\n prefixSecurity: getNormalizedPrefixSecurity(this.prefixSecurity),\n // this gets filled from getAllCookies:\n cookies: []\n };\n if (!(this.store.getAllCookies && typeof this.store.getAllCookies === \"function\")) {\n return cb(\n new Error(\n \"store does not support getAllCookies and cannot be serialized\"\n )\n );\n }\n this.store.getAllCookies((err, cookies) => {\n if (err) {\n return cb(err);\n }\n serialized.cookies = cookies.map((cookie) => {\n cookie = cookie instanceof Cookie ? cookie.toJSON() : cookie;\n delete cookie.creationIndex;\n return cookie;\n });\n return cb(null, serialized);\n });\n }\n toJSON() {\n return this.serializeSync();\n }\n // use the class method CookieJar.deserialize instead of calling this directly\n _importCookies(serialized, cb) {\n let cookies = serialized.cookies;\n if (!cookies || !Array.isArray(cookies)) {\n return cb(new Error(\"serialized jar has no cookies array\"));\n }\n cookies = cookies.slice();\n const putNext = (err) => {\n if (err) {\n return cb(err);\n }\n if (!cookies.length) {\n return cb(err, this);\n }\n let cookie;\n try {\n cookie = fromJSON(cookies.shift());\n } catch (e) {\n return cb(e);\n }\n if (cookie === null) {\n return putNext(null);\n }\n this.store.putCookie(cookie, putNext);\n };\n putNext();\n }\n clone(newStore, cb) {\n if (arguments.length === 1) {\n cb = newStore;\n newStore = null;\n }\n this.serialize((err, serialized) => {\n if (err) {\n return cb(err);\n }\n _CookieJar.deserialize(serialized, newStore, cb);\n });\n }\n cloneSync(newStore) {\n if (arguments.length === 0) {\n return this._cloneSync();\n }\n if (!newStore.synchronous) {\n throw new Error(\n \"CookieJar clone destination store is not synchronous; use async API instead.\"\n );\n }\n return this._cloneSync(newStore);\n }\n removeAllCookies(cb) {\n validators.validate(validators.isFunction(cb), cb);\n const store = this.store;\n if (typeof store.removeAllCookies === \"function\" && store.removeAllCookies !== Store.prototype.removeAllCookies) {\n return store.removeAllCookies(cb);\n }\n store.getAllCookies((err, cookies) => {\n if (err) {\n return cb(err);\n }\n if (cookies.length === 0) {\n return cb(null);\n }\n let completedCount = 0;\n const removeErrors = [];\n function removeCookieCb(removeErr) {\n if (removeErr) {\n removeErrors.push(removeErr);\n }\n completedCount++;\n if (completedCount === cookies.length) {\n return cb(removeErrors.length ? removeErrors[0] : null);\n }\n }\n cookies.forEach((cookie) => {\n store.removeCookie(\n cookie.domain,\n cookie.path,\n cookie.key,\n removeCookieCb\n );\n });\n });\n }\n static deserialize(strOrObj, store, cb) {\n if (arguments.length !== 3) {\n cb = store;\n store = null;\n }\n validators.validate(validators.isFunction(cb), cb);\n let serialized;\n if (typeof strOrObj === \"string\") {\n serialized = jsonParse(strOrObj);\n if (serialized instanceof Error) {\n return cb(serialized);\n }\n } else {\n serialized = strOrObj;\n }\n const jar = new _CookieJar(store, {\n rejectPublicSuffixes: serialized.rejectPublicSuffixes,\n looseMode: serialized.enableLooseMode,\n allowSpecialUseDomain: serialized.allowSpecialUseDomain,\n prefixSecurity: serialized.prefixSecurity\n });\n jar._importCookies(serialized, (err) => {\n if (err) {\n return cb(err);\n }\n cb(null, jar);\n });\n }\n static deserializeSync(strOrObj, store) {\n const serialized = typeof strOrObj === \"string\" ? JSON.parse(strOrObj) : strOrObj;\n const jar = new _CookieJar(store, {\n rejectPublicSuffixes: serialized.rejectPublicSuffixes,\n looseMode: serialized.enableLooseMode\n });\n if (!jar.store.synchronous) {\n throw new Error(\n \"CookieJar store is not synchronous; use async API instead.\"\n );\n }\n jar._importCookiesSync(serialized);\n return jar;\n }\n };\n CookieJar.fromJSON = CookieJar.deserializeSync;\n [\n \"_importCookies\",\n \"clone\",\n \"getCookies\",\n \"getCookieString\",\n \"getSetCookieStrings\",\n \"removeAllCookies\",\n \"serialize\",\n \"setCookie\"\n ].forEach((name) => {\n CookieJar.prototype[name] = fromCallback(CookieJar.prototype[name]);\n });\n CookieJar.deserialize = fromCallback(CookieJar.deserialize);\n function syncWrap(method) {\n return function(...args) {\n if (!this.store.synchronous) {\n throw new Error(\n \"CookieJar store is not synchronous; use async API instead.\"\n );\n }\n let syncErr, syncResult;\n this[method](...args, (err, result) => {\n syncErr = err;\n syncResult = result;\n });\n if (syncErr) {\n throw syncErr;\n }\n return syncResult;\n };\n }\n exports.version = VERSION;\n exports.CookieJar = CookieJar;\n exports.Cookie = Cookie;\n exports.Store = Store;\n exports.MemoryCookieStore = MemoryCookieStore;\n exports.parseDate = parseDate;\n exports.formatDate = formatDate;\n exports.parse = parse;\n exports.fromJSON = fromJSON;\n exports.domainMatch = domainMatch;\n exports.defaultPath = defaultPath;\n exports.pathMatch = pathMatch;\n exports.getPublicSuffix = pubsuffix.getPublicSuffix;\n exports.cookieCompare = cookieCompare;\n exports.permuteDomain = require_permuteDomain().permuteDomain;\n exports.permutePath = permutePath;\n exports.canonicalDomain = canonicalDomain;\n exports.PrefixSecurityEnum = PrefixSecurityEnum;\n exports.ParameterError = validators.ParameterError;\n }\n});\n\n// source.js\nvar import_tough_cookie = __toESM(require_cookie(), 1);\nvar source_default = import_tough_cookie.default;\nexport {\n source_default as default\n};\n/*! Bundled license information:\n\ntough-cookie/lib/pubsuffix-psl.js:\n (*!\n * Copyright (c) 2018, Salesforce.com, Inc.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice,\n * this list of conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n *\n * 3. Neither the name of Salesforce.com nor the names of its contributors may\n * be used to endorse or promote products derived from this software without\n * specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n *)\n\ntough-cookie/lib/store.js:\n (*!\n * Copyright (c) 2015, Salesforce.com, Inc.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice,\n * this list of conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n *\n * 3. Neither the name of Salesforce.com nor the names of its contributors may\n * be used to endorse or promote products derived from this software without\n * specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n *)\n\ntough-cookie/lib/permuteDomain.js:\n (*!\n * Copyright (c) 2015, Salesforce.com, Inc.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice,\n * this list of conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n *\n * 3. Neither the name of Salesforce.com nor the names of its contributors may\n * be used to endorse or promote products derived from this software without\n * specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n *)\n\ntough-cookie/lib/pathMatch.js:\n (*!\n * Copyright (c) 2015, Salesforce.com, Inc.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice,\n * this list of conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n *\n * 3. Neither the name of Salesforce.com nor the names of its contributors may\n * be used to endorse or promote products derived from this software without\n * specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n *)\n\ntough-cookie/lib/memstore.js:\n (*!\n * Copyright (c) 2015, Salesforce.com, Inc.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice,\n * this list of conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n *\n * 3. Neither the name of Salesforce.com nor the names of its contributors may\n * be used to endorse or promote products derived from this software without\n * specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n *)\n\ntough-cookie/lib/cookie.js:\n (*!\n * Copyright (c) 2015-2020, Salesforce.com, Inc.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice,\n * this list of conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n *\n * 3. Neither the name of Salesforce.com nor the names of its contributors may\n * be used to endorse or promote products derived from this software without\n * specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n *)\n*/\n","import { invariant } from 'outvariant'\nimport { isNodeProcess } from 'is-node-process'\nimport toughCookie, {\n type Cookie as CookieInstance,\n} from '@bundled-es-modules/tough-cookie'\n\nconst { Cookie, CookieJar, Store, MemoryCookieStore, domainMatch, pathMatch } =\n toughCookie\n\n/**\n * Custom cookie store that uses the Web Storage API.\n * @see https://github.com/expo/tough-cookie-web-storage-store\n */\nclass WebStorageCookieStore extends Store {\n private storage: Storage\n private storageKey: string\n\n constructor() {\n super()\n\n invariant(\n typeof localStorage !== 'undefined',\n 'Failed to create a WebStorageCookieStore: `localStorage` is not available in this environment. This is likely an issue with MSW. Please report it on GitHub: https://github.com/mswjs/msw/issues',\n )\n\n this.synchronous = true\n this.storage = localStorage\n this.storageKey = '__msw-cookie-store__'\n }\n\n findCookie(\n domain: string,\n path: string,\n key: string,\n callback: (error: Error | null, cookie: CookieInstance | null) => void,\n ): void {\n try {\n const store = this.getStore()\n const cookies = this.filterCookiesFromList(store, { domain, path, key })\n callback(null, cookies[0] || null)\n } catch (error) {\n if (error instanceof Error) {\n callback(error, null)\n }\n }\n }\n\n findCookies(\n domain: string,\n path: string,\n allowSpecialUseDomain: boolean,\n callback: (error: Error | null, cookie: Array<CookieInstance>) => void,\n ): void {\n if (!domain) {\n callback(null, [])\n return\n }\n\n try {\n const store = this.getStore()\n const results = this.filterCookiesFromList(store, {\n domain,\n path,\n })\n callback(null, results)\n } catch (error) {\n if (error instanceof Error) {\n callback(error, [])\n }\n }\n }\n\n putCookie(\n cookie: CookieInstance,\n callback: (error: Error | null) => void,\n ): void {\n try {\n // Never set cookies with `maxAge` of `0`.\n if (cookie.maxAge === 0) {\n return\n }\n\n const store = this.getStore()\n store.push(cookie)\n this.updateStore(store)\n } catch (error) {\n if (error instanceof Error) {\n callback(error)\n }\n }\n }\n\n updateCookie(\n oldCookie: CookieInstance,\n newCookie: CookieInstance,\n callback: (error: Error | null) => void,\n ): void {\n /**\n * If updating a cookie with `maxAge` of `0`, remove it from the store.\n * Otherwise, two cookie entries will be created.\n * @see https://github.com/mswjs/msw/issues/2272\n */\n if (newCookie.maxAge === 0) {\n this.removeCookie(\n newCookie.domain || '',\n newCookie.path || '',\n newCookie.key,\n callback,\n )\n return\n }\n\n this.putCookie(newCookie, callback)\n }\n\n removeCookie(\n domain: string,\n path: string,\n key: string,\n callback: (error: Error | null) => void,\n ): void {\n try {\n const store = this.getStore()\n const nextStore = this.deleteCookiesFromList(store, { domain, path, key })\n this.updateStore(nextStore)\n callback(null)\n } catch (error) {\n if (error instanceof Error) {\n callback(error)\n }\n }\n }\n\n removeCookies(\n domain: string,\n path: string,\n callback: (error: Error | null) => void,\n ): void {\n try {\n const store = this.getStore()\n const nextStore = this.deleteCookiesFromList(store, { domain, path })\n this.updateStore(nextStore)\n callback(null)\n } catch (error) {\n if (error instanceof Error) {\n callback(error)\n }\n }\n }\n\n getAllCookies(\n callback: (error: Error | null, cookie: Array<CookieInstance>) => void,\n ): void {\n try {\n callback(null, this.getStore())\n } catch (error) {\n if (error instanceof Error) {\n callback(error, [])\n }\n }\n }\n\n private getStore(): Array<CookieInstance> {\n try {\n const json = this.storage.getItem(this.storageKey)\n\n if (json == null) {\n return []\n }\n\n const rawCookies = JSON.parse(json) as Array<Record<string, any>>\n const cookies: Array<CookieInstance> = []\n for (const rawCookie of rawCookies) {\n const cookie = Cookie.fromJSON(rawCookie)\n if (cookie != null) {\n cookies.push(cookie)\n }\n }\n return cookies\n } catch {\n return []\n }\n }\n\n private updateStore(nextStore: Array<CookieInstance>) {\n this.storage.setItem(\n this.storageKey,\n JSON.stringify(nextStore.map((cookie) => cookie.toJSON())),\n )\n }\n\n private filterCookiesFromList(\n cookies: Array<CookieInstance>,\n matches: { domain?: string; path?: string; key?: string },\n ): Array<CookieInstance> {\n const result: Array<CookieInstance> = []\n\n for (const cookie of cookies) {\n if (matches.domain && !domainMatch(matches.domain, cookie.domain || '')) {\n continue\n }\n\n if (matches.path && !pathMatch(matches.path, cookie.path || '')) {\n continue\n }\n\n if (matches.key && cookie.key !== matches.key) {\n continue\n }\n\n result.push(cookie)\n }\n\n return result\n }\n\n private deleteCookiesFromList(\n cookies: Array<CookieInstance>,\n matches: { domain?: string; path?: string; key?: string },\n ) {\n const matchingCookies = this.filterCookiesFromList(cookies, matches)\n return cookies.filter((cookie) => !matchingCookies.includes(cookie))\n }\n}\n\nconst store = isNodeProcess()\n ? new MemoryCookieStore()\n : new WebStorageCookieStore()\n\nexport const cookieStore = new CookieJar(store)\n","\"use strict\";\n\nvar defaultParseOptions = {\n decodeValues: true,\n map: false,\n silent: false,\n};\n\nfunction isNonEmptyString(str) {\n return typeof str === \"string\" && !!str.trim();\n}\n\nfunction parseString(setCookieValue, options) {\n var parts = setCookieValue.split(\";\").filter(isNonEmptyString);\n\n var nameValuePairStr = parts.shift();\n var parsed = parseNameValuePair(nameValuePairStr);\n var name = parsed.name;\n var value = parsed.value;\n\n options = options\n ? Object.assign({}, defaultParseOptions, options)\n : defaultParseOptions;\n\n try {\n value = options.decodeValues ? decodeURIComponent(value) : value; // decode cookie value\n } catch (e) {\n console.error(\n \"set-cookie-parser encountered an error while decoding a cookie with value '\" +\n value +\n \"'. Set options.decodeValues to false to disable this feature.\",\n e\n );\n }\n\n var cookie = {\n name: name,\n value: value,\n };\n\n parts.forEach(function (part) {\n var sides = part.split(\"=\");\n var key = sides.shift().trimLeft().toLowerCase();\n var value = sides.join(\"=\");\n if (key === \"expires\") {\n cookie.expires = new Date(value);\n } else if (key === \"max-age\") {\n cookie.maxAge = parseInt(value, 10);\n } else if (key === \"secure\") {\n cookie.secure = true;\n } else if (key === \"httponly\") {\n cookie.httpOnly = true;\n } else if (key === \"samesite\") {\n cookie.sameSite = value;\n } else {\n cookie[key] = value;\n }\n });\n\n return cookie;\n}\n\nfunction parseNameValuePair(nameValuePairStr) {\n // Parses name-value-pair according to rfc6265bis draft\n\n var name = \"\";\n var value = \"\";\n var nameValueArr = nameValuePairStr.split(\"=\");\n if (nameValueArr.length > 1) {\n name = nameValueArr.shift();\n value = nameValueArr.join(\"=\"); // everything after the first =, joined by a \"=\" if there was more than one part\n } else {\n value = nameValuePairStr;\n }\n\n return { name: name, value: value };\n}\n\nfunction parse(input, options) {\n options = options\n ? Object.assign({}, defaultParseOptions, options)\n : defaultParseOptions;\n\n if (!input) {\n if (!options.map) {\n return [];\n } else {\n return {};\n }\n }\n\n if (input.headers) {\n if (typeof input.headers.getSetCookie === \"function\") {\n // for fetch responses - they combine headers of the same type in the headers array,\n // but getSetCookie returns an uncombined array\n input = input.headers.getSetCookie();\n } else if (input.headers[\"set-cookie\"]) {\n // fast-path for node.js (which automatically normalizes header names to lower-case\n input = input.headers[\"set-cookie\"];\n } else {\n // slow-path for other environments - see #25\n var sch =\n input.headers[\n Object.keys(input.headers).find(function (key) {\n return key.toLowerCase() === \"set-cookie\";\n })\n ];\n // warn if called on a request-like object with a cookie header rather than a set-cookie header - see #34, 36\n if (!sch && input.headers.cookie && !options.silent) {\n console.warn(\n \"Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses, not Cookie headers from requests. Set the option {silent: true} to suppress this warning.\"\n );\n }\n input = sch;\n }\n }\n if (!Array.isArray(input)) {\n input = [input];\n }\n\n options = options\n ? Object.assign({}, defaultParseOptions, options)\n : defaultParseOptions;\n\n if (!options.map) {\n return input.filter(isNonEmptyString).map(function (str) {\n return parseString(str, options);\n });\n } else {\n var cookies = {};\n return input.filter(isNonEmptyString).reduce(function (cookies, str) {\n var cookie = parseString(str, options);\n cookies[cookie.name] = cookie;\n return cookies;\n }, cookies);\n }\n}\n\n/*\n Set-Cookie header field-values are sometimes comma joined in one string. This splits them without choking on commas\n that are within a single set-cookie field-value, such as in the Expires portion.\n\n This is uncommon, but explicitly allowed - see https://tools.ietf.org/html/rfc2616#section-4.2\n Node.js does this for every header *except* set-cookie - see https://github.com/nodejs/node/blob/d5e363b77ebaf1caf67cd7528224b651c86815c1/lib/_http_incoming.js#L128\n React Native's fetch does this for *every* header, including set-cookie.\n\n Based on: https://github.com/google/j2objc/commit/16820fdbc8f76ca0c33472810ce0cb03d20efe25\n Credits to: https://github.com/tomball for original and https://github.com/chrusart for JavaScript implementation\n*/\nfunction splitCookiesString(cookiesString) {\n if (Array.isArray(cookiesString)) {\n return cookiesString;\n }\n if (typeof cookiesString !== \"string\") {\n return [];\n }\n\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n\n function skipWhitespace() {\n while (pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))) {\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n\n return ch !== \"=\" && ch !== \";\" && ch !== \",\";\n }\n\n while (pos < cookiesString.length) {\n start = pos;\n cookiesSeparatorFound = false;\n\n while (skipWhitespace()) {\n ch = cookiesString.charAt(pos);\n if (ch === \",\") {\n // ',' is a cookie separator if we have later first '=', not ';' or ','\n lastComma = pos;\n pos += 1;\n\n skipWhitespace();\n nextStart = pos;\n\n while (pos < cookiesString.length && notSpecialChar()) {\n pos += 1;\n }\n\n // currently special character\n if (pos < cookiesString.length && cookiesString.charAt(pos) === \"=\") {\n // we found cookies separator\n cookiesSeparatorFound = true;\n // pos is inside the next cookie, so back up and return it.\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n // in param ',' or param separator ';',\n // we continue from that comma\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n\n return cookiesStrings;\n}\n\nmodule.exports = parse;\nmodule.exports.parse = parse;\nmodule.exports.parseString = parseString;\nmodule.exports.splitCookiesString = splitCookiesString;\n","import { splitCookiesString } from 'set-cookie-parser'\nimport { HeadersList, HeadersObject } from './glossary'\nimport { normalizeHeaderName } from './utils/normalizeHeaderName'\nimport { normalizeHeaderValue } from './utils/normalizeHeaderValue'\nimport { isValidHeaderName } from './utils/isValidHeaderName'\nimport { isValidHeaderValue } from './utils/isValidHeaderValue'\n\nexport const NORMALIZED_HEADERS: unique symbol = Symbol('normalizedHeaders')\n\nexport const RAW_HEADER_NAMES: unique symbol = Symbol('rawHeaderNames')\n\nconst HEADER_VALUE_DELIMITER = ', ' as const\n\nexport class Headers {\n // Normalized header {\"name\":\"a, b\"} storage.\n private [NORMALIZED_HEADERS]: Record<string, string> = {}\n\n // Keeps the mapping between the raw header name\n // and the normalized header name to ease the lookup.\n private [RAW_HEADER_NAMES]: Map<string, string> = new Map()\n\n constructor(init?: HeadersInit | HeadersObject | HeadersList) {\n /**\n * @note Cannot necessarily check if the `init` is an instance of the\n * `Headers` because that class may not be defined in Node or jsdom.\n */\n if (\n ['Headers', 'HeadersPolyfill'].includes(init?.constructor.name) ||\n init instanceof Headers ||\n (typeof globalThis.Headers !== 'undefined' &&\n init instanceof globalThis.Headers)\n ) {\n const initialHeaders = init as Headers\n initialHeaders.forEach((value, name) => {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(init)) {\n init.forEach(([name, value]) => {\n this.append(\n name,\n Array.isArray(value) ? value.join(HEADER_VALUE_DELIMITER) : value\n )\n })\n } else if (init) {\n Object.getOwnPropertyNames(init).forEach((name) => {\n const value = init[name]\n this.append(\n name,\n Array.isArray(value) ? value.join(HEADER_VALUE_DELIMITER) : value\n )\n })\n }\n }\n\n [Symbol.toStringTag] = 'Headers';\n\n [Symbol.iterator]() {\n return this.entries()\n }\n\n *keys(): IterableIterator<string> {\n for (const [name] of this.entries()) {\n yield name\n }\n }\n\n *values(): IterableIterator<string> {\n for (const [, value] of this.entries()) {\n yield value\n }\n }\n\n *entries(): IterableIterator<[string, string]> {\n // https://fetch.spec.whatwg.org/#concept-header-list-sort-and-combine\n let sortedKeys = Object.keys(this[NORMALIZED_HEADERS]).sort((a, b) =>\n a.localeCompare(b)\n )\n for (const name of sortedKeys) {\n if (name === 'set-cookie') {\n for (const value of this.getSetCookie()) {\n yield [name, value]\n }\n } else {\n yield [name, this.get(name)]\n }\n }\n }\n\n /**\n * Returns a boolean stating whether a `Headers` object contains a certain header.\n */\n has(name: string): boolean {\n if (!isValidHeaderName(name)) {\n throw new TypeError(`Invalid header name \"${name}\"`)\n }\n\n return this[NORMALIZED_HEADERS].hasOwnProperty(normalizeHeaderName(name))\n }\n\n /**\n * Returns a `ByteString` sequence of all the values of a header with a given name.\n */\n get(name: string): string | null {\n if (!isValidHeaderName(name)) {\n throw TypeError(`Invalid header name \"${name}\"`)\n }\n\n return this[NORMALIZED_HEADERS][normalizeHeaderName(name)] ?? null\n }\n\n /**\n * Sets a new value for an existing header inside a `Headers` object, or adds the header if it does not already exist.\n */\n set(name: string, value: string): void {\n if (!isValidHeaderName(name) || !isValidHeaderValue(value)) {\n return\n }\n\n const normalizedName = normalizeHeaderName(name)\n const normalizedValue = normalizeHeaderValue(value)\n\n this[NORMALIZED_HEADERS][normalizedName] =\n normalizeHeaderValue(normalizedValue)\n this[RAW_HEADER_NAMES].set(normalizedName, name)\n }\n\n /**\n * Appends a new value onto an existing header inside a `Headers` object, or adds the header if it does not already exist.\n */\n append(name: string, value: string): void {\n if (!isValidHeaderName(name) || !isValidHeaderValue(value)) {\n return\n }\n\n const normalizedName = normalizeHeaderName(name)\n const normalizedValue = normalizeHeaderValue(value)\n\n let resolvedValue = this.has(normalizedName)\n ? `${this.get(normalizedName)}, ${normalizedValue}`\n : normalizedValue\n\n this.set(name, resolvedValue)\n }\n\n /**\n * Deletes a header from the `Headers` object.\n */\n delete(name: string): void {\n if (!isValidHeaderName(name)) {\n return\n }\n\n if (!this.has(name)) {\n return\n }\n\n const normalizedName = normalizeHeaderName(name)\n delete this[NORMALIZED_HEADERS][normalizedName]\n this[RAW_HEADER_NAMES].delete(normalizedName)\n }\n\n /**\n * Traverses the `Headers` object,\n * calling the given callback for each header.\n */\n forEach<ThisArg = this>(\n callback: (\n this: ThisArg,\n value: string,\n name: string,\n parent: this\n ) => void,\n thisArg?: ThisArg\n ) {\n for (const [name, value] of this.entries()) {\n callback.call(thisArg, value, name, this)\n }\n }\n\n /**\n * Returns an array containing the values\n * of all Set-Cookie headers associated\n * with a response\n */\n getSetCookie(): string[] {\n const setCookieHeader = this.get('set-cookie')\n\n if (setCookieHeader === null) {\n return []\n }\n\n if (setCookieHeader === '') {\n return ['']\n }\n\n return splitCookiesString(setCookieHeader)\n }\n}\n","export type PromiseState = 'pending' | 'fulfilled' | 'rejected'\n\nexport type Executor<Value> = ConstructorParameters<typeof Promise<Value>>[0]\nexport type ResolveFunction<Value> = Parameters<Executor<Value>>[0]\nexport type RejectFunction<Reason> = Parameters<Executor<Reason>>[1]\n\nexport type DeferredPromiseExecutor<Input = never, Output = Input> = {\n (resolve?: ResolveFunction<Input>, reject?: RejectFunction<any>): void\n\n resolve: ResolveFunction<Input>\n reject: RejectFunction<any>\n result?: Output\n state: PromiseState\n rejectionReason?: unknown\n}\nexport function createDeferredExecutor<\n Input = never,\n Output = Input\n>(): DeferredPromiseExecutor<Input, Output> {\n const executor = <DeferredPromiseExecutor<Input, Output>>((\n resolve,\n reject\n ) => {\n executor.state = 'pending'\n\n executor.resolve = (data) => {\n if (executor.state !== 'pending') {\n return\n }\n\n executor.result = data as Output\n\n const onFulfilled = <Value>(value: Value) => {\n executor.state = 'fulfilled'\n return value\n }\n\n return resolve(\n data instanceof Promise ? data : Promise.resolve(data).then(onFulfilled)\n )\n }\n\n executor.reject = (reason) => {\n if (executor.state !== 'pending') {\n return\n }\n\n queueMicrotask(() => {\n executor.state = 'rejected'\n })\n\n return reject((executor.rejectionReason = reason))\n }\n })\n\n return executor\n}\n","import {\n type Executor,\n type RejectFunction,\n type ResolveFunction,\n type DeferredPromiseExecutor,\n createDeferredExecutor,\n} from './createDeferredExecutor'\n\nexport class DeferredPromise<Input, Output = Input> extends Promise<Input> {\n #executor: DeferredPromiseExecutor\n\n public resolve: ResolveFunction<Output>\n public reject: RejectFunction<Output>\n\n constructor(executor: Executor<Input> | null = null) {\n const deferredExecutor = createDeferredExecutor()\n super((originalResolve, originalReject) => {\n deferredExecutor(originalResolve, originalReject)\n executor?.(deferredExecutor.resolve, deferredExecutor.reject)\n })\n\n this.#executor = deferredExecutor\n this.resolve = this.#executor.resolve\n this.reject = this.#executor.reject\n }\n\n public get state() {\n return this.#executor.state\n }\n\n public get rejectionReason() {\n return this.#executor.rejectionReason\n }\n\n public then<ThenResult = Input, CatchResult = never>(\n onFulfilled?: (value: Input) => ThenResult | PromiseLike<ThenResult>,\n onRejected?: (reason: any) => CatchResult | PromiseLike<CatchResult>\n ) {\n return this.#decorate(super.then(onFulfilled, onRejected))\n }\n\n public catch<CatchResult = never>(\n onRejected?: (reason: any) => CatchResult | PromiseLike<CatchResult>\n ) {\n return this.#decorate(super.catch(onRejected))\n }\n\n public finally(onfinally?: () => void | Promise<any>) {\n return this.#decorate(super.finally(onfinally))\n }\n\n #decorate<ChildInput>(\n promise: Promise<ChildInput>\n ): DeferredPromise<ChildInput, Output> {\n return Object.defineProperties(promise, {\n resolve: { configurable: true, value: this.resolve },\n reject: { configurable: true, value: this.reject },\n }) as DeferredPromise<ChildInput, Output>\n }\n}\n","import { checkGlobals } from './utils/internal/checkGlobals'\n\nexport { SetupApi } from './SetupApi'\n\n/* HTTP handlers */\nexport { RequestHandler } from './handlers/RequestHandler'\nexport { http } from './http'\nexport { HttpHandler, HttpMethods } from './handlers/HttpHandler'\nexport { graphql } from './graphql'\nexport { GraphQLHandler } from './handlers/GraphQLHandler'\n\n/* WebSocket handler */\nexport { ws, type WebSocketLink } from './ws'\nexport {\n WebSocketHandler,\n type WebSocketHandlerEventMap,\n type WebSocketHandlerConnection,\n} from './handlers/WebSocketHandler'\n\n/* Utils */\nexport { matchRequestUrl } from './utils/matching/matchRequestUrl'\nexport * from './utils/handleRequest'\nexport { getResponse } from './getResponse'\nexport { cleanUrl } from './utils/url/cleanUrl'\n\n/**\n * Type definitions.\n */\n\nexport type { SharedOptions, LifeCycleEventsMap } from './sharedOptions'\n\nexport type {\n ResponseResolver,\n ResponseResolverReturnType,\n AsyncResponseResolverReturnType,\n RequestHandlerOptions,\n DefaultBodyType,\n DefaultRequestMultipartBody,\n JsonBodyType,\n} from './handlers/RequestHandler'\n\nexport type {\n RequestQuery,\n HttpRequestParsedResult,\n} from './handlers/HttpHandler'\nexport type { HttpRequestHandler, HttpResponseResolver } from './http'\n\nexport type {\n GraphQLQuery,\n GraphQLVariables,\n GraphQLRequestBody,\n GraphQLJsonRequestBody,\n} from './handlers/GraphQLHandler'\nexport type { GraphQLRequestHandler, GraphQLResponseResolver } from './graphql'\n\nexport type { WebSocketData, WebSocketEventListener } from './ws'\n\nexport type { Path, PathParams, Match } from './utils/matching/matchRequestUrl'\nexport type { ParsedGraphQLRequest } from './utils/internal/parseGraphQLRequest'\n\nexport * from './HttpResponse'\nexport * from './delay'\nexport { bypass } from './bypass'\nexport { passthrough } from './passthrough'\n\n// Validate environmental globals before executing any code.\n// This ensures that the library gives user-friendly errors\n// when ran in the environments that require additional polyfills\n// from the end user.\ncheckGlobals()\n","import { Agent } from 'http'\nimport { RequestOptions, Agent as HttpsAgent } from 'https'\nimport { Logger } from '@open-draft/logger'\n\nconst logger = new Logger('utils getUrlByRequestOptions')\n\n// Request instance constructed by the \"request\" library\n// has a \"self\" property that has a \"uri\" field. This is\n// reproducible by performing a \"XMLHttpRequest\" request in JSDOM.\nexport interface RequestSelf {\n uri?: URL\n}\n\nexport type ResolvedRequestOptions = RequestOptions & RequestSelf\n\nexport const DEFAULT_PATH = '/'\nconst DEFAULT_PROTOCOL = 'http:'\nconst DEFAULT_HOSTNAME = 'localhost'\nconst SSL_PORT = 443\n\nfunction getAgent(\n options: ResolvedRequestOptions\n): Agent | HttpsAgent | undefined {\n return options.agent instanceof Agent ? options.agent : undefined\n}\n\nfunction getProtocolByRequestOptions(options: ResolvedRequestOptions): string {\n if (options.protocol) {\n return options.protocol\n }\n\n const agent = getAgent(options)\n const agentProtocol = (agent as RequestOptions)?.protocol\n\n if (agentProtocol) {\n return agentProtocol\n }\n\n const port = getPortByRequestOptions(options)\n const isSecureRequest = options.cert || port === SSL_PORT\n\n return isSecureRequest ? 'https:' : options.uri?.protocol || DEFAULT_PROTOCOL\n}\n\nfunction getPortByRequestOptions(\n options: ResolvedRequestOptions\n): number | undefined {\n // Use the explicitly provided port.\n if (options.port) {\n return Number(options.port)\n }\n\n // Otherwise, try to resolve port from the agent.\n const agent = getAgent(options)\n\n if ((agent as HttpsAgent)?.options.port) {\n return Number((agent as HttpsAgent).options.port)\n }\n\n if ((agent as RequestOptions)?.defaultPort) {\n return Number((agent as RequestOptions).defaultPort)\n }\n\n // Lastly, return undefined indicating that the port\n // must inferred from the protocol. Do not infer it here.\n return undefined\n}\n\ninterface RequestAuth {\n username: string\n password: string\n}\n\nfunction getAuthByRequestOptions(\n options: ResolvedRequestOptions\n): RequestAuth | undefined {\n if (options.auth) {\n const [username, password] = options.auth.split(':')\n return { username, password }\n }\n}\n\n/**\n * Returns true if host looks like an IPv6 address without surrounding brackets\n * It assumes any host containing `:` is definitely not IPv4 and probably IPv6,\n * but note that this could include invalid IPv6 addresses as well.\n */\nfunction isRawIPv6Address(host: string): boolean {\n return host.includes(':') && !host.startsWith('[') && !host.endsWith(']')\n}\n\nfunction getHostname(options: ResolvedRequestOptions): string | undefined {\n let host = options.hostname || options.host\n\n if (host) {\n if (isRawIPv6Address(host)) {\n host = `[${host}]`\n }\n\n // Check the presence of the port, and if it's present,\n // remove it from the host, returning a hostname.\n return new URL(`http://${host}`).hostname\n }\n\n return DEFAULT_HOSTNAME\n}\n\n/**\n * Creates a `URL` instance from a given `RequestOptions` object.\n */\nexport function getUrlByRequestOptions(options: ResolvedRequestOptions): URL {\n logger.info('request options', options)\n\n if (options.uri) {\n logger.info(\n 'constructing url from explicitly provided \"options.uri\": %s',\n options.uri\n )\n return new URL(options.uri.href)\n }\n\n logger.info('figuring out url from request options...')\n\n const protocol = getProtocolByRequestOptions(options)\n logger.info('protocol', protocol)\n\n const port = getPortByRequestOptions(options)\n logger.info('port', port)\n\n const hostname = getHostname(options)\n logger.info('hostname', hostname)\n\n const path = options.path || DEFAULT_PATH\n logger.info('path', path)\n\n const credentials = getAuthByRequestOptions(options)\n logger.info('credentials', credentials)\n\n const authString = credentials\n ? `${credentials.username}:${credentials.password}@`\n : ''\n logger.info('auth string:', authString)\n\n const portString = typeof port !== 'undefined' ? `:${port}` : ''\n const url = new URL(`${protocol}//${hostname}${portString}${path}`)\n url.username = credentials?.username || ''\n url.password = credentials?.password || ''\n\n logger.info('created url:', url)\n\n return url\n}\n","import { Logger } from '@open-draft/logger'\n\nconst logger = new Logger('cloneObject')\n\nfunction isPlainObject(obj?: Record<string, any>): boolean {\n logger.info('is plain object?', obj)\n\n if (obj == null || !obj.constructor?.name) {\n logger.info('given object is undefined, not a plain object...')\n return false\n }\n\n logger.info('checking the object constructor:', obj.constructor.name)\n return obj.constructor.name === 'Object'\n}\n\nexport function cloneObject<ObjectType extends Record<string, any>>(\n obj: ObjectType\n): ObjectType {\n logger.info('cloning object:', obj)\n\n const enumerableProperties = Object.entries(obj).reduce<Record<string, any>>(\n (acc, [key, value]) => {\n logger.info('analyzing key-value pair:', key, value)\n\n // Recursively clone only plain objects, omitting class instances.\n acc[key] = isPlainObject(value) ? cloneObject(value) : value\n return acc\n },\n {}\n )\n\n return isPlainObject(obj)\n ? enumerableProperties\n : Object.assign(Object.getPrototypeOf(obj), enumerableProperties)\n}\n","import { urlToHttpOptions } from 'node:url'\nimport {\n Agent as HttpAgent,\n globalAgent as httpGlobalAgent,\n IncomingMessage,\n} from 'node:http'\nimport {\n RequestOptions,\n Agent as HttpsAgent,\n globalAgent as httpsGlobalAgent,\n} from 'node:https'\nimport {\n /**\n * @note Use the Node.js URL instead of the global URL\n * because environments like JSDOM may override the global,\n * breaking the compatibility with Node.js.\n * @see https://github.com/node-fetch/node-fetch/issues/1376#issuecomment-966435555\n */\n URL,\n Url as LegacyURL,\n parse as parseUrl,\n} from 'node:url'\nimport { Logger } from '@open-draft/logger'\nimport {\n ResolvedRequestOptions,\n getUrlByRequestOptions,\n} from '../../../utils/getUrlByRequestOptions'\nimport { cloneObject } from '../../../utils/cloneObject'\nimport { isObject } from '../../../utils/isObject'\n\nconst logger = new Logger('http normalizeClientRequestArgs')\n\nexport type HttpRequestCallback = (response: IncomingMessage) => void\n\nexport type ClientRequestArgs =\n // Request without any arguments is also possible.\n | []\n | [string | URL | LegacyURL, HttpRequestCallback?]\n | [string | URL | LegacyURL, RequestOptions, HttpRequestCallback?]\n | [RequestOptions, HttpRequestCallback?]\n\nfunction resolveRequestOptions(\n args: ClientRequestArgs,\n url: URL\n): RequestOptions {\n // Calling `fetch` provides only URL to `ClientRequest`\n // without any `RequestOptions` or callback.\n if (typeof args[1] === 'undefined' || typeof args[1] === 'function') {\n logger.info('request options not provided, deriving from the url', url)\n return urlToHttpOptions(url)\n }\n\n if (args[1]) {\n logger.info('has custom RequestOptions!', args[1])\n const requestOptionsFromUrl = urlToHttpOptions(url)\n\n logger.info('derived RequestOptions from the URL:', requestOptionsFromUrl)\n\n /**\n * Clone the request options to lock their state\n * at the moment they are provided to `ClientRequest`.\n * @see https://github.com/mswjs/interceptors/issues/86\n */\n logger.info('cloning RequestOptions...')\n const clonedRequestOptions = cloneObject(args[1])\n logger.info('successfully cloned RequestOptions!', clonedRequestOptions)\n\n return {\n ...requestOptionsFromUrl,\n ...clonedRequestOptions,\n }\n }\n\n logger.info('using an empty object as request options')\n return {} as RequestOptions\n}\n\n/**\n * Overrides the given `URL` instance with the explicit properties provided\n * on the `RequestOptions` object. The options object takes precedence,\n * and will replace URL properties like \"host\", \"path\", and \"port\", if specified.\n */\nfunction overrideUrlByRequestOptions(url: URL, options: RequestOptions): URL {\n url.host = options.host || url.host\n url.hostname = options.hostname || url.hostname\n url.port = options.port ? options.port.toString() : url.port\n\n if (options.path) {\n const parsedOptionsPath = parseUrl(options.path, false)\n url.pathname = parsedOptionsPath.pathname || ''\n url.search = parsedOptionsPath.search || ''\n }\n\n return url\n}\n\nfunction resolveCallback(\n args: ClientRequestArgs\n): HttpRequestCallback | undefined {\n return typeof args[1] === 'function' ? args[1] : args[2]\n}\n\nexport type NormalizedClientRequestArgs = [\n url: URL,\n options: ResolvedRequestOptions,\n callback?: HttpRequestCallback\n]\n\n/**\n * Normalizes parameters given to a `http.request` call\n * so it always has a `URL` and `RequestOptions`.\n */\nexport function normalizeClientRequestArgs(\n defaultProtocol: string,\n args: ClientRequestArgs\n): NormalizedClientRequestArgs {\n let url: URL\n let options: ResolvedRequestOptions\n let callback: HttpRequestCallback | undefined\n\n logger.info('arguments', args)\n logger.info('using default protocol:', defaultProtocol)\n\n // Support \"http.request()\" calls without any arguments.\n // That call results in a \"GET http://localhost\" request.\n if (args.length === 0) {\n const url = new URL('http://localhost')\n const options = resolveRequestOptions(args, url)\n return [url, options]\n }\n\n // Convert a url string into a URL instance\n // and derive request options from it.\n if (typeof args[0] === 'string') {\n logger.info('first argument is a location string:', args[0])\n\n url = new URL(args[0])\n logger.info('created a url:', url)\n\n const requestOptionsFromUrl = urlToHttpOptions(url)\n logger.info('request options from url:', requestOptionsFromUrl)\n\n options = resolveRequestOptions(args, url)\n logger.info('resolved request options:', options)\n\n callback = resolveCallback(args)\n }\n // Handle a given URL instance as-is\n // and derive request options from it.\n else if (args[0] instanceof URL) {\n url = args[0]\n logger.info('first argument is a URL:', url)\n\n // Check if the second provided argument is RequestOptions.\n // If it is, check if \"options.path\" was set and rewrite it\n // on the input URL.\n // Do this before resolving options from the URL below\n // to prevent query string from being duplicated in the path.\n if (typeof args[1] !== 'undefined' && isObject<RequestOptions>(args[1])) {\n url = overrideUrlByRequestOptions(url, args[1])\n }\n\n options = resolveRequestOptions(args, url)\n logger.info('derived request options:', options)\n\n callback = resolveCallback(args)\n }\n // Handle a legacy URL instance and re-normalize from either a RequestOptions object\n // or a WHATWG URL.\n else if ('hash' in args[0] && !('method' in args[0])) {\n const [legacyUrl] = args\n logger.info('first argument is a legacy URL:', legacyUrl)\n\n if (legacyUrl.hostname === null) {\n /**\n * We are dealing with a relative url, so use the path as an \"option\" and\n * merge in any existing options, giving priority to exising options -- i.e. a path in any\n * existing options will take precedence over the one contained in the url. This is consistent\n * with the behaviour in ClientRequest.\n * @see https://github.com/nodejs/node/blob/d84f1312915fe45fe0febe888db692c74894c382/lib/_http_client.js#L122\n */\n logger.info('given legacy URL is relative (no hostname)')\n\n return isObject(args[1])\n ? normalizeClientRequestArgs(defaultProtocol, [\n { path: legacyUrl.path, ...args[1] },\n args[2],\n ])\n : normalizeClientRequestArgs(defaultProtocol, [\n { path: legacyUrl.path },\n args[1] as HttpRequestCallback,\n ])\n }\n\n logger.info('given legacy url is absolute')\n\n // We are dealing with an absolute URL, so convert to WHATWG and try again.\n const resolvedUrl = new URL(legacyUrl.href)\n\n return args[1] === undefined\n ? normalizeClientRequestArgs(defaultProtocol, [resolvedUrl])\n : typeof args[1] === 'function'\n ? normalizeClientRequestArgs(defaultProtocol, [resolvedUrl, args[1]])\n : normalizeClientRequestArgs(defaultProtocol, [\n resolvedUrl,\n args[1],\n args[2],\n ])\n }\n // Handle a given \"RequestOptions\" object as-is\n // and derive the URL instance from it.\n else if (isObject(args[0])) {\n options = { ...(args[0] as any) }\n logger.info('first argument is RequestOptions:', options)\n\n // When handling a \"RequestOptions\" object without an explicit \"protocol\",\n // infer the protocol from the request issuing module (http/https).\n options.protocol = options.protocol || defaultProtocol\n logger.info('normalized request options:', options)\n\n url = getUrlByRequestOptions(options)\n logger.info('created a URL from RequestOptions:', url.href)\n\n callback = resolveCallback(args)\n } else {\n throw new Error(\n `Failed to construct ClientRequest with these parameters: ${args}`\n )\n }\n\n options.protocol = options.protocol || url.protocol\n options.method = options.method || 'GET'\n\n /**\n * Infer a fallback agent from the URL protocol.\n * The interception is done on the \"ClientRequest\" level (\"NodeClientRequest\")\n * and it may miss the correct agent. Always align the agent\n * with the URL protocol, if not provided.\n *\n * @note Respect the \"agent: false\" value.\n */\n if (typeof options.agent === 'undefined') {\n const agent =\n options.protocol === 'https:'\n ? new HttpsAgent({\n rejectUnauthorized: options.rejectUnauthorized,\n })\n : new HttpAgent()\n\n options.agent = agent\n logger.info('resolved fallback agent:', agent)\n }\n\n /**\n * Ensure that the default Agent is always set.\n * This prevents the protocol mismatch for requests with { agent: false },\n * where the global Agent is inferred.\n * @see https://github.com/mswjs/msw/issues/1150\n * @see https://github.com/nodejs/node/blob/418ff70b810f0e7112d48baaa72932a56cfa213b/lib/_http_client.js#L130\n * @see https://github.com/nodejs/node/blob/418ff70b810f0e7112d48baaa72932a56cfa213b/lib/_http_client.js#L157-L159\n */\n if (!options._defaultAgent) {\n logger.info(\n 'has no default agent, setting the default agent for \"%s\"',\n options.protocol\n )\n\n options._defaultAgent =\n options.protocol === 'https:' ? httpsGlobalAgent : httpGlobalAgent\n }\n\n logger.info('successfully resolved url:', url.href)\n logger.info('successfully resolved options:', options)\n logger.info('successfully resolved callback:', callback)\n\n /**\n * @note If the user-provided URL is not a valid URL in Node.js,\n * (e.g. the one provided by the JSDOM polyfills), case it to\n * string. Otherwise, this throws on Node.js incompatibility\n * (`ERR_INVALID_ARG_TYPE` on the connection listener)\n * @see https://github.com/node-fetch/node-fetch/issues/1376#issuecomment-966435555\n */\n if (!(url instanceof URL)) {\n url = (url as any).toString()\n }\n\n return [url, options, callback]\n}\n","/**\n * Returns a boolean indicating whether the given global property\n * is defined and is configurable.\n */\nexport function hasConfigurableGlobal(propertyName: string): boolean {\n const descriptor = Object.getOwnPropertyDescriptor(globalThis, propertyName)\n\n // The property is not set at all.\n if (typeof descriptor === 'undefined') {\n return false\n }\n\n // The property is set to a getter that returns undefined.\n if (\n typeof descriptor.get === 'function' &&\n typeof descriptor.get() === 'undefined'\n ) {\n return false\n }\n\n // The property is set to a value equal to undefined.\n if (typeof descriptor.get === 'undefined' && descriptor.value == null) {\n return false\n }\n\n if (typeof descriptor.set === 'undefined' && !descriptor.configurable) {\n console.error(\n `[MSW] Failed to apply interceptor: the global \\`${propertyName}\\` property is non-configurable. This is likely an issue with your environment. If you are using a framework, please open an issue about this in their repository.`\n )\n return false\n }\n\n return true\n}\n","import { Logger } from '@open-draft/logger'\nimport { Emitter, Listener } from 'strict-event-emitter'\n\nexport type InterceptorEventMap = Record<string, any>\nexport type InterceptorSubscription = () => void\n\n/**\n * Request header name to detect when a single request\n * is being handled by nested interceptors (XHR -> ClientRequest).\n * Obscure by design to prevent collisions with user-defined headers.\n * Ideally, come up with the Interceptor-level mechanism for this.\n * @see https://github.com/mswjs/interceptors/issues/378\n */\nexport const INTERNAL_REQUEST_ID_HEADER_NAME =\n 'x-interceptors-internal-request-id'\n\nexport function getGlobalSymbol<V>(symbol: Symbol): V | undefined {\n return (\n // @ts-ignore https://github.com/Microsoft/TypeScript/issues/24587\n globalThis[symbol] || undefined\n )\n}\n\nfunction setGlobalSymbol(symbol: Symbol, value: any): void {\n // @ts-ignore\n globalThis[symbol] = value\n}\n\nexport function deleteGlobalSymbol(symbol: Symbol): void {\n // @ts-ignore\n delete globalThis[symbol]\n}\n\nexport enum InterceptorReadyState {\n INACTIVE = 'INACTIVE',\n APPLYING = 'APPLYING',\n APPLIED = 'APPLIED',\n DISPOSING = 'DISPOSING',\n DISPOSED = 'DISPOSED',\n}\n\nexport type ExtractEventNames<Events extends Record<string, any>> =\n Events extends Record<infer EventName, any> ? EventName : never\n\nexport class Interceptor<Events extends InterceptorEventMap> {\n protected emitter: Emitter<Events>\n protected subscriptions: Array<InterceptorSubscription>\n protected logger: Logger\n\n public readyState: InterceptorReadyState\n\n constructor(private readonly symbol: symbol) {\n this.readyState = InterceptorReadyState.INACTIVE\n\n this.emitter = new Emitter()\n this.subscriptions = []\n this.logger = new Logger(symbol.description!)\n\n // Do not limit the maximum number of listeners\n // so not to limit the maximum amount of parallel events emitted.\n this.emitter.setMaxListeners(0)\n\n this.logger.info('constructing the interceptor...')\n }\n\n /**\n * Determine if this interceptor can be applied\n * in the current environment.\n */\n protected checkEnvironment(): boolean {\n return true\n }\n\n /**\n * Apply this interceptor to the current process.\n * Returns an already running interceptor instance if it's present.\n */\n public apply(): void {\n const logger = this.logger.extend('apply')\n logger.info('applying the interceptor...')\n\n if (this.readyState === InterceptorReadyState.APPLIED) {\n logger.info('intercepted already applied!')\n return\n }\n\n const shouldApply = this.checkEnvironment()\n\n if (!shouldApply) {\n logger.info('the interceptor cannot be applied in this environment!')\n return\n }\n\n this.readyState = InterceptorReadyState.APPLYING\n\n // Whenever applying a new interceptor, check if it hasn't been applied already.\n // This enables to apply the same interceptor multiple times, for example from a different\n // interceptor, only proxying events but keeping the stubs in a single place.\n const runningInstance = this.getInstance()\n\n if (runningInstance) {\n logger.info('found a running instance, reusing...')\n\n // Proxy any listeners you set on this instance to the running instance.\n this.on = (event, listener) => {\n logger.info('proxying the \"%s\" listener', event)\n\n // Add listeners to the running instance so they appear\n // at the top of the event listeners list and are executed first.\n runningInstance.emitter.addListener(event, listener)\n\n // Ensure that once this interceptor instance is disposed,\n // it removes all listeners it has appended to the running interceptor instance.\n this.subscriptions.push(() => {\n runningInstance.emitter.removeListener(event, listener)\n logger.info('removed proxied \"%s\" listener!', event)\n })\n\n return this\n }\n\n this.readyState = InterceptorReadyState.APPLIED\n\n return\n }\n\n logger.info('no running instance found, setting up a new instance...')\n\n // Setup the interceptor.\n this.setup()\n\n // Store the newly applied interceptor instance globally.\n this.setInstance()\n\n this.readyState = InterceptorReadyState.APPLIED\n }\n\n /**\n * Setup the module augments and stubs necessary for this interceptor.\n * This method is not run if there's a running interceptor instance\n * to prevent instantiating an interceptor multiple times.\n */\n protected setup(): void {}\n\n /**\n * Listen to the interceptor's public events.\n */\n public on<EventName extends ExtractEventNames<Events>>(\n event: EventName,\n listener: Listener<Events[EventName]>\n ): this {\n const logger = this.logger.extend('on')\n\n if (\n this.readyState === InterceptorReadyState.DISPOSING ||\n this.readyState === InterceptorReadyState.DISPOSED\n ) {\n logger.info('cannot listen to events, already disposed!')\n return this\n }\n\n logger.info('adding \"%s\" event listener:', event, listener)\n\n this.emitter.on(event, listener)\n return this\n }\n\n public once<EventName extends ExtractEventNames<Events>>(\n event: EventName,\n listener: Listener<Events[EventName]>\n ): this {\n this.emitter.once(event, listener)\n return this\n }\n\n public off<EventName extends ExtractEventNames<Events>>(\n event: EventName,\n listener: Listener<Events[EventName]>\n ): this {\n this.emitter.off(event, listener)\n return this\n }\n\n public removeAllListeners<EventName extends ExtractEventNames<Events>>(\n event?: EventName\n ): this {\n this.emitter.removeAllListeners(event)\n return this\n }\n\n /**\n * Disposes of any side-effects this interceptor has introduced.\n */\n public dispose(): void {\n const logger = this.logger.extend('dispose')\n\n if (this.readyState === InterceptorReadyState.DISPOSED) {\n logger.info('cannot dispose, already disposed!')\n return\n }\n\n logger.info('disposing the interceptor...')\n this.readyState = InterceptorReadyState.DISPOSING\n\n if (!this.getInstance()) {\n logger.info('no interceptors running, skipping dispose...')\n return\n }\n\n // Delete the global symbol as soon as possible,\n // indicating that the interceptor is no longer running.\n this.clearInstance()\n\n logger.info('global symbol deleted:', getGlobalSymbol(this.symbol))\n\n if (this.subscriptions.length > 0) {\n logger.info('disposing of %d subscriptions...', this.subscriptions.length)\n\n for (const dispose of this.subscriptions) {\n dispose()\n }\n\n this.subscriptions = []\n\n logger.info('disposed of all subscriptions!', this.subscriptions.length)\n }\n\n this.emitter.removeAllListeners()\n logger.info('destroyed the listener!')\n\n this.readyState = InterceptorReadyState.DISPOSED\n }\n\n private getInstance(): this | undefined {\n const instance = getGlobalSymbol<this>(this.symbol)\n this.logger.info('retrieved global instance:', instance?.constructor?.name)\n return instance\n }\n\n private setInstance(): void {\n setGlobalSymbol(this.symbol, this)\n this.logger.info('set global instance!', this.symbol.description)\n }\n\n private clearInstance(): void {\n deleteGlobalSymbol(this.symbol)\n this.logger.info('cleared global instance!', this.symbol.description)\n }\n}\n","/**\n * Generate a random ID string to represent a request.\n * @example\n * createRequestId()\n * // \"f774b6c9c600f\"\n */\nexport function createRequestId(): string {\n return Math.random().toString(16).slice(2)\n}\n","type EventWithTarget<E extends Event, T> = E & { target: T }\n\nexport function bindEvent<E extends Event, T>(\n target: T,\n event: E\n): EventWithTarget<E, T> {\n Object.defineProperties(event, {\n target: {\n value: target,\n enumerable: true,\n writable: true,\n },\n currentTarget: {\n value: target,\n enumerable: true,\n writable: true,\n },\n })\n\n return event as EventWithTarget<E, T>\n}\n","const kCancelable = Symbol('kCancelable')\nconst kDefaultPrevented = Symbol('kDefaultPrevented')\n\n/**\n * A `MessageEvent` superset that supports event cancellation\n * in Node.js. It's rather non-intrusive so it can be safely\n * used in the browser as well.\n *\n * @see https://github.com/nodejs/node/issues/51767\n */\nexport class CancelableMessageEvent<T = any> extends MessageEvent<T> {\n [kCancelable]: boolean;\n [kDefaultPrevented]: boolean\n\n constructor(type: string, init: MessageEventInit<T>) {\n super(type, init)\n this[kCancelable] = !!init.cancelable\n this[kDefaultPrevented] = false\n }\n\n get cancelable() {\n return this[kCancelable]\n }\n\n set cancelable(nextCancelable) {\n this[kCancelable] = nextCancelable\n }\n\n get defaultPrevented() {\n return this[kDefaultPrevented]\n }\n\n set defaultPrevented(nextDefaultPrevented) {\n this[kDefaultPrevented] = nextDefaultPrevented\n }\n\n public preventDefault(): void {\n if (this.cancelable && !this[kDefaultPrevented]) {\n this[kDefaultPrevented] = true\n }\n }\n}\n\ninterface CloseEventInit extends EventInit {\n code?: number\n reason?: string\n wasClean?: boolean\n}\n\nexport class CloseEvent extends Event {\n public code: number\n public reason: string\n public wasClean: boolean\n\n constructor(type: string, init: CloseEventInit = {}) {\n super(type, init)\n this.code = init.code === undefined ? 0 : init.code\n this.reason = init.reason === undefined ? '' : init.reason\n this.wasClean = init.wasClean === undefined ? false : init.wasClean\n }\n}\n\nexport class CancelableCloseEvent extends CloseEvent {\n [kCancelable]: boolean;\n [kDefaultPrevented]: boolean\n\n constructor(type: string, init: CloseEventInit = {}) {\n super(type, init)\n this[kCancelable] = !!init.cancelable\n this[kDefaultPrevented] = false\n }\n\n get cancelable() {\n return this[kCancelable]\n }\n\n set cancelable(nextCancelable) {\n this[kCancelable] = nextCancelable\n }\n\n get defaultPrevented() {\n return this[kDefaultPrevented]\n }\n\n set defaultPrevented(nextDefaultPrevented) {\n this[kDefaultPrevented] = nextDefaultPrevented\n }\n\n public preventDefault(): void {\n if (this.cancelable && !this[kDefaultPrevented]) {\n this[kDefaultPrevented] = true\n }\n }\n}\n","import type { WebSocketData, WebSocketTransport } from './WebSocketTransport'\nimport type { WebSocketEventListener } from './WebSocketOverride'\nimport { bindEvent } from './utils/bindEvent'\nimport { CancelableMessageEvent, CloseEvent } from './utils/events'\nimport { createRequestId } from '../../createRequestId'\n\nconst kEmitter = Symbol('kEmitter')\nconst kBoundListener = Symbol('kBoundListener')\n\ninterface WebSocketClientEventMap {\n message: MessageEvent<WebSocketData>\n close: CloseEvent\n}\n\nexport interface WebSocketClientConnectionProtocol {\n id: string\n url: URL\n send(data: WebSocketData): void\n close(code?: number, reason?: string): void\n}\n\n/**\n * The WebSocket client instance represents an incoming\n * client connection. The user can control the connection,\n * send and receive events.\n */\nexport class WebSocketClientConnection\n implements WebSocketClientConnectionProtocol\n{\n public readonly id: string\n public readonly url: URL\n\n private [kEmitter]: EventTarget\n\n constructor(\n public readonly socket: WebSocket,\n private readonly transport: WebSocketTransport\n ) {\n this.id = createRequestId()\n this.url = new URL(socket.url)\n this[kEmitter] = new EventTarget()\n\n // Emit outgoing client data (\"ws.send()\") as \"message\"\n // events on the \"client\" connection.\n this.transport.addEventListener('outgoing', (event) => {\n const message = bindEvent(\n this.socket,\n new CancelableMessageEvent('message', {\n data: event.data,\n origin: event.origin,\n cancelable: true,\n })\n )\n\n this[kEmitter].dispatchEvent(message)\n\n // This is a bit silly but forward the cancellation state\n // of the \"client\" message event to the \"outgoing\" transport event.\n // This way, other agens (like \"server\" connection) can know\n // whether the client listener has pervented the default.\n if (message.defaultPrevented) {\n event.preventDefault()\n }\n })\n\n /**\n * Emit the \"close\" event on the \"client\" connection\n * whenever the underlying transport is closed.\n * @note \"client.close()\" does NOT dispatch the \"close\"\n * event on the WebSocket because it uses non-configurable\n * close status code. Thus, we listen to the transport\n * instead of the WebSocket's \"close\" event.\n */\n this.transport.addEventListener('close', (event) => {\n this[kEmitter].dispatchEvent(\n bindEvent(this.socket, new CloseEvent('close', event))\n )\n })\n }\n\n /**\n * Listen for the outgoing events from the connected WebSocket client.\n */\n public addEventListener<EventType extends keyof WebSocketClientEventMap>(\n type: EventType,\n listener: WebSocketEventListener<WebSocketClientEventMap[EventType]>,\n options?: AddEventListenerOptions | boolean\n ): void {\n if (!Reflect.has(listener, kBoundListener)) {\n const boundListener = listener.bind(this.socket)\n\n // Store the bound listener on the original listener\n // so the exact bound function can be accessed in \"removeEventListener()\".\n Object.defineProperty(listener, kBoundListener, {\n value: boundListener,\n enumerable: false,\n configurable: false,\n })\n }\n\n this[kEmitter].addEventListener(\n type,\n Reflect.get(listener, kBoundListener) as EventListener,\n options\n )\n }\n\n /**\n * Removes the listener for the given event.\n */\n public removeEventListener<EventType extends keyof WebSocketClientEventMap>(\n event: EventType,\n listener: WebSocketEventListener<WebSocketClientEventMap[EventType]>,\n options?: EventListenerOptions | boolean\n ): void {\n this[kEmitter].removeEventListener(\n event,\n Reflect.get(listener, kBoundListener) as EventListener,\n options\n )\n }\n\n /**\n * Send data to the connected client.\n */\n public send(data: WebSocketData): void {\n this.transport.send(data)\n }\n\n /**\n * Close the WebSocket connection.\n * @param {number} code A status code (see https://www.rfc-editor.org/rfc/rfc6455#section-7.4.1).\n * @param {string} reason A custom connection close reason.\n */\n public close(code?: number, reason?: string): void {\n this.transport.close(code, reason)\n }\n}\n","import { invariant } from 'outvariant'\nimport type { WebSocketData } from './WebSocketTransport'\nimport { bindEvent } from './utils/bindEvent'\nimport { CloseEvent } from './utils/events'\nimport { DeferredPromise } from '@open-draft/deferred-promise'\n\nexport type WebSocketEventListener<\n EventType extends WebSocketEventMap[keyof WebSocketEventMap] = Event\n> = (this: WebSocket, event: EventType) => void\n\nconst WEBSOCKET_CLOSE_CODE_RANGE_ERROR =\n 'InvalidAccessError: close code out of user configurable range'\n\nexport const kPassthroughPromise = Symbol('kPassthroughPromise')\nexport const kOnSend = Symbol('kOnSend')\nexport const kClose = Symbol('kClose')\n\nexport class WebSocketOverride extends EventTarget implements WebSocket {\n static readonly CONNECTING = 0\n static readonly OPEN = 1\n static readonly CLOSING = 2\n static readonly CLOSED = 3\n readonly CONNECTING = 0\n readonly OPEN = 1\n readonly CLOSING = 2\n readonly CLOSED = 3\n\n public url: string\n public protocol: string\n public extensions: string\n public binaryType: BinaryType\n public readyState: number\n public bufferedAmount: number\n\n private _onopen: WebSocketEventListener | null = null\n private _onmessage: WebSocketEventListener<\n MessageEvent<WebSocketData>\n > | null = null\n private _onerror: WebSocketEventListener | null = null\n private _onclose: WebSocketEventListener<CloseEvent> | null = null\n\n private [kPassthroughPromise]: DeferredPromise<boolean>\n private [kOnSend]?: (data: WebSocketData) => void\n\n constructor(url: string | URL, protocols?: string | Array<string>) {\n super()\n this.url = url.toString()\n this.protocol = ''\n this.extensions = ''\n this.binaryType = 'blob'\n this.readyState = this.CONNECTING\n this.bufferedAmount = 0\n\n this[kPassthroughPromise] = new DeferredPromise<boolean>()\n\n queueMicrotask(async () => {\n if (await this[kPassthroughPromise]) {\n return\n }\n\n this.protocol =\n typeof protocols === 'string'\n ? protocols\n : Array.isArray(protocols) && protocols.length > 0\n ? protocols[0]\n : ''\n\n /**\n * @note Check that nothing has prevented this connection\n * (e.g. called `client.close()` in the connection listener).\n * If the connection has been prevented, never dispatch the open event,.\n */\n if (this.readyState === this.CONNECTING) {\n this.readyState = this.OPEN\n this.dispatchEvent(bindEvent(this, new Event('open')))\n }\n })\n }\n\n set onopen(listener: WebSocketEventListener | null) {\n this.removeEventListener('open', this._onopen)\n this._onopen = listener\n if (listener !== null) {\n this.addEventListener('open', listener)\n }\n }\n get onopen(): WebSocketEventListener | null {\n return this._onopen\n }\n\n set onmessage(\n listener: WebSocketEventListener<MessageEvent<WebSocketData>> | null\n ) {\n this.removeEventListener(\n 'message',\n this._onmessage as WebSocketEventListener\n )\n this._onmessage = listener\n if (listener !== null) {\n this.addEventListener('message', listener)\n }\n }\n get onmessage(): WebSocketEventListener<MessageEvent<WebSocketData>> | null {\n return this._onmessage\n }\n\n set onerror(listener: WebSocketEventListener | null) {\n this.removeEventListener('error', this._onerror)\n this._onerror = listener\n if (listener !== null) {\n this.addEventListener('error', listener)\n }\n }\n get onerror(): WebSocketEventListener | null {\n return this._onerror\n }\n\n set onclose(listener: WebSocketEventListener<CloseEvent> | null) {\n this.removeEventListener('close', this._onclose as WebSocketEventListener)\n this._onclose = listener\n if (listener !== null) {\n this.addEventListener('close', listener)\n }\n }\n get onclose(): WebSocketEventListener<CloseEvent> | null {\n return this._onclose\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#ref-for-dom-websocket-send%E2%91%A0\n */\n public send(data: WebSocketData): void {\n if (this.readyState === this.CONNECTING) {\n this.close()\n throw new DOMException('InvalidStateError')\n }\n\n // Sending when the socket is about to close\n // discards the sent data.\n if (this.readyState === this.CLOSING || this.readyState === this.CLOSED) {\n return\n }\n\n // Buffer the data to send in this even loop\n // but send it in the next.\n this.bufferedAmount += getDataSize(data)\n\n queueMicrotask(() => {\n // This is a bit optimistic but since no actual data transfer\n // is involved, all the data will be \"sent\" on the next tick.\n this.bufferedAmount = 0\n\n /**\n * @note Notify the parent about outgoing data.\n * This notifies the transport and the connection\n * listens to the outgoing data to emit the \"message\" event.\n */\n this[kOnSend]?.(data)\n })\n }\n\n public close(code: number = 1000, reason?: string): void {\n invariant(code, WEBSOCKET_CLOSE_CODE_RANGE_ERROR)\n invariant(\n code === 1000 || (code >= 3000 && code <= 4999),\n WEBSOCKET_CLOSE_CODE_RANGE_ERROR\n )\n\n this[kClose](code, reason)\n }\n\n private [kClose](\n code: number = 1000,\n reason?: string,\n wasClean = true\n ): void {\n /**\n * @note Move this check here so that even internall closures,\n * like those triggered by the `server` connection, are not\n * performed twice.\n */\n if (this.readyState === this.CLOSING || this.readyState === this.CLOSED) {\n return\n }\n\n this.readyState = this.CLOSING\n\n queueMicrotask(() => {\n this.readyState = this.CLOSED\n\n this.dispatchEvent(\n bindEvent(\n this,\n new CloseEvent('close', {\n code,\n reason,\n wasClean,\n })\n )\n )\n\n // Remove all event listeners once the socket is closed.\n this._onopen = null\n this._onmessage = null\n this._onerror = null\n this._onclose = null\n })\n }\n\n public addEventListener<K extends keyof WebSocketEventMap>(\n type: K,\n listener: (this: WebSocket, event: WebSocketEventMap[K]) => void,\n options?: boolean | AddEventListenerOptions\n ): void\n public addEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions\n ): void\n public addEventListener(\n type: unknown,\n listener: unknown,\n options?: unknown\n ): void {\n return super.addEventListener(\n type as string,\n listener as EventListener,\n options as AddEventListenerOptions\n )\n }\n\n removeEventListener<K extends keyof WebSocketEventMap>(\n type: K,\n callback: EventListenerOrEventListenerObject | null,\n options?: boolean | EventListenerOptions\n ): void {\n return super.removeEventListener(type, callback, options)\n }\n}\n\nfunction getDataSize(data: WebSocketData): number {\n if (typeof data === 'string') {\n return data.length\n }\n\n if (data instanceof Blob) {\n return data.size\n }\n\n return data.byteLength\n}\n","import { invariant } from 'outvariant'\nimport {\n kClose,\n WebSocketEventListener,\n WebSocketOverride,\n} from './WebSocketOverride'\nimport type { WebSocketData } from './WebSocketTransport'\nimport type { WebSocketClassTransport } from './WebSocketClassTransport'\nimport { bindEvent } from './utils/bindEvent'\nimport {\n CancelableMessageEvent,\n CancelableCloseEvent,\n CloseEvent,\n} from './utils/events'\n\nconst kEmitter = Symbol('kEmitter')\nconst kBoundListener = Symbol('kBoundListener')\nconst kSend = Symbol('kSend')\n\ninterface WebSocketServerEventMap {\n open: Event\n message: MessageEvent<WebSocketData>\n error: Event\n close: CloseEvent\n}\n\n/**\n * The WebSocket server instance represents the actual production\n * WebSocket server connection. It's idle by default but you can\n * establish it by calling `server.connect()`.\n */\nexport class WebSocketServerConnection {\n /**\n * A WebSocket instance connected to the original server.\n */\n private realWebSocket?: WebSocket\n private mockCloseController: AbortController\n private realCloseController: AbortController\n private [kEmitter]: EventTarget\n\n constructor(\n private readonly client: WebSocketOverride,\n private readonly transport: WebSocketClassTransport,\n private readonly createConnection: () => WebSocket\n ) {\n this[kEmitter] = new EventTarget()\n this.mockCloseController = new AbortController()\n this.realCloseController = new AbortController()\n\n // Automatically forward outgoing client events\n // to the actual server unless the outgoing message event\n // has been prevented. The \"outgoing\" transport event it\n // dispatched by the \"client\" connection.\n this.transport.addEventListener('outgoing', (event) => {\n // Ignore client messages if the server connection\n // hasn't been established yet. Nowhere to forward.\n if (typeof this.realWebSocket === 'undefined') {\n return\n }\n\n // Every outgoing client message can prevent this forwarding\n // by preventing the default of the outgoing message event.\n // This listener will be added before user-defined listeners,\n // so execute the logic on the next tick.\n queueMicrotask(() => {\n if (!event.defaultPrevented) {\n /**\n * @note Use the internal send mechanism so consumers can tell\n * apart direct user calls to `server.send()` and internal calls.\n * E.g. MSW has to ignore this internal call to log out messages correctly.\n */\n this[kSend](event.data)\n }\n })\n })\n\n this.transport.addEventListener(\n 'incoming',\n this.handleIncomingMessage.bind(this)\n )\n }\n\n /**\n * The `WebSocket` instance connected to the original server.\n * Accessing this before calling `server.connect()` will throw.\n */\n public get socket(): WebSocket {\n invariant(\n this.realWebSocket,\n 'Cannot access \"socket\" on the original WebSocket server object: the connection is not open. Did you forget to call `server.connect()`?'\n )\n\n return this.realWebSocket\n }\n\n /**\n * Open connection to the original WebSocket server.\n */\n public connect(): void {\n invariant(\n !this.realWebSocket || this.realWebSocket.readyState !== WebSocket.OPEN,\n 'Failed to call \"connect()\" on the original WebSocket instance: the connection already open'\n )\n\n const realWebSocket = this.createConnection()\n\n // Inherit the binary type from the mock WebSocket client.\n realWebSocket.binaryType = this.client.binaryType\n\n // Allow the interceptor to listen to when the server connection\n // has been established. This isn't necessary to operate with the connection\n // but may be beneficial in some cases (like conditionally adding logging).\n realWebSocket.addEventListener(\n 'open',\n (event) => {\n this[kEmitter].dispatchEvent(\n bindEvent(this.realWebSocket!, new Event('open', event))\n )\n },\n { once: true }\n )\n\n realWebSocket.addEventListener('message', (event) => {\n // Dispatch the \"incoming\" transport event instead of\n // invoking the internal handler directly. This way,\n // anyone can listen to the \"incoming\" event but this\n // class is the one resulting in it.\n this.transport.dispatchEvent(\n bindEvent(\n this.realWebSocket!,\n new MessageEvent('incoming', {\n data: event.data,\n origin: event.origin,\n })\n )\n )\n })\n\n // Close the original connection when the mock client closes.\n // E.g. \"client.close()\" was called. This is never forwarded anywhere.\n this.client.addEventListener(\n 'close',\n (event) => {\n this.handleMockClose(event)\n },\n {\n signal: this.mockCloseController.signal,\n }\n )\n\n // Forward the \"close\" event to let the interceptor handle\n // closures initiated by the original server.\n realWebSocket.addEventListener(\n 'close',\n (event) => {\n this.handleRealClose(event)\n },\n {\n signal: this.realCloseController.signal,\n }\n )\n\n realWebSocket.addEventListener('error', () => {\n const errorEvent = bindEvent(\n realWebSocket,\n new Event('error', { cancelable: true })\n )\n\n // Emit the \"error\" event on the `server` connection\n // to let the interceptor react to original server errors.\n this[kEmitter].dispatchEvent(errorEvent)\n\n // If the error event from the original server hasn't been prevented,\n // forward it to the underlying client.\n if (!errorEvent.defaultPrevented) {\n this.client.dispatchEvent(bindEvent(this.client, new Event('error')))\n }\n })\n\n this.realWebSocket = realWebSocket\n }\n\n /**\n * Listen for the incoming events from the original WebSocket server.\n */\n public addEventListener<EventType extends keyof WebSocketServerEventMap>(\n event: EventType,\n listener: WebSocketEventListener<WebSocketServerEventMap[EventType]>,\n options?: AddEventListenerOptions | boolean\n ): void {\n if (!Reflect.has(listener, kBoundListener)) {\n const boundListener = listener.bind(this.client)\n\n // Store the bound listener on the original listener\n // so the exact bound function can be accessed in \"removeEventListener()\".\n Object.defineProperty(listener, kBoundListener, {\n value: boundListener,\n enumerable: false,\n })\n }\n\n this[kEmitter].addEventListener(\n event,\n Reflect.get(listener, kBoundListener) as EventListener,\n options\n )\n }\n\n /**\n * Remove the listener for the given event.\n */\n public removeEventListener<EventType extends keyof WebSocketServerEventMap>(\n event: EventType,\n listener: WebSocketEventListener<WebSocketServerEventMap[EventType]>,\n options?: EventListenerOptions | boolean\n ): void {\n this[kEmitter].removeEventListener(\n event,\n Reflect.get(listener, kBoundListener) as EventListener,\n options\n )\n }\n\n /**\n * Send data to the original WebSocket server.\n * @example\n * server.send('hello')\n * server.send(new Blob(['hello']))\n * server.send(new TextEncoder().encode('hello'))\n */\n public send(data: WebSocketData): void {\n this[kSend](data)\n }\n\n private [kSend](data: WebSocketData): void {\n const { realWebSocket } = this\n\n invariant(\n realWebSocket,\n 'Failed to call \"server.send()\" for \"%s\": the connection is not open. Did you forget to call \"server.connect()\"?',\n this.client.url\n )\n\n // Silently ignore writes on the closed original WebSocket.\n if (\n realWebSocket.readyState === WebSocket.CLOSING ||\n realWebSocket.readyState === WebSocket.CLOSED\n ) {\n return\n }\n\n // Delegate the send to when the original connection is open.\n // Unlike the mock, connecting to the original server may take time\n // so we cannot call this on the next tick.\n if (realWebSocket.readyState === WebSocket.CONNECTING) {\n realWebSocket.addEventListener(\n 'open',\n () => {\n realWebSocket.send(data)\n },\n { once: true }\n )\n return\n }\n\n // Send the data to the original WebSocket server.\n realWebSocket.send(data)\n }\n\n /**\n * Close the actual server connection.\n */\n public close(): void {\n const { realWebSocket } = this\n\n invariant(\n realWebSocket,\n 'Failed to close server connection for \"%s\": the connection is not open. Did you forget to call \"server.connect()\"?',\n this.client.url\n )\n\n // Remove the \"close\" event listener from the server\n // so it doesn't close the underlying WebSocket client\n // when you call \"server.close()\". This also prevents the\n // `close` event on the `server` connection from being dispatched twice.\n this.realCloseController.abort()\n\n if (\n realWebSocket.readyState === WebSocket.CLOSING ||\n realWebSocket.readyState === WebSocket.CLOSED\n ) {\n return\n }\n\n // Close the actual client connection.\n realWebSocket.close()\n\n // Dispatch the \"close\" event on the `server` connection.\n queueMicrotask(() => {\n this[kEmitter].dispatchEvent(\n bindEvent(\n this.realWebSocket,\n new CancelableCloseEvent('close', {\n /**\n * @note `server.close()` in the interceptor\n * always results in clean closures.\n */\n code: 1000,\n cancelable: true,\n })\n )\n )\n })\n }\n\n private handleIncomingMessage(event: MessageEvent<WebSocketData>): void {\n // Clone the event to dispatch it on this class\n // once again and prevent the \"already being dispatched\"\n // exception. Clone it here so we can observe this event\n // being prevented in the \"server.on()\" listeners.\n const messageEvent = bindEvent(\n event.target,\n new CancelableMessageEvent('message', {\n data: event.data,\n origin: event.origin,\n cancelable: true,\n })\n )\n\n /**\n * @note Emit \"message\" event on the server connection\n * instance to let the interceptor know about these\n * incoming events from the original server. In that listener,\n * the interceptor can modify or skip the event forwarding\n * to the mock WebSocket instance.\n */\n this[kEmitter].dispatchEvent(messageEvent)\n\n /**\n * @note Forward the incoming server events to the client.\n * Preventing the default on the message event stops this.\n */\n if (!messageEvent.defaultPrevented) {\n this.client.dispatchEvent(\n bindEvent(\n /**\n * @note Bind the forwarded original server events\n * to the mock WebSocket instance so it would\n * dispatch them straight away.\n */\n this.client,\n // Clone the message event again to prevent\n // the \"already being dispatched\" exception.\n new MessageEvent('message', {\n data: event.data,\n origin: event.origin,\n })\n )\n )\n }\n }\n\n private handleMockClose(_event: Event): void {\n // Close the original connection if the mock client closes.\n if (this.realWebSocket) {\n this.realWebSocket.close()\n }\n }\n\n private handleRealClose(event: CloseEvent): void {\n // For closures originating from the original server,\n // remove the \"close\" listener from the mock client.\n // original close -> (?) client[kClose]() --X--> \"close\" (again).\n this.mockCloseController.abort()\n\n const closeEvent = bindEvent(\n this.realWebSocket,\n new CancelableCloseEvent('close', {\n code: event.code,\n reason: event.reason,\n wasClean: event.wasClean,\n cancelable: true,\n })\n )\n\n this[kEmitter].dispatchEvent(closeEvent)\n\n // If the close event from the server hasn't been prevented,\n // forward the closure to the mock client.\n if (!closeEvent.defaultPrevented) {\n // Close the intercepted client forcefully to\n // allow non-configurable status codes from the server.\n // If the socket has been closed by now, no harm calling\n // this again—it will have no effect.\n this.client[kClose](event.code, event.reason)\n }\n }\n}\n","import { bindEvent } from './utils/bindEvent'\nimport {\n StrictEventListenerOrEventListenerObject,\n WebSocketData,\n WebSocketTransport,\n WebSocketTransportEventMap,\n} from './WebSocketTransport'\nimport { kOnSend, kClose, WebSocketOverride } from './WebSocketOverride'\nimport { CancelableMessageEvent, CloseEvent } from './utils/events'\n\n/**\n * Abstraction over the given mock `WebSocket` instance that allows\n * for controlling that instance (e.g. sending and receiving messages).\n */\nexport class WebSocketClassTransport\n extends EventTarget\n implements WebSocketTransport\n{\n constructor(protected readonly socket: WebSocketOverride) {\n super()\n\n // Emit the \"close\" event on the transport if the close\n // originates from the WebSocket client. E.g. the application\n // calls \"ws.close()\", not the interceptor.\n this.socket.addEventListener('close', (event) => {\n this.dispatchEvent(bindEvent(this.socket, new CloseEvent('close', event)))\n })\n\n /**\n * Emit the \"outgoing\" event on the transport\n * whenever the WebSocket client sends data (\"ws.send()\").\n */\n this.socket[kOnSend] = (data) => {\n this.dispatchEvent(\n bindEvent(\n this.socket,\n // Dispatch this as cancelable because \"client\" connection\n // re-creates this message event (cannot dispatch the same event).\n new CancelableMessageEvent('outgoing', {\n data,\n origin: this.socket.url,\n cancelable: true,\n })\n )\n )\n }\n }\n\n public addEventListener<EventType extends keyof WebSocketTransportEventMap>(\n type: EventType,\n callback: StrictEventListenerOrEventListenerObject<\n WebSocketTransportEventMap[EventType]\n > | null,\n options?: boolean | AddEventListenerOptions\n ): void {\n return super.addEventListener(type, callback as EventListener, options)\n }\n\n public dispatchEvent<EventType extends keyof WebSocketTransportEventMap>(\n event: WebSocketTransportEventMap[EventType]\n ): boolean {\n return super.dispatchEvent(event)\n }\n\n public send(data: WebSocketData): void {\n queueMicrotask(() => {\n if (\n this.socket.readyState === this.socket.CLOSING ||\n this.socket.readyState === this.socket.CLOSED\n ) {\n return\n }\n\n const dispatchEvent = () => {\n this.socket.dispatchEvent(\n bindEvent(\n /**\n * @note Setting this event's \"target\" to the\n * WebSocket override instance is important.\n * This way it can tell apart original incoming events\n * (must be forwarded to the transport) from the\n * mocked message events like the one below\n * (must be dispatched on the client instance).\n */\n this.socket,\n new MessageEvent('message', {\n data,\n origin: this.socket.url,\n })\n )\n )\n }\n\n if (this.socket.readyState === this.socket.CONNECTING) {\n this.socket.addEventListener(\n 'open',\n () => {\n dispatchEvent()\n },\n { once: true }\n )\n } else {\n dispatchEvent()\n }\n })\n }\n\n public close(code: number, reason?: string): void {\n /**\n * @note Call the internal close method directly\n * to allow closing the connection with the status codes\n * that are non-configurable by the user (> 1000 <= 1015).\n */\n this.socket[kClose](code, reason)\n }\n}\n","import { Interceptor } from '../../Interceptor'\nimport {\n type WebSocketClientConnectionProtocol,\n WebSocketClientConnection,\n} from './WebSocketClientConnection'\nimport { WebSocketServerConnection } from './WebSocketServerConnection'\nimport { WebSocketClassTransport } from './WebSocketClassTransport'\nimport {\n kClose,\n kPassthroughPromise,\n WebSocketOverride,\n} from './WebSocketOverride'\nimport { bindEvent } from './utils/bindEvent'\nimport { hasConfigurableGlobal } from '../../utils/hasConfigurableGlobal'\n\nexport { type WebSocketData, WebSocketTransport } from './WebSocketTransport'\nexport {\n WebSocketClientConnection,\n WebSocketClientConnectionProtocol,\n WebSocketServerConnection,\n}\n\nexport type WebSocketEventMap = {\n connection: [args: WebSocketConnectionData]\n}\n\nexport type WebSocketConnectionData = {\n /**\n * The incoming WebSocket client connection.\n */\n client: WebSocketClientConnection\n\n /**\n * The original WebSocket server connection.\n */\n server: WebSocketServerConnection\n\n /**\n * The connection information.\n */\n info: {\n /**\n * The protocols supported by the WebSocket client.\n */\n protocols: string | Array<string> | undefined\n }\n}\n\n/**\n * Intercept the outgoing WebSocket connections created using\n * the global `WebSocket` class.\n */\nexport class WebSocketInterceptor extends Interceptor<WebSocketEventMap> {\n static symbol = Symbol('websocket')\n\n constructor() {\n super(WebSocketInterceptor.symbol)\n }\n\n protected checkEnvironment(): boolean {\n return hasConfigurableGlobal('WebSocket')\n }\n\n protected setup(): void {\n const originalWebSocketDescriptor = Object.getOwnPropertyDescriptor(\n globalThis,\n 'WebSocket'\n )\n\n const WebSocketProxy = new Proxy(globalThis.WebSocket, {\n construct: (\n target,\n args: ConstructorParameters<typeof globalThis.WebSocket>,\n newTarget\n ) => {\n const [url, protocols] = args\n\n const createConnection = (): WebSocket => {\n return Reflect.construct(target, args, newTarget)\n }\n\n // All WebSocket instances are mocked and don't forward\n // any events to the original server (no connection established).\n // To forward the events, the user must use the \"server.send()\" API.\n const socket = new WebSocketOverride(url, protocols)\n const transport = new WebSocketClassTransport(socket)\n\n // Emit the \"connection\" event to the interceptor on the next tick\n // so the client can modify WebSocket options, like \"binaryType\"\n // while the connection is already pending.\n queueMicrotask(() => {\n try {\n const server = new WebSocketServerConnection(\n socket,\n transport,\n createConnection\n )\n\n // The \"globalThis.WebSocket\" class stands for\n // the client-side connection. Assume it's established\n // as soon as the WebSocket instance is constructed.\n const hasConnectionListeners = this.emitter.emit('connection', {\n client: new WebSocketClientConnection(socket, transport),\n server,\n info: {\n protocols,\n },\n })\n\n if (hasConnectionListeners) {\n socket[kPassthroughPromise].resolve(false)\n } else {\n socket[kPassthroughPromise].resolve(true)\n\n server.connect()\n\n // Forward the \"open\" event from the original server\n // to the mock WebSocket client in the case of a passthrough connection.\n server.addEventListener('open', () => {\n socket.dispatchEvent(bindEvent(socket, new Event('open')))\n\n // Forward the original connection protocol to the\n // mock WebSocket client.\n if (server['realWebSocket']) {\n socket.protocol = server['realWebSocket'].protocol\n }\n })\n }\n } catch (error) {\n /**\n * @note Translate unhandled exceptions during the connection\n * handling (i.e. interceptor exceptions) as WebSocket connection\n * closures with error. This prevents from the exceptions occurring\n * in `queueMicrotask` from being process-wide and uncatchable.\n */\n if (error instanceof Error) {\n socket.dispatchEvent(new Event('error'))\n\n // No need to close the connection if it's already being closed.\n // E.g. the interceptor called `client.close()` and then threw an error.\n if (\n socket.readyState !== WebSocket.CLOSING &&\n socket.readyState !== WebSocket.CLOSED\n ) {\n socket[kClose](1011, error.message, false)\n }\n\n console.error(error)\n }\n }\n })\n\n return socket\n },\n })\n\n Object.defineProperty(globalThis, 'WebSocket', {\n value: WebSocketProxy,\n configurable: true,\n })\n\n this.subscriptions.push(() => {\n Object.defineProperty(\n globalThis,\n 'WebSocket',\n originalWebSocketDescriptor!\n )\n })\n }\n}\n","import { WebSocketInterceptor } from '@mswjs/interceptors/WebSocket'\n\nexport const webSocketInterceptor = new WebSocketInterceptor()\n","import { AsyncLocalStorage } from 'node:async_hooks'\nimport { ClientRequestInterceptor } from '@mswjs/interceptors/ClientRequest'\nimport { XMLHttpRequestInterceptor } from '@mswjs/interceptors/XMLHttpRequest'\nimport { FetchInterceptor } from '@mswjs/interceptors/fetch'\nimport { HandlersController } from '~/core/SetupApi'\nimport type { RequestHandler } from '~/core/handlers/RequestHandler'\nimport type { WebSocketHandler } from '~/core/handlers/WebSocketHandler'\nimport type { SetupServer } from './glossary'\nimport { SetupServerCommonApi } from './SetupServerCommonApi'\n\nconst store = new AsyncLocalStorage<RequestHandlersContext>()\n\ntype RequestHandlersContext = {\n initialHandlers: Array<RequestHandler | WebSocketHandler>\n handlers: Array<RequestHandler | WebSocketHandler>\n}\n\n/**\n * A handlers controller that utilizes `AsyncLocalStorage` in Node.js\n * to prevent the request handlers list from being a shared state\n * across mutliple tests.\n */\nclass AsyncHandlersController implements HandlersController {\n private rootContext: RequestHandlersContext\n\n constructor(initialHandlers: Array<RequestHandler | WebSocketHandler>) {\n this.rootContext = { initialHandlers, handlers: [] }\n }\n\n get context(): RequestHandlersContext {\n return store.getStore() || this.rootContext\n }\n\n public prepend(runtimeHandlers: Array<RequestHandler | WebSocketHandler>) {\n this.context.handlers.unshift(...runtimeHandlers)\n }\n\n public reset(nextHandlers: Array<RequestHandler | WebSocketHandler>) {\n const context = this.context\n context.handlers = []\n context.initialHandlers =\n nextHandlers.length > 0 ? nextHandlers : context.initialHandlers\n }\n\n public currentHandlers(): Array<RequestHandler | WebSocketHandler> {\n const { initialHandlers, handlers } = this.context\n return handlers.concat(initialHandlers)\n }\n}\n\nexport class SetupServerApi\n extends SetupServerCommonApi\n implements SetupServer\n{\n constructor(handlers: Array<RequestHandler | WebSocketHandler>) {\n super(\n [ClientRequestInterceptor, XMLHttpRequestInterceptor, FetchInterceptor],\n handlers,\n )\n\n this.handlersController = new AsyncHandlersController(handlers)\n }\n\n public boundary<Args extends Array<any>, R>(\n callback: (...args: Args) => R,\n ): (...args: Args) => R {\n return (...args: Args): R => {\n return store.run<any, any>(\n {\n initialHandlers: this.handlersController.currentHandlers(),\n handlers: [],\n },\n callback,\n ...args,\n )\n }\n }\n\n public close(): void {\n super.close()\n store.disable()\n }\n}\n","export function notImplemented(): never {\n throw new Error('Not implemented');\n}\n","import { LanguageModelV1 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockLanguageModelV1 implements LanguageModelV1 {\n readonly specificationVersion = 'v1';\n\n readonly provider: LanguageModelV1['provider'];\n readonly modelId: LanguageModelV1['modelId'];\n\n supportsUrl: LanguageModelV1['supportsUrl'];\n doGenerate: LanguageModelV1['doGenerate'];\n doStream: LanguageModelV1['doStream'];\n\n readonly defaultObjectGenerationMode: LanguageModelV1['defaultObjectGenerationMode'];\n readonly supportsStructuredOutputs: LanguageModelV1['supportsStructuredOutputs'];\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n supportsUrl = undefined,\n doGenerate = notImplemented,\n doStream = notImplemented,\n defaultObjectGenerationMode = undefined,\n supportsStructuredOutputs = undefined,\n }: {\n provider?: LanguageModelV1['provider'];\n modelId?: LanguageModelV1['modelId'];\n supportsUrl?: LanguageModelV1['supportsUrl'];\n doGenerate?: LanguageModelV1['doGenerate'];\n doStream?: LanguageModelV1['doStream'];\n defaultObjectGenerationMode?: LanguageModelV1['defaultObjectGenerationMode'];\n supportsStructuredOutputs?: LanguageModelV1['supportsStructuredOutputs'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.doGenerate = doGenerate;\n this.doStream = doStream;\n this.supportsUrl = supportsUrl;\n\n this.defaultObjectGenerationMode = defaultObjectGenerationMode;\n this.supportsStructuredOutputs = supportsStructuredOutputs;\n }\n}\n","export function convertArrayToReadableStream<T>(\n values: T[],\n): ReadableStream<T> {\n return new ReadableStream({\n start(controller) {\n try {\n for (const value of values) {\n controller.enqueue(value);\n }\n } finally {\n controller.close();\n }\n },\n });\n}\n","export function notImplemented(): never {\n throw new Error('Not implemented');\n}\n","import { LanguageModelV2 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockLanguageModelV2 implements LanguageModelV2 {\n readonly specificationVersion = 'v2';\n\n private _supportedUrls: () => LanguageModelV2['supportedUrls'];\n\n readonly provider: LanguageModelV2['provider'];\n readonly modelId: LanguageModelV2['modelId'];\n\n doGenerate: LanguageModelV2['doGenerate'];\n doStream: LanguageModelV2['doStream'];\n\n doGenerateCalls: Parameters<LanguageModelV2['doGenerate']>[0][] = [];\n doStreamCalls: Parameters<LanguageModelV2['doStream']>[0][] = [];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n supportedUrls = {},\n doGenerate = notImplemented,\n doStream = notImplemented,\n }: {\n provider?: LanguageModelV2['provider'];\n modelId?: LanguageModelV2['modelId'];\n supportedUrls?:\n | LanguageModelV2['supportedUrls']\n | (() => LanguageModelV2['supportedUrls']);\n doGenerate?:\n | LanguageModelV2['doGenerate']\n | Awaited<ReturnType<LanguageModelV2['doGenerate']>>\n | Awaited<ReturnType<LanguageModelV2['doGenerate']>>[];\n doStream?:\n | LanguageModelV2['doStream']\n | Awaited<ReturnType<LanguageModelV2['doStream']>>\n | Awaited<ReturnType<LanguageModelV2['doStream']>>[];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.doGenerate = async options => {\n this.doGenerateCalls.push(options);\n\n if (typeof doGenerate === 'function') {\n return doGenerate(options);\n } else if (Array.isArray(doGenerate)) {\n return doGenerate[this.doGenerateCalls.length];\n } else {\n return doGenerate;\n }\n };\n this.doStream = async options => {\n this.doStreamCalls.push(options);\n\n if (typeof doStream === 'function') {\n return doStream(options);\n } else if (Array.isArray(doStream)) {\n return doStream[this.doStreamCalls.length];\n } else {\n return doStream;\n }\n };\n this._supportedUrls =\n typeof supportedUrls === 'function'\n ? supportedUrls\n : async () => supportedUrls;\n }\n\n get supportedUrls() {\n return this._supportedUrls();\n }\n}\n","import type { LanguageModelV2, LanguageModelV2CallOptions } from '@ai-sdk/provider-v5';\nimport { MockLanguageModelV2 } from '@internal/ai-sdk-v5/test';\nimport type { MastraLanguageModelV2 } from '../../llm/model/shared.types';\nimport { AISDKV5LanguageModel } from '../../llm/model/aisdk/v5/model';\n\nexport class MastraLanguageModelV2Mock implements MastraLanguageModelV2 {\n readonly specificationVersion = 'v2';\n readonly provider: LanguageModelV2['provider'];\n readonly modelId: LanguageModelV2['modelId'];\n readonly supportedUrls: LanguageModelV2['supportedUrls'];\n #model: MockLanguageModelV2;\n\n constructor(config: {\n provider?: LanguageModelV2['provider'];\n modelId?: LanguageModelV2['modelId'];\n supportedUrls?: LanguageModelV2['supportedUrls'] | (() => LanguageModelV2['supportedUrls']);\n doGenerate?:\n | LanguageModelV2['doGenerate']\n | Awaited<ReturnType<LanguageModelV2['doGenerate']>>\n | Awaited<ReturnType<LanguageModelV2['doGenerate']>>[];\n doStream?:\n | LanguageModelV2['doStream']\n | Awaited<ReturnType<LanguageModelV2['doStream']>>\n | Awaited<ReturnType<LanguageModelV2['doStream']>>[];\n }) {\n this.#model = new MockLanguageModelV2(config);\n this.provider = this.#model.provider;\n this.modelId = this.#model.modelId;\n this.supportedUrls = this.#model.supportedUrls;\n }\n\n doGenerate(options: LanguageModelV2CallOptions) {\n const aiSDKModel = new AISDKV5LanguageModel(this.#model);\n\n return aiSDKModel.doGenerate(options);\n }\n\n doStream(options: LanguageModelV2CallOptions) {\n const aiSDKModel = new AISDKV5LanguageModel(this.#model);\n\n return aiSDKModel.doStream(options);\n }\n\n get doGenerateCalls(): LanguageModelV2CallOptions[] {\n return this.#model.doGenerateCalls;\n }\n get doStreamCalls(): LanguageModelV2CallOptions[] {\n return this.#model.doStreamCalls;\n }\n}\n","import { simulateReadableStream } from '@internal/ai-sdk-v4';\nimport { MockLanguageModelV1 } from '@internal/ai-sdk-v4/test';\nimport { convertArrayToReadableStream, MockLanguageModelV2 } from '@internal/ai-sdk-v5/test';\n\nimport { MastraLLMV1 } from '../llm/model/model';\nimport { MastraLanguageModelV2Mock } from '../loop/test-utils/MastraLanguageModelV2Mock';\n\n// Re-export for external use\nexport { simulateReadableStream, MastraLanguageModelV2Mock };\n\nexport function createMockModel({\n objectGenerationMode,\n mockText,\n spyGenerate,\n spyStream,\n version = 'v2',\n}: {\n objectGenerationMode?: 'json';\n mockText: string | Record<string, any>;\n spyGenerate?: (props: any) => void;\n spyStream?: (props: any) => void;\n version?: 'v1' | 'v2';\n}) {\n const text = typeof mockText === 'string' ? mockText : JSON.stringify(mockText);\n const finalText = objectGenerationMode === 'json' ? JSON.stringify(mockText) : text;\n\n if (version === 'v1') {\n // Return a v1 model\n const mockModel = new MockLanguageModelV1({\n defaultObjectGenerationMode: objectGenerationMode,\n doGenerate: async props => {\n if (spyGenerate) {\n spyGenerate(props);\n }\n\n return {\n rawCall: { rawPrompt: null, rawSettings: {} },\n finishReason: 'stop',\n usage: { promptTokens: 10, completionTokens: 20 },\n text: finalText,\n };\n },\n doStream: async props => {\n if (spyStream) {\n spyStream(props);\n }\n\n // Split the mock text into chunks for streaming\n const chunks = finalText.split(' ').map(word => ({\n type: 'text-delta' as const,\n textDelta: word + ' ',\n }));\n\n return {\n stream: simulateReadableStream({\n chunks: [\n ...chunks,\n {\n type: 'finish',\n finishReason: 'stop',\n logprobs: undefined,\n usage: { completionTokens: 10, promptTokens: 3 },\n },\n ],\n }),\n rawCall: { rawPrompt: null, rawSettings: {} },\n };\n },\n });\n\n return mockModel;\n }\n\n // Return a v2 model (default)\n const mockModel = new MockLanguageModelV2({\n doGenerate: async props => {\n if (spyGenerate) {\n spyGenerate(props);\n }\n\n return {\n rawCall: { rawPrompt: null, rawSettings: {} },\n finishReason: 'stop',\n usage: { inputTokens: 10, outputTokens: 20, totalTokens: 30 },\n content: [\n {\n type: 'text',\n text: finalText,\n },\n ],\n warnings: [],\n };\n },\n doStream: async props => {\n if (spyStream) {\n spyStream(props);\n }\n\n return {\n rawCall: { rawPrompt: null, rawSettings: {} },\n warnings: [],\n stream: convertArrayToReadableStream([\n { type: 'stream-start', warnings: [] },\n { type: 'response-metadata', id: 'id-0', modelId: 'mock-model-id', timestamp: new Date(0) },\n { type: 'text-start', id: 'text-1' },\n { type: 'text-delta', id: 'text-1', delta: finalText },\n { type: 'text-end', id: 'text-1' },\n {\n type: 'finish',\n finishReason: 'stop',\n usage: { inputTokens: 10, outputTokens: 20, totalTokens: 30 },\n },\n ]),\n };\n },\n });\n\n return mockModel;\n}\n\nexport class MockProvider extends MastraLLMV1 {\n constructor({\n spyGenerate,\n spyStream,\n objectGenerationMode,\n mockText = 'Hello, world!',\n }: {\n spyGenerate?: (props: any) => void;\n spyStream?: (props: any) => void;\n objectGenerationMode?: 'json';\n mockText?: string | Record<string, any>;\n }) {\n const mockModel = new MockLanguageModelV1({\n defaultObjectGenerationMode: objectGenerationMode,\n doGenerate: async props => {\n if (spyGenerate) {\n spyGenerate(props);\n }\n\n if (objectGenerationMode === 'json') {\n return {\n rawCall: { rawPrompt: null, rawSettings: {} },\n finishReason: 'stop',\n usage: { promptTokens: 10, completionTokens: 20 },\n text: JSON.stringify(mockText),\n };\n }\n\n return {\n rawCall: { rawPrompt: null, rawSettings: {} },\n finishReason: 'stop',\n usage: { promptTokens: 10, completionTokens: 20 },\n text: typeof mockText === 'string' ? mockText : JSON.stringify(mockText),\n };\n },\n doStream: async props => {\n if (spyStream) {\n spyStream(props);\n }\n\n const text = typeof mockText === 'string' ? mockText : JSON.stringify(mockText);\n // Split the mock text into chunks for streaming\n const chunks = text.split(' ').map(word => ({\n type: 'text-delta' as const,\n textDelta: word + ' ',\n }));\n\n return {\n stream: simulateReadableStream({\n chunks: [\n ...chunks,\n {\n type: 'finish',\n finishReason: 'stop',\n logprobs: undefined,\n usage: { completionTokens: 10, promptTokens: 3 },\n },\n ],\n }),\n rawCall: { rawPrompt: null, rawSettings: {} },\n };\n },\n });\n\n super({ model: mockModel });\n }\n\n // @ts-ignore\n stream(...args: any): PromiseLike<StreamReturn<any, any, any>> {\n // @ts-ignore\n const result = super.stream(...args);\n\n return {\n ...result,\n // @ts-ignore on await read the stream\n then: (onfulfilled, onrejected) => {\n // @ts-ignore\n return result.baseStream.pipeTo(new WritableStream()).then(onfulfilled, onrejected);\n },\n };\n }\n\n // @ts-ignore\n __streamObject(...args): PromiseLike<StreamObjectResult<any>> {\n // @ts-ignore\n const result = super.__streamObject(...args);\n\n return {\n ...result,\n // @ts-ignore on await read the stream\n then: (onfulfilled, onrejected) => {\n // @ts-ignore\n return result.baseStream.pipeTo(new WritableStream()).then(onfulfilled, onrejected);\n },\n };\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/@ai-sdk/provider-utils/test/dist/chunk-D6YTI3O5.mjs","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/outvariant@1.4.3/node_modules/outvariant/src/format.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/outvariant@1.4.3/node_modules/outvariant/src/invariant.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/msw@2.7.0_@types+node@20.17.24_typescript@5.6.3/node_modules/msw/src/core/utils/internal/devUtils.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/msw@2.7.0_@types+node@20.17.24_typescript@5.6.3/node_modules/msw/src/core/utils/internal/checkGlobals.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/strict-event-emitter@0.5.1/node_modules/strict-event-emitter/src/MemoryLeakError.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/strict-event-emitter@0.5.1/node_modules/strict-event-emitter/src/Emitter.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/msw@2.7.0_@types+node@20.17.24_typescript@5.6.3/node_modules/msw/src/core/utils/internal/getCallFrame.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/msw@2.7.0_@types+node@20.17.24_typescript@5.6.3/node_modules/msw/src/core/utils/internal/isIterable.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/msw@2.7.0_@types+node@20.17.24_typescript@5.6.3/node_modules/msw/src/core/handlers/RequestHandler.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@bundled-es-modules+statuses@1.0.1/node_modules/@bundled-es-modules/statuses/index-esm.js","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/is-node-process@1.2.0/node_modules/is-node-process/src/index.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@open-draft+logger@0.3.0/node_modules/@open-draft/logger/lib/index.mjs","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/utils/fetchUtils.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/utils/bufferUtils.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@bundled-es-modules+cookie@2.0.1/node_modules/@bundled-es-modules/cookie/index-esm.js","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@bundled-es-modules+tough-cookie@0.1.6/node_modules/@bundled-es-modules/tough-cookie/index-esm.js","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/msw@2.7.0_@types+node@20.17.24_typescript@5.6.3/node_modules/msw/src/core/utils/cookieStore.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/headers-polyfill@4.0.3/node_modules/headers-polyfill/node_modules/set-cookie-parser/lib/set-cookie.js","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/headers-polyfill@4.0.3/node_modules/headers-polyfill/src/Headers.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@open-draft+deferred-promise@2.2.0/node_modules/@open-draft/deferred-promise/src/createDeferredExecutor.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@open-draft+deferred-promise@2.2.0/node_modules/@open-draft/deferred-promise/src/DeferredPromise.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/msw@2.7.0_@types+node@20.17.24_typescript@5.6.3/node_modules/msw/src/core/index.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/utils/getUrlByRequestOptions.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/utils/cloneObject.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/interceptors/ClientRequest/utils/normalizeClientRequestArgs.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/utils/hasConfigurableGlobal.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/Interceptor.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/createRequestId.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/interceptors/WebSocket/utils/bindEvent.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/interceptors/WebSocket/utils/events.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/interceptors/WebSocket/WebSocketClientConnection.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/interceptors/WebSocket/WebSocketOverride.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/interceptors/WebSocket/WebSocketServerConnection.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/interceptors/WebSocket/WebSocketClassTransport.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/@mswjs+interceptors@0.37.5/node_modules/@mswjs/interceptors/src/interceptors/WebSocket/index.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/msw@2.7.0_@types+node@20.17.24_typescript@5.6.3/node_modules/msw/src/core/ws/webSocketInterceptor.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@2.2.8_zod@3.25.76/node_modules/node_modules/.pnpm/msw@2.7.0_@types+node@20.17.24_typescript@5.6.3/node_modules/msw/src/node/SetupServerApi.ts","../../../../node_modules/.pnpm/ai@4.3.19_react@19.2.3_zod@3.25.76/node_modules/ai/core/test/not-implemented.ts","../../../../node_modules/.pnpm/ai@4.3.19_react@19.2.3_zod@3.25.76/node_modules/ai/core/test/mock-language-model-v1.ts","../../../../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.17_zod@3.25.76/node_modules/@ai-sdk/provider-utils/src/test/convert-array-to-readable-stream.ts","../../../../node_modules/.pnpm/ai@5.0.101_zod@3.25.76/node_modules/ai/src/test/not-implemented.ts","../../../../node_modules/.pnpm/ai@5.0.101_zod@3.25.76/node_modules/ai/src/test/mock-language-model-v2.ts","../../src/loop/test-utils/MastraLanguageModelV2Mock.ts","../../src/test-utils/llm-mock.ts"],"names":["__require","message","match","error","formatMessage","_RequestHandler","_a","_b","__defProp","message2","warn","__create","__getOwnPropDesc","__getOwnPropNames","__getProtoOf","__hasOwnProp","__commonJS","__copyProps","__toESM","parse","__require2","location","Store","pathMatch","MemoryCookieStore","isObject","require_cookie","domainMatch","Cookie","CookieJar","store","http","source_default","value","cookies","splitCookiesString","Logger","hasConfigurableGlobal","getGlobalSymbol","setGlobalSymbol","deleteGlobalSymbol","Interceptor","logger","createRequestId","kEmitter","kBoundListener","invariant","AsyncLocalStorage","notImplemented","AISDKV5LanguageModel","mockModel","simulateReadableStream","MastraLLMV1"],"mappings":";;;;;;AAAA,IAAI,YAAY,MAAA,CAAO,cAAA;AACvB,IAAI,eAAA,GAAkB,CAAC,GAAA,EAAK,GAAA,EAAK,UAAU,GAAA,IAAO,GAAA,GAAM,SAAA,CAAU,GAAA,EAAK,GAAA,EAAK,EAAE,YAAY,IAAA,EAAM,YAAA,EAAc,MAAM,QAAA,EAAU,IAAA,EAAM,OAAO,CAAA,GAAI,GAAA,CAAI,GAAG,CAAA,GAAI,KAAA;AAC1J,IAAIA,UAAAA,mBAA6B,CAAA,CAAC,CAAA,KAAM,OAAOA,2BAAA,KAAY,WAAA,GAAcA,2BAAA,GAAU,OAAO,KAAA,KAAU,WAAA,GAAc,IAAI,KAAA,CAAM,CAAA,EAAG;EAC7H,GAAA,EAAK,CAAC,GAAG,CAAA,KAAA,CAAO,OAAOA,gCAAY,WAAA,GAAcA,2BAAA,GAAU,GAAG,CAAC;AACjE,CAAC,CAAA,GAAI,CAAA,EAAG,SAAS,CAAA,EAAG;AAClB,EAAA,IAAI,OAAOA,2BAAA,KAAY,WAAA;AACrB,IAAA,OAAOA,2BAAA,CAAQ,KAAA,CAAM,IAAA,EAAM,SAAS,CAAA;AACtC,EAAA,MAAM,KAAA,CAAM,sBAAA,GAAyB,CAAA,GAAI,oBAAoB,CAAA;AAC/D,CAAC,CAAA;AACD,IAAI,aAAA,GAAgB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAA,KAAU;AACvC,EAAA,eAAA,CAAgB,KAAK,OAAO,GAAA,KAAQ,WAAW,GAAA,GAAM,EAAA,GAAK,KAAK,KAAK,CAAA;AACpE,EAAA,OAAO,KAAA;AACT,CAAA;AACA,IAAI,aAAA,GAAgB,CAAC,GAAA,EAAK,MAAA,EAAQ,GAAA,KAAQ;AACxC,EAAA,IAAI,CAAC,MAAA,CAAO,GAAA,CAAI,GAAG,CAAA;AACjB,IAAA,MAAM,SAAA,CAAU,YAAY,GAAG,CAAA;AACnC,CAAA;AACA,IAAI,YAAA,GAAe,CAAC,GAAA,EAAK,MAAA,EAAQ,MAAA,KAAW;AAC1C,EAAA,aAAA,CAAc,GAAA,EAAK,QAAQ,yBAAyB,CAAA;AACpD,EAAA,OAAO,SAAS,MAAA,CAAO,IAAA,CAAK,GAAG,CAAA,GAAI,MAAA,CAAO,IAAI,GAAG,CAAA;AACnD,CAAA;AACA,IAAI,YAAA,GAAe,CAAC,GAAA,EAAK,MAAA,EAAQ,KAAA,KAAU;AACzC,EAAA,IAAI,MAAA,CAAO,IAAI,GAAG,CAAA;AAChB,IAAA,MAAM,UAAU,mDAAmD,CAAA;AACrE,EAAA,MAAA,YAAkB,OAAA,GAAU,OAAO,GAAA,CAAI,GAAG,IAAI,MAAA,CAAO,GAAA,CAAI,KAAK,KAAK,CAAA;AACrE,CAAA;AACA,IAAI,YAAA,GAAe,CAAC,GAAA,EAAK,MAAA,EAAQ,OAAO,MAAA,KAAW;AACjD,EAAA,aAAA,CAAc,GAAA,EAAK,QAAQ,wBAAwB,CAAA;AAChB,EAAA,MAAA,CAAO,GAAA,CAAI,KAAK,KAAK,CAAA;AACxD,EAAA,OAAO,KAAA;AACT,CAAA;AACA,IAAI,eAAA,GAAkB,CAAC,GAAA,EAAK,MAAA,EAAQ,MAAA,KAAW;AAC7C,EAAA,aAAA,CAAc,GAAA,EAAK,QAAQ,uBAAuB,CAAA;AAClD,EAAA,OAAO,MAAA;AACT,CAAA;AClCA,IAAM,eAAA,GAAkB,mBAAA;AAExB,SAAS,mBAAA,CAAoB,YAAiB,IAAA,EAAmB;AAC/D,EAAA,QAAQ,IAAA;IAEN,KAAK,GAAA;AACH,MAAA,OAAO,UAAA;IAGT,KAAK,GAAA;IACL,KAAK,GAAA;AACH,MAAA,OAAO,OAAO,UAAU,CAAA;IAG1B,KAAK,GAAA;AACH,MAAA,OAAO,IAAA,CAAK,UAAU,UAAU,CAAA;AAGlC,IAAA,KAAK,GAAA,EAAK;AAER,MAAA,IAAI,OAAO,eAAe,QAAA,EAAU;AAClC,QAAA,OAAO,UAAA;AACT,MAAA;AAEA,MAAA,MAAM,IAAA,GAAO,IAAA,CAAK,SAAA,CAAU,UAAU,CAAA;AAGtC,MAAA,IAAI,SAAS,IAAA,IAAQ,IAAA,KAAS,QAAQ,kBAAA,CAAmB,IAAA,CAAK,IAAI,CAAA,EAAG;AACnE,QAAA,OAAO,UAAA;AACT,MAAA;AAEA,MAAA,OAAO,IAAA;AACT,IAAA;AACF;AACF;AAEO,SAAS,MAAA,CAAOC,aAAoB,WAAA,EAA4B;AACrE,EAAA,IAAI,WAAA,CAAY,WAAW,CAAA,EAAG;AAC5B,IAAA,OAAOA,QAAAA;AACT,EAAA;AAEA,EAAA,IAAI,eAAA,GAAkB,CAAA;AACtB,EAAA,IAAI,mBAAmBA,QAAAA,CAAQ,OAAA;AAC7B,IAAA,eAAA;IACA,CAACC,MAAAA,EAAO,SAAA,EAAW,CAAA,EAAG,IAAA,KAAS;AAC7B,MAAA,MAAM,UAAA,GAAa,YAAY,eAAA,CAAA;AAC/B,MAAA,MAAM,KAAA,GAAQ,mBAAA,CAAoB,UAAA,EAAY,IAAI,CAAA;AAElD,MAAA,IAAI,CAAC,SAAA,EAAW;AACd,QAAA,eAAA,EAAA;AACA,QAAA,OAAO,KAAA;AACT,MAAA;AAEA,MAAA,OAAOA,MAAAA;AACT,IAAA;AACF,GAAA;AAGA,EAAA,IAAI,eAAA,GAAkB,YAAY,MAAA,EAAQ;AACxC,IAAA,gBAAA,IAAoB,IAAI,WAAA,CAAY,KAAA,CAAM,eAAe,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA,CAAA,CAAA;AACrE,EAAA;AAEA,EAAA,gBAAA,GAAmB,gBAAA,CAAiB,OAAA,CAAQ,SAAA,EAAW,GAAG,CAAA;AAE1D,EAAA,OAAO,gBAAA;AACT;AC/DA,IAAM,sBAAA,GAAyB,CAAA;AAO/B,SAAS,gBAAgBC,MAAAA,EAAoB;AAC3C,EAAA,IAAI,CAACA,OAAM,KAAA,EAAO;AAChB,IAAA;AACF,EAAA;AAEA,EAAA,MAAM,SAAA,GAAYA,MAAAA,CAAM,KAAA,CAAM,KAAA,CAAM,IAAI,CAAA;AACxC,EAAA,SAAA,CAAU,MAAA,CAAO,GAAG,sBAAsB,CAAA;AAC1CA,EAAAA,MAAAA,CAAM,KAAA,GAAQ,SAAA,CAAU,IAAA,CAAK,IAAI,CAAA;AACnC;AAEO,IAAM,cAAA,GAAN,cAA6B,KAAA,CAAM;AAGxC,EAAA,WAAA,CAA4BF,aAAoB,WAAA,EAAoB;AAClE,IAAA,KAAA,CAAMA,QAAO,CAAA;AADa,IAAA,IAAA,CAAA,OAAA,GAAAA,QAAAA;AAF5B,IAAA,IAAA,CAAA,IAAA,GAAO,qBAAA;AAIL,IAAA,IAAA,CAAK,OAAA,GAAU,MAAA,CAAOA,QAAAA,EAAS,GAAG,WAAW,CAAA;AAC7C,IAAA,eAAA,CAAgB,IAAI,CAAA;AACtB,EAAA;AACF,CAAA;AA2BO,IAAM,SAAA,GAAuB,CAClC,SAAA,EACAA,QAAAA,EAAAA,GACG,WAAA,KACmB;AACtB,EAAA,IAAI,CAAC,SAAA,EAAW;AACd,IAAA,MAAM,IAAI,cAAA,CAAeA,QAAAA,EAAS,GAAG,WAAW,CAAA;AAClD,EAAA;AACF,CAAA;AAEA,SAAA,CAAU,EAAA,GAAK,CAAC,gBAAA,EAAkB,SAAA,EAAWA,aAAY,WAAA,KAAgB;AACvE,EAAA,IAAI,CAAC,SAAA,EAAW;AACd,IAAA,MAAMG,cAAAA,GACJ,YAAY,MAAA,KAAW,CAAA,GAAIH,WAAU,MAAA,CAAOA,QAAAA,EAAS,GAAG,WAAW,CAAA;AACrE,IAAA,IAAIE,MAAAA;AAEJ,IAAA,IAAI;AACFA,MAAAA,MAAAA,GAAQ,OAAA,CAAQ,UAAU,gBAAA,EAA4C;AACpEC,QAAAA;AACD,OAAA,CAAA;AACH,IAAA,CAAA,CAAA,OAAS,GAAA,EAAP;AACAD,MAAAA,MAAAA,GAAS,iBAAwCC,cAAa,CAAA;AAChE,IAAA;AAEA,IAAA,MAAMD,MAAAA;AACR,EAAA;AACF,CAAA;AC9EA,IAAM,cAAA,GAAiB,OAAA;AAKvB,SAAS,aAAA,CAAcF,aAAoB,WAAA,EAA4B;AACrE,EAAA,MAAM,mBAAA,GAAsB,MAAA,CAAOA,QAAAA,EAAS,GAAG,WAAW,CAAA;AAC1D,EAAA,OAAO,CAAA,EAAG,cAAc,CAAA,CAAA,EAAI,mBAAmB,CAAA,CAAA;AACjD;AAKA,SAAS,IAAA,CAAKA,aAAoB,WAAA,EAA0B;AAE1D,EAAA,OAAA,CAAQ,IAAA,CAAK,aAAA,CAAcA,QAAAA,EAAS,GAAG,WAAW,CAAC,CAAA;AACrD;AAKA,SAAS,KAAA,CAAMA,aAAoB,WAAA,EAA0B;AAE3D,EAAA,OAAA,CAAQ,KAAA,CAAM,aAAA,CAAcA,QAAAA,EAAS,GAAG,WAAW,CAAC,CAAA;AACtD;AAEO,IAAM,QAAA,GAAW;AACtB,EAAA,aAAA;AACA,EAAA,IAAA;AACA,EAAA;AACF,CAAA;AC7BO,SAAS,YAAA,GAAe;AAO7B,EAAA,SAAA;AACE,IAAA,OAAO,GAAA,KAAQ,WAAA;IACf,QAAA,CAAS,aAAA;AACP,MAAA,CAAA,+QAAA;AACF;AACF,GAAA;AACF;ACdO,IAAM,eAAA,GAAN,cAA8B,KAAA,CAAM;EACzC,WAAA,CACkB,OAAA,EACA,MACA,KAAA,EAChB;AACA,IAAA,KAAA;AACE,MAAA,CAAA,4CAAA,EAA+C,KAAA,CAAA,CAAA,EAAS,IAAA,CAAK,QAAA,EAAS,CAAA,iEAAA;AACxE,KAAA;AANgB,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AACA,IAAA,IAAA,CAAA,IAAA,GAAA,IAAA;AACA,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAKhB,IAAA,IAAA,CAAK,IAAA,GAAO,6BAAA;AACd,EAAA;AACF,CAAA;ACSO,IAAM,WAAN,MAAuC;EAO5C,OAAO,aAAA,CACL,SACA,SAAA,EACQ;AACR,IAAA,OAAO,OAAA,CAAQ,cAAmB,SAAS,CAAA;AAC7C,EAAA;EAEA,WAAA,GAAc;AACZ,IAAA,IAAA,CAAK,MAAA,uBAAa,GAAA,EAAA;AAClB,IAAA,IAAA,CAAK,eAAe,QAAA,CAAQ,mBAAA;AAC5B,IAAA,IAAA,CAAK,iCAAA,GAAoC,KAAA;AAC3C,EAAA;EAEQ,kBAAA,CACN,iBAAA,EACA,WACA,QAAA,EACM;AACN,IAAA,IAAA,CAAK,IAAA;AACH,MAAA,iBAAA;MAEA,GAAI,CAAC,WAAW,QAAQ;AAE1B,KAAA;AACF,EAAA;AAEQ,EAAA,aAAA,CACN,SAAA,EACiC;AAGjC,IAAA,OAAO,KAAA,CAAM,SAAA,CAAU,MAAA,CAAO,KAAA,CAAM,EAAA,EAAI,IAAA,CAAK,MAAA,CAAO,GAAA,CAAI,SAAS,CAAC,CAAA,IAAK,EAAA;AACzE,EAAA;AAEQ,EAAA,eAAA,CACN,WACA,QAAA,EACoC;AACpC,IAAA,MAAM,KAAA,GAAQ,SAAA,CAAU,OAAA,CAAQ,QAAQ,CAAA;AAExC,IAAA,IAAI,QAAQ,EAAA,EAAI;AACd,MAAA,SAAA,CAAU,MAAA,CAAO,OAAO,CAAC,CAAA;AAC3B,IAAA;AAEA,IAAA,OAAO,EAAA;AACT,EAAA;AAEQ,EAAA,iBAAA,CACN,WACA,QAAA,EAC6B;AAC7B,IAAA,MAAM,YAAA,GAAe,IAAI,IAAA,KAA+B;AACtD,MAAA,IAAA,CAAK,cAAA,CAAe,WAAW,YAAY,CAAA;AAM3C,MAAA,OAAO,QAAA,CAAS,KAAA,CAAM,IAAA,EAAM,IAAI,CAAA;AAClC,IAAA,CAAA;AAGA,IAAA,MAAA,CAAO,eAAe,YAAA,EAAc,MAAA,EAAQ,EAAE,KAAA,EAAO,QAAA,CAAS,MAAM,CAAA;AAEpE,IAAA,OAAO,YAAA;AACT,EAAA;AAEO,EAAA,eAAA,CAAgB,YAAA,EAA4B;AACjD,IAAA,IAAA,CAAK,YAAA,GAAe,YAAA;AACpB,IAAA,OAAO,IAAA;AACT,EAAA;;;;;;EAOO,eAAA,GAA0B;AAC/B,IAAA,OAAO,IAAA,CAAK,YAAA;AACd,EAAA;;;;;EAMO,UAAA,GAAkC;AACvC,IAAA,OAAO,KAAA,CAAM,IAAA,CAAK,IAAA,CAAK,MAAA,CAAO,MAAM,CAAA;AACtC,EAAA;;;;;;;;;;AAWO,EAAA,IAAA,CACL,cACG,IAAA,EACM;AACT,IAAA,MAAM,SAAA,GAAY,IAAA,CAAK,aAAA,CAAc,SAAS,CAAA;AAC9C,IAAA,SAAA,CAAU,OAAA,CAAQ,CAAC,QAAA,KAAa;AAC9B,MAAA,QAAA,CAAS,KAAA,CAAM,MAAM,IAAI,CAAA;IAC3B,CAAC,CAAA;AAED,IAAA,OAAO,UAAU,MAAA,GAAS,CAAA;AAC5B,EAAA;AAUO,EAAA,WAAA,CACL,WACA,QAAA,EACM;AAEN,IAAA,IAAA,CAAK,kBAAA,CAAmB,aAAA,EAAe,SAAA,EAAW,QAAQ,CAAA;AAE1D,IAAA,MAAM,gBAAgB,IAAA,CAAK,aAAA,CAAc,SAAS,CAAA,CAAE,OAAO,QAAQ,CAAA;AACnE,IAAA,IAAA,CAAK,MAAA,CAAO,GAAA,CAAI,SAAA,EAAW,aAAa,CAAA;AAExC,IAAA,IACE,IAAA,CAAK,YAAA,GAAe,CAAA,IACpB,IAAA,CAAK,aAAA,CAAc,SAAS,CAAA,GAAI,IAAA,CAAK,YAAA,IACrC,CAAC,IAAA,CAAK,iCAAA,EACN;AACA,MAAA,IAAA,CAAK,iCAAA,GAAoC,IAAA;AAEzC,MAAA,MAAM,oBAAoB,IAAI,eAAA;AAC5B,QAAA,IAAA;AACA,QAAA,SAAA;AACA,QAAA,IAAA,CAAK,cAAc,SAAS;AAC9B,OAAA;AACA,MAAA,OAAA,CAAQ,KAAK,iBAAiB,CAAA;AAChC,IAAA;AAEA,IAAA,OAAO,IAAA;AACT,EAAA;AAUO,EAAA,EAAA,CACL,WACA,QAAA,EACM;AACN,IAAA,OAAO,IAAA,CAAK,WAAA,CAAY,SAAA,EAAW,QAAQ,CAAA;AAC7C,EAAA;AAUO,EAAA,IAAA,CACL,WACA,QAAA,EACM;AACN,IAAA,OAAO,IAAA,CAAK,WAAA;AACV,MAAA,SAAA;MACA,IAAA,CAAK,iBAAA,CAAkB,WAAW,QAAQ;AAC5C,KAAA;AACF,EAAA;AAUO,EAAA,eAAA,CACL,WACA,QAAA,EACM;AACN,IAAA,MAAM,SAAA,GAAY,IAAA,CAAK,aAAA,CAAc,SAAS,CAAA;AAE9C,IAAA,IAAI,SAAA,CAAU,SAAS,CAAA,EAAG;AACxB,MAAA,MAAM,aAAA,GAAgB,CAAC,QAAQ,CAAA,CAAE,OAAO,SAAS,CAAA;AACjD,MAAA,IAAA,CAAK,MAAA,CAAO,GAAA,CAAI,SAAA,EAAW,aAAa,CAAA;IAC1C,CAAA,MAAO;AACL,MAAA,IAAA,CAAK,OAAO,GAAA,CAAI,SAAA,EAAW,SAAA,CAAU,MAAA,CAAO,QAAQ,CAAC,CAAA;AACvD,IAAA;AAEA,IAAA,OAAO,IAAA;AACT,EAAA;AAUO,EAAA,mBAAA,CACL,WACA,QAAA,EACM;AACN,IAAA,OAAO,IAAA,CAAK,eAAA;AACV,MAAA,SAAA;MACA,IAAA,CAAK,iBAAA,CAAkB,WAAW,QAAQ;AAC5C,KAAA;AACF,EAAA;AAUO,EAAA,cAAA,CACL,WACA,QAAA,EACM;AACN,IAAA,MAAM,SAAA,GAAY,IAAA,CAAK,aAAA,CAAc,SAAS,CAAA;AAE9C,IAAA,IAAI,SAAA,CAAU,SAAS,CAAA,EAAG;AACxB,MAAA,IAAA,CAAK,eAAA,CAAgB,WAAW,QAAQ,CAAA;AACxC,MAAA,IAAA,CAAK,MAAA,CAAO,GAAA,CAAI,SAAA,EAAW,SAAS,CAAA;AAGpC,MAAA,IAAA,CAAK,kBAAA,CAAmB,gBAAA,EAAkB,SAAA,EAAW,QAAQ,CAAA;AAC/D,IAAA;AAEA,IAAA,OAAO,IAAA;AACT,EAAA;;;;;;;AAgBO,EAAA,GAAA,CACL,WACA,QAAA,EACM;AACN,IAAA,OAAO,IAAA,CAAK,cAAA,CAAe,SAAA,EAAW,QAAQ,CAAA;AAChD,EAAA;AAMO,EAAA,kBAAA,CACL,SAAA,EACM;AACN,IAAA,IAAI,SAAA,EAAW;AACb,MAAA,IAAA,CAAK,MAAA,CAAO,OAAO,SAAS,CAAA;IAC9B,CAAA,MAAO;AACL,MAAA,IAAA,CAAK,OAAO,KAAA,EAAA;AACd,IAAA;AAEA,IAAA,OAAO,IAAA;AACT,EAAA;;;;AASO,EAAA,SAAA,CAAU,SAAA,EAA8C;AAC7D,IAAA,OAAO,KAAA,CAAM,IAAA,CAAK,IAAA,CAAK,aAAA,CAAc,SAAS,CAAC,CAAA;AACjD,EAAA;;;;AASO,EAAA,aAAA,CAAc,SAAA,EAAsD;AACzE,IAAA,OAAO,IAAA,CAAK,aAAA,CAAc,SAAS,CAAA,CAAE,MAAA;AACvC,EAAA;AAEO,EAAA,YAAA,CACL,SAAA,EACoC;AACpC,IAAA,OAAO,IAAA,CAAK,UAAU,SAAS,CAAA;AACjC,EAAA;AACF,CAAA;AA7TO,IAAM,OAAA,GAAN,QAAA;AAAM,OAAA,CAKJ,mBAAA,GAAsB,EAAA;AC1B/B,IAAM,YAAA,GAAe,8BAAA;AAErB,IAAM,WAAA,GACJ,gFAAA;AAKK,SAAS,aAAaE,MAAAA,EAAc;AAEzC,EAAA,MAAM,QAAQA,MAAAA,CAAM,KAAA;AAEpB,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA;AACF,EAAA;AAEA,EAAA,MAAM,SAAmB,KAAA,CAAM,KAAA,CAAM,IAAI,CAAA,CAAE,MAAM,CAAC,CAAA;AAIlD,EAAA,MAAM,gBAAA,GAAmB,MAAA,CAAO,IAAA,CAAK,CAAC,KAAA,KAAU;AAC9C,IAAA,OAAO,EAAE,YAAA,CAAa,IAAA,CAAK,KAAK,CAAA,IAAK,WAAA,CAAY,KAAK,KAAK,CAAA,CAAA;EAC7D,CAAC,CAAA;AAED,EAAA,IAAI,CAAC,gBAAA,EAAkB;AACrB,IAAA;AACF,EAAA;AAGA,EAAA,MAAM,eAAA,GAAkB,iBACrB,OAAA,CAAQ,yBAAA,EAA2B,IAAI,CAAA,CACvC,OAAA,CAAQ,MAAM,EAAE,CAAA;AACnB,EAAA,OAAO,eAAA;AACT;ACfO,SAAS,WACd,EAAA,EAG0D;AAC1D,EAAA,IAAI,CAAC,EAAA,EAAI;AACP,IAAA,OAAO,KAAA;AACT,EAAA;AAEA,EAAA,OACE,OAAA,CAAQ,GAAA,CAAI,EAAA,EAAI,MAAA,CAAO,QAAQ,KAAK,OAAA,CAAQ,GAAA,CAAI,EAAA,EAAI,MAAA,CAAO,aAAa,CAAA;AAE5E;AC8EO,IAAe,eAAA,GAAf,MAAeE,gBAAAA,CAKpB;AA8BA,EAAA,WAAA,CAAY,IAAA,EAAuD;AAxBlD,IAAA,aAAA,CAAA,MAAA,QAAA,CAAA;AAEV,IAAA,aAAA,CAAA,MAAA,MAAA,CAAA;;AAOG,IAAA,aAAA,CAAA,MAAA,UAAA,CAAA;AACF,IAAA,aAAA,CAAA,MAAA,kBAAA,CAAA;AAWA,IAAA,aAAA,CAAA,MAAA,wBAAA,CAAA;AACA,IAAA,aAAA,CAAA,MAAA,SAAA,CAAA;AAGN,IAAA,IAAA,CAAK,WAAW,IAAA,CAAK,QAAA;AACrB,IAAA,IAAA,CAAK,UAAU,IAAA,CAAK,OAAA;AAEpB,IAAA,MAAM,SAAA,GAAY,YAAA,CAAa,IAAI,KAAA,EAAO,CAAA;AAE1C,IAAA,IAAA,CAAK,IAAA,GAAO;AACV,MAAA,GAAG,IAAA,CAAK,IAAA;AACR,MAAA;AACF,KAAA;AAEA,IAAA,IAAA,CAAK,MAAA,GAAS,KAAA;AACd,IAAA,IAAA,CAAK,MAAA,GAAS,gBAAA;AAChB,EAAA;;;;;AAwBA,EAAA,MAAM,MAAM,KAAA,EAGc;AACxB,IAAA,OAAO,EAAA;AACT,EAAA;;;;;;;;AASA,EAAA,MAAa,KAAK,IAAA,EAGG;AACnB,IAAA,MAAM,YAAA,GAAe,MAAM,IAAA,CAAK,KAAA,CAAM;AACpC,MAAA,OAAA,EAAS,IAAA,CAAK,OAAA;AACd,MAAA,iBAAA,EAAmB,IAAA,CAAK;AACzB,KAAA,CAAA;AAED,IAAA,OAAO,KAAK,SAAA,CAAU;AACpB,MAAA,OAAA,EAAS,IAAA,CAAK,OAAA;AACd,MAAA,YAAA;AACA,MAAA,iBAAA,EAAmB,IAAA,CAAK;AACzB,KAAA,CAAA;AACH,EAAA;AAEU,EAAA,kBAAA,CAAmB,KAAA,EAGV;AACjB,IAAA,OAAO,EAAA;AACT,EAAA;;;;AAKQ,EAAA,0BAAA,CACN,OAAA,EACgC;AAChC,IAAA,MAAM,aAAA,GAAgBA,gBAAAA,CAAe,KAAA,CAAM,GAAA,CAAI,OAAO,CAAA;AAEtD,IAAA,IAAI,OAAO,kBAAkB,WAAA,EAAa;AACxC,MAAA,OAAO,aAAA;AACT,IAAA;AAEA,IAAA,MAAM,aAAA,GAAgB,QAAQ,KAAA,EAAA;AAC9BA,IAAAA,gBAAAA,CAAe,KAAA,CAAM,GAAA,CAAI,OAAA,EAAS,aAAa,CAAA;AAE/C,IAAA,OAAO,aAAA;AACT,EAAA;;;;;AAMA,EAAA,MAAa,IAAI,IAAA,EAI+C;AApPlE,IAAA,IAAAC,GAAAA,EAAAC,GAAAA;AAqPI,IAAA,IAAI,IAAA,CAAK,YAAUD,GAAAA,GAAA,IAAA,CAAK,YAAL,IAAA,GAAA,MAAA,GAAAA,IAAc,IAAA,CAAA,EAAM;AACrC,MAAA,OAAO,IAAA;AACT,IAAA;AAOA,IAAA,MAAM,YAAA,GAAe,IAAA,CAAK,0BAAA,CAA2B,IAAA,CAAK,OAAO,CAAA;AAEjE,IAAA,MAAM,YAAA,GAAe,MAAM,IAAA,CAAK,KAAA,CAAM;AACpC,MAAA,OAAA,EAAS,IAAA,CAAK,OAAA;AACd,MAAA,iBAAA,EAAmB,IAAA,CAAK;AACzB,KAAA,CAAA;AACD,IAAA,MAAM,sBAAA,GAAyB,KAAK,SAAA,CAAU;AAC5C,MAAA,OAAA,EAAS,IAAA,CAAK,OAAA;AACd,MAAA,YAAA;AACA,MAAA,iBAAA,EAAmB,IAAA,CAAK;AACzB,KAAA,CAAA;AAED,IAAA,IAAI,CAAC,sBAAA,EAAwB;AAC3B,MAAA,OAAO,IAAA;AACT,IAAA;AAIA,IAAA,IAAI,IAAA,CAAK,YAAUC,GAAAA,GAAA,IAAA,CAAK,YAAL,IAAA,GAAA,MAAA,GAAAA,IAAc,IAAA,CAAA,EAAM;AACrC,MAAA,OAAO,IAAA;AACT,IAAA;AAKA,IAAA,IAAA,CAAK,MAAA,GAAS,IAAA;AAId,IAAA,MAAM,eAAA,GAAkB,IAAA,CAAK,YAAA,CAAa,IAAA,CAAK,QAAQ,CAAA;AAEvD,IAAA,MAAM,cAAA,GAAiB,KAAK,kBAAA,CAAmB;AAC7C,MAAA,OAAA,EAAS,IAAA,CAAK,OAAA;AACd,MAAA;AACD,KAAA,CAAA;AAED,IAAA,MAAM,wBACJ,eAAA,CAAgB;MACd,GAAG,cAAA;AACH,MAAA,SAAA,EAAW,IAAA,CAAK,SAAA;AAChB,MAAA,OAAA,EAAS,IAAA,CAAK;KACf,CAAA,CACD,KAAA,CAAM,CAAC,eAAA,KAAoB;AAE3B,MAAA,IAAI,2BAA2B,QAAA,EAAU;AACvC,QAAA,OAAO,eAAA;AACT,MAAA;AAGA,MAAA,MAAM,eAAA;IACR,CAAC,CAAA;AAED,IAAA,MAAM,iBAAiB,MAAM,qBAAA;AAE7B,IAAA,MAAM,eAAA,GAAkB,KAAK,qBAAA,CAAsB;;;MAGjD,OAAA,EAAS,YAAA;AACT,MAAA,SAAA,EAAW,IAAA,CAAK,SAAA;MAChB,QAAA,EAAU,cAAA;AACV,MAAA;AACD,KAAA,CAAA;AAED,IAAA,OAAO,eAAA;AACT,EAAA;AAEQ,EAAA,YAAA,CACN,QAAA,EACkC;AAClC,IAAA,OAAO,OAAO,IAAA,KAAmD;AAnUrE,MAAA,IAAAD,GAAAA;AAoUM,MAAA,IAAI,CAAC,KAAK,gBAAA,EAAkB;AAC1B,QAAA,MAAM,MAAA,GAAS,MAAM,QAAA,CAAS,IAAI,CAAA;AAClC,QAAA,IAAI,CAAC,UAAA,CAAW,MAAM,CAAA,EAAG;AACvB,UAAA,OAAO,MAAA;AACT,QAAA;AACA,QAAA,IAAA,CAAK,gBAAA,GACH,MAAA,CAAO,QAAA,IAAY,MAAA,GACf,MAAA,CAAO,MAAA,CAAO,QAAQ,CAAA,EAAA,GACtB,MAAA,CAAO,MAAA,CAAO,aAAa,CAAA,EAAA;AACnC,MAAA;AAGA,MAAA,IAAA,CAAK,MAAA,GAAS,KAAA;AAEd,MAAA,MAAM,EAAE,IAAA,EAAM,KAAA,KAAU,MAAM,IAAA,CAAK,iBAAiB,IAAA,EAAA;AACpD,MAAA,MAAM,eAAe,MAAM,KAAA;AAE3B,MAAA,IAAI,YAAA,EAAc;AAChB,QAAA,IAAA,CAAK,sBAAA,GAAyB,aAAa,KAAA,EAAA;AAC7C,MAAA;AAEA,MAAA,IAAI,IAAA,EAAM;AAGR,QAAA,IAAA,CAAK,MAAA,GAAS,IAAA;AAId,QAAA,OAAA,CAAOA,MAAA,IAAA,CAAK,sBAAA,KAAL,IAAA,GAAA,MAAA,GAAAA,IAA6B,KAAA,EAAA;AACtC,MAAA;AAEA,MAAA,OAAO,YAAA;AACT,IAAA,CAAA;AACF,EAAA;AAEQ,EAAA,qBAAA,CAAsB,IAAA,EAKkB;AAC9C,IAAA,OAAO;MACL,OAAA,EAAS,IAAA;AACT,MAAA,OAAA,EAAS,IAAA,CAAK,OAAA;AACd,MAAA,SAAA,EAAW,IAAA,CAAK,SAAA;AAChB,MAAA,QAAA,EAAU,IAAA,CAAK,QAAA;AACf,MAAA,YAAA,EAAc,IAAA,CAAK;AACrB,KAAA;AACF,EAAA;AACF,CAAA;AAlQE,aAAA,CANoB,eAAA,EAMb,OAAA,kBAAQ,IAAI,OAAA,EAGjB,CAAA;ACtHJ,IAAI,WAAW,MAAA,CAAO,MAAA;AACtB,IAAIE,aAAY,MAAA,CAAO,cAAA;AACvB,IAAI,mBAAmB,MAAA,CAAO,wBAAA;AAC9B,IAAI,oBAAoB,MAAA,CAAO,mBAAA;AAC/B,IAAI,eAAe,MAAA,CAAO,cAAA;AAC1B,IAAI,YAAA,GAAe,OAAO,SAAA,CAAU,cAAA;AACpC,IAAI,UAAA,GAAa,CAAC,EAAA,EAAI,GAAA,KAAQ,SAASR,UAAAA,GAAY;AACjD,EAAA,OAAO,WAAW,EAAA,CAAG,kBAAkB,EAAE,CAAA,CAAE,CAAC,CAAC,CAAA,EAAA,CAAI,GAAA,GAAM,EAAE,SAAS,EAAA,IAAM,OAAA,EAAS,GAAG,GAAG,GAAA,CAAI,OAAA;AAC7F,CAAA;AACA,IAAI,WAAA,GAAc,CAAC,EAAA,EAAI,IAAA,EAAM,QAAQ,IAAA,KAAS;AAC5C,EAAA,IAAI,QAAQ,OAAO,IAAA,KAAS,QAAA,IAAY,OAAO,SAAS,UAAA,EAAY;AAClE,IAAA,KAAA,IAAS,GAAA,IAAO,kBAAkB,IAAI,CAAA;AACpC,MAAA,IAAI,CAAC,YAAA,CAAa,IAAA,CAAK,EAAA,EAAI,GAAG,KAAK,GAAA,KAAQ,MAAA;AACzCQ,QAAAA,UAAAA,CAAU,IAAI,GAAA,EAAK,EAAE,GAAA,EAAK,MAAM,KAAK,GAAG,CAAA,EAAG,UAAA,EAAY,EAAE,OAAO,gBAAA,CAAiB,IAAA,EAAM,GAAG,CAAA,CAAA,IAAM,IAAA,CAAK,YAAY,CAAA;AACvH,EAAA;AACA,EAAA,OAAO,EAAA;AACT,CAAA;AACA,IAAI,OAAA,GAAU,CAAC,GAAA,EAAK,UAAA,EAAY,YAAY,MAAA,GAAS,GAAA,IAAO,IAAA,GAAO,QAAA,CAAS,YAAA,CAAa,GAAG,CAAC,CAAA,GAAI,EAAA,EAAI,WAAA;;;;;AAK3DA,EAAAA,UAAAA,CAAU,QAAQ,SAAA,EAAW,EAAE,OAAO,GAAA,EAAK,UAAA,EAAY,MAAM,CAAA;AACrG,EAAA;AACF,CAAA,CAAA;AAGA,IAAI,gBAAgB,UAAA,CAAW;AAC7B,EAAA,kCAAA,CAAmC,SAAS,MAAA,EAAQ;AAClD,IAAA,MAAA,CAAO,OAAA,GAAU;MACf,KAAA,EAAO,UAAA;MACP,KAAA,EAAO,qBAAA;MACP,KAAA,EAAO,YAAA;MACP,KAAA,EAAO,aAAA;MACP,KAAA,EAAO,IAAA;MACP,KAAA,EAAO,SAAA;MACP,KAAA,EAAO,UAAA;MACP,KAAA,EAAO,+BAAA;MACP,KAAA,EAAO,YAAA;MACP,KAAA,EAAO,eAAA;MACP,KAAA,EAAO,iBAAA;MACP,KAAA,EAAO,cAAA;MACP,KAAA,EAAO,kBAAA;MACP,KAAA,EAAO,SAAA;MACP,KAAA,EAAO,kBAAA;MACP,KAAA,EAAO,mBAAA;MACP,KAAA,EAAO,OAAA;MACP,KAAA,EAAO,WAAA;MACP,KAAA,EAAO,cAAA;MACP,KAAA,EAAO,WAAA;MACP,KAAA,EAAO,oBAAA;MACP,KAAA,EAAO,oBAAA;MACP,KAAA,EAAO,aAAA;MACP,KAAA,EAAO,cAAA;MACP,KAAA,EAAO,kBAAA;MACP,KAAA,EAAO,WAAA;MACP,KAAA,EAAO,WAAA;MACP,KAAA,EAAO,oBAAA;MACP,KAAA,EAAO,gBAAA;MACP,KAAA,EAAO,+BAAA;MACP,KAAA,EAAO,iBAAA;MACP,KAAA,EAAO,UAAA;MACP,KAAA,EAAO,MAAA;MACP,KAAA,EAAO,iBAAA;MACP,KAAA,EAAO,qBAAA;MACP,KAAA,EAAO,mBAAA;MACP,KAAA,EAAO,cAAA;MACP,KAAA,EAAO,wBAAA;MACP,KAAA,EAAO,uBAAA;MACP,KAAA,EAAO,oBAAA;MACP,KAAA,EAAO,cAAA;MACP,KAAA,EAAO,qBAAA;MACP,KAAA,EAAO,sBAAA;MACP,KAAA,EAAO,QAAA;MACP,KAAA,EAAO,mBAAA;MACP,KAAA,EAAO,WAAA;MACP,KAAA,EAAO,kBAAA;MACP,KAAA,EAAO,uBAAA;MACP,KAAA,EAAO,mBAAA;MACP,KAAA,EAAO,iCAAA;MACP,KAAA,EAAO,+BAAA;MACP,KAAA,EAAO,uBAAA;MACP,KAAA,EAAO,iBAAA;MACP,KAAA,EAAO,aAAA;MACP,KAAA,EAAO,qBAAA;MACP,KAAA,EAAO,iBAAA;MACP,KAAA,EAAO,4BAAA;MACP,KAAA,EAAO,yBAAA;MACP,KAAA,EAAO,sBAAA;MACP,KAAA,EAAO,eAAA;MACP,KAAA,EAAO,0BAAA;MACP,KAAA,EAAO,cAAA;MACP,KAAA,EAAO;AACT,KAAA;AACF,EAAA;AACF,CAAC,CAAA;AAGD,IAAI,mBAAmB,UAAA,CAAW;AAChC,EAAA,gCAAA,CAAiC,SAAS,MAAA,EAAQ;AAEhD,IAAA,IAAI,QAAQ,aAAA,EAAA;AACZ,IAAA,MAAA,CAAO,OAAA,GAAU,OAAA;AACjB,IAAA,OAAA,CAAQ,OAAA,GAAU,KAAA;AAClB,IAAA,OAAA,CAAQ,IAAA,GAAO,6BAA6B,KAAK,CAAA;AACjD,IAAA,OAAA,CAAQ,KAAA,GAAQ,qBAAqB,KAAK,CAAA;AAC1C,IAAA,OAAA,CAAQ,QAAA,GAAW;MACjB,GAAA,EAAK,IAAA;MACL,GAAA,EAAK,IAAA;MACL,GAAA,EAAK,IAAA;MACL,GAAA,EAAK,IAAA;MACL,GAAA,EAAK,IAAA;MACL,GAAA,EAAK,IAAA;MACL,GAAA,EAAK;AACP,KAAA;AACA,IAAA,OAAA,CAAQ,KAAA,GAAQ;MACd,GAAA,EAAK,IAAA;MACL,GAAA,EAAK,IAAA;MACL,GAAA,EAAK;AACP,KAAA;AACA,IAAA,OAAA,CAAQ,KAAA,GAAQ;MACd,GAAA,EAAK,IAAA;MACL,GAAA,EAAK,IAAA;MACL,GAAA,EAAK;AACP,KAAA;AACA,IAAA,SAAS,6BAA6B,MAAA,EAAQ;AAC5C,MAAA,IAAI,MAAM,EAAA;AACV,MAAA,MAAA,CAAO,KAAK,MAAM,CAAA,CAAE,OAAA,CAAQ,SAAS,YAAY,IAAA,EAAM;AACrD,QAAA,IAAIP,QAAAA,GAAU,OAAO,IAAI,CAAA;AACzB,QAAA,IAAI,OAAA,GAAU,OAAO,IAAI,CAAA;AACzB,QAAA,GAAA,CAAIA,QAAAA,CAAQ,WAAA,EAAa,CAAA,GAAI,OAAA;MAC/B,CAAC,CAAA;AACD,MAAA,OAAO,GAAA;AACT,IAAA;AACA,IAAA,SAAS,qBAAqB,MAAA,EAAQ;AACpC,MAAA,OAAO,OAAO,IAAA,CAAK,MAAM,EAAE,GAAA,CAAI,SAAS,QAAQ,IAAA,EAAM;AACpD,QAAA,OAAO,OAAO,IAAI,CAAA;MACpB,CAAC,CAAA;AACH,IAAA;AACA,IAAA,SAAS,cAAcA,QAAAA,EAAS;AAC9B,MAAA,IAAI,GAAA,GAAMA,SAAQ,WAAA,EAAA;AAClB,MAAA,IAAI,CAAC,OAAO,SAAA,CAAU,cAAA,CAAe,KAAK,OAAA,CAAQ,IAAA,EAAM,GAAG,CAAA,EAAG;AAC5D,QAAA,MAAM,IAAI,KAAA,CAAM,2BAAA,GAA8BA,QAAAA,GAAU,GAAG,CAAA;AAC7D,MAAA;AACA,MAAA,OAAO,OAAA,CAAQ,KAAK,GAAG,CAAA;AACzB,IAAA;AACA,IAAA,SAAS,iBAAiB,IAAA,EAAM;AAC9B,MAAA,IAAI,CAAC,OAAO,SAAA,CAAU,cAAA,CAAe,KAAK,OAAA,CAAQ,OAAA,EAAS,IAAI,CAAA,EAAG;AAChE,QAAA,MAAM,IAAI,KAAA,CAAM,uBAAA,GAA0B,IAAI,CAAA;AAChD,MAAA;AACA,MAAA,OAAO,OAAA,CAAQ,QAAQ,IAAI,CAAA;AAC7B,IAAA;AACA,IAAA,SAAS,QAAQ,IAAA,EAAM;AACrB,MAAA,IAAI,OAAO,SAAS,QAAA,EAAU;AAC5B,QAAA,OAAO,iBAAiB,IAAI,CAAA;AAC9B,MAAA;AACA,MAAA,IAAI,OAAO,SAAS,QAAA,EAAU;AAC5B,QAAA,MAAM,IAAI,UAAU,iCAAiC,CAAA;AACvD,MAAA;AACA,MAAA,IAAI,CAAA,GAAI,QAAA,CAAS,IAAA,EAAM,EAAE,CAAA;AACzB,MAAA,IAAI,CAAC,KAAA,CAAM,CAAC,CAAA,EAAG;AACb,QAAA,OAAO,iBAAiB,CAAC,CAAA;AAC3B,MAAA;AACA,MAAA,OAAO,cAAc,IAAI,CAAA;AAC3B,IAAA;AACF,EAAA;AACF,CAAC,CAAA;AAGqB,OAAA,CAAQ,kBAAqB,CAAA;ACtK5C,SAAS,aAAA,GAAyB;AACvC,EAAA,IAAI,OAAO,SAAA,KAAc,WAAA,IAAe,SAAA,CAAU,YAAY,aAAA,EAAe;AAC3E,IAAA,OAAO,IAAA;AACT,EAAA;AAEA,EAAA,IAAI,OAAO,YAAY,WAAA,EAAa;AAElC,IAAA,MAAM,OAAQ,OAAA,CAAgB,IAAA;AAC9B,IAAA,IAAI,IAAA,KAAS,UAAA,IAAc,IAAA,KAAS,QAAA,EAAU;AAC5C,MAAA,OAAO,KAAA;AACT,IAAA;AAGA,IAAA,OAAO,CAAC,EACN,OAAA,CAAQ,QAAA,IACR,QAAQ,QAAA,CAAS,IAAA,CAAA;AAErB,EAAA;AAEA,EAAA,OAAO,KAAA;AACT;ACvBA,IAAIO,cAAY,MAAA,CAAO,cAAA;AACvB,IAAI,QAAA,GAAW,CAAC,MAAA,EAAQ,GAAA,KAAQ;AAC9B,EAAA,KAAA,IAAS,IAAA,IAAQ,GAAA;AACfA,IAAAA,WAAAA,CAAU,MAAA,EAAQ,MAAM,EAAE,GAAA,EAAK,IAAI,IAAI,CAAA,EAAG,UAAA,EAAY,IAAA,EAAM,CAAA;AAChE,CAAA;AAOA,IAAI,iBAAiB,EAAA;AACrB,QAAA,CAAS,cAAA,EAAgB;AACvB,EAAA,IAAA,EAAM,MAAM,IAAA;AACZ,EAAA,IAAA,EAAM,MAAM,IAAA;AACZ,EAAA,KAAA,EAAO,MAAM,KAAA;AACb,EAAA,GAAA,EAAK,MAAM,GAAA;AACX,EAAA,MAAA,EAAQ,MAAM;AAChB,CAAC,CAAA;AACD,SAAS,OAAO,IAAA,EAAM;AACpB,EAAA,OAAO,WAAW,IAAI,CAAA,OAAA,CAAA;AACxB;AACA,SAAS,KAAK,IAAA,EAAM;AAClB,EAAA,OAAO,WAAW,IAAI,CAAA,OAAA,CAAA;AACxB;AACA,SAAS,KAAK,IAAA,EAAM;AAClB,EAAA,OAAO,WAAW,IAAI,CAAA,OAAA,CAAA;AACxB;AACA,SAAS,IAAI,IAAA,EAAM;AACjB,EAAA,OAAO,WAAW,IAAI,CAAA,OAAA,CAAA;AACxB;AACA,SAAS,MAAM,IAAA,EAAM;AACnB,EAAA,OAAO,WAAW,IAAI,CAAA,OAAA,CAAA;AACxB;AAGA,IAAI,UAAU,aAAA,EAAA;AACd,IAAI,SAAS,MAAM;AACjB,EAAA,WAAA,CAAY,IAAA,EAAM;AAoBlB,IAAA,aAAA,CAAA,MAAA,QAAA,CAAA;AAnBE,IAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AACZ,IAAA,IAAA,CAAK,MAAA,GAAS,CAAA,CAAA,EAAI,IAAA,CAAK,IAAI,CAAA,CAAA,CAAA;AAC3B,IAAA,MAAM,WAAA,GAAc,YAAY,OAAO,CAAA;AACvC,IAAA,MAAM,YAAA,GAAe,YAAY,WAAW,CAAA;AAC5C,IAAA,MAAM,gBAAA,GAAmB,WAAA,KAAgB,GAAA,IAAO,WAAA,KAAgB,MAAA,IAAU,OAAO,WAAA,KAAgB,WAAA,IAAe,IAAA,CAAK,IAAA,CAAK,UAAA,CAAW,WAAW,CAAA;AAChJ,IAAA,IAAI,gBAAA,EAAkB;AACpB,MAAA,IAAA,CAAK,QAAQ,qBAAA,CAAsB,YAAA,EAAc,OAAO,CAAA,GAAI,OAAO,IAAA,CAAK,KAAA;AACxE,MAAA,IAAA,CAAK,OAAO,qBAAA,CAAsB,YAAA,EAAc,MAAM,CAAA,GAAI,OAAO,IAAA,CAAK,IAAA;AACtE,MAAA,IAAA,CAAK,UAAU,qBAAA,CAAsB,YAAA,EAAc,SAAS,CAAA,GAAI,OAAO,IAAA,CAAK,OAAA;AAC5E,MAAA,IAAA,CAAK,UAAU,qBAAA,CAAsB,YAAA,EAAc,SAAS,CAAA,GAAI,OAAO,IAAA,CAAK,OAAA;AAC5E,MAAA,IAAA,CAAK,QAAQ,qBAAA,CAAsB,YAAA,EAAc,OAAO,CAAA,GAAI,OAAO,IAAA,CAAK,KAAA;IAC1E,CAAA,MAAO;AACL,MAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AACZ,MAAA,IAAA,CAAK,OAAA,GAAU,IAAA;AACf,MAAA,IAAA,CAAK,OAAA,GAAU,IAAA;AACf,MAAA,IAAA,CAAK,KAAA,GAAQ,IAAA;AACb,MAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AACd,IAAA;AACF,EAAA;AAEA,EAAA,MAAA,CAAO,MAAA,EAAQ;AACb,IAAA,OAAO,IAAI,MAAA,CAAO,CAAA,EAAG,KAAK,IAAI,CAAA,CAAA,EAAI,MAAM,CAAA,CAAE,CAAA;AAC5C,EAAA;;;;;;AAMA,EAAA,KAAA,CAAMP,aAAY,WAAA,EAAa;AAC7B,IAAA,IAAA,CAAK,QAAA,CAAS;MACZ,KAAA,EAAO,OAAA;AACP,MAAA,OAAA,EAAS,KAAKA,QAAO,CAAA;AACrB,MAAA,WAAA;AACA,MAAA,MAAA,EAAQ,IAAA,CAAK,MAAA;MACb,MAAA,EAAQ;QACN,MAAA,EAAQ;AACV;AACD,KAAA,CAAA;AACH,EAAA;;;;;;AAMA,EAAA,IAAA,CAAKA,aAAY,WAAA,EAAa;AAC5B,IAAA,IAAA,CAAK,QAAA,CAAS;MACZ,KAAA,EAAO,MAAA;MACP,OAAA,EAAAA,QAAAA;AACA,MAAA,WAAA;AACA,MAAA,MAAA,EAAQ,IAAA,CAAK,MAAA;MACb,MAAA,EAAQ;QACN,MAAA,EAAQ;AACV;AACD,KAAA,CAAA;AACD,IAAA,MAAM,YAAA,GAAe,IAAI,gBAAA,EAAA;AACzB,IAAA,OAAO,CAACQ,cAAa,YAAA,KAAiB;AACpC,MAAA,YAAA,CAAa,OAAA,EAAA;AACb,MAAA,IAAA,CAAK,QAAA,CAAS;QACZ,KAAA,EAAO,MAAA;QACP,OAAA,EAAS,CAAA,EAAGA,SAAQ,CAAA,CAAA,EAAI,IAAA,CAAK,GAAG,YAAA,CAAa,SAAS,IAAI,CAAC,CAAA,CAAA;QAC3D,WAAA,EAAa,YAAA;AACb,QAAA,MAAA,EAAQ,IAAA,CAAK,MAAA;QACb,MAAA,EAAQ;UACN,MAAA,EAAQ;AACV;AACD,OAAA,CAAA;AACH,IAAA,CAAA;AACF,EAAA;;;;;;AAMA,EAAA,OAAA,CAAQR,aAAY,WAAA,EAAa;AAC/B,IAAA,IAAA,CAAK,QAAA,CAAS;MACZ,KAAA,EAAO,MAAA;MACP,OAAA,EAAAA,QAAAA;AACA,MAAA,WAAA;MACA,MAAA,EAAQ,CAAA,OAAA,EAAU,KAAK,MAAM,CAAA,CAAA;MAC7B,MAAA,EAAQ;QACN,SAAA,EAAW,OAAA;QACX,MAAA,EAAQ;AACV;AACD,KAAA,CAAA;AACH,EAAA;;;;;;AAMA,EAAA,OAAA,CAAQA,aAAY,WAAA,EAAa;AAC/B,IAAA,IAAA,CAAK,QAAA,CAAS;MACZ,KAAA,EAAO,SAAA;MACP,OAAA,EAAAA,QAAAA;AACA,MAAA,WAAA;MACA,MAAA,EAAQ,CAAA,OAAA,EAAU,KAAK,MAAM,CAAA,CAAA;MAC7B,MAAA,EAAQ;QACN,SAAA,EAAW,QAAA;QACX,MAAA,EAAQ;AACV;AACD,KAAA,CAAA;AACH,EAAA;;;;;;AAMA,EAAA,KAAA,CAAMA,aAAY,WAAA,EAAa;AAC7B,IAAA,IAAA,CAAK,QAAA,CAAS;MACZ,KAAA,EAAO,OAAA;MACP,OAAA,EAAAA,QAAAA;AACA,MAAA,WAAA;MACA,MAAA,EAAQ,CAAA,OAAA,EAAU,KAAK,MAAM,CAAA,CAAA;MAC7B,MAAA,EAAQ;QACN,SAAA,EAAW,KAAA;QACX,MAAA,EAAQ;AACV;AACD,KAAA,CAAA;AACH,EAAA;;;;;;;;;;AAUA,EAAA,IAAA,CAAK,QAAA,EAAU;AACb,IAAA,QAAA,EAAA;AACF,EAAA;AACA,EAAA,WAAA,CAAY,OAAOA,QAAAA,EAAS;AAC1B,IAAA,OAAO;AACL,MAAA,SAAA,sBAA+B,IAAA,EAAA;AAC/B,MAAA,KAAA;MACA,OAAA,EAAAA;AACF,KAAA;AACF,EAAA;AACA,EAAA,QAAA,CAAS,IAAA,EAAM;AACb,IAAA,MAAM;AACJ,MAAA,KAAA;MACA,OAAA,EAAAA,QAAAA;AACA,MAAA,MAAA;MACA,MAAA,EAAQ,YAAA;AACR,MAAA,WAAA,GAAc;AACZ,KAAA,GAAA,IAAA;AACJ,IAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,WAAA,CAAY,KAAA,EAAOA,QAAO,CAAA;AAC7C,IAAA,MAAM,cAAA,GAAA,CAAiB,YAAA,IAAA,IAAA,GAAA,MAAA,GAAA,aAAc,SAAA,KAAa,MAAA;AAClD,IAAA,MAAM,WAAA,GAAA,CAAc,YAAA,IAAA,IAAA,GAAA,MAAA,GAAA,aAAc,MAAA,KAAU,MAAA;AAC5C,IAAA,MAAM,QAAA,GAAW;AACf,MAAA,SAAA,EAAW,eAAe,cAAc,CAAA;AACxC,MAAA,MAAA,EAAQ,eAAe,WAAW;AACpC,KAAA;AACA,IAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,SAAA,CAAU,KAAK,CAAA;AAClC,IAAA,KAAA;MACE,CAAC,QAAA,CAAS,SAAA,CAAU,IAAA,CAAK,eAAA,CAAgB,KAAA,CAAM,SAAS,CAAC,CAAC,CAAA,CAAE,MAAA,CAAO,MAAA,IAAU,IAAA,GAAO,SAAS,MAAA,CAAO,MAAM,CAAA,GAAI,EAAE,CAAA,CAAE,MAAA,CAAO,cAAA,CAAeA,QAAO,CAAC,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA;MAC1J,GAAG,WAAA,CAAY,IAAI,cAAc;AACnC,KAAA;AACF,EAAA;AACA,EAAA,eAAA,CAAgB,SAAA,EAAW;AACzB,IAAA,OAAO,GAAG,SAAA,CAAU,kBAAA;AAClB,MAAA;KACD,CAAA,CAAA,EAAI,SAAA,CAAU,iBAAiB,CAAA,CAAA;AAClC,EAAA;AACA,EAAA,SAAA,CAAU,KAAA,EAAO;AACf,IAAA,QAAQ,KAAA;MACN,KAAK,OAAA;MACL,KAAK,SAAA;AACL,MAAA,KAAK,MAAA,EAAQ;AACX,QAAA,OAAO,GAAA;AACT,MAAA;AACA,MAAA,KAAK,SAAA,EAAW;AACd,QAAA,OAAOS,KAAAA;AACT,MAAA;AACA,MAAA,KAAK,OAAA,EAAS;AACZ,QAAA,OAAOP,MAAAA;AACT,MAAA;AACF;AACF,EAAA;AACF,CAAA;AACA,IAAI,mBAAmB,MAAM;EAI3B,WAAA,GAAc;AAHd,IAAA,aAAA,CAAA,MAAA,WAAA,CAAA;AACA,IAAA,aAAA,CAAA,MAAA,SAAA,CAAA;AACA,IAAA,aAAA,CAAA,MAAA,WAAA,CAAA;AAEE,IAAA,IAAA,CAAK,SAAA,GAAY,YAAY,GAAA,EAAA;AAC/B,EAAA;EACA,OAAA,GAAU;AACR,IAAA,IAAA,CAAK,OAAA,GAAU,YAAY,GAAA,EAAA;AAC3B,IAAA,MAAM,SAAA,GAAY,IAAA,CAAK,OAAA,GAAU,IAAA,CAAK,SAAA;AACtC,IAAA,IAAA,CAAK,SAAA,GAAY,SAAA,CAAU,OAAA,CAAQ,CAAC,CAAA;AACtC,EAAA;AACF,CAAA;AACA,IAAI,OAAO,MAAM,MAAA;AACjB,SAAS,GAAA,CAAIF,aAAY,WAAA,EAAa;AACpC,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,OAAA,CAAQ,OAAO,KAAA,CAAM,MAAA,CAAOA,UAAS,GAAG,WAAW,IAAI,IAAI,CAAA;AAC3D,IAAA;AACF,EAAA;AACA,EAAA,OAAA,CAAQ,GAAA,CAAIA,QAAAA,EAAS,GAAG,WAAW,CAAA;AACrC;AACA,SAASS,KAAAA,CAAKT,aAAY,WAAA,EAAa;AACrC,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,OAAA,CAAQ,OAAO,KAAA,CAAM,MAAA,CAAOA,UAAS,GAAG,WAAW,IAAI,IAAI,CAAA;AAC3D,IAAA;AACF,EAAA;AACA,EAAA,OAAA,CAAQ,IAAA,CAAKA,QAAAA,EAAS,GAAG,WAAW,CAAA;AACtC;AACA,SAASE,MAAAA,CAAMF,aAAY,WAAA,EAAa;AACtC,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,OAAA,CAAQ,OAAO,KAAA,CAAM,MAAA,CAAOA,UAAS,GAAG,WAAW,IAAI,IAAI,CAAA;AAC3D,IAAA;AACF,EAAA;AACA,EAAA,OAAA,CAAQ,KAAA,CAAMA,QAAAA,EAAS,GAAG,WAAW,CAAA;AACvC;AACA,SAAS,YAAY,YAAA,EAAc;AA9PnC,EAAA,IAAAK,GAAAA;AA+PE,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,OAAO,OAAA,CAAQ,IAAI,YAAY,CAAA;AACjC,EAAA;AACA,EAAA,OAAA,CAAOA,MAAA,UAAA,CAAW,YAAY,MAAvB,IAAA,GAAA,MAAA,GAAAA,IAA0B,QAAA,EAAA;AACnC;AACA,SAAS,qBAAA,CAAsB,OAAO,QAAA,EAAU;AAC9C,EAAA,OAAO,KAAA,KAAU,UAAU,KAAA,KAAU,QAAA;AACvC;AACA,SAAS,eAAeL,QAAAA,EAAS;AAC/B,EAAA,IAAI,OAAOA,aAAY,WAAA,EAAa;AAClC,IAAA,OAAO,WAAA;AACT,EAAA;AACA,EAAA,IAAIA,aAAY,IAAA,EAAM;AACpB,IAAA,OAAO,MAAA;AACT,EAAA;AACA,EAAA,IAAI,OAAOA,aAAY,QAAA,EAAU;AAC/B,IAAA,OAAOA,QAAAA;AACT,EAAA;AACA,EAAA,IAAI,OAAOA,aAAY,QAAA,EAAU;AAC/B,IAAA,OAAO,IAAA,CAAK,UAAUA,QAAO,CAAA;AAC/B,EAAA;AACA,EAAA,OAAOA,SAAQ,QAAA,EAAA;AACjB;ACjRO,IAAM,cAAA,GAAN,cAA4B,QAAA,CAAS;AAS1C,EAAA,OAAO,yBAAyB,MAAA,EAAyB;AACvD,IAAA,OAAO,MAAA,IAAU,OAAO,MAAA,IAAU,GAAA;AACpC,EAAA;AAEA,EAAA,OAAO,mBAAmB,MAAA,EAAyB;AACjD,IAAA,OAAO,cAAA,CAAc,0BAAA,CAA2B,QAAA,CAAS,MAAM,CAAA;AACjE,EAAA;;;;;AAMA,EAAA,OAAO,mBAAmB,MAAA,EAAyB;AACjD,IAAA,OAAO,CAAC,cAAA,CAAc,yBAAA,CAA0B,QAAA,CAAS,MAAM,CAAA;AACjE,EAAA;EAEA,OAAO,MAAA,CAAO,KAAyB,QAAA,EAA0B;AAC/D,IAAA,IAAI,CAAC,GAAA,EAAK;AACR,MAAA;AACF,IAAA;AAEA,IAAA,IAAI,QAAA,CAAS,OAAO,EAAA,EAAI;AACtB,MAAA;AACF,IAAA;AAEA,IAAA,MAAA,CAAO,cAAA,CAAe,UAAU,KAAA,EAAO;MACrC,KAAA,EAAO,GAAA;MACP,UAAA,EAAY,IAAA;MACZ,YAAA,EAAc,IAAA;MACd,QAAA,EAAU;AACX,KAAA,CAAA;AACH,EAAA;;;;AAKA,EAAA,OAAO,gBAAgB,UAAA,EAAoC;AACzD,IAAA,MAAM,OAAA,GAAU,IAAI,OAAA,EAAA;AACpB,IAAA,KAAA,IAAS,OAAO,CAAA,EAAG,IAAA,GAAO,UAAA,CAAW,MAAA,EAAQ,QAAQ,CAAA,EAAG;AACtD,MAAA,OAAA,CAAQ,OAAO,UAAA,CAAW,IAAI,GAAG,UAAA,CAAW,IAAA,GAAO,CAAC,CAAC,CAAA;AACvD,IAAA;AACA,IAAA,OAAO,OAAA;AACT,EAAA;EAEA,WAAA,CAAY,IAAA,EAAwB,IAAA,GAA0B,EAAA,EAAI;AAzDpE,IAAA,IAAAK,GAAAA;AA0DI,IAAA,MAAM,MAAA,GAAA,CAASA,GAAAA,GAAA,IAAA,CAAK,MAAA,KAAL,OAAAA,GAAAA,GAAe,GAAA;AAC9B,IAAA,MAAM,UAAA,GAAa,cAAA,CAAc,wBAAA,CAAyB,MAAM,IAC5D,MAAA,GACA,GAAA;AACJ,IAAA,MAAM,SAAA,GAAY,cAAA,CAAc,kBAAA,CAAmB,MAAM,IAAI,IAAA,GAAO,IAAA;AAEpE,IAAA,KAAA,CAAM,SAAA,EAAW;MACf,GAAG,IAAA;MACH,MAAA,EAAQ;AACT,KAAA,CAAA;AAED,IAAA,IAAI,WAAW,UAAA,EAAY;AAKzB,MAAA,MAAM,WAAA,GAAc,MAAA,CAAO,qBAAA,CAAsB,IAAI,CAAA,CAAE,IAAA;QACrD,CAAC,MAAA,KAAW,OAAO,WAAA,KAAgB;AACrC,OAAA;AACA,MAAA,IAAI,WAAA,EAAa;AACf,QAAA,MAAM,KAAA,GAAQ,OAAA,CAAQ,GAAA,CAAI,IAAA,EAAM,WAAW,CAAA;AAC3C,QAAA,OAAA,CAAQ,GAAA,CAAI,KAAA,EAAO,QAAA,EAAU,MAAM,CAAA;MACrC,CAAA,MAAO;AACL,QAAA,MAAA,CAAO,cAAA,CAAe,MAAM,QAAA,EAAU;UACpC,KAAA,EAAO,MAAA;UACP,UAAA,EAAY,IAAA;UACZ,YAAA,EAAc,IAAA;UACd,QAAA,EAAU;AACX,SAAA,CAAA;AACH,MAAA;AACF,IAAA;AAEA,IAAA,cAAA,CAAc,MAAA,CAAO,IAAA,CAAK,GAAA,EAAK,IAAI,CAAA;AACrC,EAAA;AACF,CAAA;AAxFO,IAAM,aAAA,GAAN,cAAA;AAAM,aAAA,CAKK,4BAA4B,CAAC,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,KAAK,GAAG,CAAA;AALzD,aAAA,CAOK,6BAA6B,CAAC,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,KAAK,GAAG,CAAA;ACXvD,IAAI,WAAA,EAAA;ACApB,IAAIK,YAAW,MAAA,CAAO,MAAA;AACtB,IAAIH,aAAY,MAAA,CAAO,cAAA;AACvB,IAAII,oBAAmB,MAAA,CAAO,wBAAA;AAC9B,IAAIC,qBAAoB,MAAA,CAAO,mBAAA;AAC/B,IAAIC,gBAAe,MAAA,CAAO,cAAA;AAC1B,IAAIC,aAAAA,GAAe,OAAO,SAAA,CAAU,cAAA;AACpC,IAAIC,WAAAA,GAAa,CAAC,EAAA,EAAI,GAAA,KAAQ,SAAShB,UAAAA,GAAY;AACjD,EAAA,OAAO,WAAW,EAAA,CAAGa,mBAAkB,EAAE,CAAA,CAAE,CAAC,CAAC,CAAA,EAAA,CAAI,GAAA,GAAM,EAAE,SAAS,EAAA,IAAM,OAAA,EAAS,GAAG,GAAG,GAAA,CAAI,OAAA;AAC7F,CAAA;AACA,IAAII,YAAAA,GAAc,CAAC,EAAA,EAAI,IAAA,EAAM,QAAQ,IAAA,KAAS;AAC5C,EAAA,IAAI,QAAQ,OAAO,IAAA,KAAS,QAAA,IAAY,OAAO,SAAS,UAAA,EAAY;AAClE,IAAA,KAAA,IAAS,GAAA,IAAOJ,mBAAkB,IAAI,CAAA;AACpC,MAAA,IAAI,CAACE,aAAAA,CAAa,IAAA,CAAK,EAAA,EAAI,GAAG,KAAK,GAAA,KAAQ,MAAA;AACzCP,QAAAA,UAAAA,CAAU,IAAI,GAAA,EAAK,EAAE,GAAA,EAAK,MAAM,KAAK,GAAG,CAAA,EAAG,UAAA,EAAY,EAAE,OAAOI,iBAAAA,CAAiB,IAAA,EAAM,GAAG,CAAA,CAAA,IAAM,IAAA,CAAK,YAAY,CAAA;AACvH,EAAA;AACA,EAAA,OAAO,EAAA;AACT,CAAA;AACA,IAAIM,QAAAA,GAAU,CAAC,GAAA,EAAK,UAAA,EAAY,YAAY,MAAA,GAAS,GAAA,IAAO,IAAA,GAAOP,SAAAA,CAASG,aAAAA,CAAa,GAAG,CAAC,CAAA,GAAI,EAAA,EAAIG,YAAAA;;;;;AAK3DT,EAAAA,UAAAA,CAAU,QAAQ,SAAA,EAAW,EAAE,OAAO,GAAA,EAAK,UAAA,EAAY,MAAM,CAAA;AACrG,EAAA;AACF,CAAA,CAAA;AAGA,IAAI,iBAAiBQ,WAAAA,CAAW;AAC9B,EAAA,8BAAA,CAA+B,OAAA,EAAS;AAEtC,IAAA,OAAA,CAAQ,KAAA,GAAQG,MAAAA;AAChB,IAAA,OAAA,CAAQ,SAAA,GAAY,SAAA;AACpB,IAAA,IAAI,UAAA,GAAa,OAAO,SAAA,CAAU,QAAA;AAClC,IAAA,IAAI,gBAAA,GAAmB,OAAO,SAAA,CAAU,cAAA;AACxC,IAAA,IAAI,gBAAA,GAAmB,gCAAA;AACvB,IAAA,IAAI,iBAAA,GAAoB,uEAAA;AACxB,IAAA,IAAI,iBAAA,GAAoB,qFAAA;AACxB,IAAA,IAAI,eAAA,GAAkB,iCAAA;AACtB,IAAA,SAASA,MAAAA,CAAM,KAAK,GAAA,EAAK;AACvB,MAAA,IAAI,OAAO,QAAQ,QAAA,EAAU;AAC3B,QAAA,MAAM,IAAI,UAAU,+BAA+B,CAAA;AACrD,MAAA;AACA,MAAA,IAAI,MAAM,EAAA;AACV,MAAA,IAAI,MAAM,GAAA,CAAI,MAAA;AACd,MAAA,IAAI,GAAA,GAAM,CAAA;AAAG,QAAA,OAAO,GAAA;AACpB,MAAA,IAAI,GAAA,GAAM,GAAA,IAAO,GAAA,CAAI,MAAA,IAAU,MAAA;AAC/B,MAAA,IAAI,KAAA,GAAQ,CAAA;AACZ,MAAA,IAAI,KAAA,GAAQ,CAAA;AACZ,MAAA,IAAI,MAAA,GAAS,CAAA;AACb,MAAA,GAAG;AACD,QAAA,KAAA,GAAQ,GAAA,CAAI,OAAA,CAAQ,GAAA,EAAK,KAAK,CAAA;AAC9B,QAAA,IAAI,KAAA,KAAU,EAAA;AAAI,UAAA;AAClB,QAAA,MAAA,GAAS,GAAA,CAAI,OAAA,CAAQ,GAAA,EAAK,KAAK,CAAA;AAC/B,QAAA,IAAI,WAAW,EAAA,EAAI;AACjB,UAAA,MAAA,GAAS,GAAA;AACX,QAAA,CAAA,MAAA,IAAW,QAAQ,MAAA,EAAQ;AACzB,UAAA,KAAA,GAAQ,GAAA,CAAI,WAAA,CAAY,GAAA,EAAK,KAAA,GAAQ,CAAC,CAAA,GAAI,CAAA;AAC1C,UAAA;AACF,QAAA;AACA,QAAA,IAAI,WAAA,GAAc,UAAA,CAAW,GAAA,EAAK,KAAA,EAAO,KAAK,CAAA;AAC9C,QAAA,IAAI,SAAA,GAAY,QAAA,CAAS,GAAA,EAAK,KAAA,EAAO,WAAW,CAAA;AAChD,QAAA,IAAI,GAAA,GAAM,GAAA,CAAI,KAAA,CAAM,WAAA,EAAa,SAAS,CAAA;AAC1C,QAAA,IAAI,CAAC,gBAAA,CAAiB,IAAA,CAAK,GAAA,EAAK,GAAG,CAAA,EAAG;AACpC,UAAA,IAAI,WAAA,GAAc,UAAA,CAAW,GAAA,EAAK,KAAA,GAAQ,GAAG,MAAM,CAAA;AACnD,UAAA,IAAI,SAAA,GAAY,QAAA,CAAS,GAAA,EAAK,MAAA,EAAQ,WAAW,CAAA;AACjD,UAAA,IAAI,GAAA,CAAI,UAAA,CAAW,WAAW,CAAA,KAAM,EAAA,IAAM,IAAI,UAAA,CAAW,SAAA,GAAY,CAAC,CAAA,KAAM,EAAA,EAAI;AAC9E,YAAA,WAAA,EAAA;AACA,YAAA,SAAA,EAAA;AACF,UAAA;AACA,UAAA,IAAI,GAAA,GAAM,GAAA,CAAI,KAAA,CAAM,WAAA,EAAa,SAAS,CAAA;AAC1C,UAAA,GAAA,CAAI,GAAG,CAAA,GAAI,SAAA,CAAU,GAAA,EAAK,GAAG,CAAA;AAC/B,QAAA;AACA,QAAA,KAAA,GAAQ,MAAA,GAAS,CAAA;AACnB,MAAA,CAAA,QAAS,KAAA,GAAQ,GAAA;AACjB,MAAA,OAAO,GAAA;AACT,IAAA;AACA,IAAA,SAAS,UAAA,CAAW,GAAA,EAAK,KAAA,EAAO,GAAA,EAAK;AACnC,MAAA,GAAG;AACD,QAAA,IAAI,IAAA,GAAO,GAAA,CAAI,UAAA,CAAW,KAAK,CAAA;AAC/B,QAAA,IAAI,IAAA,KAAS,MAAM,IAAA,KAAS,CAAA;AAAG,UAAA,OAAO,KAAA;AACxC,MAAA,CAAA,QAAS,EAAE,KAAA,GAAQ,GAAA;AACnB,MAAA,OAAO,GAAA;AACT,IAAA;AACA,IAAA,SAAS,QAAA,CAAS,GAAA,EAAK,KAAA,EAAO,GAAA,EAAK;AACjC,MAAA,OAAO,QAAQ,GAAA,EAAK;AAClB,QAAA,IAAI,IAAA,GAAO,GAAA,CAAI,UAAA,CAAW,EAAE,KAAK,CAAA;AACjC,QAAA,IAAI,IAAA,KAAS,MAAM,IAAA,KAAS,CAAA;AAAG,UAAA,OAAO,KAAA,GAAQ,CAAA;AAChD,MAAA;AACA,MAAA,OAAO,GAAA;AACT,IAAA;AACA,IAAA,SAAS,SAAA,CAAU,IAAA,EAAM,GAAA,EAAK,GAAA,EAAK;AACjC,MAAA,IAAI,GAAA,GAAM,GAAA,IAAO,GAAA,CAAI,MAAA,IAAU,kBAAA;AAC/B,MAAA,IAAI,OAAO,QAAQ,UAAA,EAAY;AAC7B,QAAA,MAAM,IAAI,UAAU,0BAA0B,CAAA;AAChD,MAAA;AACA,MAAA,IAAI,CAAC,gBAAA,CAAiB,IAAA,CAAK,IAAI,CAAA,EAAG;AAChC,QAAA,MAAM,IAAI,UAAU,0BAA0B,CAAA;AAChD,MAAA;AACA,MAAA,IAAI,KAAA,GAAQ,IAAI,GAAG,CAAA;AACnB,MAAA,IAAI,CAAC,iBAAA,CAAkB,IAAA,CAAK,KAAK,CAAA,EAAG;AAClC,QAAA,MAAM,IAAI,UAAU,yBAAyB,CAAA;AAC/C,MAAA;AACA,MAAA,IAAI,GAAA,GAAM,OAAO,GAAA,GAAM,KAAA;AACvB,MAAA,IAAI,CAAC,GAAA;AAAK,QAAA,OAAO,GAAA;AACjB,MAAA,IAAI,IAAA,IAAQ,IAAI,MAAA,EAAQ;AACtB,QAAA,IAAI,MAAA,GAAS,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,MAAM,CAAA;AAClC,QAAA,IAAI,CAAC,QAAA,CAAS,MAAM,CAAA,EAAG;AACrB,UAAA,MAAM,IAAI,UAAU,0BAA0B,CAAA;AAChD,QAAA;AACA,QAAA,GAAA,IAAO,YAAA,GAAe,MAAA;AACxB,MAAA;AACA,MAAA,IAAI,IAAI,MAAA,EAAQ;AACd,QAAA,IAAI,CAAC,iBAAA,CAAkB,IAAA,CAAK,GAAA,CAAI,MAAM,CAAA,EAAG;AACvC,UAAA,MAAM,IAAI,UAAU,0BAA0B,CAAA;AAChD,QAAA;AACA,QAAA,GAAA,IAAO,cAAc,GAAA,CAAI,MAAA;AAC3B,MAAA;AACA,MAAA,IAAI,IAAI,IAAA,EAAM;AACZ,QAAA,IAAI,CAAC,eAAA,CAAgB,IAAA,CAAK,GAAA,CAAI,IAAI,CAAA,EAAG;AACnC,UAAA,MAAM,IAAI,UAAU,wBAAwB,CAAA;AAC9C,QAAA;AACA,QAAA,GAAA,IAAO,YAAY,GAAA,CAAI,IAAA;AACzB,MAAA;AACA,MAAA,IAAI,IAAI,OAAA,EAAS;AACf,QAAA,IAAI,UAAU,GAAA,CAAI,OAAA;AAClB,QAAA,IAAI,CAAC,OAAO,OAAO,CAAA,IAAK,MAAM,OAAA,CAAQ,OAAA,EAAS,CAAA,EAAG;AAChD,UAAA,MAAM,IAAI,UAAU,2BAA2B,CAAA;AACjD,QAAA;AACA,QAAA,GAAA,IAAO,YAAA,GAAe,QAAQ,WAAA,EAAA;AAChC,MAAA;AACA,MAAA,IAAI,IAAI,QAAA,EAAU;AAChB,QAAA,GAAA,IAAO,YAAA;AACT,MAAA;AACA,MAAA,IAAI,IAAI,MAAA,EAAQ;AACd,QAAA,GAAA,IAAO,UAAA;AACT,MAAA;AACA,MAAA,IAAI,IAAI,WAAA,EAAa;AACnB,QAAA,GAAA,IAAO,eAAA;AACT,MAAA;AACA,MAAA,IAAI,IAAI,QAAA,EAAU;AAChB,QAAA,IAAI,QAAA,GAAW,OAAO,GAAA,CAAI,QAAA,KAAa,WAAW,GAAA,CAAI,QAAA,CAAS,WAAA,EAAA,GAAgB,GAAA,CAAI,QAAA;AACnF,QAAA,QAAQ,QAAA;UACN,KAAK,KAAA;AACH,YAAA,GAAA,IAAO,gBAAA;AACP,YAAA;UACF,KAAK,QAAA;AACH,YAAA,GAAA,IAAO,mBAAA;AACP,YAAA;UACF,KAAK,MAAA;AACH,YAAA,GAAA,IAAO,iBAAA;AACP,YAAA;AACF,UAAA;AACE,YAAA,MAAM,IAAI,UAAU,4BAA4B,CAAA;AACpD;AACF,MAAA;AACA,MAAA,IAAI,IAAI,QAAA,EAAU;AAChB,QAAA,IAAI,QAAA,GAAW,OAAO,GAAA,CAAI,QAAA,KAAa,WAAW,GAAA,CAAI,QAAA,CAAS,WAAA,EAAA,GAAgB,GAAA,CAAI,QAAA;AACnF,QAAA,QAAQ,QAAA;UACN,KAAK,IAAA;AACH,YAAA,GAAA,IAAO,mBAAA;AACP,YAAA;UACF,KAAK,KAAA;AACH,YAAA,GAAA,IAAO,gBAAA;AACP,YAAA;UACF,KAAK,QAAA;AACH,YAAA,GAAA,IAAO,mBAAA;AACP,YAAA;UACF,KAAK,MAAA;AACH,YAAA,GAAA,IAAO,iBAAA;AACP,YAAA;AACF,UAAA;AACE,YAAA,MAAM,IAAI,UAAU,4BAA4B,CAAA;AACpD;AACF,MAAA;AACA,MAAA,OAAO,GAAA;AACT,IAAA;AACA,IAAA,SAAS,OAAO,GAAA,EAAK;AACnB,MAAA,OAAO,IAAI,OAAA,CAAQ,GAAG,MAAM,EAAA,GAAK,kBAAA,CAAmB,GAAG,CAAA,GAAI,GAAA;AAC7D,IAAA;AACA,IAAA,SAAS,OAAO,GAAA,EAAK;AACnB,MAAA,OAAO,UAAA,CAAW,IAAA,CAAK,GAAG,CAAA,KAAM,eAAA;AAClC,IAAA;AACA,IAAA,SAAS,SAAA,CAAU,KAAK,OAAA,EAAS;AAC/B,MAAA,IAAI;AACF,QAAA,OAAO,QAAQ,GAAG,CAAA;AACpB,MAAA,CAAA,CAAA,OAAS,CAAA,EAAG;AACV,QAAA,OAAO,GAAA;AACT,MAAA;AACF,IAAA;AACF,EAAA;AACF,CAAC,CAAA;AAGmBD,QAAAA,CAAQ,gBAAmB,CAAA;ACjM/C,IAAIP,YAAW,MAAA,CAAO,MAAA;AACtB,IAAIH,aAAY,MAAA,CAAO,cAAA;AACvB,IAAII,oBAAmB,MAAA,CAAO,wBAAA;AAC9B,IAAIC,qBAAoB,MAAA,CAAO,mBAAA;AAC/B,IAAIC,gBAAe,MAAA,CAAO,cAAA;AAC1B,IAAIC,aAAAA,GAAe,OAAO,SAAA,CAAU,cAAA;AACpC,IAAIf,WAAAA,mBAA6B,CAAA,CAAC,CAAA,KAAM,OAAOA,UAAAA,KAAY,WAAA,GAAcA,UAAAA,GAAU,OAAO,KAAA,KAAU,WAAA,GAAc,IAAI,KAAA,CAAM,CAAA,EAAG;EAC7H,GAAA,EAAK,CAAC,GAAG,CAAA,KAAA,CAAO,OAAOA,eAAY,WAAA,GAAcA,UAAAA,GAAU,GAAG,CAAC;AACjE,CAAC,CAAA,GAAI,CAAA,EAAG,SAAS,CAAA,EAAG;AAClB,EAAA,IAAI,OAAOA,UAAAA,KAAY,WAAA;AAAa,IAAA,OAAOA,UAAAA,CAAQ,KAAA,CAAM,IAAA,EAAM,SAAS,CAAA;AACxE,EAAA,MAAM,KAAA,CAAM,sBAAA,GAAyB,CAAA,GAAI,oBAAoB,CAAA;AAC/D,CAAC,CAAA;AACD,IAAIgB,WAAAA,GAAa,CAAC,EAAA,EAAI,GAAA,KAAQ,SAASI,YAAAA,GAAa;AAClD,EAAA,OAAO,WAAW,EAAA,CAAGP,mBAAkB,EAAE,CAAA,CAAE,CAAC,CAAC,CAAA,EAAA,CAAI,GAAA,GAAM,EAAE,SAAS,EAAA,IAAM,OAAA,EAAS,GAAG,GAAG,GAAA,CAAI,OAAA;AAC7F,CAAA;AACA,IAAII,YAAAA,GAAc,CAAC,EAAA,EAAI,IAAA,EAAM,QAAQ,IAAA,KAAS;AAC5C,EAAA,IAAI,QAAQ,OAAO,IAAA,KAAS,QAAA,IAAY,OAAO,SAAS,UAAA,EAAY;AAClE,IAAA,KAAA,IAAS,GAAA,IAAOJ,mBAAkB,IAAI,CAAA;AACpC,MAAA,IAAI,CAACE,aAAAA,CAAa,IAAA,CAAK,EAAA,EAAI,GAAG,KAAK,GAAA,KAAQ,MAAA;AACzCP,QAAAA,UAAAA,CAAU,IAAI,GAAA,EAAK,EAAE,GAAA,EAAK,MAAM,KAAK,GAAG,CAAA,EAAG,UAAA,EAAY,EAAE,OAAOI,iBAAAA,CAAiB,IAAA,EAAM,GAAG,CAAA,CAAA,IAAM,IAAA,CAAK,YAAY,CAAA;AACvH,EAAA;AACA,EAAA,OAAO,EAAA;AACT,CAAA;AACA,IAAIM,QAAAA,GAAU,CAAC,GAAA,EAAK,UAAA,EAAY,YAAY,MAAA,GAAS,GAAA,IAAO,IAAA,GAAOP,SAAAA,CAASG,aAAAA,CAAa,GAAG,CAAC,CAAA,GAAI,EAAA,EAAIG,YAAAA;;;;;AAK3DT,EAAAA,UAAAA,CAAU,QAAQ,SAAA,EAAW,EAAE,OAAO,GAAA,EAAK,UAAA,EAAY,MAAM,CAAA;AACrG,EAAA;AACF,CAAA,CAAA;AAGA,IAAI,mBAAmBQ,WAAAA,CAAW;AAChC,EAAA,mCAAA,CAAoC,SAAS,MAAA,EAAQ;AAEnD,IAAA,IAAI,MAAA,GAAS,UAAA;AACb,IAAA,IAAI,IAAA,GAAO,EAAA;AACX,IAAA,IAAI,IAAA,GAAO,CAAA;AACX,IAAA,IAAI,IAAA,GAAO,EAAA;AACX,IAAA,IAAI,IAAA,GAAO,EAAA;AACX,IAAA,IAAI,IAAA,GAAO,GAAA;AACX,IAAA,IAAI,WAAA,GAAc,EAAA;AAClB,IAAA,IAAI,QAAA,GAAW,GAAA;AACf,IAAA,IAAI,SAAA,GAAY,GAAA;AAChB,IAAA,IAAI,aAAA,GAAgB,OAAA;AACpB,IAAA,IAAI,aAAA,GAAgB,YAAA;AACpB,IAAA,IAAI,eAAA,GAAkB,2BAAA;AACtB,IAAA,IAAI,MAAA,GAAS;MACX,UAAA,EAAY,iDAAA;MACZ,WAAA,EAAa,gDAAA;MACb,eAAA,EAAiB;AACnB,KAAA;AACA,IAAA,IAAI,gBAAgB,IAAA,GAAO,IAAA;AAC3B,IAAA,IAAI,QAAQ,IAAA,CAAK,KAAA;AACjB,IAAA,IAAI,qBAAqB,MAAA,CAAO,YAAA;AAChC,IAAA,SAASb,OAAM,IAAA,EAAM;AACnB,MAAA,MAAM,IAAI,UAAA,CAAW,MAAA,CAAO,IAAI,CAAC,CAAA;AACnC,IAAA;AACA,IAAA,SAAS,GAAA,CAAI,OAAO,QAAA,EAAU;AAC5B,MAAA,MAAM,SAAS,EAAA;AACf,MAAA,IAAI,SAAS,KAAA,CAAM,MAAA;AACnB,MAAA,OAAO,MAAA,EAAA,EAAU;AACf,QAAA,MAAA,CAAO,MAAM,CAAA,GAAI,QAAA,CAAS,KAAA,CAAM,MAAM,CAAC,CAAA;AACzC,MAAA;AACA,MAAA,OAAO,MAAA;AACT,IAAA;AACA,IAAA,SAAS,SAAA,CAAU,QAAQ,QAAA,EAAU;AACnC,MAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,KAAA,CAAM,GAAG,CAAA;AAC9B,MAAA,IAAI,MAAA,GAAS,EAAA;AACb,MAAA,IAAI,KAAA,CAAM,SAAS,CAAA,EAAG;AACpB,QAAA,MAAA,GAAS,KAAA,CAAM,CAAC,CAAA,GAAI,GAAA;AACpB,QAAA,MAAA,GAAS,MAAM,CAAC,CAAA;AAClB,MAAA;AACA,MAAA,MAAA,GAAS,MAAA,CAAO,OAAA,CAAQ,eAAA,EAAiB,GAAG,CAAA;AAC5C,MAAA,MAAM,MAAA,GAAS,MAAA,CAAO,KAAA,CAAM,GAAG,CAAA;AAC/B,MAAA,MAAM,UAAU,GAAA,CAAI,MAAA,EAAQ,QAAQ,CAAA,CAAE,KAAK,GAAG,CAAA;AAC9C,MAAA,OAAO,MAAA,GAAS,OAAA;AAClB,IAAA;AACA,IAAA,SAAS,WAAW,MAAA,EAAQ;AAC1B,MAAA,MAAM,SAAS,EAAA;AACf,MAAA,IAAI,OAAA,GAAU,CAAA;AACd,MAAA,MAAM,SAAS,MAAA,CAAO,MAAA;AACtB,MAAA,OAAO,UAAU,MAAA,EAAQ;AACvB,QAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,UAAA,CAAW,OAAA,EAAS,CAAA;AACzC,QAAA,IAAI,KAAA,IAAS,KAAA,IAAS,KAAA,IAAS,KAAA,IAAS,UAAU,MAAA,EAAQ;AACxD,UAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,UAAA,CAAW,OAAA,EAAS,CAAA;AACzC,UAAA,IAAA,CAAK,KAAA,GAAQ,UAAU,KAAA,EAAO;AAC5B,YAAA,MAAA,CAAO,OAAO,KAAA,GAAQ,IAAA,KAAS,EAAA,KAAO,KAAA,GAAQ,QAAQ,KAAK,CAAA;UAC7D,CAAA,MAAO;AACL,YAAA,MAAA,CAAO,KAAK,KAAK,CAAA;AACjB,YAAA,OAAA,EAAA;AACF,UAAA;QACF,CAAA,MAAO;AACL,UAAA,MAAA,CAAO,KAAK,KAAK,CAAA;AACnB,QAAA;AACF,MAAA;AACA,MAAA,OAAO,MAAA;AACT,IAAA;AACA,IAAA,IAAI,aAAa,CAAC,UAAA,KAAe,MAAA,CAAO,aAAA,CAAc,GAAG,UAAU,CAAA;AACnE,IAAA,IAAI,YAAA,GAAe,SAAS,SAAA,EAAW;AACrC,MAAA,IAAI,SAAA,IAAa,EAAA,IAAM,SAAA,GAAY,EAAA,EAAI;AACrC,QAAA,OAAO,MAAM,SAAA,GAAY,EAAA,CAAA;AAC3B,MAAA;AACA,MAAA,IAAI,SAAA,IAAa,EAAA,IAAM,SAAA,GAAY,EAAA,EAAI;AACrC,QAAA,OAAO,SAAA,GAAY,EAAA;AACrB,MAAA;AACA,MAAA,IAAI,SAAA,IAAa,EAAA,IAAM,SAAA,GAAY,GAAA,EAAK;AACtC,QAAA,OAAO,SAAA,GAAY,EAAA;AACrB,MAAA;AACA,MAAA,OAAO,IAAA;AACT,IAAA,CAAA;AACA,IAAA,IAAI,YAAA,GAAe,SAAS,KAAA,EAAO,IAAA,EAAM;AACvC,MAAA,OAAO,QAAQ,EAAA,GAAK,EAAA,IAAM,KAAA,GAAQ,EAAA,CAAA,IAAA,CAAQ,QAAQ,CAAA,KAAM,CAAA,CAAA;AAC1D,IAAA,CAAA;AACA,IAAA,IAAI,KAAA,GAAQ,SAAS,KAAA,EAAO,SAAA,EAAW,SAAA,EAAW;AAChD,MAAA,IAAI,CAAA,GAAI,CAAA;AACR,MAAA,KAAA,GAAQ,SAAA,GAAY,KAAA,CAAM,KAAA,GAAQ,IAAI,IAAI,KAAA,IAAS,CAAA;AACnD,MAAA,KAAA,IAAS,KAAA,CAAM,QAAQ,SAAS,CAAA;AAChC,MAAA,OAAO,KAAA,GAAQ,aAAA,GAAgB,IAAA,IAAQ,CAAA,EAAG,KAAK,IAAA,EAAM;AACnD,QAAA,KAAA,GAAQ,KAAA,CAAM,QAAQ,aAAa,CAAA;AACrC,MAAA;AACA,MAAA,OAAO,MAAM,CAAA,GAAA,CAAK,aAAA,GAAgB,CAAA,IAAK,KAAA,IAAS,QAAQ,IAAA,CAAK,CAAA;AAC/D,IAAA,CAAA;AACA,IAAA,IAAI,MAAA,GAAS,SAAS,KAAA,EAAO;AAC3B,MAAA,MAAM,SAAS,EAAA;AACf,MAAA,MAAM,cAAc,KAAA,CAAM,MAAA;AAC1B,MAAA,IAAI,CAAA,GAAI,CAAA;AACR,MAAA,IAAI,CAAA,GAAI,QAAA;AACR,MAAA,IAAI,IAAA,GAAO,WAAA;AACX,MAAA,IAAI,KAAA,GAAQ,KAAA,CAAM,WAAA,CAAY,SAAS,CAAA;AACvC,MAAA,IAAI,QAAQ,CAAA,EAAG;AACb,QAAA,KAAA,GAAQ,CAAA;AACV,MAAA;AACA,MAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,KAAA,EAAO,EAAE,CAAA,EAAG;AAC9B,QAAA,IAAI,KAAA,CAAM,UAAA,CAAW,CAAC,CAAA,IAAK,GAAA,EAAK;AAC9BA,UAAAA,MAAAA,CAAM,WAAW,CAAA;AACnB,QAAA;AACA,QAAA,MAAA,CAAO,IAAA,CAAK,KAAA,CAAM,UAAA,CAAW,CAAC,CAAC,CAAA;AACjC,MAAA;AACA,MAAA,KAAA,IAAS,QAAQ,KAAA,GAAQ,CAAA,GAAI,QAAQ,CAAA,GAAI,CAAA,EAAG,QAAQ,WAAA,IAAe;AACjE,QAAA,MAAM,IAAA,GAAO,CAAA;AACb,QAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,IAAA,IAAQ,KAAK,IAAA,EAAM;AACrC,UAAA,IAAI,SAAS,WAAA,EAAa;AACxBA,YAAAA,MAAAA,CAAM,eAAe,CAAA;AACvB,UAAA;AACA,UAAA,MAAM,KAAA,GAAQ,YAAA,CAAa,KAAA,CAAM,UAAA,CAAW,OAAO,CAAC,CAAA;AACpD,UAAA,IAAI,SAAS,IAAA,EAAM;AACjBA,YAAAA,MAAAA,CAAM,eAAe,CAAA;AACvB,UAAA;AACA,UAAA,IAAI,KAAA,GAAQ,KAAA,CAAA,CAAO,MAAA,GAAS,CAAA,IAAK,CAAC,CAAA,EAAG;AACnCA,YAAAA,MAAAA,CAAM,UAAU,CAAA;AAClB,UAAA;AACA,UAAA,CAAA,IAAK,KAAA,GAAQ,CAAA;AACb,UAAA,MAAM,CAAA,GAAI,KAAK,IAAA,GAAO,IAAA,GAAO,KAAK,IAAA,GAAO,IAAA,GAAO,OAAO,CAAA,GAAI,IAAA;AAC3D,UAAA,IAAI,QAAQ,CAAA,EAAG;AACb,YAAA;AACF,UAAA;AACA,UAAA,MAAM,aAAa,IAAA,GAAO,CAAA;AAC1B,UAAA,IAAI,CAAA,GAAI,KAAA,CAAM,MAAA,GAAS,UAAU,CAAA,EAAG;AAClCA,YAAAA,MAAAA,CAAM,UAAU,CAAA;AAClB,UAAA;AACA,UAAA,CAAA,IAAK,UAAA;AACP,QAAA;AACA,QAAA,MAAM,GAAA,GAAM,OAAO,MAAA,GAAS,CAAA;AAC5B,QAAA,IAAA,GAAO,KAAA,CAAM,CAAA,GAAI,IAAA,EAAM,GAAA,EAAK,QAAQ,CAAC,CAAA;AACrC,QAAA,IAAI,KAAA,CAAM,CAAA,GAAI,GAAG,CAAA,GAAI,SAAS,CAAA,EAAG;AAC/BA,UAAAA,MAAAA,CAAM,UAAU,CAAA;AAClB,QAAA;AACA,QAAA,CAAA,IAAK,KAAA,CAAM,IAAI,GAAG,CAAA;AAClB,QAAA,CAAA,IAAK,GAAA;AACL,QAAA,MAAA,CAAO,MAAA,CAAO,CAAA,EAAA,EAAK,CAAA,EAAG,CAAC,CAAA;AACzB,MAAA;AACA,MAAA,OAAO,MAAA,CAAO,aAAA,CAAc,GAAG,MAAM,CAAA;AACvC,IAAA,CAAA;AACA,IAAA,IAAI,MAAA,GAAS,SAAS,KAAA,EAAO;AAC3B,MAAA,MAAM,SAAS,EAAA;AACf,MAAA,KAAA,GAAQ,WAAW,KAAK,CAAA;AACxB,MAAA,MAAM,cAAc,KAAA,CAAM,MAAA;AAC1B,MAAA,IAAI,CAAA,GAAI,QAAA;AACR,MAAA,IAAI,KAAA,GAAQ,CAAA;AACZ,MAAA,IAAI,IAAA,GAAO,WAAA;AACX,MAAA,KAAA,MAAW,gBAAgB,KAAA,EAAO;AAChC,QAAA,IAAI,eAAe,GAAA,EAAK;AACtB,UAAA,MAAA,CAAO,IAAA,CAAK,kBAAA,CAAmB,YAAY,CAAC,CAAA;AAC9C,QAAA;AACF,MAAA;AACA,MAAA,MAAM,cAAc,MAAA,CAAO,MAAA;AAC3B,MAAA,IAAI,cAAA,GAAiB,WAAA;AACrB,MAAA,IAAI,WAAA,EAAa;AACf,QAAA,MAAA,CAAO,KAAK,SAAS,CAAA;AACvB,MAAA;AACA,MAAA,OAAO,iBAAiB,WAAA,EAAa;AACnC,QAAA,IAAI,CAAA,GAAI,MAAA;AACR,QAAA,KAAA,MAAW,gBAAgB,KAAA,EAAO;AAChC,UAAA,IAAI,YAAA,IAAgB,CAAA,IAAK,YAAA,GAAe,CAAA,EAAG;AACzC,YAAA,CAAA,GAAI,YAAA;AACN,UAAA;AACF,QAAA;AACA,QAAA,MAAM,wBAAwB,cAAA,GAAiB,CAAA;AAC/C,QAAA,IAAI,IAAI,CAAA,GAAI,KAAA,CAAA,CAAO,MAAA,GAAS,KAAA,IAAS,qBAAqB,CAAA,EAAG;AAC3DA,UAAAA,MAAAA,CAAM,UAAU,CAAA;AAClB,QAAA;AACA,QAAA,KAAA,IAAA,CAAU,IAAI,CAAA,IAAK,qBAAA;AACnB,QAAA,CAAA,GAAI,CAAA;AACJ,QAAA,KAAA,MAAW,gBAAgB,KAAA,EAAO;AAChC,UAAA,IAAI,YAAA,GAAe,CAAA,IAAK,EAAE,KAAA,GAAQ,MAAA,EAAQ;AACxCA,YAAAA,MAAAA,CAAM,UAAU,CAAA;AAClB,UAAA;AACA,UAAA,IAAI,iBAAiB,CAAA,EAAG;AACtB,YAAA,IAAI,CAAA,GAAI,KAAA;AACR,YAAA,KAAA,IAAS,CAAA,GAAI,IAAA,IAAQ,CAAA,IAAK,IAAA,EAAM;AAC9B,cAAA,MAAM,CAAA,GAAI,KAAK,IAAA,GAAO,IAAA,GAAO,KAAK,IAAA,GAAO,IAAA,GAAO,OAAO,CAAA,GAAI,IAAA;AAC3D,cAAA,IAAI,IAAI,CAAA,EAAG;AACT,gBAAA;AACF,cAAA;AACA,cAAA,MAAM,UAAU,CAAA,GAAI,CAAA;AACpB,cAAA,MAAM,aAAa,IAAA,GAAO,CAAA;AAC1B,cAAA,MAAA,CAAO,IAAA;AACL,gBAAA,kBAAA,CAAmB,YAAA,CAAa,CAAA,GAAI,OAAA,GAAU,UAAA,EAAY,CAAC,CAAC;AAC9D,eAAA;AACA,cAAA,CAAA,GAAI,KAAA,CAAM,UAAU,UAAU,CAAA;AAChC,YAAA;AACA,YAAA,MAAA,CAAO,KAAK,kBAAA,CAAmB,YAAA,CAAa,CAAA,EAAG,CAAC,CAAC,CAAC,CAAA;AAClD,YAAA,IAAA,GAAO,KAAA,CAAM,KAAA,EAAO,qBAAA,EAAuB,cAAA,KAAmB,WAAW,CAAA;AACzE,YAAA,KAAA,GAAQ,CAAA;AACR,YAAA,EAAE,cAAA;AACJ,UAAA;AACF,QAAA;AACA,QAAA,EAAE,KAAA;AACF,QAAA,EAAE,CAAA;AACJ,MAAA;AACA,MAAA,OAAO,MAAA,CAAO,KAAK,EAAE,CAAA;AACvB,IAAA,CAAA;AACA,IAAA,IAAI,SAAA,GAAY,SAAS,KAAA,EAAO;AAC9B,MAAA,OAAO,SAAA,CAAU,KAAA,EAAO,SAAS,MAAA,EAAQ;AACvC,QAAA,OAAO,aAAA,CAAc,IAAA,CAAK,MAAM,CAAA,GAAI,MAAA,CAAO,MAAA,CAAO,KAAA,CAAM,CAAC,CAAA,CAAE,WAAA,EAAa,CAAA,GAAI,MAAA;MAC9E,CAAC,CAAA;AACH,IAAA,CAAA;AACA,IAAA,IAAI,OAAA,GAAU,SAAS,KAAA,EAAO;AAC5B,MAAA,OAAO,SAAA,CAAU,KAAA,EAAO,SAAS,MAAA,EAAQ;AACvC,QAAA,OAAO,cAAc,IAAA,CAAK,MAAM,IAAI,MAAA,GAAS,MAAA,CAAO,MAAM,CAAA,GAAI,MAAA;MAChE,CAAC,CAAA;AACH,IAAA,CAAA;AACA,IAAA,IAAI,QAAA,GAAW;;;;;;MAMb,SAAA,EAAW,OAAA;;;;;;;;MAQX,MAAA,EAAQ;QACN,QAAA,EAAU,UAAA;QACV,QAAA,EAAU;AACZ,OAAA;MACA,QAAA,EAAU,MAAA;MACV,QAAA,EAAU,MAAA;MACV,SAAA,EAAW,OAAA;MACX,WAAA,EAAa;AACf,KAAA;AACA,IAAA,MAAA,CAAO,OAAA,GAAU,QAAA;AACnB,EAAA;AACF,CAAC,CAAA;AAGD,IAAI,wBAAwBa,WAAAA,CAAW;AACrC,EAAA,qCAAA,CAAsC,SAAS,MAAA,EAAQ;AAErD,IAAA,MAAA,CAAO,OAAA,GAAU,SAAS,QAAA,CAAS,IAAA,EAAM,QAAA,EAAU;AACjD,MAAA,QAAA,GAAW,QAAA,CAAS,KAAA,CAAM,GAAG,CAAA,CAAE,CAAC,CAAA;AAChC,MAAA,IAAA,GAAO,CAAC,IAAA;AACR,MAAA,IAAI,CAAC,IAAA;AAAM,QAAA,OAAO,KAAA;AAClB,MAAA,QAAQ,QAAA;QACN,KAAK,MAAA;QACL,KAAK,IAAA;AACH,UAAA,OAAO,IAAA,KAAS,EAAA;QAClB,KAAK,OAAA;QACL,KAAK,KAAA;AACH,UAAA,OAAO,IAAA,KAAS,GAAA;QAClB,KAAK,KAAA;AACH,UAAA,OAAO,IAAA,KAAS,EAAA;QAClB,KAAK,QAAA;AACH,UAAA,OAAO,IAAA,KAAS,EAAA;QAClB,KAAK,MAAA;AACH,UAAA,OAAO,KAAA;AACX;AACA,MAAA,OAAO,IAAA,KAAS,CAAA;AAClB,IAAA,CAAA;AACF,EAAA;AACF,CAAC,CAAA;AAGD,IAAI,yBAAyBA,WAAAA,CAAW;AACtC,EAAA,sCAAA,CAAuC,OAAA,EAAS;AAE9C,IAAA,IAAI,GAAA,GAAM,OAAO,SAAA,CAAU,cAAA;AAC3B,IAAA,IAAI,KAAA;AACJ,IAAA,SAAS,OAAO,KAAA,EAAO;AACrB,MAAA,IAAI;AACF,QAAA,OAAO,kBAAA,CAAmB,KAAA,CAAM,OAAA,CAAQ,KAAA,EAAO,GAAG,CAAC,CAAA;AACrD,MAAA,CAAA,CAAA,OAAS,CAAA,EAAG;AACV,QAAA,OAAO,IAAA;AACT,MAAA;AACF,IAAA;AACA,IAAA,SAAS,OAAO,KAAA,EAAO;AACrB,MAAA,IAAI;AACF,QAAA,OAAO,mBAAmB,KAAK,CAAA;AACjC,MAAA,CAAA,CAAA,OAAS,CAAA,EAAG;AACV,QAAA,OAAO,IAAA;AACT,MAAA;AACF,IAAA;AACA,IAAA,SAAS,YAAY,KAAA,EAAO;AAC1B,MAAA,IAAI,MAAA,GAAS,sBAAA,EAAwB,MAAA,GAAS,EAAA,EAAI,IAAA;AAClD,MAAA,OAAO,IAAA,GAAO,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA,EAAG;AAChC,QAAA,IAAI,GAAA,GAAM,MAAA,CAAO,IAAA,CAAK,CAAC,CAAC,GAAG,KAAA,GAAQ,MAAA,CAAO,IAAA,CAAK,CAAC,CAAC,CAAA;AACjD,QAAA,IAAI,GAAA,KAAQ,IAAA,IAAQ,KAAA,KAAU,IAAA,IAAQ,GAAA,IAAO,MAAA;AAAQ,UAAA;AACrD,QAAA,MAAA,CAAO,GAAG,CAAA,GAAI,KAAA;AAChB,MAAA;AACA,MAAA,OAAO,MAAA;AACT,IAAA;AACA,IAAA,SAAS,cAAA,CAAe,KAAK,MAAA,EAAQ;AACnC,MAAA,MAAA,GAAS,MAAA,IAAU,EAAA;AACnB,MAAA,IAAI,KAAA,GAAQ,EAAA,EAAI,KAAA,EAAO,GAAA;AACvB,MAAA,IAAI,aAAa,OAAO,MAAA;AAAQ,QAAA,MAAA,GAAS,GAAA;AACzC,MAAA,KAAK,OAAO,GAAA,EAAK;AACf,QAAA,IAAI,GAAA,CAAI,IAAA,CAAK,GAAA,EAAK,GAAG,CAAA,EAAG;AACtB,UAAA,KAAA,GAAQ,IAAI,GAAG,CAAA;AACf,UAAA,IAAI,CAAC,UAAU,KAAA,KAAU,IAAA,IAAQ,UAAU,KAAA,IAAS,KAAA,CAAM,KAAK,CAAA,CAAA,EAAI;AACjE,YAAA,KAAA,GAAQ,EAAA;AACV,UAAA;AACA,UAAA,GAAA,GAAM,OAAO,GAAG,CAAA;AAChB,UAAA,KAAA,GAAQ,OAAO,KAAK,CAAA;AACpB,UAAA,IAAI,GAAA,KAAQ,QAAQ,KAAA,KAAU,IAAA;AAAM,YAAA;AACpC,UAAA,KAAA,CAAM,IAAA,CAAK,GAAA,GAAM,GAAA,GAAM,KAAK,CAAA;AAC9B,QAAA;AACF,MAAA;AACA,MAAA,OAAO,MAAM,MAAA,GAAS,MAAA,GAAS,KAAA,CAAM,IAAA,CAAK,GAAG,CAAA,GAAI,EAAA;AACnD,IAAA;AACA,IAAA,OAAA,CAAQ,SAAA,GAAY,cAAA;AACpB,IAAA,OAAA,CAAQ,KAAA,GAAQ,WAAA;AAClB,EAAA;AACF,CAAC,CAAA;AAGD,IAAI,oBAAoBA,WAAAA,CAAW;AACjC,EAAA,iCAAA,CAAkC,SAAS,MAAA,EAAQ;AAEjD,IAAA,IAAI,WAAW,qBAAA,EAAA;AACf,IAAA,IAAI,KAAK,sBAAA,EAAA;AACT,IAAA,IAAI,mBAAA,GAAsB,4EAAA;AAC1B,IAAA,IAAI,MAAA,GAAS,WAAA;AACb,IAAA,IAAI,OAAA,GAAU,+BAAA;AACd,IAAA,IAAI,IAAA,GAAO,OAAA;AACX,IAAA,IAAI,UAAA,GAAa,kDAAA;AACjB,IAAA,IAAI,kBAAA,GAAqB,YAAA;AACzB,IAAA,SAAS,SAAS,GAAA,EAAK;AACrB,MAAA,OAAA,CAAQ,MAAM,GAAA,GAAM,EAAA,EAAI,UAAA,CAAW,OAAA,CAAQ,qBAAqB,EAAE,CAAA;AACpE,IAAA;AACA,IAAA,IAAI,KAAA,GAAQ;AACV,MAAA,CAAC,KAAK,MAAM,CAAA;;AAEZ,MAAA,CAAC,KAAK,OAAO,CAAA;;MAEb,SAAS,QAAA,CAAS,SAAS,GAAA,EAAK;AAC9B,QAAA,OAAO,SAAA,CAAU,IAAI,QAAQ,CAAA,GAAI,QAAQ,OAAA,CAAQ,KAAA,EAAO,GAAG,CAAA,GAAI,OAAA;AACjE,MAAA,CAAA;AACA,MAAA,CAAC,KAAK,UAAU,CAAA;;MAEhB,CAAC,GAAA,EAAK,QAAQ,CAAC,CAAA;;AAEf,MAAA,CAAC,GAAA,EAAK,MAAA,EAAQ,MAAA,EAAQ,CAAA,EAAG,CAAC,CAAA;;MAE1B,CAAC,SAAA,EAAW,MAAA,EAAQ,MAAA,EAAQ,CAAC,CAAA;;AAE7B,MAAA,CAAC,GAAA,EAAK,UAAA,EAAY,MAAA,EAAQ,CAAA,EAAG,CAAC;;AAEhC,KAAA;AACA,IAAA,IAAI,MAAA,GAAS,EAAE,IAAA,EAAM,CAAA,EAAG,OAAO,CAAA,EAAA;AAC/B,IAAA,SAAS,UAAU,GAAA,EAAK;AACtB,MAAA,IAAI,SAAA;AACJ,MAAA,IAAI,OAAO,MAAA,KAAW,WAAA;AAAa,QAAA,SAAA,GAAY,MAAA;AACtC,WAAA,IAAA,OAAO,MAAA,KAAW,WAAA;AAAa,QAAA,SAAA,GAAY,MAAA;AAC3C,WAAA,IAAA,OAAO,IAAA,KAAS,WAAA;AAAa,QAAA,SAAA,GAAY,IAAA;;AAC7C,QAAA,SAAA,GAAY,EAAA;AACjB,MAAA,IAAIK,SAAAA,GAAW,SAAA,CAAU,QAAA,IAAY,EAAA;AACrC,MAAA,GAAA,GAAM,GAAA,IAAOA,SAAAA;AACb,MAAA,IAAI,gBAAA,GAAmB,EAAA,EAAI,IAAA,GAAO,OAAO,GAAA,EAAK,GAAA;AAC9C,MAAA,IAAI,OAAA,KAAY,IAAI,QAAA,EAAU;AAC5B,QAAA,gBAAA,GAAmB,IAAI,GAAA,CAAI,QAAA,CAAS,IAAI,QAAQ,CAAA,EAAG,EAAE,CAAA;AACvD,MAAA,CAAA,MAAA,IAAW,aAAa,IAAA,EAAM;AAC5B,QAAA,gBAAA,GAAmB,IAAI,GAAA,CAAI,GAAA,EAAK,EAAE,CAAA;AAClC,QAAA,KAAK,GAAA,IAAO,MAAA;AAAQ,UAAA,OAAO,iBAAiB,GAAG,CAAA;AACjD,MAAA,CAAA,MAAA,IAAW,aAAa,IAAA,EAAM;AAC5B,QAAA,KAAK,OAAO,GAAA,EAAK;AACf,UAAA,IAAI,GAAA,IAAO,MAAA;AAAQ,YAAA;AACnB,UAAA,gBAAA,CAAiB,GAAG,CAAA,GAAI,GAAA,CAAI,GAAG,CAAA;AACjC,QAAA;AACA,QAAA,IAAI,gBAAA,CAAiB,YAAY,MAAA,EAAQ;AACvC,UAAA,gBAAA,CAAiB,OAAA,GAAU,OAAA,CAAQ,IAAA,CAAK,GAAA,CAAI,IAAI,CAAA;AAClD,QAAA;AACF,MAAA;AACA,MAAA,OAAO,gBAAA;AACT,IAAA;AACA,IAAA,SAAS,UAAU,MAAA,EAAQ;AACzB,MAAA,OAAO,MAAA,KAAW,OAAA,IAAW,MAAA,KAAW,MAAA,IAAU,MAAA,KAAW,WAAW,MAAA,KAAW,QAAA,IAAY,MAAA,KAAW,KAAA,IAAS,MAAA,KAAW,MAAA;AAChI,IAAA;AACA,IAAA,SAAS,eAAA,CAAgB,SAASA,SAAAA,EAAU;AAC1C,MAAA,OAAA,GAAU,SAAS,OAAO,CAAA;AAC1B,MAAA,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,MAAA,EAAQ,EAAE,CAAA;AACpCA,MAAAA,SAAAA,GAAWA,aAAY,EAAA;AACvB,MAAA,IAAInB,MAAAA,GAAQ,UAAA,CAAW,IAAA,CAAK,OAAO,CAAA;AACnC,MAAA,IAAI,QAAA,GAAWA,OAAM,CAAC,CAAA,GAAIA,OAAM,CAAC,CAAA,CAAE,aAAA,GAAgB,EAAA;AACnD,MAAA,IAAI,cAAA,GAAiB,CAAC,CAACA,MAAAA,CAAM,CAAC,CAAA;AAC9B,MAAA,IAAI,YAAA,GAAe,CAAC,CAACA,MAAAA,CAAM,CAAC,CAAA;AAC5B,MAAA,IAAI,YAAA,GAAe,CAAA;AACnB,MAAA,IAAI,IAAA;AACJ,MAAA,IAAI,cAAA,EAAgB;AAClB,QAAA,IAAI,YAAA,EAAc;AAChB,UAAA,IAAA,GAAOA,OAAM,CAAC,CAAA,GAAIA,OAAM,CAAC,CAAA,GAAIA,OAAM,CAAC,CAAA;AACpC,UAAA,YAAA,GAAeA,OAAM,CAAC,CAAA,CAAE,MAAA,GAASA,MAAAA,CAAM,CAAC,CAAA,CAAE,MAAA;QAC5C,CAAA,MAAO;AACL,UAAA,IAAA,GAAOA,MAAAA,CAAM,CAAC,CAAA,GAAIA,MAAAA,CAAM,CAAC,CAAA;AACzB,UAAA,YAAA,GAAeA,MAAAA,CAAM,CAAC,CAAA,CAAE,MAAA;AAC1B,QAAA;MACF,CAAA,MAAO;AACL,QAAA,IAAI,YAAA,EAAc;AAChB,UAAA,IAAA,GAAOA,MAAAA,CAAM,CAAC,CAAA,GAAIA,MAAAA,CAAM,CAAC,CAAA;AACzB,UAAA,YAAA,GAAeA,MAAAA,CAAM,CAAC,CAAA,CAAE,MAAA;QAC1B,CAAA,MAAO;AACL,UAAA,IAAA,GAAOA,OAAM,CAAC,CAAA;AAChB,QAAA;AACF,MAAA;AACA,MAAA,IAAI,aAAa,OAAA,EAAS;AACxB,QAAA,IAAI,gBAAgB,CAAA,EAAG;AACrB,UAAA,IAAA,GAAO,IAAA,CAAK,MAAM,CAAC,CAAA;AACrB,QAAA;MACF,CAAA,MAAA,IAAW,SAAA,CAAU,QAAQ,CAAA,EAAG;AAC9B,QAAA,IAAA,GAAOA,OAAM,CAAC,CAAA;AAChB,MAAA,CAAA,MAAA,IAAW,QAAA,EAAU;AACnB,QAAA,IAAI,cAAA,EAAgB;AAClB,UAAA,IAAA,GAAO,IAAA,CAAK,MAAM,CAAC,CAAA;AACrB,QAAA;AACF,MAAA,CAAA,MAAA,IAAW,YAAA,IAAgB,CAAA,IAAK,SAAA,CAAUmB,SAAAA,CAAS,QAAQ,CAAA,EAAG;AAC5D,QAAA,IAAA,GAAOnB,OAAM,CAAC,CAAA;AAChB,MAAA;AACA,MAAA,OAAO;AACL,QAAA,QAAA;QACA,OAAA,EAAS,cAAA,IAAkB,UAAU,QAAQ,CAAA;AAC7C,QAAA,YAAA;AACA,QAAA;AACF,OAAA;AACF,IAAA;AACA,IAAA,SAAS,OAAA,CAAQ,UAAU,IAAA,EAAM;AAC/B,MAAA,IAAI,QAAA,KAAa,EAAA;AAAI,QAAA,OAAO,IAAA;AAC5B,MAAA,IAAI,IAAA,GAAA,CAAQ,IAAA,IAAQ,GAAA,EAAK,KAAA,CAAM,GAAG,CAAA,CAAE,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA,CAAE,MAAA,CAAO,QAAA,CAAS,KAAA,CAAM,GAAG,CAAC,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,MAAA,EAAQ,IAAA,GAAO,IAAA,CAAK,CAAA,GAAI,CAAC,CAAA,EAAG,OAAA,GAAU,KAAA,EAAO,EAAA,GAAK,CAAA;AACzI,MAAA,OAAO,CAAA,EAAA,EAAK;AACV,QAAA,IAAI,IAAA,CAAK,CAAC,CAAA,KAAM,GAAA,EAAK;AACnB,UAAA,IAAA,CAAK,MAAA,CAAO,GAAG,CAAC,CAAA;QAClB,CAAA,MAAA,IAAW,IAAA,CAAK,CAAC,CAAA,KAAM,IAAA,EAAM;AAC3B,UAAA,IAAA,CAAK,MAAA,CAAO,GAAG,CAAC,CAAA;AAChB,UAAA,EAAA,EAAA;AACF,QAAA,CAAA,MAAA,IAAW,EAAA,EAAI;AACb,UAAA,IAAI,CAAA,KAAM,CAAA;AAAG,YAAA,OAAA,GAAU,IAAA;AACvB,UAAA,IAAA,CAAK,MAAA,CAAO,GAAG,CAAC,CAAA;AAChB,UAAA,EAAA,EAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA,IAAI,OAAA;AAAS,QAAA,IAAA,CAAK,QAAQ,EAAE,CAAA;AAC5B,MAAA,IAAI,IAAA,KAAS,OAAO,IAAA,KAAS,IAAA;AAAM,QAAA,IAAA,CAAK,KAAK,EAAE,CAAA;AAC/C,MAAA,OAAO,IAAA,CAAK,KAAK,GAAG,CAAA;AACtB,IAAA;AACA,IAAA,SAAS,GAAA,CAAI,OAAA,EAASmB,SAAAA,EAAU,MAAA,EAAQ;AACtC,MAAA,OAAA,GAAU,SAAS,OAAO,CAAA;AAC1B,MAAA,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,MAAA,EAAQ,EAAE,CAAA;AACpC,MAAA,IAAI,EAAE,gBAAgB,GAAA,CAAA,EAAM;AAC1B,QAAA,OAAO,IAAI,GAAA,CAAI,OAAA,EAASA,SAAAA,EAAU,MAAM,CAAA;AAC1C,MAAA;AACA,MAAA,IAAI,QAAA,EAAU,SAAA,EAAWF,MAAAA,EAAO,WAAA,EAAa,OAAO,GAAA,EAAK,YAAA,GAAe,KAAA,CAAM,KAAA,IAAS,IAAA,GAAO,OAAOE,SAAAA,EAAU,GAAA,GAAM,MAAM,CAAA,GAAI,CAAA;AAC/H,MAAA,IAAI,QAAA,KAAa,IAAA,IAAQ,QAAA,KAAa,IAAA,EAAM;AAC1C,QAAA,MAAA,GAASA,SAAAA;AACTA,QAAAA,SAAAA,GAAW,IAAA;AACb,MAAA;AACA,MAAA,IAAI,MAAA,IAAU,eAAe,OAAO,MAAA;AAAQ,QAAA,MAAA,GAAS,EAAA,CAAG,KAAA;AACxDA,MAAAA,SAAAA,GAAW,UAAUA,SAAQ,CAAA;AAC7B,MAAA,SAAA,GAAY,eAAA,CAAgB,OAAA,IAAW,EAAA,EAAIA,SAAQ,CAAA;AACnD,MAAA,QAAA,GAAW,CAAC,SAAA,CAAU,QAAA,IAAY,CAAC,SAAA,CAAU,OAAA;AAC7C,MAAA,GAAA,CAAI,OAAA,GAAU,SAAA,CAAU,OAAA,IAAW,QAAA,IAAYA,SAAAA,CAAS,OAAA;AACxD,MAAA,GAAA,CAAI,QAAA,GAAW,SAAA,CAAU,QAAA,IAAYA,SAAAA,CAAS,QAAA,IAAY,EAAA;AAC1D,MAAA,OAAA,GAAU,SAAA,CAAU,IAAA;AACpB,MAAA,IAAI,SAAA,CAAU,aAAa,OAAA,KAAY,SAAA,CAAU,iBAAiB,CAAA,IAAK,kBAAA,CAAmB,IAAA,CAAK,OAAO,CAAA,CAAA,IAAM,CAAC,UAAU,OAAA,KAAY,SAAA,CAAU,YAAY,SAAA,CAAU,YAAA,GAAe,KAAK,CAAC,SAAA,CAAU,GAAA,CAAI,QAAQ,CAAA,CAAA,EAAI;AAChN,QAAA,YAAA,CAAa,CAAC,CAAA,GAAI,CAAC,MAAA,EAAQ,UAAU,CAAA;AACvC,MAAA;AACA,MAAA,OAAO,CAAA,GAAI,YAAA,CAAa,MAAA,EAAQ,CAAA,EAAA,EAAK;AACnC,QAAA,WAAA,GAAc,aAAa,CAAC,CAAA;AAC5B,QAAA,IAAI,OAAO,gBAAgB,UAAA,EAAY;AACrC,UAAA,OAAA,GAAU,WAAA,CAAY,SAAS,GAAG,CAAA;AAClC,UAAA;AACF,QAAA;AACAF,QAAAA,MAAAA,GAAQ,YAAY,CAAC,CAAA;AACrB,QAAA,GAAA,GAAM,YAAY,CAAC,CAAA;AACnB,QAAA,IAAIA,WAAUA,MAAAA,EAAO;AACnB,UAAA,GAAA,CAAI,GAAG,CAAA,GAAI,OAAA;QACb,CAAA,MAAA,IAAW,QAAA,KAAa,OAAOA,MAAAA,EAAO;AACpC,UAAA,KAAA,GAAQA,MAAAA,KAAU,MAAM,OAAA,CAAQ,WAAA,CAAYA,MAAK,CAAA,GAAI,OAAA,CAAQ,QAAQA,MAAK,CAAA;AAC1E,UAAA,IAAI,CAAC,KAAA,EAAO;AACV,YAAA,IAAI,QAAA,KAAa,OAAO,WAAA,CAAY,CAAC,CAAA,EAAG;AACtC,cAAA,GAAA,CAAI,GAAG,CAAA,GAAI,OAAA,CAAQ,KAAA,CAAM,GAAG,KAAK,CAAA;AACjC,cAAA,OAAA,GAAU,OAAA,CAAQ,KAAA,CAAM,KAAA,GAAQ,WAAA,CAAY,CAAC,CAAC,CAAA;YAChD,CAAA,MAAO;AACL,cAAA,GAAA,CAAI,GAAG,CAAA,GAAI,OAAA,CAAQ,KAAA,CAAM,KAAK,CAAA;AAC9B,cAAA,OAAA,GAAU,OAAA,CAAQ,KAAA,CAAM,CAAA,EAAG,KAAK,CAAA;AAClC,YAAA;AACF,UAAA;AACF,QAAA,CAAA,MAAA,IAAW,KAAA,GAAQA,MAAAA,CAAM,IAAA,CAAK,OAAO,CAAA,EAAG;AACtC,UAAA,GAAA,CAAI,GAAG,CAAA,GAAI,KAAA,CAAM,CAAC,CAAA;AAClB,UAAA,OAAA,GAAU,OAAA,CAAQ,KAAA,CAAM,CAAA,EAAG,KAAA,CAAM,KAAK,CAAA;AACxC,QAAA;AACA,QAAA,GAAA,CAAI,GAAG,CAAA,GAAI,GAAA,CAAI,GAAG,CAAA,KAAM,QAAA,IAAY,WAAA,CAAY,CAAC,CAAA,GAAIE,SAAAA,CAAS,GAAG,CAAA,IAAK,EAAA,GAAK,EAAA,CAAA;AAC3E,QAAA,IAAI,YAAY,CAAC,CAAA;AAAG,UAAA,GAAA,CAAI,GAAG,CAAA,GAAI,GAAA,CAAI,GAAG,EAAE,WAAA,EAAA;AAC1C,MAAA;AACA,MAAA,IAAI,MAAA;AAAQ,QAAA,GAAA,CAAI,KAAA,GAAQ,MAAA,CAAO,GAAA,CAAI,KAAK,CAAA;AACxC,MAAA,IAAI,QAAA,IAAYA,SAAAA,CAAS,OAAA,IAAW,GAAA,CAAI,SAAS,MAAA,CAAO,CAAC,CAAA,KAAM,GAAA,KAAQ,GAAA,CAAI,QAAA,KAAa,EAAA,IAAMA,SAAAA,CAAS,aAAa,EAAA,CAAA,EAAK;AACvH,QAAA,GAAA,CAAI,QAAA,GAAW,OAAA,CAAQ,GAAA,CAAI,QAAA,EAAUA,UAAS,QAAQ,CAAA;AACxD,MAAA;AACA,MAAA,IAAI,GAAA,CAAI,SAAS,MAAA,CAAO,CAAC,MAAM,GAAA,IAAO,SAAA,CAAU,GAAA,CAAI,QAAQ,CAAA,EAAG;AAC7D,QAAA,GAAA,CAAI,QAAA,GAAW,MAAM,GAAA,CAAI,QAAA;AAC3B,MAAA;AACA,MAAA,IAAI,CAAC,QAAA,CAAS,GAAA,CAAI,IAAA,EAAM,GAAA,CAAI,QAAQ,CAAA,EAAG;AACrC,QAAA,GAAA,CAAI,OAAO,GAAA,CAAI,QAAA;AACf,QAAA,GAAA,CAAI,IAAA,GAAO,EAAA;AACb,MAAA;AACA,MAAA,GAAA,CAAI,QAAA,GAAW,IAAI,QAAA,GAAW,EAAA;AAC9B,MAAA,IAAI,IAAI,IAAA,EAAM;AACZ,QAAA,KAAA,GAAQ,GAAA,CAAI,IAAA,CAAK,OAAA,CAAQ,GAAG,CAAA;AAC5B,QAAA,IAAI,CAAC,KAAA,EAAO;AACV,UAAA,GAAA,CAAI,QAAA,GAAW,GAAA,CAAI,IAAA,CAAK,KAAA,CAAM,GAAG,KAAK,CAAA;AACtC,UAAA,GAAA,CAAI,QAAA,GAAW,kBAAA,CAAmB,kBAAA,CAAmB,GAAA,CAAI,QAAQ,CAAC,CAAA;AAClE,UAAA,GAAA,CAAI,QAAA,GAAW,GAAA,CAAI,IAAA,CAAK,KAAA,CAAM,QAAQ,CAAC,CAAA;AACvC,UAAA,GAAA,CAAI,QAAA,GAAW,kBAAA,CAAmB,kBAAA,CAAmB,GAAA,CAAI,QAAQ,CAAC,CAAA;QACpE,CAAA,MAAO;AACL,UAAA,GAAA,CAAI,QAAA,GAAW,kBAAA,CAAmB,kBAAA,CAAmB,GAAA,CAAI,IAAI,CAAC,CAAA;AAChE,QAAA;AACA,QAAA,GAAA,CAAI,IAAA,GAAO,IAAI,QAAA,GAAW,GAAA,CAAI,WAAW,GAAA,GAAM,GAAA,CAAI,WAAW,GAAA,CAAI,QAAA;AACpE,MAAA;AACA,MAAA,GAAA,CAAI,MAAA,GAAS,GAAA,CAAI,QAAA,KAAa,OAAA,IAAW,UAAU,GAAA,CAAI,QAAQ,CAAA,IAAK,GAAA,CAAI,IAAA,GAAO,GAAA,CAAI,QAAA,GAAW,IAAA,GAAO,IAAI,IAAA,GAAO,MAAA;AAChH,MAAA,GAAA,CAAI,IAAA,GAAO,IAAI,QAAA,EAAA;AACjB,IAAA;AACA,IAAA,SAAS,GAAA,CAAI,IAAA,EAAM,KAAA,EAAO,EAAA,EAAI;AAC5B,MAAA,IAAI,GAAA,GAAM,IAAA;AACV,MAAA,QAAQ,IAAA;QACN,KAAK,OAAA;AACH,UAAA,IAAI,QAAA,KAAa,OAAO,KAAA,IAAS,KAAA,CAAM,MAAA,EAAQ;AAC7C,YAAA,KAAA,GAAA,CAAS,EAAA,IAAM,EAAA,CAAG,KAAA,EAAO,KAAK,CAAA;AAChC,UAAA;AACA,UAAA,GAAA,CAAI,IAAI,CAAA,GAAI,KAAA;AACZ,UAAA;QACF,KAAK,MAAA;AACH,UAAA,GAAA,CAAI,IAAI,CAAA,GAAI,KAAA;AACZ,UAAA,IAAI,CAAC,QAAA,CAAS,KAAA,EAAO,GAAA,CAAI,QAAQ,CAAA,EAAG;AAClC,YAAA,GAAA,CAAI,OAAO,GAAA,CAAI,QAAA;AACf,YAAA,GAAA,CAAI,IAAI,CAAA,GAAI,EAAA;AACd,UAAA,CAAA,MAAA,IAAW,KAAA,EAAO;AAChB,YAAA,GAAA,CAAI,IAAA,GAAO,GAAA,CAAI,QAAA,GAAW,GAAA,GAAM,KAAA;AAClC,UAAA;AACA,UAAA;QACF,KAAK,UAAA;AACH,UAAA,GAAA,CAAI,IAAI,CAAA,GAAI,KAAA;AACZ,UAAA,IAAI,GAAA,CAAI,IAAA;AAAM,YAAA,KAAA,IAAS,MAAM,GAAA,CAAI,IAAA;AACjC,UAAA,GAAA,CAAI,IAAA,GAAO,KAAA;AACX,UAAA;QACF,KAAK,MAAA;AACH,UAAA,GAAA,CAAI,IAAI,CAAA,GAAI,KAAA;AACZ,UAAA,IAAI,IAAA,CAAK,IAAA,CAAK,KAAK,CAAA,EAAG;AACpB,YAAA,KAAA,GAAQ,KAAA,CAAM,MAAM,GAAG,CAAA;AACvB,YAAA,GAAA,CAAI,IAAA,GAAO,MAAM,GAAA,EAAA;AACjB,YAAA,GAAA,CAAI,QAAA,GAAW,KAAA,CAAM,IAAA,CAAK,GAAG,CAAA;UAC/B,CAAA,MAAO;AACL,YAAA,GAAA,CAAI,QAAA,GAAW,KAAA;AACf,YAAA,GAAA,CAAI,IAAA,GAAO,EAAA;AACb,UAAA;AACA,UAAA;QACF,KAAK,UAAA;AACH,UAAA,GAAA,CAAI,QAAA,GAAW,MAAM,WAAA,EAAA;AACrB,UAAA,GAAA,CAAI,UAAU,CAAC,EAAA;AACf,UAAA;QACF,KAAK,UAAA;QACL,KAAK,MAAA;AACH,UAAA,IAAI,KAAA,EAAO;AACT,YAAA,IAAI,IAAA,GAAO,IAAA,KAAS,UAAA,GAAa,GAAA,GAAM,GAAA;AACvC,YAAA,GAAA,CAAI,IAAI,IAAI,KAAA,CAAM,MAAA,CAAO,CAAC,CAAA,KAAM,IAAA,GAAO,OAAO,KAAA,GAAQ,KAAA;UACxD,CAAA,MAAO;AACL,YAAA,GAAA,CAAI,IAAI,CAAA,GAAI,KAAA;AACd,UAAA;AACA,UAAA;QACF,KAAK,UAAA;QACL,KAAK,UAAA;AACH,UAAA,GAAA,CAAI,IAAI,CAAA,GAAI,kBAAA,CAAmB,KAAK,CAAA;AACpC,UAAA;QACF,KAAK,MAAA;AACH,UAAA,IAAI,KAAA,GAAQ,KAAA,CAAM,OAAA,CAAQ,GAAG,CAAA;AAC7B,UAAA,IAAI,CAAC,KAAA,EAAO;AACV,YAAA,GAAA,CAAI,QAAA,GAAW,KAAA,CAAM,KAAA,CAAM,CAAA,EAAG,KAAK,CAAA;AACnC,YAAA,GAAA,CAAI,QAAA,GAAW,kBAAA,CAAmB,kBAAA,CAAmB,GAAA,CAAI,QAAQ,CAAC,CAAA;AAClE,YAAA,GAAA,CAAI,QAAA,GAAW,KAAA,CAAM,KAAA,CAAM,KAAA,GAAQ,CAAC,CAAA;AACpC,YAAA,GAAA,CAAI,QAAA,GAAW,kBAAA,CAAmB,kBAAA,CAAmB,GAAA,CAAI,QAAQ,CAAC,CAAA;UACpE,CAAA,MAAO;AACL,YAAA,GAAA,CAAI,QAAA,GAAW,kBAAA,CAAmB,kBAAA,CAAmB,KAAK,CAAC,CAAA;AAC7D,UAAA;AACJ;AACA,MAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,KAAA,CAAM,QAAQ,CAAA,EAAA,EAAK;AACrC,QAAA,IAAI,GAAA,GAAM,MAAM,CAAC,CAAA;AACjB,QAAA,IAAI,IAAI,CAAC,CAAA;AAAG,UAAA,GAAA,CAAI,GAAA,CAAI,CAAC,CAAC,CAAA,GAAI,IAAI,GAAA,CAAI,CAAC,CAAC,CAAA,CAAE,WAAA,EAAA;AACxC,MAAA;AACA,MAAA,GAAA,CAAI,IAAA,GAAO,IAAI,QAAA,GAAW,GAAA,CAAI,WAAW,GAAA,GAAM,GAAA,CAAI,WAAW,GAAA,CAAI,QAAA;AAClE,MAAA,GAAA,CAAI,MAAA,GAAS,GAAA,CAAI,QAAA,KAAa,OAAA,IAAW,UAAU,GAAA,CAAI,QAAQ,CAAA,IAAK,GAAA,CAAI,IAAA,GAAO,GAAA,CAAI,QAAA,GAAW,IAAA,GAAO,IAAI,IAAA,GAAO,MAAA;AAChH,MAAA,GAAA,CAAI,IAAA,GAAO,IAAI,QAAA,EAAA;AACf,MAAA,OAAO,GAAA;AACT,IAAA;AACA,IAAA,SAAS,SAAS,SAAA,EAAW;AAC3B,MAAA,IAAI,CAAC,SAAA,IAAa,UAAA,KAAe,OAAO,SAAA;AAAW,QAAA,SAAA,GAAY,EAAA,CAAG,SAAA;AAClE,MAAA,IAAI,OAAO,GAAA,GAAM,IAAA,EAAM,OAAO,GAAA,CAAI,IAAA,EAAM,WAAW,GAAA,CAAI,QAAA;AACvD,MAAA,IAAI,YAAY,QAAA,CAAS,MAAA,CAAO,QAAA,CAAS,MAAA,GAAS,CAAC,CAAA,KAAM,GAAA;AAAK,QAAA,QAAA,IAAY,GAAA;AAC1E,MAAA,IAAI,MAAA,GAAS,QAAA,IAAY,GAAA,CAAI,QAAA,IAAY,GAAA,CAAI,WAAW,SAAA,CAAU,GAAA,CAAI,QAAQ,CAAA,GAAI,IAAA,GAAO,EAAA,CAAA;AACzF,MAAA,IAAI,IAAI,QAAA,EAAU;AAChB,QAAA,MAAA,IAAU,GAAA,CAAI,QAAA;AACd,QAAA,IAAI,GAAA,CAAI,QAAA;AAAU,UAAA,MAAA,IAAU,MAAM,GAAA,CAAI,QAAA;AACtC,QAAA,MAAA,IAAU,GAAA;AACZ,MAAA,CAAA,MAAA,IAAW,IAAI,QAAA,EAAU;AACvB,QAAA,MAAA,IAAU,MAAM,GAAA,CAAI,QAAA;AACpB,QAAA,MAAA,IAAU,GAAA;MACZ,CAAA,MAAA,IAAW,GAAA,CAAI,QAAA,KAAa,OAAA,IAAW,SAAA,CAAU,GAAA,CAAI,QAAQ,CAAA,IAAK,CAAC,IAAA,IAAQ,GAAA,CAAI,QAAA,KAAa,GAAA,EAAK;AAC/F,QAAA,MAAA,IAAU,GAAA;AACZ,MAAA;AACA,MAAA,IAAI,IAAA,CAAK,IAAA,CAAK,MAAA,GAAS,CAAC,CAAA,KAAM,GAAA,IAAO,IAAA,CAAK,IAAA,CAAK,GAAA,CAAI,QAAQ,CAAA,IAAK,CAAC,IAAI,IAAA,EAAM;AACzE,QAAA,IAAA,IAAQ,GAAA;AACV,MAAA;AACA,MAAA,MAAA,IAAU,OAAO,GAAA,CAAI,QAAA;AACrB,MAAA,KAAA,GAAQ,QAAA,KAAa,OAAO,GAAA,CAAI,KAAA,GAAQ,UAAU,GAAA,CAAI,KAAK,IAAI,GAAA,CAAI,KAAA;AACnE,MAAA,IAAI,KAAA;AAAO,QAAA,MAAA,IAAU,QAAQ,KAAA,CAAM,MAAA,CAAO,CAAC,CAAA,GAAI,MAAM,KAAA,GAAQ,KAAA;AAC7D,MAAA,IAAI,GAAA,CAAI,IAAA;AAAM,QAAA,MAAA,IAAU,GAAA,CAAI,IAAA;AAC5B,MAAA,OAAO,MAAA;AACT,IAAA;AACA,IAAA,GAAA,CAAI,SAAA,GAAY,EAAE,GAAA,EAAK,QAAA,EAAA;AACvB,IAAA,GAAA,CAAI,eAAA,GAAkB,eAAA;AACtB,IAAA,GAAA,CAAI,QAAA,GAAW,SAAA;AACf,IAAA,GAAA,CAAI,QAAA,GAAW,QAAA;AACf,IAAA,GAAA,CAAI,EAAA,GAAK,EAAA;AACT,IAAA,MAAA,CAAO,OAAA,GAAU,GAAA;AACnB,EAAA;AACF,CAAC,CAAA;AAGD,IAAI,gBAAgBL,WAAAA,CAAW;AAC7B,EAAA,kCAAA,CAAmC,SAAS,MAAA,EAAQ;AAClD,IAAA,MAAA,CAAO,OAAA,GAAU;AACf,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,6BAAA;AACA,MAAA,0BAAA;AACA,MAAA,gBAAA;AACA,MAAA,eAAA;AACA,MAAA,gBAAA;AACA,MAAA,aAAA;AACA,MAAA,eAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,uBAAA;AACA,MAAA,iBAAA;AACA,MAAA,0BAAA;AACA,MAAA,gBAAA;AACA,MAAA,gBAAA;AACA,MAAA,kBAAA;AACA,MAAA,aAAA;AACA,MAAA,iBAAA;AACA,MAAA,aAAA;AACA,MAAA,UAAA;AACA,MAAA,YAAA;AACA,MAAA,eAAA;AACA,MAAA,oBAAA;AACA,MAAA,mBAAA;AACA,MAAA,cAAA;AACA,MAAA,oBAAA;AACA,MAAA,WAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,WAAA;AACA,MAAA,aAAA;AACA,MAAA,WAAA;AACA,MAAA,eAAA;AACA,MAAA,gBAAA;AACA,MAAA,aAAA;AACA,MAAA,eAAA;AACA,MAAA,oBAAA;AACA,MAAA,gBAAA;AACA,MAAA,eAAA;AACA,MAAA,cAAA;AACA,MAAA,iBAAA;AACA,MAAA,aAAA;AACA,MAAA,WAAA;AACA,MAAA,cAAA;AACA,MAAA,iBAAA;AACA,MAAA,qBAAA;AACA,MAAA,YAAA;AACA,MAAA,kBAAA;AACA,MAAA,gBAAA;AACA,MAAA,gBAAA;AACA,MAAA,cAAA;AACA,MAAA,iBAAA;AACA,MAAA,cAAA;AACA,MAAA,gBAAA;AACA,MAAA,eAAA;AACA,MAAA,kBAAA;AACA,MAAA,YAAA;AACA,MAAA,iBAAA;AACA,MAAA,gBAAA;AACA,MAAA,iBAAA;AACA,MAAA,kBAAA;AACA,MAAA,kBAAA;AACA,MAAA,4BAAA;AACA,MAAA,YAAA;AACA,MAAA,YAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,cAAA;AACA,MAAA,UAAA;AACA,MAAA,eAAA;AACA,MAAA,iBAAA;AACA,MAAA,aAAA;AACA,MAAA,gBAAA;AACA,MAAA,eAAA;AACA,MAAA,WAAA;AACA,MAAA,gBAAA;AACA,MAAA,eAAA;AACA,MAAA,cAAA;AACA,MAAA,aAAA;AACA,MAAA,cAAA;AACA,MAAA,cAAA;AACA,MAAA,YAAA;AACA,MAAA,mBAAA;AACA,MAAA,YAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,YAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,WAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,WAAA;AACA,MAAA,cAAA;AACA,MAAA,UAAA;AACA,MAAA,WAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,WAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,YAAA;AACA,MAAA,iBAAA;AACA,MAAA,YAAA;AACA,MAAA,WAAA;AACA,MAAA,YAAA;AACA,MAAA,WAAA;AACA,MAAA,YAAA;AACA,MAAA,YAAA;AACA,MAAA,WAAA;AACA,MAAA,YAAA;AACA,MAAA,WAAA;AACA,MAAA,YAAA;AACA,MAAA,YAAA;AACA,MAAA,WAAA;AACA,MAAA,oBAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,UAAA;AACA,MAAA,OAAA;AACA,MAAA,MAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,KAAA;AACA,MAAA,IAAA;AACA,MAAA,SAAA;AACA,MAAA,YAAA;AACA,MAAA,SAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,aAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,YAAA;AACA,MAAA,YAAA;AACA,MAAA,gBAAA;AACA,MAAA,eAAA;AACA,MAAA,YAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,YAAA;AACA,MAAA,aAAA;AACA,MAAA,cAAA;AACA,MAAA,SAAA;AACA,MAAA,aAAA;AACA,MAAA,eAAA;AACA,MAAA,WAAA;AACA,MAAA,YAAA;AACA,MAAA,WAAA;AACA,MAAA,aAAA;AACA,MAAA,WAAA;AACA,MAAA,aAAA;AACA,MAAA,gBAAA;AACA,MAAA,kBAAA;AACA,MAAA,WAAA;AACA,MAAA,YAAA;AACA,MAAA,UAAA;AACA,MAAA,eAAA;AACA,MAAA,UAAA;AACA,MAAA,eAAA;AACA,MAAA,SAAA;AACA,MAAA,IAAA;AACA,MAAA,WAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,UAAA;AACA,MAAA,cAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,YAAA;AACA,MAAA,UAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,aAAA;AACA,MAAA,QAAA;AACA,MAAA,kBAAA;AACA,MAAA,aAAA;AACA,MAAA,WAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,aAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,WAAA;AACA,MAAA,aAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,UAAA;AACA,MAAA,SAAA;AACA,MAAA,YAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,WAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,YAAA;AACA,MAAA,QAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,UAAA;AACA,MAAA,QAAA;AACA,MAAA,cAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,aAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,YAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,WAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,UAAA;AACA,MAAA,QAAA;AACA,MAAA,YAAA;AACA,MAAA,UAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,UAAA;AACA,MAAA,QAAA;AACA,MAAA,WAAA;AACA,MAAA,QAAA;AACA,MAAA,aAAA;AACA,MAAA,QAAA;AACA,MAAA,cAAA;AACA,MAAA,aAAA;AACA,MAAA,aAAA;AACA,MAAA,UAAA;AACA,MAAA,eAAA;AACA,MAAA,eAAA;AACA,MAAA,gBAAA;AACA,MAAA,aAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,aAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,KAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,gBAAA;AACA,MAAA,QAAA;AACA,MAAA,WAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,MAAA;AACA,MAAA,SAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,iBAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,IAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,KAAA;AACA,MAAA,MAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,YAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,UAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,KAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,UAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,aAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,QAAA;AACA,MAAA,cAAA;AACA,MAAA,0BAAA;AACA,MAAA,uBAAA;AACA,MAAA,oBAAA;AACA,MAAA,UAAA;AACA,MAAA,qBAAA;AACA,MAAA,YAAA;AACA,MAAA,aAAA;AACA,MAAA,eAAA;AACA,MAAA,SAAA;AACA,MAAA,gBAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,KAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AA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ACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,UAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,IAAA;AACA,MAAA,KAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,WAAA;AACA,MAAA,MAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;A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A;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,WAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,IAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,KAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,MAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAA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A;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,UAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,IAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,MAAA,UAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,MAAA;AACA,MAAA,OAAA;AACA,MAAA,SAAA;AACA,MAAA,QAA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ACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,IAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,WAAA;AACA,MAAA,UAAA;AACA,MAAA,IAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,QAAA;AACA,MAAA,SAAA;AACA,MAAA,QAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,OAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,UAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,WAAA;AACA,MAAA,eAAA;AACA,MAAA,gBAAA;AACA,MAAA,kBAAA;AACA,MAAA,iBAA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","file":"llm-mock.cjs","sourcesContent":["var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __require = /* @__PURE__ */ ((x) => typeof require !== \"undefined\" ? require : typeof Proxy !== \"undefined\" ? new Proxy(x, {\n get: (a, b) => (typeof require !== \"undefined\" ? require : a)[b]\n}) : x)(function(x) {\n if (typeof require !== \"undefined\")\n return require.apply(this, arguments);\n throw Error('Dynamic require of \"' + x + '\" is not supported');\n});\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nvar __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, \"read from private field\");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, \"write to private field\");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, \"access private method\");\n return method;\n};\n\nexport {\n __require,\n __publicField,\n __privateGet,\n __privateAdd,\n __privateSet,\n __privateMethod\n};\n//# sourceMappingURL=chunk-D6YTI3O5.mjs.map","const POSITIONALS_EXP = /(%?)(%([sdijo]))/g\n\nfunction serializePositional(positional: any, flag: string): any {\n switch (flag) {\n // Strings.\n case 's':\n return positional\n\n // Digits.\n case 'd':\n case 'i':\n return Number(positional)\n\n // JSON.\n case 'j':\n return JSON.stringify(positional)\n\n // Objects.\n case 'o': {\n // Preserve stings to prevent extra quotes around them.\n if (typeof positional === 'string') {\n return positional\n }\n\n const json = JSON.stringify(positional)\n\n // If the positional isn't serializable, return it as-is.\n if (json === '{}' || json === '[]' || /^\\[object .+?\\]$/.test(json)) {\n return positional\n }\n\n return json\n }\n }\n}\n\nexport function format(message: string, ...positionals: any[]): string {\n if (positionals.length === 0) {\n return message\n }\n\n let positionalIndex = 0\n let formattedMessage = message.replace(\n POSITIONALS_EXP,\n (match, isEscaped, _, flag) => {\n const positional = positionals[positionalIndex]\n const value = serializePositional(positional, flag)\n\n if (!isEscaped) {\n positionalIndex++\n return value\n }\n\n return match\n }\n )\n\n // Append unresolved positionals to string as-is.\n if (positionalIndex < positionals.length) {\n formattedMessage += ` ${positionals.slice(positionalIndex).join(' ')}`\n }\n\n formattedMessage = formattedMessage.replace(/%{2,2}/g, '%')\n\n return formattedMessage\n}\n","import { format } from './format'\n\nconst STACK_FRAMES_TO_IGNORE = 2\n\n/**\n * Remove the \"outvariant\" package trace from the given error.\n * This scopes down the error stack to the relevant parts\n * when used in other applications.\n */\nfunction cleanErrorStack(error: Error): void {\n if (!error.stack) {\n return\n }\n\n const nextStack = error.stack.split('\\n')\n nextStack.splice(1, STACK_FRAMES_TO_IGNORE)\n error.stack = nextStack.join('\\n')\n}\n\nexport class InvariantError extends Error {\n name = 'Invariant Violation'\n\n constructor(public readonly message: string, ...positionals: any[]) {\n super(message)\n this.message = format(message, ...positionals)\n cleanErrorStack(this)\n }\n}\n\nexport interface CustomErrorConstructor {\n new (message: string): Error\n}\n\nexport interface CustomErrorFactory {\n (message: string): Error\n}\n\nexport type CustomError = CustomErrorConstructor | CustomErrorFactory\n\ntype Invariant = {\n (\n predicate: unknown,\n message: string,\n ...positionals: any[]\n ): asserts predicate\n\n as(\n ErrorConstructor: CustomError,\n predicate: unknown,\n message: string,\n ...positionals: unknown[]\n ): asserts predicate\n}\n\nexport const invariant: Invariant = (\n predicate,\n message,\n ...positionals\n): asserts predicate => {\n if (!predicate) {\n throw new InvariantError(message, ...positionals)\n }\n}\n\ninvariant.as = (ErrorConstructor, predicate, message, ...positionals) => {\n if (!predicate) {\n const formatMessage =\n positionals.length === 0 ? message : format(message, ...positionals)\n let error: Error\n\n try {\n error = Reflect.construct(ErrorConstructor as CustomErrorConstructor, [\n formatMessage,\n ])\n } catch (err) {\n error = (ErrorConstructor as CustomErrorFactory)(formatMessage)\n }\n\n throw error\n }\n}\n","import { format } from 'outvariant'\n\nconst LIBRARY_PREFIX = '[MSW]'\n\n/**\n * Formats a given message by appending the library's prefix string.\n */\nfunction formatMessage(message: string, ...positionals: any[]): string {\n const interpolatedMessage = format(message, ...positionals)\n return `${LIBRARY_PREFIX} ${interpolatedMessage}`\n}\n\n/**\n * Prints a library-specific warning.\n */\nfunction warn(message: string, ...positionals: any[]): void {\n // eslint-disable-next-line no-console\n console.warn(formatMessage(message, ...positionals))\n}\n\n/**\n * Prints a library-specific error.\n */\nfunction error(message: string, ...positionals: any[]): void {\n // eslint-disable-next-line no-console\n console.error(formatMessage(message, ...positionals))\n}\n\nexport const devUtils = {\n formatMessage,\n warn,\n error,\n}\n\n/**\n * Internal error instance.\n * Used to differentiate the library errors that must be forwarded\n * to the user from the unhandled exceptions. Use this if you don't\n * wish for the error to be coerced to a 500 fallback response.\n */\nexport class InternalError extends Error {\n constructor(message: string) {\n super(message)\n this.name = 'InternalError'\n }\n}\n","import { invariant } from 'outvariant'\nimport { devUtils } from './devUtils'\n\nexport function checkGlobals() {\n /**\n * MSW expects the \"URL\" constructor to be defined.\n * It's not present in React Native so suggest a polyfill\n * instead of failing silently.\n * @see https://github.com/mswjs/msw/issues/1408\n */\n invariant(\n typeof URL !== 'undefined',\n devUtils.formatMessage(\n `Global \"URL\" class is not defined. This likely means that you're running MSW in an environment that doesn't support all Node.js standard API (e.g. React Native). If that's the case, please use an appropriate polyfill for the \"URL\" class, like \"react-native-url-polyfill\".`,\n ),\n )\n}\n","import type { Emitter } from './Emitter'\n\nexport class MemoryLeakError extends Error {\n constructor(\n public readonly emitter: Emitter<any>,\n public readonly type: string | number | symbol,\n public readonly count: number\n ) {\n super(\n `Possible EventEmitter memory leak detected. ${count} ${type.toString()} listeners added. Use emitter.setMaxListeners() to increase limit`\n )\n this.name = 'MaxListenersExceededWarning'\n }\n}\n","import { MemoryLeakError } from './MemoryLeakError'\n\nexport type EventMap = {\n [eventName: string]: Array<unknown>\n}\n\nexport type InternalEventNames = 'newListener' | 'removeListener'\n\nexport type InternalListener<Events extends EventMap> = Listener<\n [eventName: keyof Events, listener: Listener<Array<unknown>>]\n>\n\nexport type Listener<Data extends Array<unknown>> = (...data: Data) => void\n\n/**\n * Node.js-compatible implementation of `EventEmitter`.\n *\n * @example\n * const emitter = new Emitter<{ hello: [string] }>()\n * emitter.on('hello', (name) => console.log(name))\n * emitter.emit('hello', 'John')\n */\nexport class Emitter<Events extends EventMap> {\n private events: Map<keyof Events, Array<Listener<any>>>\n private maxListeners: number\n private hasWarnedAboutPotentialMemoryLeak: boolean\n\n static defaultMaxListeners = 10\n\n static listenerCount<Events extends EventMap>(\n emitter: Emitter<EventMap>,\n eventName: keyof Events\n ): number {\n return emitter.listenerCount<any>(eventName)\n }\n\n constructor() {\n this.events = new Map()\n this.maxListeners = Emitter.defaultMaxListeners\n this.hasWarnedAboutPotentialMemoryLeak = false\n }\n\n private _emitInternalEvent(\n internalEventName: InternalEventNames,\n eventName: keyof Events,\n listener: Listener<Array<unknown>>\n ): void {\n this.emit(\n internalEventName,\n // Anything to make TypeScript happy.\n ...([eventName, listener] as Events['newListener'] &\n Events['removeListener'])\n )\n }\n\n private _getListeners<EventName extends keyof Events>(\n eventName: EventName\n ): Array<Listener<Array<unknown>>> {\n // Always return a copy of the listeners array\n // so they are fixed at the time of the \"_getListeners\" call.\n return Array.prototype.concat.apply([], this.events.get(eventName)) || []\n }\n\n private _removeListener<EventName extends keyof Events>(\n listeners: Array<Listener<Events[EventName]>>,\n listener: Listener<Events[EventName]>\n ): Array<Listener<Events[EventName]>> {\n const index = listeners.indexOf(listener)\n\n if (index > -1) {\n listeners.splice(index, 1)\n }\n\n return []\n }\n\n private _wrapOnceListener<EventName extends keyof Events>(\n eventName: EventName,\n listener: Listener<Events[EventName]>\n ): Listener<Events[EventName]> {\n const onceListener = (...data: Events[keyof Events]) => {\n this.removeListener(eventName, onceListener)\n\n /**\n * @note Return the result of the original listener.\n * This way this wrapped preserves listeners that are async.\n */\n return listener.apply(this, data)\n }\n\n // Inherit the name of the original listener.\n Object.defineProperty(onceListener, 'name', { value: listener.name })\n\n return onceListener\n }\n\n public setMaxListeners(maxListeners: number): this {\n this.maxListeners = maxListeners\n return this\n }\n\n /**\n * Returns the current max listener value for the `Emitter` which is\n * either set by `emitter.setMaxListeners(n)` or defaults to\n * `Emitter.defaultMaxListeners`.\n */\n public getMaxListeners(): number {\n return this.maxListeners\n }\n\n /**\n * Returns an array listing the events for which the emitter has registered listeners.\n * The values in the array will be strings or Symbols.\n */\n public eventNames(): Array<keyof Events> {\n return Array.from(this.events.keys())\n }\n\n /**\n * Synchronously calls each of the listeners registered for the event named `eventName`,\n * in the order they were registered, passing the supplied arguments to each.\n * Returns `true` if the event has listeners, `false` otherwise.\n *\n * @example\n * const emitter = new Emitter<{ hello: [string] }>()\n * emitter.emit('hello', 'John')\n */\n public emit<EventName extends keyof Events>(\n eventName: EventName,\n ...data: Events[EventName]\n ): boolean {\n const listeners = this._getListeners(eventName)\n listeners.forEach((listener) => {\n listener.apply(this, data)\n })\n\n return listeners.length > 0\n }\n\n public addListener(\n eventName: InternalEventNames,\n listener: InternalListener<Events>\n ): this\n public addListener<EventName extends keyof Events>(\n eventName: EventName,\n listener: Listener<Events[EventName]>\n ): this\n public addListener(\n eventName: InternalEventNames | keyof Events,\n listener: InternalListener<Events> | Listener<Events[any]>\n ): this {\n // Emit the `newListener` event before adding the listener.\n this._emitInternalEvent('newListener', eventName, listener)\n\n const nextListeners = this._getListeners(eventName).concat(listener)\n this.events.set(eventName, nextListeners)\n\n if (\n this.maxListeners > 0 &&\n this.listenerCount(eventName) > this.maxListeners &&\n !this.hasWarnedAboutPotentialMemoryLeak\n ) {\n this.hasWarnedAboutPotentialMemoryLeak = true\n\n const memoryLeakWarning = new MemoryLeakError(\n this,\n eventName,\n this.listenerCount(eventName)\n )\n console.warn(memoryLeakWarning)\n }\n\n return this\n }\n\n public on(\n eventName: InternalEventNames,\n listener: InternalListener<Events>\n ): this\n public on<EventName extends keyof Events>(\n eventName: EventName,\n listener: Listener<Events[EventName]>\n ): this\n public on<EventName extends keyof Events>(\n eventName: 'removeListener' | EventName,\n listener: Listener<any>\n ): this {\n return this.addListener(eventName, listener)\n }\n\n public once(\n eventName: InternalEventNames,\n listener: InternalListener<Events>\n ): this\n public once<EventName extends keyof Events>(\n eventName: EventName,\n listener: Listener<Events[EventName]>\n ): this\n public once<EventName extends keyof Events>(\n eventName: InternalEventNames | EventName,\n listener: Listener<any>\n ): this {\n return this.addListener(\n eventName,\n this._wrapOnceListener(eventName, listener)\n )\n }\n\n public prependListener(\n eventName: InternalEventNames,\n listener: InternalListener<Events>\n ): this\n public prependListener<EventName extends keyof Events>(\n eventName: EventName,\n listener: Listener<Events[EventName]>\n ): this\n public prependListener(\n eventName: InternalEventNames | keyof Events,\n listener: Listener<any>\n ): this {\n const listeners = this._getListeners(eventName)\n\n if (listeners.length > 0) {\n const nextListeners = [listener].concat(listeners)\n this.events.set(eventName, nextListeners)\n } else {\n this.events.set(eventName, listeners.concat(listener))\n }\n\n return this\n }\n\n public prependOnceListener(\n eventName: InternalEventNames,\n listener: InternalListener<Events>\n ): this\n public prependOnceListener<EventName extends keyof Events>(\n eventName: EventName,\n listener: Listener<Events[EventName]>\n ): this\n public prependOnceListener(\n eventName: InternalEventNames | keyof Events,\n listener: Listener<any>\n ): this {\n return this.prependListener(\n eventName,\n this._wrapOnceListener(eventName, listener)\n )\n }\n\n public removeListener(\n eventName: InternalEventNames,\n listener: InternalListener<Events>\n ): this\n public removeListener<EventName extends keyof Events>(\n eventName: EventName,\n listener: Listener<Events[EventName]>\n ): this\n public removeListener(\n eventName: InternalEventNames | keyof Events,\n listener: Listener<any>\n ): this {\n const listeners = this._getListeners(eventName)\n\n if (listeners.length > 0) {\n this._removeListener(listeners, listener)\n this.events.set(eventName, listeners)\n\n // Emit the `removeListener` event after removing the listener.\n this._emitInternalEvent('removeListener', eventName, listener)\n }\n\n return this\n }\n\n public off(\n eventName: InternalEventNames,\n listener: InternalListener<Events>\n ): this\n public off<EventName extends keyof Events>(\n eventName: EventName,\n listener: Listener<Events[EventName]>\n ): this\n /**\n * Alias for `emitter.removeListener()`.\n *\n * @example\n * emitter.off('hello', listener)\n */\n public off(\n eventName: InternalEventNames | keyof Events,\n listener: Listener<any>\n ): this {\n return this.removeListener(eventName, listener)\n }\n\n public removeAllListeners(eventName?: InternalEventNames): this\n public removeAllListeners<EventName extends keyof Events>(\n eventName?: EventName\n ): this\n public removeAllListeners(\n eventName?: InternalEventNames | keyof Events\n ): this {\n if (eventName) {\n this.events.delete(eventName)\n } else {\n this.events.clear()\n }\n\n return this\n }\n\n public listeners(eventName: InternalEventNames): Array<Listener<any>>\n public listeners<EventName extends keyof Events>(\n eventName: EventName\n ): Array<Listener<Events[EventName]>>\n /**\n * Returns a copy of the array of listeners for the event named `eventName`.\n */\n public listeners(eventName: InternalEventNames | keyof Events) {\n return Array.from(this._getListeners(eventName))\n }\n\n public listenerCount(eventName: InternalEventNames): number\n public listenerCount<EventName extends keyof Events>(\n eventName: EventName\n ): number\n /**\n * Returns the number of listeners listening to the event named `eventName`.\n */\n public listenerCount(eventName: InternalEventNames | keyof Events): number {\n return this._getListeners(eventName).length\n }\n\n public rawListeners<EventName extends keyof Events>(\n eventName: EventName\n ): Array<Listener<Events[EventName]>> {\n return this.listeners(eventName)\n }\n}\n","// Ignore the source files traces for local testing.\nconst SOURCE_FRAME = /[\\/\\\\]msw[\\/\\\\]src[\\/\\\\](.+)/\n\nconst BUILD_FRAME =\n /(node_modules)?[\\/\\\\]lib[\\/\\\\](core|browser|node|native|iife)[\\/\\\\]|^[^\\/\\\\]*$/\n\n/**\n * Return the stack trace frame of a function's invocation.\n */\nexport function getCallFrame(error: Error) {\n // In <IE11, new Error may return an undefined stack\n const stack = error.stack\n\n if (!stack) {\n return\n }\n\n const frames: string[] = stack.split('\\n').slice(1)\n\n // Get the first frame that doesn't reference the library's internal trace.\n // Assume that frame is the invocation frame.\n const declarationFrame = frames.find((frame) => {\n return !(SOURCE_FRAME.test(frame) || BUILD_FRAME.test(frame))\n })\n\n if (!declarationFrame) {\n return\n }\n\n // Extract file reference from the stack frame.\n const declarationPath = declarationFrame\n .replace(/\\s*at [^()]*\\(([^)]+)\\)/, '$1')\n .replace(/^@/, '')\n return declarationPath\n}\n","/**\n * This is the same as TypeScript's `Iterable`, but with all three type parameters.\n * @todo Remove once TypeScript 5.6 is the minimum.\n */\nexport interface Iterable<T, TReturn, TNext> {\n [Symbol.iterator](): Iterator<T, TReturn, TNext>\n}\n\n/**\n * This is the same as TypeScript's `AsyncIterable`, but with all three type parameters.\n * @todo Remove once TypeScript 5.6 is the minimum.\n */\nexport interface AsyncIterable<T, TReturn, TNext> {\n [Symbol.asyncIterator](): AsyncIterator<T, TReturn, TNext>\n}\n\n/**\n * Determines if the given function is an iterator.\n */\nexport function isIterable<IteratorType>(\n fn: any,\n): fn is\n | Iterable<IteratorType, IteratorType, IteratorType>\n | AsyncIterable<IteratorType, IteratorType, IteratorType> {\n if (!fn) {\n return false\n }\n\n return (\n Reflect.has(fn, Symbol.iterator) || Reflect.has(fn, Symbol.asyncIterator)\n )\n}\n","import { getCallFrame } from '../utils/internal/getCallFrame'\nimport {\n AsyncIterable,\n Iterable,\n isIterable,\n} from '../utils/internal/isIterable'\nimport type { ResponseResolutionContext } from '../utils/executeHandlers'\nimport type { MaybePromise } from '../typeUtils'\nimport { StrictRequest, StrictResponse } from '..//HttpResponse'\nimport type { HandlerKind } from './common'\n\nexport type DefaultRequestMultipartBody = Record<\n string,\n string | File | Array<string | File>\n>\n\nexport type DefaultBodyType =\n | Record<string, any>\n | DefaultRequestMultipartBody\n | string\n | number\n | boolean\n | null\n | undefined\n\nexport type JsonBodyType =\n | Record<string, any>\n | string\n | number\n | boolean\n | null\n | undefined\n\nexport interface RequestHandlerDefaultInfo {\n header: string\n}\n\nexport interface RequestHandlerInternalInfo {\n callFrame?: string\n}\n\nexport type ResponseResolverReturnType<\n ResponseBodyType extends DefaultBodyType = undefined,\n> =\n | ([ResponseBodyType] extends [undefined]\n ? Response\n : StrictResponse<ResponseBodyType>)\n | undefined\n | void\n\nexport type MaybeAsyncResponseResolverReturnType<\n ResponseBodyType extends DefaultBodyType,\n> = MaybePromise<ResponseResolverReturnType<ResponseBodyType>>\n\nexport type AsyncResponseResolverReturnType<\n ResponseBodyType extends DefaultBodyType,\n> = MaybePromise<\n | ResponseResolverReturnType<ResponseBodyType>\n | Iterable<\n MaybeAsyncResponseResolverReturnType<ResponseBodyType>,\n MaybeAsyncResponseResolverReturnType<ResponseBodyType>,\n MaybeAsyncResponseResolverReturnType<ResponseBodyType>\n >\n | AsyncIterable<\n MaybeAsyncResponseResolverReturnType<ResponseBodyType>,\n MaybeAsyncResponseResolverReturnType<ResponseBodyType>,\n MaybeAsyncResponseResolverReturnType<ResponseBodyType>\n >\n>\n\nexport type ResponseResolverInfo<\n ResolverExtraInfo extends Record<string, unknown>,\n RequestBodyType extends DefaultBodyType = DefaultBodyType,\n> = {\n request: StrictRequest<RequestBodyType>\n requestId: string\n} & ResolverExtraInfo\n\nexport type ResponseResolver<\n ResolverExtraInfo extends Record<string, unknown> = Record<string, unknown>,\n RequestBodyType extends DefaultBodyType = DefaultBodyType,\n ResponseBodyType extends DefaultBodyType = undefined,\n> = (\n info: ResponseResolverInfo<ResolverExtraInfo, RequestBodyType>,\n) => AsyncResponseResolverReturnType<ResponseBodyType>\n\nexport interface RequestHandlerArgs<\n HandlerInfo,\n HandlerOptions extends RequestHandlerOptions,\n> {\n info: HandlerInfo\n resolver: ResponseResolver<any>\n options?: HandlerOptions\n}\n\nexport interface RequestHandlerOptions {\n once?: boolean\n}\n\nexport interface RequestHandlerExecutionResult<\n ParsedResult extends Record<string, unknown> | undefined,\n> {\n handler: RequestHandler\n parsedResult?: ParsedResult\n request: Request\n requestId: string\n response?: Response\n}\n\nexport abstract class RequestHandler<\n HandlerInfo extends RequestHandlerDefaultInfo = RequestHandlerDefaultInfo,\n ParsedResult extends Record<string, any> | undefined = any,\n ResolverExtras extends Record<string, unknown> = any,\n HandlerOptions extends RequestHandlerOptions = RequestHandlerOptions,\n> {\n static cache = new WeakMap<\n StrictRequest<DefaultBodyType>,\n StrictRequest<DefaultBodyType>\n >()\n\n private readonly __kind: HandlerKind\n\n public info: HandlerInfo & RequestHandlerInternalInfo\n /**\n * Indicates whether this request handler has been used\n * (its resolver has successfully executed).\n */\n public isUsed: boolean\n\n protected resolver: ResponseResolver<ResolverExtras, any, any>\n private resolverIterator?:\n | Iterator<\n MaybeAsyncResponseResolverReturnType<any>,\n MaybeAsyncResponseResolverReturnType<any>,\n MaybeAsyncResponseResolverReturnType<any>\n >\n | AsyncIterator<\n MaybeAsyncResponseResolverReturnType<any>,\n MaybeAsyncResponseResolverReturnType<any>,\n MaybeAsyncResponseResolverReturnType<any>\n >\n private resolverIteratorResult?: Response | StrictResponse<any>\n private options?: HandlerOptions\n\n constructor(args: RequestHandlerArgs<HandlerInfo, HandlerOptions>) {\n this.resolver = args.resolver\n this.options = args.options\n\n const callFrame = getCallFrame(new Error())\n\n this.info = {\n ...args.info,\n callFrame,\n }\n\n this.isUsed = false\n this.__kind = 'RequestHandler'\n }\n\n /**\n * Determine if the intercepted request should be mocked.\n */\n abstract predicate(args: {\n request: Request\n parsedResult: ParsedResult\n resolutionContext?: ResponseResolutionContext\n }): boolean\n\n /**\n * Print out the successfully handled request.\n */\n abstract log(args: {\n request: Request\n response: Response\n parsedResult: ParsedResult\n }): void\n\n /**\n * Parse the intercepted request to extract additional information from it.\n * Parsed result is then exposed to other methods of this request handler.\n */\n async parse(_args: {\n request: Request\n resolutionContext?: ResponseResolutionContext\n }): Promise<ParsedResult> {\n return {} as ParsedResult\n }\n\n /**\n * Test if this handler matches the given request.\n *\n * This method is not used internally but is exposed\n * as a convenience method for consumers writing custom\n * handlers.\n */\n public async test(args: {\n request: Request\n resolutionContext?: ResponseResolutionContext\n }): Promise<boolean> {\n const parsedResult = await this.parse({\n request: args.request,\n resolutionContext: args.resolutionContext,\n })\n\n return this.predicate({\n request: args.request,\n parsedResult,\n resolutionContext: args.resolutionContext,\n })\n }\n\n protected extendResolverArgs(_args: {\n request: Request\n parsedResult: ParsedResult\n }): ResolverExtras {\n return {} as ResolverExtras\n }\n\n // Clone the request instance before it's passed to the handler phases\n // and the response resolver so we can always read it for logging.\n // We only clone it once per request to avoid unnecessary overhead.\n private cloneRequestOrGetFromCache(\n request: StrictRequest<DefaultBodyType>,\n ): StrictRequest<DefaultBodyType> {\n const existingClone = RequestHandler.cache.get(request)\n\n if (typeof existingClone !== 'undefined') {\n return existingClone\n }\n\n const clonedRequest = request.clone()\n RequestHandler.cache.set(request, clonedRequest)\n\n return clonedRequest\n }\n\n /**\n * Execute this request handler and produce a mocked response\n * using the given resolver function.\n */\n public async run(args: {\n request: StrictRequest<any>\n requestId: string\n resolutionContext?: ResponseResolutionContext\n }): Promise<RequestHandlerExecutionResult<ParsedResult> | null> {\n if (this.isUsed && this.options?.once) {\n return null\n }\n\n // Clone the request.\n // If this is the first time MSW handles this request, a fresh clone\n // will be created and cached. Upon further handling of the same request,\n // the request clone from the cache will be reused to prevent abundant\n // \"abort\" listeners and save up resources on cloning.\n const requestClone = this.cloneRequestOrGetFromCache(args.request)\n\n const parsedResult = await this.parse({\n request: args.request,\n resolutionContext: args.resolutionContext,\n })\n const shouldInterceptRequest = this.predicate({\n request: args.request,\n parsedResult,\n resolutionContext: args.resolutionContext,\n })\n\n if (!shouldInterceptRequest) {\n return null\n }\n\n // Re-check isUsed, in case another request hit this handler while we were\n // asynchronously parsing the request.\n if (this.isUsed && this.options?.once) {\n return null\n }\n\n // Preemptively mark the handler as used.\n // Generators will undo this because only when the resolver reaches the\n // \"done\" state of the generator that it considers the handler used.\n this.isUsed = true\n\n // Create a response extraction wrapper around the resolver\n // since it can be both an async function and a generator.\n const executeResolver = this.wrapResolver(this.resolver)\n\n const resolverExtras = this.extendResolverArgs({\n request: args.request,\n parsedResult,\n })\n\n const mockedResponsePromise = (\n executeResolver({\n ...resolverExtras,\n requestId: args.requestId,\n request: args.request,\n }) as Promise<Response>\n ).catch((errorOrResponse) => {\n // Allow throwing a Response instance in a response resolver.\n if (errorOrResponse instanceof Response) {\n return errorOrResponse\n }\n\n // Otherwise, throw the error as-is.\n throw errorOrResponse\n })\n\n const mockedResponse = await mockedResponsePromise\n\n const executionResult = this.createExecutionResult({\n // Pass the cloned request to the result so that logging\n // and other consumers could read its body once more.\n request: requestClone,\n requestId: args.requestId,\n response: mockedResponse,\n parsedResult,\n })\n\n return executionResult\n }\n\n private wrapResolver(\n resolver: ResponseResolver<ResolverExtras>,\n ): ResponseResolver<ResolverExtras> {\n return async (info): Promise<ResponseResolverReturnType<any>> => {\n if (!this.resolverIterator) {\n const result = await resolver(info)\n if (!isIterable(result)) {\n return result\n }\n this.resolverIterator =\n Symbol.iterator in result\n ? result[Symbol.iterator]()\n : result[Symbol.asyncIterator]()\n }\n\n // Opt-out from marking this handler as used.\n this.isUsed = false\n\n const { done, value } = await this.resolverIterator.next()\n const nextResponse = await value\n\n if (nextResponse) {\n this.resolverIteratorResult = nextResponse.clone()\n }\n\n if (done) {\n // A one-time generator resolver stops affecting the network\n // only after it's been completely exhausted.\n this.isUsed = true\n\n // Clone the previously stored response so it can be read\n // when receiving it repeatedly from the \"done\" generator.\n return this.resolverIteratorResult?.clone()\n }\n\n return nextResponse\n }\n }\n\n private createExecutionResult(args: {\n request: Request\n requestId: string\n parsedResult: ParsedResult\n response?: Response\n }): RequestHandlerExecutionResult<ParsedResult> {\n return {\n handler: this,\n request: args.request,\n requestId: args.requestId,\n response: args.response,\n parsedResult: args.parsedResult,\n }\n }\n}\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\n\n// node_modules/statuses/codes.json\nvar require_codes = __commonJS({\n \"node_modules/statuses/codes.json\"(exports, module) {\n module.exports = {\n \"100\": \"Continue\",\n \"101\": \"Switching Protocols\",\n \"102\": \"Processing\",\n \"103\": \"Early Hints\",\n \"200\": \"OK\",\n \"201\": \"Created\",\n \"202\": \"Accepted\",\n \"203\": \"Non-Authoritative Information\",\n \"204\": \"No Content\",\n \"205\": \"Reset Content\",\n \"206\": \"Partial Content\",\n \"207\": \"Multi-Status\",\n \"208\": \"Already Reported\",\n \"226\": \"IM Used\",\n \"300\": \"Multiple Choices\",\n \"301\": \"Moved Permanently\",\n \"302\": \"Found\",\n \"303\": \"See Other\",\n \"304\": \"Not Modified\",\n \"305\": \"Use Proxy\",\n \"307\": \"Temporary Redirect\",\n \"308\": \"Permanent Redirect\",\n \"400\": \"Bad Request\",\n \"401\": \"Unauthorized\",\n \"402\": \"Payment Required\",\n \"403\": \"Forbidden\",\n \"404\": \"Not Found\",\n \"405\": \"Method Not Allowed\",\n \"406\": \"Not Acceptable\",\n \"407\": \"Proxy Authentication Required\",\n \"408\": \"Request Timeout\",\n \"409\": \"Conflict\",\n \"410\": \"Gone\",\n \"411\": \"Length Required\",\n \"412\": \"Precondition Failed\",\n \"413\": \"Payload Too Large\",\n \"414\": \"URI Too Long\",\n \"415\": \"Unsupported Media Type\",\n \"416\": \"Range Not Satisfiable\",\n \"417\": \"Expectation Failed\",\n \"418\": \"I'm a Teapot\",\n \"421\": \"Misdirected Request\",\n \"422\": \"Unprocessable Entity\",\n \"423\": \"Locked\",\n \"424\": \"Failed Dependency\",\n \"425\": \"Too Early\",\n \"426\": \"Upgrade Required\",\n \"428\": \"Precondition Required\",\n \"429\": \"Too Many Requests\",\n \"431\": \"Request Header Fields Too Large\",\n \"451\": \"Unavailable For Legal Reasons\",\n \"500\": \"Internal Server Error\",\n \"501\": \"Not Implemented\",\n \"502\": \"Bad Gateway\",\n \"503\": \"Service Unavailable\",\n \"504\": \"Gateway Timeout\",\n \"505\": \"HTTP Version Not Supported\",\n \"506\": \"Variant Also Negotiates\",\n \"507\": \"Insufficient Storage\",\n \"508\": \"Loop Detected\",\n \"509\": \"Bandwidth Limit Exceeded\",\n \"510\": \"Not Extended\",\n \"511\": \"Network Authentication Required\"\n };\n }\n});\n\n// node_modules/statuses/index.js\nvar require_statuses = __commonJS({\n \"node_modules/statuses/index.js\"(exports, module) {\n \"use strict\";\n var codes = require_codes();\n module.exports = status2;\n status2.message = codes;\n status2.code = createMessageToStatusCodeMap(codes);\n status2.codes = createStatusCodeList(codes);\n status2.redirect = {\n 300: true,\n 301: true,\n 302: true,\n 303: true,\n 305: true,\n 307: true,\n 308: true\n };\n status2.empty = {\n 204: true,\n 205: true,\n 304: true\n };\n status2.retry = {\n 502: true,\n 503: true,\n 504: true\n };\n function createMessageToStatusCodeMap(codes2) {\n var map = {};\n Object.keys(codes2).forEach(function forEachCode(code) {\n var message = codes2[code];\n var status3 = Number(code);\n map[message.toLowerCase()] = status3;\n });\n return map;\n }\n function createStatusCodeList(codes2) {\n return Object.keys(codes2).map(function mapCode(code) {\n return Number(code);\n });\n }\n function getStatusCode(message) {\n var msg = message.toLowerCase();\n if (!Object.prototype.hasOwnProperty.call(status2.code, msg)) {\n throw new Error('invalid status message: \"' + message + '\"');\n }\n return status2.code[msg];\n }\n function getStatusMessage(code) {\n if (!Object.prototype.hasOwnProperty.call(status2.message, code)) {\n throw new Error(\"invalid status code: \" + code);\n }\n return status2.message[code];\n }\n function status2(code) {\n if (typeof code === \"number\") {\n return getStatusMessage(code);\n }\n if (typeof code !== \"string\") {\n throw new TypeError(\"code must be a number or string\");\n }\n var n = parseInt(code, 10);\n if (!isNaN(n)) {\n return getStatusMessage(n);\n }\n return getStatusCode(code);\n }\n }\n});\n\n// source.js\nvar import_statuses = __toESM(require_statuses(), 1);\nvar source_default = import_statuses.default;\nexport {\n source_default as default\n};\n/*! Bundled license information:\n\nstatuses/index.js:\n (*!\n * statuses\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2016 Douglas Christopher Wilson\n * MIT Licensed\n *)\n*/\n","/**\n * Determines if the current process is a Node.js process.\n */\nexport function isNodeProcess(): boolean {\n if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n return true\n }\n\n if (typeof process !== 'undefined') {\n // Electron (https://www.electronjs.org/docs/latest/api/process#processtype-readonly)\n const type = (process as any).type\n if (type === 'renderer' || type === 'worker') {\n return false\n }\n\n\n return !!(\n process.versions &&\n process.versions.node\n )\n }\n\n return false\n}\n","var __defProp = Object.defineProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\n\n// src/index.ts\nimport { isNodeProcess } from \"is-node-process\";\nimport { format } from \"outvariant\";\n\n// src/colors.ts\nvar colors_exports = {};\n__export(colors_exports, {\n blue: () => blue,\n gray: () => gray,\n green: () => green,\n red: () => red,\n yellow: () => yellow\n});\nfunction yellow(text) {\n return `\\x1B[33m${text}\\x1B[0m`;\n}\nfunction blue(text) {\n return `\\x1B[34m${text}\\x1B[0m`;\n}\nfunction gray(text) {\n return `\\x1B[90m${text}\\x1B[0m`;\n}\nfunction red(text) {\n return `\\x1B[31m${text}\\x1B[0m`;\n}\nfunction green(text) {\n return `\\x1B[32m${text}\\x1B[0m`;\n}\n\n// src/index.ts\nvar IS_NODE = isNodeProcess();\nvar Logger = class {\n constructor(name) {\n this.name = name;\n this.prefix = `[${this.name}]`;\n const LOGGER_NAME = getVariable(\"DEBUG\");\n const LOGGER_LEVEL = getVariable(\"LOG_LEVEL\");\n const isLoggingEnabled = LOGGER_NAME === \"1\" || LOGGER_NAME === \"true\" || typeof LOGGER_NAME !== \"undefined\" && this.name.startsWith(LOGGER_NAME);\n if (isLoggingEnabled) {\n this.debug = isDefinedAndNotEquals(LOGGER_LEVEL, \"debug\") ? noop : this.debug;\n this.info = isDefinedAndNotEquals(LOGGER_LEVEL, \"info\") ? noop : this.info;\n this.success = isDefinedAndNotEquals(LOGGER_LEVEL, \"success\") ? noop : this.success;\n this.warning = isDefinedAndNotEquals(LOGGER_LEVEL, \"warning\") ? noop : this.warning;\n this.error = isDefinedAndNotEquals(LOGGER_LEVEL, \"error\") ? noop : this.error;\n } else {\n this.info = noop;\n this.success = noop;\n this.warning = noop;\n this.error = noop;\n this.only = noop;\n }\n }\n prefix;\n extend(domain) {\n return new Logger(`${this.name}:${domain}`);\n }\n /**\n * Print a debug message.\n * @example\n * logger.debug('no duplicates found, creating a document...')\n */\n debug(message, ...positionals) {\n this.logEntry({\n level: \"debug\",\n message: gray(message),\n positionals,\n prefix: this.prefix,\n colors: {\n prefix: \"gray\"\n }\n });\n }\n /**\n * Print an info message.\n * @example\n * logger.info('start parsing...')\n */\n info(message, ...positionals) {\n this.logEntry({\n level: \"info\",\n message,\n positionals,\n prefix: this.prefix,\n colors: {\n prefix: \"blue\"\n }\n });\n const performance2 = new PerformanceEntry();\n return (message2, ...positionals2) => {\n performance2.measure();\n this.logEntry({\n level: \"info\",\n message: `${message2} ${gray(`${performance2.deltaTime}ms`)}`,\n positionals: positionals2,\n prefix: this.prefix,\n colors: {\n prefix: \"blue\"\n }\n });\n };\n }\n /**\n * Print a success message.\n * @example\n * logger.success('successfully created document')\n */\n success(message, ...positionals) {\n this.logEntry({\n level: \"info\",\n message,\n positionals,\n prefix: `\\u2714 ${this.prefix}`,\n colors: {\n timestamp: \"green\",\n prefix: \"green\"\n }\n });\n }\n /**\n * Print a warning.\n * @example\n * logger.warning('found legacy document format')\n */\n warning(message, ...positionals) {\n this.logEntry({\n level: \"warning\",\n message,\n positionals,\n prefix: `\\u26A0 ${this.prefix}`,\n colors: {\n timestamp: \"yellow\",\n prefix: \"yellow\"\n }\n });\n }\n /**\n * Print an error message.\n * @example\n * logger.error('something went wrong')\n */\n error(message, ...positionals) {\n this.logEntry({\n level: \"error\",\n message,\n positionals,\n prefix: `\\u2716 ${this.prefix}`,\n colors: {\n timestamp: \"red\",\n prefix: \"red\"\n }\n });\n }\n /**\n * Execute the given callback only when the logging is enabled.\n * This is skipped in its entirety and has no runtime cost otherwise.\n * This executes regardless of the log level.\n * @example\n * logger.only(() => {\n * logger.info('additional info')\n * })\n */\n only(callback) {\n callback();\n }\n createEntry(level, message) {\n return {\n timestamp: /* @__PURE__ */ new Date(),\n level,\n message\n };\n }\n logEntry(args) {\n const {\n level,\n message,\n prefix,\n colors: customColors,\n positionals = []\n } = args;\n const entry = this.createEntry(level, message);\n const timestampColor = customColors?.timestamp || \"gray\";\n const prefixColor = customColors?.prefix || \"gray\";\n const colorize = {\n timestamp: colors_exports[timestampColor],\n prefix: colors_exports[prefixColor]\n };\n const write = this.getWriter(level);\n write(\n [colorize.timestamp(this.formatTimestamp(entry.timestamp))].concat(prefix != null ? colorize.prefix(prefix) : []).concat(serializeInput(message)).join(\" \"),\n ...positionals.map(serializeInput)\n );\n }\n formatTimestamp(timestamp) {\n return `${timestamp.toLocaleTimeString(\n \"en-GB\"\n )}:${timestamp.getMilliseconds()}`;\n }\n getWriter(level) {\n switch (level) {\n case \"debug\":\n case \"success\":\n case \"info\": {\n return log;\n }\n case \"warning\": {\n return warn;\n }\n case \"error\": {\n return error;\n }\n }\n }\n};\nvar PerformanceEntry = class {\n startTime;\n endTime;\n deltaTime;\n constructor() {\n this.startTime = performance.now();\n }\n measure() {\n this.endTime = performance.now();\n const deltaTime = this.endTime - this.startTime;\n this.deltaTime = deltaTime.toFixed(2);\n }\n};\nvar noop = () => void 0;\nfunction log(message, ...positionals) {\n if (IS_NODE) {\n process.stdout.write(format(message, ...positionals) + \"\\n\");\n return;\n }\n console.log(message, ...positionals);\n}\nfunction warn(message, ...positionals) {\n if (IS_NODE) {\n process.stderr.write(format(message, ...positionals) + \"\\n\");\n return;\n }\n console.warn(message, ...positionals);\n}\nfunction error(message, ...positionals) {\n if (IS_NODE) {\n process.stderr.write(format(message, ...positionals) + \"\\n\");\n return;\n }\n console.error(message, ...positionals);\n}\nfunction getVariable(variableName) {\n if (IS_NODE) {\n return process.env[variableName];\n }\n return globalThis[variableName]?.toString();\n}\nfunction isDefinedAndNotEquals(value, expected) {\n return value !== void 0 && value !== expected;\n}\nfunction serializeInput(message) {\n if (typeof message === \"undefined\") {\n return \"undefined\";\n }\n if (message === null) {\n return \"null\";\n }\n if (typeof message === \"string\") {\n return message;\n }\n if (typeof message === \"object\") {\n return JSON.stringify(message);\n }\n return message.toString();\n}\nexport {\n Logger\n};\n","export interface FetchResponseInit extends ResponseInit {\n url?: string\n}\n\nexport class FetchResponse extends Response {\n /**\n * Response status codes for responses that cannot have body.\n * @see https://fetch.spec.whatwg.org/#statuses\n */\n static readonly STATUS_CODES_WITHOUT_BODY = [101, 103, 204, 205, 304]\n\n static readonly STATUS_CODES_WITH_REDIRECT = [301, 302, 303, 307, 308]\n\n static isConfigurableStatusCode(status: number): boolean {\n return status >= 200 && status <= 599\n }\n\n static isRedirectResponse(status: number): boolean {\n return FetchResponse.STATUS_CODES_WITH_REDIRECT.includes(status)\n }\n\n /**\n * Returns a boolean indicating whether the given response status\n * code represents a response that can have a body.\n */\n static isResponseWithBody(status: number): boolean {\n return !FetchResponse.STATUS_CODES_WITHOUT_BODY.includes(status)\n }\n\n static setUrl(url: string | undefined, response: Response): void {\n if (!url) {\n return\n }\n\n if (response.url != '') {\n return\n }\n\n Object.defineProperty(response, 'url', {\n value: url,\n enumerable: true,\n configurable: true,\n writable: false,\n })\n }\n\n /**\n * Parses the given raw HTTP headers into a Fetch API `Headers` instance.\n */\n static parseRawHeaders(rawHeaders: Array<string>): Headers {\n const headers = new Headers()\n for (let line = 0; line < rawHeaders.length; line += 2) {\n headers.append(rawHeaders[line], rawHeaders[line + 1])\n }\n return headers\n }\n\n constructor(body?: BodyInit | null, init: FetchResponseInit = {}) {\n const status = init.status ?? 200\n const safeStatus = FetchResponse.isConfigurableStatusCode(status)\n ? status\n : 200\n const finalBody = FetchResponse.isResponseWithBody(status) ? body : null\n\n super(finalBody, {\n ...init,\n status: safeStatus,\n })\n\n if (status !== safeStatus) {\n /**\n * @note Undici keeps an internal \"Symbol(state)\" that holds\n * the actual value of response status. Update that in Node.js.\n */\n const stateSymbol = Object.getOwnPropertySymbols(this).find(\n (symbol) => symbol.description === 'state'\n )\n if (stateSymbol) {\n const state = Reflect.get(this, stateSymbol) as object\n Reflect.set(state, 'status', status)\n } else {\n Object.defineProperty(this, 'status', {\n value: status,\n enumerable: true,\n configurable: true,\n writable: false,\n })\n }\n }\n\n FetchResponse.setUrl(init.url, this)\n }\n}\n","const encoder = new TextEncoder()\n\nexport function encodeBuffer(text: string): Uint8Array {\n return encoder.encode(text)\n}\n\nexport function decodeBuffer(buffer: ArrayBuffer, encoding?: string): string {\n const decoder = new TextDecoder(encoding)\n return decoder.decode(buffer)\n}\n\n/**\n * Create an `ArrayBuffer` from the given `Uint8Array`.\n * Takes the byte offset into account to produce the right buffer\n * in the case when the buffer is bigger than the data view.\n */\nexport function toArrayBuffer(array: Uint8Array): ArrayBuffer {\n return array.buffer.slice(\n array.byteOffset,\n array.byteOffset + array.byteLength\n )\n}\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\n\n// node_modules/cookie/index.js\nvar require_cookie = __commonJS({\n \"node_modules/cookie/index.js\"(exports) {\n \"use strict\";\n exports.parse = parse;\n exports.serialize = serialize;\n var __toString = Object.prototype.toString;\n var __hasOwnProperty = Object.prototype.hasOwnProperty;\n var cookieNameRegExp = /^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$/;\n var cookieValueRegExp = /^(\"?)[\\u0021\\u0023-\\u002B\\u002D-\\u003A\\u003C-\\u005B\\u005D-\\u007E]*\\1$/;\n var domainValueRegExp = /^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i;\n var pathValueRegExp = /^[\\u0020-\\u003A\\u003D-\\u007E]*$/;\n function parse(str, opt) {\n if (typeof str !== \"string\") {\n throw new TypeError(\"argument str must be a string\");\n }\n var obj = {};\n var len = str.length;\n if (len < 2) return obj;\n var dec = opt && opt.decode || decode;\n var index = 0;\n var eqIdx = 0;\n var endIdx = 0;\n do {\n eqIdx = str.indexOf(\"=\", index);\n if (eqIdx === -1) break;\n endIdx = str.indexOf(\";\", index);\n if (endIdx === -1) {\n endIdx = len;\n } else if (eqIdx > endIdx) {\n index = str.lastIndexOf(\";\", eqIdx - 1) + 1;\n continue;\n }\n var keyStartIdx = startIndex(str, index, eqIdx);\n var keyEndIdx = endIndex(str, eqIdx, keyStartIdx);\n var key = str.slice(keyStartIdx, keyEndIdx);\n if (!__hasOwnProperty.call(obj, key)) {\n var valStartIdx = startIndex(str, eqIdx + 1, endIdx);\n var valEndIdx = endIndex(str, endIdx, valStartIdx);\n if (str.charCodeAt(valStartIdx) === 34 && str.charCodeAt(valEndIdx - 1) === 34) {\n valStartIdx++;\n valEndIdx--;\n }\n var val = str.slice(valStartIdx, valEndIdx);\n obj[key] = tryDecode(val, dec);\n }\n index = endIdx + 1;\n } while (index < len);\n return obj;\n }\n function startIndex(str, index, max) {\n do {\n var code = str.charCodeAt(index);\n if (code !== 32 && code !== 9) return index;\n } while (++index < max);\n return max;\n }\n function endIndex(str, index, min) {\n while (index > min) {\n var code = str.charCodeAt(--index);\n if (code !== 32 && code !== 9) return index + 1;\n }\n return min;\n }\n function serialize(name, val, opt) {\n var enc = opt && opt.encode || encodeURIComponent;\n if (typeof enc !== \"function\") {\n throw new TypeError(\"option encode is invalid\");\n }\n if (!cookieNameRegExp.test(name)) {\n throw new TypeError(\"argument name is invalid\");\n }\n var value = enc(val);\n if (!cookieValueRegExp.test(value)) {\n throw new TypeError(\"argument val is invalid\");\n }\n var str = name + \"=\" + value;\n if (!opt) return str;\n if (null != opt.maxAge) {\n var maxAge = Math.floor(opt.maxAge);\n if (!isFinite(maxAge)) {\n throw new TypeError(\"option maxAge is invalid\");\n }\n str += \"; Max-Age=\" + maxAge;\n }\n if (opt.domain) {\n if (!domainValueRegExp.test(opt.domain)) {\n throw new TypeError(\"option domain is invalid\");\n }\n str += \"; Domain=\" + opt.domain;\n }\n if (opt.path) {\n if (!pathValueRegExp.test(opt.path)) {\n throw new TypeError(\"option path is invalid\");\n }\n str += \"; Path=\" + opt.path;\n }\n if (opt.expires) {\n var expires = opt.expires;\n if (!isDate(expires) || isNaN(expires.valueOf())) {\n throw new TypeError(\"option expires is invalid\");\n }\n str += \"; Expires=\" + expires.toUTCString();\n }\n if (opt.httpOnly) {\n str += \"; HttpOnly\";\n }\n if (opt.secure) {\n str += \"; Secure\";\n }\n if (opt.partitioned) {\n str += \"; Partitioned\";\n }\n if (opt.priority) {\n var priority = typeof opt.priority === \"string\" ? opt.priority.toLowerCase() : opt.priority;\n switch (priority) {\n case \"low\":\n str += \"; Priority=Low\";\n break;\n case \"medium\":\n str += \"; Priority=Medium\";\n break;\n case \"high\":\n str += \"; Priority=High\";\n break;\n default:\n throw new TypeError(\"option priority is invalid\");\n }\n }\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === \"string\" ? opt.sameSite.toLowerCase() : opt.sameSite;\n switch (sameSite) {\n case true:\n str += \"; SameSite=Strict\";\n break;\n case \"lax\":\n str += \"; SameSite=Lax\";\n break;\n case \"strict\":\n str += \"; SameSite=Strict\";\n break;\n case \"none\":\n str += \"; SameSite=None\";\n break;\n default:\n throw new TypeError(\"option sameSite is invalid\");\n }\n }\n return str;\n }\n function decode(str) {\n return str.indexOf(\"%\") !== -1 ? decodeURIComponent(str) : str;\n }\n function isDate(val) {\n return __toString.call(val) === \"[object Date]\";\n }\n function tryDecode(str, decode2) {\n try {\n return decode2(str);\n } catch (e) {\n return str;\n }\n }\n }\n});\n\n// source.js\nvar import_cookie = __toESM(require_cookie(), 1);\nvar source_default = import_cookie.default;\nexport {\n source_default as default\n};\n/*! Bundled license information:\n\ncookie/index.js:\n (*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n *)\n*/\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __require = /* @__PURE__ */ ((x) => typeof require !== \"undefined\" ? require : typeof Proxy !== \"undefined\" ? new Proxy(x, {\n get: (a, b) => (typeof require !== \"undefined\" ? require : a)[b]\n}) : x)(function(x) {\n if (typeof require !== \"undefined\") return require.apply(this, arguments);\n throw Error('Dynamic require of \"' + x + '\" is not supported');\n});\nvar __commonJS = (cb, mod) => function __require2() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\n\n// node_modules/punycode/punycode.js\nvar require_punycode = __commonJS({\n \"node_modules/punycode/punycode.js\"(exports, module) {\n \"use strict\";\n var maxInt = 2147483647;\n var base = 36;\n var tMin = 1;\n var tMax = 26;\n var skew = 38;\n var damp = 700;\n var initialBias = 72;\n var initialN = 128;\n var delimiter = \"-\";\n var regexPunycode = /^xn--/;\n var regexNonASCII = /[^\\0-\\x7F]/;\n var regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g;\n var errors = {\n \"overflow\": \"Overflow: input needs wider integers to process\",\n \"not-basic\": \"Illegal input >= 0x80 (not a basic code point)\",\n \"invalid-input\": \"Invalid input\"\n };\n var baseMinusTMin = base - tMin;\n var floor = Math.floor;\n var stringFromCharCode = String.fromCharCode;\n function error(type) {\n throw new RangeError(errors[type]);\n }\n function map(array, callback) {\n const result = [];\n let length = array.length;\n while (length--) {\n result[length] = callback(array[length]);\n }\n return result;\n }\n function mapDomain(domain, callback) {\n const parts = domain.split(\"@\");\n let result = \"\";\n if (parts.length > 1) {\n result = parts[0] + \"@\";\n domain = parts[1];\n }\n domain = domain.replace(regexSeparators, \".\");\n const labels = domain.split(\".\");\n const encoded = map(labels, callback).join(\".\");\n return result + encoded;\n }\n function ucs2decode(string) {\n const output = [];\n let counter = 0;\n const length = string.length;\n while (counter < length) {\n const value = string.charCodeAt(counter++);\n if (value >= 55296 && value <= 56319 && counter < length) {\n const extra = string.charCodeAt(counter++);\n if ((extra & 64512) == 56320) {\n output.push(((value & 1023) << 10) + (extra & 1023) + 65536);\n } else {\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n }\n var ucs2encode = (codePoints) => String.fromCodePoint(...codePoints);\n var basicToDigit = function(codePoint) {\n if (codePoint >= 48 && codePoint < 58) {\n return 26 + (codePoint - 48);\n }\n if (codePoint >= 65 && codePoint < 91) {\n return codePoint - 65;\n }\n if (codePoint >= 97 && codePoint < 123) {\n return codePoint - 97;\n }\n return base;\n };\n var digitToBasic = function(digit, flag) {\n return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n };\n var adapt = function(delta, numPoints, firstTime) {\n let k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n for (; delta > baseMinusTMin * tMax >> 1; k += base) {\n delta = floor(delta / baseMinusTMin);\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n };\n var decode = function(input) {\n const output = [];\n const inputLength = input.length;\n let i = 0;\n let n = initialN;\n let bias = initialBias;\n let basic = input.lastIndexOf(delimiter);\n if (basic < 0) {\n basic = 0;\n }\n for (let j = 0; j < basic; ++j) {\n if (input.charCodeAt(j) >= 128) {\n error(\"not-basic\");\n }\n output.push(input.charCodeAt(j));\n }\n for (let index = basic > 0 ? basic + 1 : 0; index < inputLength; ) {\n const oldi = i;\n for (let w = 1, k = base; ; k += base) {\n if (index >= inputLength) {\n error(\"invalid-input\");\n }\n const digit = basicToDigit(input.charCodeAt(index++));\n if (digit >= base) {\n error(\"invalid-input\");\n }\n if (digit > floor((maxInt - i) / w)) {\n error(\"overflow\");\n }\n i += digit * w;\n const t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n if (digit < t) {\n break;\n }\n const baseMinusT = base - t;\n if (w > floor(maxInt / baseMinusT)) {\n error(\"overflow\");\n }\n w *= baseMinusT;\n }\n const out = output.length + 1;\n bias = adapt(i - oldi, out, oldi == 0);\n if (floor(i / out) > maxInt - n) {\n error(\"overflow\");\n }\n n += floor(i / out);\n i %= out;\n output.splice(i++, 0, n);\n }\n return String.fromCodePoint(...output);\n };\n var encode = function(input) {\n const output = [];\n input = ucs2decode(input);\n const inputLength = input.length;\n let n = initialN;\n let delta = 0;\n let bias = initialBias;\n for (const currentValue of input) {\n if (currentValue < 128) {\n output.push(stringFromCharCode(currentValue));\n }\n }\n const basicLength = output.length;\n let handledCPCount = basicLength;\n if (basicLength) {\n output.push(delimiter);\n }\n while (handledCPCount < inputLength) {\n let m = maxInt;\n for (const currentValue of input) {\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n const handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n error(\"overflow\");\n }\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n for (const currentValue of input) {\n if (currentValue < n && ++delta > maxInt) {\n error(\"overflow\");\n }\n if (currentValue === n) {\n let q = delta;\n for (let k = base; ; k += base) {\n const t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n if (q < t) {\n break;\n }\n const qMinusT = q - t;\n const baseMinusT = base - t;\n output.push(\n stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n );\n q = floor(qMinusT / baseMinusT);\n }\n output.push(stringFromCharCode(digitToBasic(q, 0)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength);\n delta = 0;\n ++handledCPCount;\n }\n }\n ++delta;\n ++n;\n }\n return output.join(\"\");\n };\n var toUnicode = function(input) {\n return mapDomain(input, function(string) {\n return regexPunycode.test(string) ? decode(string.slice(4).toLowerCase()) : string;\n });\n };\n var toASCII = function(input) {\n return mapDomain(input, function(string) {\n return regexNonASCII.test(string) ? \"xn--\" + encode(string) : string;\n });\n };\n var punycode = {\n /**\n * A string representing the current Punycode.js version number.\n * @memberOf punycode\n * @type String\n */\n \"version\": \"2.3.1\",\n /**\n * An object of methods to convert from JavaScript's internal character\n * representation (UCS-2) to Unicode code points, and back.\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode\n * @type Object\n */\n \"ucs2\": {\n \"decode\": ucs2decode,\n \"encode\": ucs2encode\n },\n \"decode\": decode,\n \"encode\": encode,\n \"toASCII\": toASCII,\n \"toUnicode\": toUnicode\n };\n module.exports = punycode;\n }\n});\n\n// node_modules/requires-port/index.js\nvar require_requires_port = __commonJS({\n \"node_modules/requires-port/index.js\"(exports, module) {\n \"use strict\";\n module.exports = function required(port, protocol) {\n protocol = protocol.split(\":\")[0];\n port = +port;\n if (!port) return false;\n switch (protocol) {\n case \"http\":\n case \"ws\":\n return port !== 80;\n case \"https\":\n case \"wss\":\n return port !== 443;\n case \"ftp\":\n return port !== 21;\n case \"gopher\":\n return port !== 70;\n case \"file\":\n return false;\n }\n return port !== 0;\n };\n }\n});\n\n// node_modules/querystringify/index.js\nvar require_querystringify = __commonJS({\n \"node_modules/querystringify/index.js\"(exports) {\n \"use strict\";\n var has = Object.prototype.hasOwnProperty;\n var undef;\n function decode(input) {\n try {\n return decodeURIComponent(input.replace(/\\+/g, \" \"));\n } catch (e) {\n return null;\n }\n }\n function encode(input) {\n try {\n return encodeURIComponent(input);\n } catch (e) {\n return null;\n }\n }\n function querystring(query) {\n var parser = /([^=?#&]+)=?([^&]*)/g, result = {}, part;\n while (part = parser.exec(query)) {\n var key = decode(part[1]), value = decode(part[2]);\n if (key === null || value === null || key in result) continue;\n result[key] = value;\n }\n return result;\n }\n function querystringify(obj, prefix) {\n prefix = prefix || \"\";\n var pairs = [], value, key;\n if (\"string\" !== typeof prefix) prefix = \"?\";\n for (key in obj) {\n if (has.call(obj, key)) {\n value = obj[key];\n if (!value && (value === null || value === undef || isNaN(value))) {\n value = \"\";\n }\n key = encode(key);\n value = encode(value);\n if (key === null || value === null) continue;\n pairs.push(key + \"=\" + value);\n }\n }\n return pairs.length ? prefix + pairs.join(\"&\") : \"\";\n }\n exports.stringify = querystringify;\n exports.parse = querystring;\n }\n});\n\n// node_modules/url-parse/index.js\nvar require_url_parse = __commonJS({\n \"node_modules/url-parse/index.js\"(exports, module) {\n \"use strict\";\n var required = require_requires_port();\n var qs = require_querystringify();\n var controlOrWhitespace = /^[\\x00-\\x20\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff]+/;\n var CRHTLF = /[\\n\\r\\t]/g;\n var slashes = /^[A-Za-z][A-Za-z0-9+-.]*:\\/\\//;\n var port = /:\\d+$/;\n var protocolre = /^([a-z][a-z0-9.+-]*:)?(\\/\\/)?([\\\\/]+)?([\\S\\s]*)/i;\n var windowsDriveLetter = /^[a-zA-Z]:/;\n function trimLeft(str) {\n return (str ? str : \"\").toString().replace(controlOrWhitespace, \"\");\n }\n var rules = [\n [\"#\", \"hash\"],\n // Extract from the back.\n [\"?\", \"query\"],\n // Extract from the back.\n function sanitize(address, url) {\n return isSpecial(url.protocol) ? address.replace(/\\\\/g, \"/\") : address;\n },\n [\"/\", \"pathname\"],\n // Extract from the back.\n [\"@\", \"auth\", 1],\n // Extract from the front.\n [NaN, \"host\", void 0, 1, 1],\n // Set left over value.\n [/:(\\d*)$/, \"port\", void 0, 1],\n // RegExp the back.\n [NaN, \"hostname\", void 0, 1, 1]\n // Set left over.\n ];\n var ignore = { hash: 1, query: 1 };\n function lolcation(loc) {\n var globalVar;\n if (typeof window !== \"undefined\") globalVar = window;\n else if (typeof global !== \"undefined\") globalVar = global;\n else if (typeof self !== \"undefined\") globalVar = self;\n else globalVar = {};\n var location = globalVar.location || {};\n loc = loc || location;\n var finaldestination = {}, type = typeof loc, key;\n if (\"blob:\" === loc.protocol) {\n finaldestination = new Url(unescape(loc.pathname), {});\n } else if (\"string\" === type) {\n finaldestination = new Url(loc, {});\n for (key in ignore) delete finaldestination[key];\n } else if (\"object\" === type) {\n for (key in loc) {\n if (key in ignore) continue;\n finaldestination[key] = loc[key];\n }\n if (finaldestination.slashes === void 0) {\n finaldestination.slashes = slashes.test(loc.href);\n }\n }\n return finaldestination;\n }\n function isSpecial(scheme) {\n return scheme === \"file:\" || scheme === \"ftp:\" || scheme === \"http:\" || scheme === \"https:\" || scheme === \"ws:\" || scheme === \"wss:\";\n }\n function extractProtocol(address, location) {\n address = trimLeft(address);\n address = address.replace(CRHTLF, \"\");\n location = location || {};\n var match = protocolre.exec(address);\n var protocol = match[1] ? match[1].toLowerCase() : \"\";\n var forwardSlashes = !!match[2];\n var otherSlashes = !!match[3];\n var slashesCount = 0;\n var rest;\n if (forwardSlashes) {\n if (otherSlashes) {\n rest = match[2] + match[3] + match[4];\n slashesCount = match[2].length + match[3].length;\n } else {\n rest = match[2] + match[4];\n slashesCount = match[2].length;\n }\n } else {\n if (otherSlashes) {\n rest = match[3] + match[4];\n slashesCount = match[3].length;\n } else {\n rest = match[4];\n }\n }\n if (protocol === \"file:\") {\n if (slashesCount >= 2) {\n rest = rest.slice(2);\n }\n } else if (isSpecial(protocol)) {\n rest = match[4];\n } else if (protocol) {\n if (forwardSlashes) {\n rest = rest.slice(2);\n }\n } else if (slashesCount >= 2 && isSpecial(location.protocol)) {\n rest = match[4];\n }\n return {\n protocol,\n slashes: forwardSlashes || isSpecial(protocol),\n slashesCount,\n rest\n };\n }\n function resolve(relative, base) {\n if (relative === \"\") return base;\n var path = (base || \"/\").split(\"/\").slice(0, -1).concat(relative.split(\"/\")), i = path.length, last = path[i - 1], unshift = false, up = 0;\n while (i--) {\n if (path[i] === \".\") {\n path.splice(i, 1);\n } else if (path[i] === \"..\") {\n path.splice(i, 1);\n up++;\n } else if (up) {\n if (i === 0) unshift = true;\n path.splice(i, 1);\n up--;\n }\n }\n if (unshift) path.unshift(\"\");\n if (last === \".\" || last === \"..\") path.push(\"\");\n return path.join(\"/\");\n }\n function Url(address, location, parser) {\n address = trimLeft(address);\n address = address.replace(CRHTLF, \"\");\n if (!(this instanceof Url)) {\n return new Url(address, location, parser);\n }\n var relative, extracted, parse, instruction, index, key, instructions = rules.slice(), type = typeof location, url = this, i = 0;\n if (\"object\" !== type && \"string\" !== type) {\n parser = location;\n location = null;\n }\n if (parser && \"function\" !== typeof parser) parser = qs.parse;\n location = lolcation(location);\n extracted = extractProtocol(address || \"\", location);\n relative = !extracted.protocol && !extracted.slashes;\n url.slashes = extracted.slashes || relative && location.slashes;\n url.protocol = extracted.protocol || location.protocol || \"\";\n address = extracted.rest;\n if (extracted.protocol === \"file:\" && (extracted.slashesCount !== 2 || windowsDriveLetter.test(address)) || !extracted.slashes && (extracted.protocol || extracted.slashesCount < 2 || !isSpecial(url.protocol))) {\n instructions[3] = [/(.*)/, \"pathname\"];\n }\n for (; i < instructions.length; i++) {\n instruction = instructions[i];\n if (typeof instruction === \"function\") {\n address = instruction(address, url);\n continue;\n }\n parse = instruction[0];\n key = instruction[1];\n if (parse !== parse) {\n url[key] = address;\n } else if (\"string\" === typeof parse) {\n index = parse === \"@\" ? address.lastIndexOf(parse) : address.indexOf(parse);\n if (~index) {\n if (\"number\" === typeof instruction[2]) {\n url[key] = address.slice(0, index);\n address = address.slice(index + instruction[2]);\n } else {\n url[key] = address.slice(index);\n address = address.slice(0, index);\n }\n }\n } else if (index = parse.exec(address)) {\n url[key] = index[1];\n address = address.slice(0, index.index);\n }\n url[key] = url[key] || (relative && instruction[3] ? location[key] || \"\" : \"\");\n if (instruction[4]) url[key] = url[key].toLowerCase();\n }\n if (parser) url.query = parser(url.query);\n if (relative && location.slashes && url.pathname.charAt(0) !== \"/\" && (url.pathname !== \"\" || location.pathname !== \"\")) {\n url.pathname = resolve(url.pathname, location.pathname);\n }\n if (url.pathname.charAt(0) !== \"/\" && isSpecial(url.protocol)) {\n url.pathname = \"/\" + url.pathname;\n }\n if (!required(url.port, url.protocol)) {\n url.host = url.hostname;\n url.port = \"\";\n }\n url.username = url.password = \"\";\n if (url.auth) {\n index = url.auth.indexOf(\":\");\n if (~index) {\n url.username = url.auth.slice(0, index);\n url.username = encodeURIComponent(decodeURIComponent(url.username));\n url.password = url.auth.slice(index + 1);\n url.password = encodeURIComponent(decodeURIComponent(url.password));\n } else {\n url.username = encodeURIComponent(decodeURIComponent(url.auth));\n }\n url.auth = url.password ? url.username + \":\" + url.password : url.username;\n }\n url.origin = url.protocol !== \"file:\" && isSpecial(url.protocol) && url.host ? url.protocol + \"//\" + url.host : \"null\";\n url.href = url.toString();\n }\n function set(part, value, fn) {\n var url = this;\n switch (part) {\n case \"query\":\n if (\"string\" === typeof value && value.length) {\n value = (fn || qs.parse)(value);\n }\n url[part] = value;\n break;\n case \"port\":\n url[part] = value;\n if (!required(value, url.protocol)) {\n url.host = url.hostname;\n url[part] = \"\";\n } else if (value) {\n url.host = url.hostname + \":\" + value;\n }\n break;\n case \"hostname\":\n url[part] = value;\n if (url.port) value += \":\" + url.port;\n url.host = value;\n break;\n case \"host\":\n url[part] = value;\n if (port.test(value)) {\n value = value.split(\":\");\n url.port = value.pop();\n url.hostname = value.join(\":\");\n } else {\n url.hostname = value;\n url.port = \"\";\n }\n break;\n case \"protocol\":\n url.protocol = value.toLowerCase();\n url.slashes = !fn;\n break;\n case \"pathname\":\n case \"hash\":\n if (value) {\n var char = part === \"pathname\" ? \"/\" : \"#\";\n url[part] = value.charAt(0) !== char ? char + value : value;\n } else {\n url[part] = value;\n }\n break;\n case \"username\":\n case \"password\":\n url[part] = encodeURIComponent(value);\n break;\n case \"auth\":\n var index = value.indexOf(\":\");\n if (~index) {\n url.username = value.slice(0, index);\n url.username = encodeURIComponent(decodeURIComponent(url.username));\n url.password = value.slice(index + 1);\n url.password = encodeURIComponent(decodeURIComponent(url.password));\n } else {\n url.username = encodeURIComponent(decodeURIComponent(value));\n }\n }\n for (var i = 0; i < rules.length; i++) {\n var ins = rules[i];\n if (ins[4]) url[ins[1]] = url[ins[1]].toLowerCase();\n }\n url.auth = url.password ? url.username + \":\" + url.password : url.username;\n url.origin = url.protocol !== \"file:\" && isSpecial(url.protocol) && url.host ? url.protocol + \"//\" + url.host : \"null\";\n url.href = url.toString();\n return url;\n }\n function toString(stringify) {\n if (!stringify || \"function\" !== typeof stringify) stringify = qs.stringify;\n var query, url = this, host = url.host, protocol = url.protocol;\n if (protocol && protocol.charAt(protocol.length - 1) !== \":\") protocol += \":\";\n var result = protocol + (url.protocol && url.slashes || isSpecial(url.protocol) ? \"//\" : \"\");\n if (url.username) {\n result += url.username;\n if (url.password) result += \":\" + url.password;\n result += \"@\";\n } else if (url.password) {\n result += \":\" + url.password;\n result += \"@\";\n } else if (url.protocol !== \"file:\" && isSpecial(url.protocol) && !host && url.pathname !== \"/\") {\n result += \"@\";\n }\n if (host[host.length - 1] === \":\" || port.test(url.hostname) && !url.port) {\n host += \":\";\n }\n result += host + url.pathname;\n query = \"object\" === typeof url.query ? stringify(url.query) : url.query;\n if (query) result += \"?\" !== query.charAt(0) ? \"?\" + query : query;\n if (url.hash) result += url.hash;\n return result;\n }\n Url.prototype = { set, toString };\n Url.extractProtocol = extractProtocol;\n Url.location = lolcation;\n Url.trimLeft = trimLeft;\n Url.qs = qs;\n module.exports = Url;\n }\n});\n\n// node_modules/psl/data/rules.json\nvar require_rules = __commonJS({\n \"node_modules/psl/data/rules.json\"(exports, module) {\n module.exports = [\n \"ac\",\n \"com.ac\",\n \"edu.ac\",\n \"gov.ac\",\n \"net.ac\",\n \"mil.ac\",\n \"org.ac\",\n \"ad\",\n \"nom.ad\",\n \"ae\",\n \"co.ae\",\n \"net.ae\",\n \"org.ae\",\n \"sch.ae\",\n \"ac.ae\",\n \"gov.ae\",\n \"mil.ae\",\n \"aero\",\n \"accident-investigation.aero\",\n \"accident-prevention.aero\",\n \"aerobatic.aero\",\n \"aeroclub.aero\",\n \"aerodrome.aero\",\n \"agents.aero\",\n \"aircraft.aero\",\n \"airline.aero\",\n \"airport.aero\",\n \"air-surveillance.aero\",\n \"airtraffic.aero\",\n \"air-traffic-control.aero\",\n \"ambulance.aero\",\n \"amusement.aero\",\n \"association.aero\",\n \"author.aero\",\n \"ballooning.aero\",\n \"broker.aero\",\n \"caa.aero\",\n \"cargo.aero\",\n \"catering.aero\",\n \"certification.aero\",\n \"championship.aero\",\n \"charter.aero\",\n \"civilaviation.aero\",\n \"club.aero\",\n \"conference.aero\",\n \"consultant.aero\",\n \"consulting.aero\",\n \"control.aero\",\n \"council.aero\",\n \"crew.aero\",\n \"design.aero\",\n \"dgca.aero\",\n \"educator.aero\",\n \"emergency.aero\",\n \"engine.aero\",\n \"engineer.aero\",\n \"entertainment.aero\",\n \"equipment.aero\",\n \"exchange.aero\",\n \"express.aero\",\n \"federation.aero\",\n \"flight.aero\",\n \"fuel.aero\",\n \"gliding.aero\",\n \"government.aero\",\n \"groundhandling.aero\",\n \"group.aero\",\n \"hanggliding.aero\",\n \"homebuilt.aero\",\n \"insurance.aero\",\n \"journal.aero\",\n \"journalist.aero\",\n \"leasing.aero\",\n \"logistics.aero\",\n \"magazine.aero\",\n \"maintenance.aero\",\n \"media.aero\",\n \"microlight.aero\",\n \"modelling.aero\",\n \"navigation.aero\",\n \"parachuting.aero\",\n \"paragliding.aero\",\n \"passenger-association.aero\",\n \"pilot.aero\",\n \"press.aero\",\n \"production.aero\",\n \"recreation.aero\",\n \"repbody.aero\",\n \"res.aero\",\n \"research.aero\",\n \"rotorcraft.aero\",\n \"safety.aero\",\n \"scientist.aero\",\n \"services.aero\",\n \"show.aero\",\n \"skydiving.aero\",\n \"software.aero\",\n \"student.aero\",\n \"trader.aero\",\n \"trading.aero\",\n \"trainer.aero\",\n \"union.aero\",\n \"workinggroup.aero\",\n \"works.aero\",\n \"af\",\n \"gov.af\",\n \"com.af\",\n \"org.af\",\n \"net.af\",\n \"edu.af\",\n \"ag\",\n \"com.ag\",\n \"org.ag\",\n \"net.ag\",\n \"co.ag\",\n \"nom.ag\",\n \"ai\",\n \"off.ai\",\n \"com.ai\",\n \"net.ai\",\n \"org.ai\",\n \"al\",\n \"com.al\",\n \"edu.al\",\n \"gov.al\",\n \"mil.al\",\n \"net.al\",\n \"org.al\",\n \"am\",\n \"co.am\",\n \"com.am\",\n \"commune.am\",\n \"net.am\",\n \"org.am\",\n \"ao\",\n \"ed.ao\",\n \"gv.ao\",\n \"og.ao\",\n \"co.ao\",\n \"pb.ao\",\n \"it.ao\",\n \"aq\",\n \"ar\",\n \"bet.ar\",\n \"com.ar\",\n \"coop.ar\",\n \"edu.ar\",\n \"gob.ar\",\n \"gov.ar\",\n \"int.ar\",\n \"mil.ar\",\n \"musica.ar\",\n \"mutual.ar\",\n \"net.ar\",\n \"org.ar\",\n \"senasa.ar\",\n \"tur.ar\",\n \"arpa\",\n \"e164.arpa\",\n \"in-addr.arpa\",\n \"ip6.arpa\",\n \"iris.arpa\",\n \"uri.arpa\",\n \"urn.arpa\",\n \"as\",\n \"gov.as\",\n \"asia\",\n \"at\",\n \"ac.at\",\n \"co.at\",\n \"gv.at\",\n \"or.at\",\n \"sth.ac.at\",\n \"au\",\n \"com.au\",\n \"net.au\",\n \"org.au\",\n \"edu.au\",\n \"gov.au\",\n \"asn.au\",\n \"id.au\",\n \"info.au\",\n \"conf.au\",\n \"oz.au\",\n \"act.au\",\n \"nsw.au\",\n \"nt.au\",\n \"qld.au\",\n \"sa.au\",\n \"tas.au\",\n \"vic.au\",\n \"wa.au\",\n \"act.edu.au\",\n \"catholic.edu.au\",\n \"nsw.edu.au\",\n \"nt.edu.au\",\n \"qld.edu.au\",\n \"sa.edu.au\",\n \"tas.edu.au\",\n \"vic.edu.au\",\n \"wa.edu.au\",\n \"qld.gov.au\",\n \"sa.gov.au\",\n \"tas.gov.au\",\n \"vic.gov.au\",\n \"wa.gov.au\",\n \"schools.nsw.edu.au\",\n \"aw\",\n \"com.aw\",\n \"ax\",\n \"az\",\n \"com.az\",\n \"net.az\",\n \"int.az\",\n \"gov.az\",\n \"org.az\",\n \"edu.az\",\n \"info.az\",\n \"pp.az\",\n \"mil.az\",\n \"name.az\",\n \"pro.az\",\n \"biz.az\",\n \"ba\",\n \"com.ba\",\n \"edu.ba\",\n \"gov.ba\",\n \"mil.ba\",\n \"net.ba\",\n \"org.ba\",\n \"bb\",\n \"biz.bb\",\n \"co.bb\",\n \"com.bb\",\n \"edu.bb\",\n \"gov.bb\",\n \"info.bb\",\n \"net.bb\",\n \"org.bb\",\n \"store.bb\",\n \"tv.bb\",\n \"*.bd\",\n \"be\",\n \"ac.be\",\n \"bf\",\n \"gov.bf\",\n \"bg\",\n \"a.bg\",\n \"b.bg\",\n \"c.bg\",\n \"d.bg\",\n \"e.bg\",\n \"f.bg\",\n \"g.bg\",\n \"h.bg\",\n \"i.bg\",\n \"j.bg\",\n \"k.bg\",\n \"l.bg\",\n \"m.bg\",\n \"n.bg\",\n \"o.bg\",\n \"p.bg\",\n \"q.bg\",\n \"r.bg\",\n \"s.bg\",\n \"t.bg\",\n \"u.bg\",\n \"v.bg\",\n \"w.bg\",\n \"x.bg\",\n \"y.bg\",\n \"z.bg\",\n \"0.bg\",\n \"1.bg\",\n \"2.bg\",\n \"3.bg\",\n \"4.bg\",\n \"5.bg\",\n \"6.bg\",\n \"7.bg\",\n \"8.bg\",\n \"9.bg\",\n \"bh\",\n \"com.bh\",\n \"edu.bh\",\n \"net.bh\",\n \"org.bh\",\n \"gov.bh\",\n \"bi\",\n \"co.bi\",\n \"com.bi\",\n \"edu.bi\",\n \"or.bi\",\n \"org.bi\",\n \"biz\",\n \"bj\",\n \"asso.bj\",\n \"barreau.bj\",\n \"gouv.bj\",\n \"bm\",\n \"com.bm\",\n \"edu.bm\",\n \"gov.bm\",\n \"net.bm\",\n \"org.bm\",\n \"bn\",\n \"com.bn\",\n \"edu.bn\",\n \"gov.bn\",\n \"net.bn\",\n \"org.bn\",\n \"bo\",\n \"com.bo\",\n \"edu.bo\",\n \"gob.bo\",\n \"int.bo\",\n \"org.bo\",\n \"net.bo\",\n \"mil.bo\",\n \"tv.bo\",\n \"web.bo\",\n \"academia.bo\",\n \"agro.bo\",\n \"arte.bo\",\n \"blog.bo\",\n \"bolivia.bo\",\n \"ciencia.bo\",\n \"cooperativa.bo\",\n \"democracia.bo\",\n \"deporte.bo\",\n \"ecologia.bo\",\n \"economia.bo\",\n \"empresa.bo\",\n \"indigena.bo\",\n \"industria.bo\",\n \"info.bo\",\n \"medicina.bo\",\n \"movimiento.bo\",\n \"musica.bo\",\n \"natural.bo\",\n \"nombre.bo\",\n \"noticias.bo\",\n \"patria.bo\",\n \"politica.bo\",\n \"profesional.bo\",\n \"plurinacional.bo\",\n \"pueblo.bo\",\n \"revista.bo\",\n \"salud.bo\",\n \"tecnologia.bo\",\n \"tksat.bo\",\n \"transporte.bo\",\n \"wiki.bo\",\n \"br\",\n \"9guacu.br\",\n \"abc.br\",\n \"adm.br\",\n \"adv.br\",\n \"agr.br\",\n \"aju.br\",\n \"am.br\",\n \"anani.br\",\n \"aparecida.br\",\n \"app.br\",\n \"arq.br\",\n \"art.br\",\n \"ato.br\",\n \"b.br\",\n \"barueri.br\",\n \"belem.br\",\n \"bhz.br\",\n \"bib.br\",\n \"bio.br\",\n \"blog.br\",\n \"bmd.br\",\n \"boavista.br\",\n \"bsb.br\",\n \"campinagrande.br\",\n \"campinas.br\",\n \"caxias.br\",\n \"cim.br\",\n \"cng.br\",\n \"cnt.br\",\n \"com.br\",\n \"contagem.br\",\n \"coop.br\",\n \"coz.br\",\n \"cri.br\",\n \"cuiaba.br\",\n \"curitiba.br\",\n \"def.br\",\n \"des.br\",\n \"det.br\",\n \"dev.br\",\n \"ecn.br\",\n \"eco.br\",\n \"edu.br\",\n \"emp.br\",\n \"enf.br\",\n \"eng.br\",\n \"esp.br\",\n \"etc.br\",\n \"eti.br\",\n \"far.br\",\n \"feira.br\",\n \"flog.br\",\n \"floripa.br\",\n \"fm.br\",\n \"fnd.br\",\n \"fortal.br\",\n \"fot.br\",\n \"foz.br\",\n \"fst.br\",\n \"g12.br\",\n \"geo.br\",\n \"ggf.br\",\n \"goiania.br\",\n \"gov.br\",\n \"ac.gov.br\",\n \"al.gov.br\",\n \"am.gov.br\",\n \"ap.gov.br\",\n \"ba.gov.br\",\n \"ce.gov.br\",\n \"df.gov.br\",\n \"es.gov.br\",\n \"go.gov.br\",\n \"ma.gov.br\",\n \"mg.gov.br\",\n \"ms.gov.br\",\n \"mt.gov.br\",\n \"pa.gov.br\",\n \"pb.gov.br\",\n \"pe.gov.br\",\n \"pi.gov.br\",\n \"pr.gov.br\",\n \"rj.gov.br\",\n \"rn.gov.br\",\n \"ro.gov.br\",\n \"rr.gov.br\",\n \"rs.gov.br\",\n \"sc.gov.br\",\n \"se.gov.br\",\n \"sp.gov.br\",\n \"to.gov.br\",\n \"gru.br\",\n \"imb.br\",\n \"ind.br\",\n \"inf.br\",\n \"jab.br\",\n \"jampa.br\",\n \"jdf.br\",\n \"joinville.br\",\n \"jor.br\",\n \"jus.br\",\n \"leg.br\",\n \"lel.br\",\n \"log.br\",\n \"londrina.br\",\n \"macapa.br\",\n \"maceio.br\",\n \"manaus.br\",\n \"maringa.br\",\n \"mat.br\",\n \"med.br\",\n \"mil.br\",\n \"morena.br\",\n \"mp.br\",\n \"mus.br\",\n \"natal.br\",\n \"net.br\",\n \"niteroi.br\",\n \"*.nom.br\",\n \"not.br\",\n \"ntr.br\",\n \"odo.br\",\n \"ong.br\",\n \"org.br\",\n \"osasco.br\",\n \"palmas.br\",\n \"poa.br\",\n \"ppg.br\",\n \"pro.br\",\n \"psc.br\",\n \"psi.br\",\n \"pvh.br\",\n \"qsl.br\",\n \"radio.br\",\n \"rec.br\",\n \"recife.br\",\n \"rep.br\",\n \"ribeirao.br\",\n \"rio.br\",\n \"riobranco.br\",\n \"riopreto.br\",\n \"salvador.br\",\n \"sampa.br\",\n \"santamaria.br\",\n \"santoandre.br\",\n \"saobernardo.br\",\n \"saogonca.br\",\n \"seg.br\",\n \"sjc.br\",\n \"slg.br\",\n \"slz.br\",\n \"sorocaba.br\",\n \"srv.br\",\n \"taxi.br\",\n \"tc.br\",\n \"tec.br\",\n \"teo.br\",\n \"the.br\",\n \"tmp.br\",\n \"trd.br\",\n \"tur.br\",\n \"tv.br\",\n \"udi.br\",\n \"vet.br\",\n \"vix.br\",\n \"vlog.br\",\n \"wiki.br\",\n \"zlg.br\",\n \"bs\",\n \"com.bs\",\n \"net.bs\",\n \"org.bs\",\n \"edu.bs\",\n \"gov.bs\",\n \"bt\",\n \"com.bt\",\n \"edu.bt\",\n \"gov.bt\",\n \"net.bt\",\n \"org.bt\",\n \"bv\",\n \"bw\",\n \"co.bw\",\n \"org.bw\",\n \"by\",\n \"gov.by\",\n \"mil.by\",\n \"com.by\",\n \"of.by\",\n \"bz\",\n \"com.bz\",\n \"net.bz\",\n \"org.bz\",\n \"edu.bz\",\n \"gov.bz\",\n \"ca\",\n \"ab.ca\",\n \"bc.ca\",\n \"mb.ca\",\n \"nb.ca\",\n \"nf.ca\",\n \"nl.ca\",\n \"ns.ca\",\n \"nt.ca\",\n \"nu.ca\",\n \"on.ca\",\n \"pe.ca\",\n \"qc.ca\",\n \"sk.ca\",\n \"yk.ca\",\n \"gc.ca\",\n \"cat\",\n \"cc\",\n \"cd\",\n \"gov.cd\",\n \"cf\",\n \"cg\",\n \"ch\",\n \"ci\",\n \"org.ci\",\n \"or.ci\",\n \"com.ci\",\n \"co.ci\",\n \"edu.ci\",\n \"ed.ci\",\n \"ac.ci\",\n \"net.ci\",\n \"go.ci\",\n \"asso.ci\",\n \"a\\xE9roport.ci\",\n \"int.ci\",\n \"presse.ci\",\n \"md.ci\",\n \"gouv.ci\",\n \"*.ck\",\n \"!www.ck\",\n \"cl\",\n \"co.cl\",\n \"gob.cl\",\n \"gov.cl\",\n \"mil.cl\",\n \"cm\",\n \"co.cm\",\n \"com.cm\",\n \"gov.cm\",\n \"net.cm\",\n \"cn\",\n \"ac.cn\",\n \"com.cn\",\n \"edu.cn\",\n \"gov.cn\",\n \"net.cn\",\n \"org.cn\",\n \"mil.cn\",\n \"\\u516C\\u53F8.cn\",\n \"\\u7F51\\u7EDC.cn\",\n \"\\u7DB2\\u7D61.cn\",\n \"ah.cn\",\n \"bj.cn\",\n \"cq.cn\",\n \"fj.cn\",\n \"gd.cn\",\n \"gs.cn\",\n \"gz.cn\",\n \"gx.cn\",\n \"ha.cn\",\n \"hb.cn\",\n \"he.cn\",\n \"hi.cn\",\n \"hl.cn\",\n \"hn.cn\",\n \"jl.cn\",\n \"js.cn\",\n \"jx.cn\",\n \"ln.cn\",\n \"nm.cn\",\n \"nx.cn\",\n \"qh.cn\",\n \"sc.cn\",\n \"sd.cn\",\n \"sh.cn\",\n \"sn.cn\",\n \"sx.cn\",\n \"tj.cn\",\n \"xj.cn\",\n \"xz.cn\",\n \"yn.cn\",\n \"zj.cn\",\n \"hk.cn\",\n \"mo.cn\",\n \"tw.cn\",\n \"co\",\n \"arts.co\",\n \"com.co\",\n \"edu.co\",\n \"firm.co\",\n \"gov.co\",\n \"info.co\",\n \"int.co\",\n \"mil.co\",\n \"net.co\",\n \"nom.co\",\n \"org.co\",\n \"rec.co\",\n \"web.co\",\n \"com\",\n \"coop\",\n \"cr\",\n \"ac.cr\",\n \"co.cr\",\n \"ed.cr\",\n \"fi.cr\",\n \"go.cr\",\n \"or.cr\",\n \"sa.cr\",\n \"cu\",\n \"com.cu\",\n \"edu.cu\",\n \"org.cu\",\n \"net.cu\",\n \"gov.cu\",\n \"inf.cu\",\n \"cv\",\n \"com.cv\",\n \"edu.cv\",\n \"int.cv\",\n \"nome.cv\",\n \"org.cv\",\n \"cw\",\n \"com.cw\",\n \"edu.cw\",\n \"net.cw\",\n \"org.cw\",\n \"cx\",\n \"gov.cx\",\n \"cy\",\n \"ac.cy\",\n \"biz.cy\",\n \"com.cy\",\n \"ekloges.cy\",\n \"gov.cy\",\n \"ltd.cy\",\n \"mil.cy\",\n \"net.cy\",\n \"org.cy\",\n \"press.cy\",\n \"pro.cy\",\n \"tm.cy\",\n \"cz\",\n \"de\",\n \"dj\",\n \"dk\",\n \"dm\",\n \"com.dm\",\n \"net.dm\",\n \"org.dm\",\n \"edu.dm\",\n \"gov.dm\",\n \"do\",\n \"art.do\",\n \"com.do\",\n \"edu.do\",\n \"gob.do\",\n \"gov.do\",\n \"mil.do\",\n \"net.do\",\n \"org.do\",\n \"sld.do\",\n \"web.do\",\n \"dz\",\n \"art.dz\",\n \"asso.dz\",\n \"com.dz\",\n \"edu.dz\",\n \"gov.dz\",\n \"org.dz\",\n \"net.dz\",\n \"pol.dz\",\n \"soc.dz\",\n \"tm.dz\",\n \"ec\",\n \"com.ec\",\n \"info.ec\",\n \"net.ec\",\n \"fin.ec\",\n \"k12.ec\",\n \"med.ec\",\n \"pro.ec\",\n \"org.ec\",\n \"edu.ec\",\n \"gov.ec\",\n \"gob.ec\",\n \"mil.ec\",\n \"edu\",\n \"ee\",\n \"edu.ee\",\n \"gov.ee\",\n \"riik.ee\",\n \"lib.ee\",\n \"med.ee\",\n \"com.ee\",\n \"pri.ee\",\n \"aip.ee\",\n \"org.ee\",\n \"fie.ee\",\n \"eg\",\n \"com.eg\",\n \"edu.eg\",\n \"eun.eg\",\n \"gov.eg\",\n \"mil.eg\",\n \"name.eg\",\n \"net.eg\",\n \"org.eg\",\n \"sci.eg\",\n \"*.er\",\n \"es\",\n \"com.es\",\n \"nom.es\",\n \"org.es\",\n \"gob.es\",\n \"edu.es\",\n \"et\",\n \"com.et\",\n \"gov.et\",\n \"org.et\",\n \"edu.et\",\n \"biz.et\",\n \"name.et\",\n \"info.et\",\n \"net.et\",\n \"eu\",\n \"fi\",\n \"aland.fi\",\n \"fj\",\n \"ac.fj\",\n \"biz.fj\",\n \"com.fj\",\n \"gov.fj\",\n \"info.fj\",\n \"mil.fj\",\n \"name.fj\",\n \"net.fj\",\n \"org.fj\",\n \"pro.fj\",\n \"*.fk\",\n \"com.fm\",\n \"edu.fm\",\n \"net.fm\",\n \"org.fm\",\n \"fm\",\n \"fo\",\n \"fr\",\n \"asso.fr\",\n \"com.fr\",\n \"gouv.fr\",\n \"nom.fr\",\n \"prd.fr\",\n \"tm.fr\",\n \"aeroport.fr\",\n \"avocat.fr\",\n \"avoues.fr\",\n \"cci.fr\",\n \"chambagri.fr\",\n \"chirurgiens-dentistes.fr\",\n \"experts-comptables.fr\",\n \"geometre-expert.fr\",\n \"greta.fr\",\n \"huissier-justice.fr\",\n \"medecin.fr\",\n \"notaires.fr\",\n \"pharmacien.fr\",\n \"port.fr\",\n \"veterinaire.fr\",\n \"ga\",\n \"gb\",\n \"edu.gd\",\n \"gov.gd\",\n \"gd\",\n \"ge\",\n \"com.ge\",\n \"edu.ge\",\n \"gov.ge\",\n \"org.ge\",\n \"mil.ge\",\n \"net.ge\",\n \"pvt.ge\",\n \"gf\",\n \"gg\",\n \"co.gg\",\n \"net.gg\",\n \"org.gg\",\n \"gh\",\n \"com.gh\",\n \"edu.gh\",\n \"gov.gh\",\n \"org.gh\",\n \"mil.gh\",\n \"gi\",\n \"com.gi\",\n \"ltd.gi\",\n \"gov.gi\",\n \"mod.gi\",\n \"edu.gi\",\n \"org.gi\",\n \"gl\",\n \"co.gl\",\n \"com.gl\",\n \"edu.gl\",\n \"net.gl\",\n \"org.gl\",\n \"gm\",\n \"gn\",\n \"ac.gn\",\n \"com.gn\",\n \"edu.gn\",\n \"gov.gn\",\n \"org.gn\",\n \"net.gn\",\n \"gov\",\n \"gp\",\n \"com.gp\",\n \"net.gp\",\n \"mobi.gp\",\n \"edu.gp\",\n \"org.gp\",\n \"asso.gp\",\n \"gq\",\n \"gr\",\n \"com.gr\",\n \"edu.gr\",\n \"net.gr\",\n \"org.gr\",\n \"gov.gr\",\n \"gs\",\n \"gt\",\n \"com.gt\",\n \"edu.gt\",\n \"gob.gt\",\n \"ind.gt\",\n \"mil.gt\",\n \"net.gt\",\n \"org.gt\",\n \"gu\",\n \"com.gu\",\n \"edu.gu\",\n \"gov.gu\",\n \"guam.gu\",\n \"info.gu\",\n \"net.gu\",\n \"org.gu\",\n \"web.gu\",\n \"gw\",\n \"gy\",\n \"co.gy\",\n \"com.gy\",\n \"edu.gy\",\n \"gov.gy\",\n \"net.gy\",\n \"org.gy\",\n \"hk\",\n \"com.hk\",\n \"edu.hk\",\n \"gov.hk\",\n \"idv.hk\",\n \"net.hk\",\n \"org.hk\",\n \"\\u516C\\u53F8.hk\",\n \"\\u6559\\u80B2.hk\",\n \"\\u654E\\u80B2.hk\",\n \"\\u653F\\u5E9C.hk\",\n \"\\u500B\\u4EBA.hk\",\n \"\\u4E2A\\uFFFD\\uFFFD.hk\",\n \"\\u7B87\\u4EBA.hk\",\n \"\\u7DB2\\u7EDC.hk\",\n \"\\u7F51\\u7EDC.hk\",\n \"\\u7EC4\\u7E54.hk\",\n \"\\u7DB2\\u7D61.hk\",\n \"\\u7F51\\u7D61.hk\",\n \"\\u7EC4\\u7EC7.hk\",\n \"\\u7D44\\u7E54.hk\",\n \"\\u7D44\\u7EC7.hk\",\n \"hm\",\n \"hn\",\n \"com.hn\",\n \"edu.hn\",\n \"org.hn\",\n \"net.hn\",\n \"mil.hn\",\n \"gob.hn\",\n \"hr\",\n \"iz.hr\",\n \"from.hr\",\n \"name.hr\",\n \"com.hr\",\n \"ht\",\n \"com.ht\",\n \"shop.ht\",\n \"firm.ht\",\n \"info.ht\",\n \"adult.ht\",\n \"net.ht\",\n \"pro.ht\",\n \"org.ht\",\n \"med.ht\",\n \"art.ht\",\n \"coop.ht\",\n \"pol.ht\",\n \"asso.ht\",\n \"edu.ht\",\n \"rel.ht\",\n \"gouv.ht\",\n \"perso.ht\",\n \"hu\",\n \"co.hu\",\n \"info.hu\",\n \"org.hu\",\n \"priv.hu\",\n \"sport.hu\",\n \"tm.hu\",\n \"2000.hu\",\n \"agrar.hu\",\n \"bolt.hu\",\n \"casino.hu\",\n \"city.hu\",\n \"erotica.hu\",\n \"erotika.hu\",\n \"film.hu\",\n \"forum.hu\",\n \"games.hu\",\n \"hotel.hu\",\n \"ingatlan.hu\",\n \"jogasz.hu\",\n \"konyvelo.hu\",\n \"lakas.hu\",\n \"media.hu\",\n \"news.hu\",\n \"reklam.hu\",\n \"sex.hu\",\n \"shop.hu\",\n \"suli.hu\",\n \"szex.hu\",\n \"tozsde.hu\",\n \"utazas.hu\",\n \"video.hu\",\n \"id\",\n \"ac.id\",\n \"biz.id\",\n \"co.id\",\n \"desa.id\",\n \"go.id\",\n \"mil.id\",\n \"my.id\",\n \"net.id\",\n \"or.id\",\n \"ponpes.id\",\n \"sch.id\",\n \"web.id\",\n \"ie\",\n \"gov.ie\",\n \"il\",\n \"ac.il\",\n \"co.il\",\n \"gov.il\",\n \"idf.il\",\n \"k12.il\",\n \"muni.il\",\n \"net.il\",\n \"org.il\",\n \"im\",\n \"ac.im\",\n \"co.im\",\n \"com.im\",\n \"ltd.co.im\",\n \"net.im\",\n \"org.im\",\n \"plc.co.im\",\n \"tt.im\",\n \"tv.im\",\n \"in\",\n \"co.in\",\n \"firm.in\",\n \"net.in\",\n \"org.in\",\n \"gen.in\",\n \"ind.in\",\n \"nic.in\",\n \"ac.in\",\n \"edu.in\",\n \"res.in\",\n \"gov.in\",\n \"mil.in\",\n \"info\",\n \"int\",\n \"eu.int\",\n \"io\",\n \"com.io\",\n \"iq\",\n \"gov.iq\",\n \"edu.iq\",\n \"mil.iq\",\n \"com.iq\",\n \"org.iq\",\n \"net.iq\",\n \"ir\",\n \"ac.ir\",\n \"co.ir\",\n \"gov.ir\",\n \"id.ir\",\n \"net.ir\",\n \"org.ir\",\n \"sch.ir\",\n \"\\u0627\\u06CC\\u0631\\u0627\\u0646.ir\",\n \"\\u0627\\u064A\\u0631\\u0627\\u0646.ir\",\n \"is\",\n \"net.is\",\n \"com.is\",\n \"edu.is\",\n \"gov.is\",\n \"org.is\",\n \"int.is\",\n \"it\",\n \"gov.it\",\n \"edu.it\",\n \"abr.it\",\n \"abruzzo.it\",\n \"aosta-valley.it\",\n \"aostavalley.it\",\n \"bas.it\",\n \"basilicata.it\",\n \"cal.it\",\n \"calabria.it\",\n \"cam.it\",\n \"campania.it\",\n \"emilia-romagna.it\",\n \"emiliaromagna.it\",\n \"emr.it\",\n \"friuli-v-giulia.it\",\n \"friuli-ve-giulia.it\",\n \"friuli-vegiulia.it\",\n \"friuli-venezia-giulia.it\",\n \"friuli-veneziagiulia.it\",\n \"friuli-vgiulia.it\",\n \"friuliv-giulia.it\",\n \"friulive-giulia.it\",\n \"friulivegiulia.it\",\n \"friulivenezia-giulia.it\",\n \"friuliveneziagiulia.it\",\n \"friulivgiulia.it\",\n \"fvg.it\",\n \"laz.it\",\n \"lazio.it\",\n \"lig.it\",\n \"liguria.it\",\n \"lom.it\",\n \"lombardia.it\",\n \"lombardy.it\",\n \"lucania.it\",\n \"mar.it\",\n \"marche.it\",\n \"mol.it\",\n \"molise.it\",\n \"piedmont.it\",\n \"piemonte.it\",\n \"pmn.it\",\n \"pug.it\",\n \"puglia.it\",\n \"sar.it\",\n \"sardegna.it\",\n \"sardinia.it\",\n \"sic.it\",\n \"sicilia.it\",\n \"sicily.it\",\n \"taa.it\",\n \"tos.it\",\n \"toscana.it\",\n \"trentin-sud-tirol.it\",\n \"trentin-s\\xFCd-tirol.it\",\n \"trentin-sudtirol.it\",\n \"trentin-s\\xFCdtirol.it\",\n \"trentin-sued-tirol.it\",\n \"trentin-suedtirol.it\",\n \"trentino-a-adige.it\",\n \"trentino-aadige.it\",\n \"trentino-alto-adige.it\",\n \"trentino-altoadige.it\",\n \"trentino-s-tirol.it\",\n \"trentino-stirol.it\",\n \"trentino-sud-tirol.it\",\n \"trentino-s\\xFCd-tirol.it\",\n \"trentino-sudtirol.it\",\n \"trentino-s\\xFCdtirol.it\",\n \"trentino-sued-tirol.it\",\n \"trentino-suedtirol.it\",\n \"trentino.it\",\n \"trentinoa-adige.it\",\n \"trentinoaadige.it\",\n \"trentinoalto-adige.it\",\n \"trentinoaltoadige.it\",\n \"trentinos-tirol.it\",\n \"trentinostirol.it\",\n \"trentinosud-tirol.it\",\n \"trentinos\\xFCd-tirol.it\",\n \"trentinosudtirol.it\",\n \"trentinos\\xFCdtirol.it\",\n \"trentinosued-tirol.it\",\n \"trentinosuedtirol.it\",\n \"trentinsud-tirol.it\",\n \"trentins\\xFCd-tirol.it\",\n \"trentinsudtirol.it\",\n \"trentins\\xFCdtirol.it\",\n \"trentinsued-tirol.it\",\n \"trentinsuedtirol.it\",\n \"tuscany.it\",\n \"umb.it\",\n \"umbria.it\",\n \"val-d-aosta.it\",\n \"val-daosta.it\",\n \"vald-aosta.it\",\n \"valdaosta.it\",\n \"valle-aosta.it\",\n \"valle-d-aosta.it\",\n \"valle-daosta.it\",\n \"valleaosta.it\",\n \"valled-aosta.it\",\n \"valledaosta.it\",\n \"vallee-aoste.it\",\n \"vall\\xE9e-aoste.it\",\n \"vallee-d-aoste.it\",\n \"vall\\xE9e-d-aoste.it\",\n \"valleeaoste.it\",\n \"vall\\xE9eaoste.it\",\n \"valleedaoste.it\",\n \"vall\\xE9edaoste.it\",\n \"vao.it\",\n \"vda.it\",\n \"ven.it\",\n \"veneto.it\",\n \"ag.it\",\n \"agrigento.it\",\n \"al.it\",\n \"alessandria.it\",\n \"alto-adige.it\",\n \"altoadige.it\",\n \"an.it\",\n \"ancona.it\",\n \"andria-barletta-trani.it\",\n \"andria-trani-barletta.it\",\n \"andriabarlettatrani.it\",\n \"andriatranibarletta.it\",\n \"ao.it\",\n \"aosta.it\",\n \"aoste.it\",\n \"ap.it\",\n \"aq.it\",\n \"aquila.it\",\n \"ar.it\",\n \"arezzo.it\",\n \"ascoli-piceno.it\",\n \"ascolipiceno.it\",\n \"asti.it\",\n \"at.it\",\n \"av.it\",\n \"avellino.it\",\n \"ba.it\",\n \"balsan-sudtirol.it\",\n \"balsan-s\\xFCdtirol.it\",\n \"balsan-suedtirol.it\",\n \"balsan.it\",\n \"bari.it\",\n \"barletta-trani-andria.it\",\n \"barlettatraniandria.it\",\n \"belluno.it\",\n \"benevento.it\",\n \"bergamo.it\",\n \"bg.it\",\n \"bi.it\",\n \"biella.it\",\n \"bl.it\",\n \"bn.it\",\n \"bo.it\",\n \"bologna.it\",\n \"bolzano-altoadige.it\",\n \"bolzano.it\",\n \"bozen-sudtirol.it\",\n \"bozen-s\\xFCdtirol.it\",\n \"bozen-suedtirol.it\",\n \"bozen.it\",\n \"br.it\",\n \"brescia.it\",\n \"brindisi.it\",\n \"bs.it\",\n \"bt.it\",\n \"bulsan-sudtirol.it\",\n \"bulsan-s\\xFCdtirol.it\",\n \"bulsan-suedtirol.it\",\n \"bulsan.it\",\n \"bz.it\",\n \"ca.it\",\n \"cagliari.it\",\n \"caltanissetta.it\",\n \"campidano-medio.it\",\n \"campidanomedio.it\",\n \"campobasso.it\",\n \"carbonia-iglesias.it\",\n \"carboniaiglesias.it\",\n \"carrara-massa.it\",\n \"carraramassa.it\",\n \"caserta.it\",\n \"catania.it\",\n \"catanzaro.it\",\n \"cb.it\",\n \"ce.it\",\n \"cesena-forli.it\",\n \"cesena-forl\\xEC.it\",\n \"cesenaforli.it\",\n \"cesenaforl\\xEC.it\",\n \"ch.it\",\n \"chieti.it\",\n \"ci.it\",\n \"cl.it\",\n \"cn.it\",\n \"co.it\",\n \"como.it\",\n \"cosenza.it\",\n \"cr.it\",\n \"cremona.it\",\n \"crotone.it\",\n \"cs.it\",\n \"ct.it\",\n \"cuneo.it\",\n \"cz.it\",\n \"dell-ogliastra.it\",\n \"dellogliastra.it\",\n \"en.it\",\n \"enna.it\",\n \"fc.it\",\n \"fe.it\",\n \"fermo.it\",\n \"ferrara.it\",\n \"fg.it\",\n \"fi.it\",\n \"firenze.it\",\n \"florence.it\",\n \"fm.it\",\n \"foggia.it\",\n \"forli-cesena.it\",\n \"forl\\xEC-cesena.it\",\n \"forlicesena.it\",\n \"forl\\xECcesena.it\",\n \"fr.it\",\n \"frosinone.it\",\n \"ge.it\",\n \"genoa.it\",\n \"genova.it\",\n \"go.it\",\n \"gorizia.it\",\n \"gr.it\",\n \"grosseto.it\",\n \"iglesias-carbonia.it\",\n \"iglesiascarbonia.it\",\n \"im.it\",\n \"imperia.it\",\n \"is.it\",\n \"isernia.it\",\n \"kr.it\",\n \"la-spezia.it\",\n \"laquila.it\",\n \"laspezia.it\",\n \"latina.it\",\n \"lc.it\",\n \"le.it\",\n \"lecce.it\",\n \"lecco.it\",\n \"li.it\",\n \"livorno.it\",\n \"lo.it\",\n \"lodi.it\",\n \"lt.it\",\n \"lu.it\",\n \"lucca.it\",\n \"macerata.it\",\n \"mantova.it\",\n \"massa-carrara.it\",\n \"massacarrara.it\",\n \"matera.it\",\n \"mb.it\",\n \"mc.it\",\n \"me.it\",\n \"medio-campidano.it\",\n \"mediocampidano.it\",\n \"messina.it\",\n \"mi.it\",\n \"milan.it\",\n \"milano.it\",\n \"mn.it\",\n \"mo.it\",\n \"modena.it\",\n \"monza-brianza.it\",\n \"monza-e-della-brianza.it\",\n \"monza.it\",\n \"monzabrianza.it\",\n \"monzaebrianza.it\",\n \"monzaedellabrianza.it\",\n \"ms.it\",\n \"mt.it\",\n \"na.it\",\n \"naples.it\",\n \"napoli.it\",\n \"no.it\",\n \"novara.it\",\n \"nu.it\",\n \"nuoro.it\",\n \"og.it\",\n \"ogliastra.it\",\n \"olbia-tempio.it\",\n \"olbiatempio.it\",\n \"or.it\",\n \"oristano.it\",\n \"ot.it\",\n \"pa.it\",\n \"padova.it\",\n \"padua.it\",\n \"palermo.it\",\n \"parma.it\",\n \"pavia.it\",\n \"pc.it\",\n \"pd.it\",\n \"pe.it\",\n \"perugia.it\",\n \"pesaro-urbino.it\",\n \"pesarourbino.it\",\n \"pescara.it\",\n \"pg.it\",\n \"pi.it\",\n \"piacenza.it\",\n \"pisa.it\",\n \"pistoia.it\",\n \"pn.it\",\n \"po.it\",\n \"pordenone.it\",\n \"potenza.it\",\n \"pr.it\",\n \"prato.it\",\n \"pt.it\",\n \"pu.it\",\n \"pv.it\",\n \"pz.it\",\n \"ra.it\",\n \"ragusa.it\",\n \"ravenna.it\",\n \"rc.it\",\n \"re.it\",\n \"reggio-calabria.it\",\n \"reggio-emilia.it\",\n \"reggiocalabria.it\",\n \"reggioemilia.it\",\n \"rg.it\",\n \"ri.it\",\n \"rieti.it\",\n \"rimini.it\",\n \"rm.it\",\n \"rn.it\",\n \"ro.it\",\n \"roma.it\",\n \"rome.it\",\n \"rovigo.it\",\n \"sa.it\",\n \"salerno.it\",\n \"sassari.it\",\n \"savona.it\",\n \"si.it\",\n \"siena.it\",\n \"siracusa.it\",\n \"so.it\",\n \"sondrio.it\",\n \"sp.it\",\n \"sr.it\",\n \"ss.it\",\n \"suedtirol.it\",\n \"s\\xFCdtirol.it\",\n \"sv.it\",\n \"ta.it\",\n \"taranto.it\",\n \"te.it\",\n \"tempio-olbia.it\",\n \"tempioolbia.it\",\n \"teramo.it\",\n \"terni.it\",\n \"tn.it\",\n \"to.it\",\n \"torino.it\",\n \"tp.it\",\n \"tr.it\",\n \"trani-andria-barletta.it\",\n \"trani-barletta-andria.it\",\n \"traniandriabarletta.it\",\n \"tranibarlettaandria.it\",\n \"trapani.it\",\n \"trento.it\",\n \"treviso.it\",\n \"trieste.it\",\n \"ts.it\",\n \"turin.it\",\n \"tv.it\",\n \"ud.it\",\n \"udine.it\",\n \"urbino-pesaro.it\",\n \"urbinopesaro.it\",\n \"va.it\",\n \"varese.it\",\n \"vb.it\",\n \"vc.it\",\n \"ve.it\",\n \"venezia.it\",\n \"venice.it\",\n \"verbania.it\",\n \"vercelli.it\",\n \"verona.it\",\n \"vi.it\",\n \"vibo-valentia.it\",\n \"vibovalentia.it\",\n \"vicenza.it\",\n \"viterbo.it\",\n \"vr.it\",\n \"vs.it\",\n \"vt.it\",\n \"vv.it\",\n \"je\",\n \"co.je\",\n \"net.je\",\n \"org.je\",\n \"*.jm\",\n \"jo\",\n \"com.jo\",\n \"org.jo\",\n \"net.jo\",\n \"edu.jo\",\n \"sch.jo\",\n \"gov.jo\",\n \"mil.jo\",\n \"name.jo\",\n \"jobs\",\n \"jp\",\n \"ac.jp\",\n \"ad.jp\",\n \"co.jp\",\n \"ed.jp\",\n \"go.jp\",\n \"gr.jp\",\n \"lg.jp\",\n \"ne.jp\",\n \"or.jp\",\n \"aichi.jp\",\n \"akita.jp\",\n \"aomori.jp\",\n \"chiba.jp\",\n \"ehime.jp\",\n \"fukui.jp\",\n \"fukuoka.jp\",\n \"fukushima.jp\",\n \"gifu.jp\",\n \"gunma.jp\",\n \"hiroshima.jp\",\n \"hokkaido.jp\",\n \"hyogo.jp\",\n \"ibaraki.jp\",\n \"ishikawa.jp\",\n \"iwate.jp\",\n \"kagawa.jp\",\n \"kagoshima.jp\",\n \"kanagawa.jp\",\n \"kochi.jp\",\n \"kumamoto.jp\",\n \"kyoto.jp\",\n \"mie.jp\",\n \"miyagi.jp\",\n \"miyazaki.jp\",\n \"nagano.jp\",\n \"nagasaki.jp\",\n \"nara.jp\",\n \"niigata.jp\",\n \"oita.jp\",\n \"okayama.jp\",\n \"okinawa.jp\",\n \"osaka.jp\",\n \"saga.jp\",\n \"saitama.jp\",\n \"shiga.jp\",\n \"shimane.jp\",\n \"shizuoka.jp\",\n \"tochigi.jp\",\n \"tokushima.jp\",\n \"tokyo.jp\",\n \"tottori.jp\",\n \"toyama.jp\",\n \"wakayama.jp\",\n \"yamagata.jp\",\n \"yamaguchi.jp\",\n \"yamanashi.jp\",\n \"\\u6803\\u6728.jp\",\n \"\\u611B\\u77E5.jp\",\n \"\\u611B\\u5A9B.jp\",\n \"\\u5175\\u5EAB.jp\",\n \"\\u718A\\u672C.jp\",\n \"\\u8328\\u57CE.jp\",\n \"\\u5317\\u6D77\\u9053.jp\",\n \"\\u5343\\u8449.jp\",\n \"\\u548C\\u6B4C\\u5C71.jp\",\n \"\\u9577\\u5D0E.jp\",\n \"\\u9577\\u91CE.jp\",\n \"\\u65B0\\u6F5F.jp\",\n \"\\u9752\\u68EE.jp\",\n \"\\u9759\\u5CA1.jp\",\n \"\\u6771\\u4EAC.jp\",\n \"\\u77F3\\u5DDD.jp\",\n \"\\u57FC\\u7389.jp\",\n \"\\u4E09\\u91CD.jp\",\n \"\\u4EAC\\u90FD.jp\",\n \"\\u4F50\\u8CC0.jp\",\n \"\\u5927\\u5206.jp\",\n \"\\u5927\\u962A.jp\",\n \"\\u5948\\u826F.jp\",\n \"\\u5BAE\\u57CE.jp\",\n \"\\u5BAE\\u5D0E.jp\",\n \"\\u5BCC\\u5C71.jp\",\n \"\\u5C71\\u53E3.jp\",\n \"\\u5C71\\u5F62.jp\",\n \"\\u5C71\\u68A8.jp\",\n \"\\u5CA9\\u624B.jp\",\n \"\\u5C90\\u961C.jp\",\n \"\\u5CA1\\u5C71.jp\",\n \"\\u5CF6\\u6839.jp\",\n \"\\u5E83\\u5CF6.jp\",\n \"\\u5FB3\\u5CF6.jp\",\n \"\\u6C96\\u7E04.jp\",\n \"\\u6ECB\\u8CC0.jp\",\n \"\\u795E\\u5948\\u5DDD.jp\",\n \"\\u798F\\u4E95.jp\",\n \"\\u798F\\u5CA1.jp\",\n \"\\u798F\\u5CF6.jp\",\n \"\\u79CB\\u7530.jp\",\n \"\\u7FA4\\u99AC.jp\",\n \"\\u9999\\u5DDD.jp\",\n \"\\u9AD8\\u77E5.jp\",\n \"\\u9CE5\\u53D6.jp\",\n \"\\u9E7F\\u5150\\u5CF6.jp\",\n \"*.kawasaki.jp\",\n \"*.kitakyushu.jp\",\n \"*.kobe.jp\",\n \"*.nagoya.jp\",\n \"*.sapporo.jp\",\n \"*.sendai.jp\",\n \"*.yokohama.jp\",\n \"!city.kawasaki.jp\",\n \"!city.kitakyushu.jp\",\n \"!city.kobe.jp\",\n \"!city.nagoya.jp\",\n \"!city.sapporo.jp\",\n \"!city.sendai.jp\",\n \"!city.yokohama.jp\",\n \"aisai.aichi.jp\",\n \"ama.aichi.jp\",\n \"anjo.aichi.jp\",\n \"asuke.aichi.jp\",\n \"chiryu.aichi.jp\",\n \"chita.aichi.jp\",\n \"fuso.aichi.jp\",\n \"gamagori.aichi.jp\",\n \"handa.aichi.jp\",\n \"hazu.aichi.jp\",\n \"hekinan.aichi.jp\",\n \"higashiura.aichi.jp\",\n \"ichinomiya.aichi.jp\",\n \"inazawa.aichi.jp\",\n \"inuyama.aichi.jp\",\n \"isshiki.aichi.jp\",\n \"iwakura.aichi.jp\",\n \"kanie.aichi.jp\",\n \"kariya.aichi.jp\",\n \"kasugai.aichi.jp\",\n \"kira.aichi.jp\",\n \"kiyosu.aichi.jp\",\n \"komaki.aichi.jp\",\n \"konan.aichi.jp\",\n \"kota.aichi.jp\",\n \"mihama.aichi.jp\",\n \"miyoshi.aichi.jp\",\n \"nishio.aichi.jp\",\n \"nisshin.aichi.jp\",\n \"obu.aichi.jp\",\n \"oguchi.aichi.jp\",\n \"oharu.aichi.jp\",\n \"okazaki.aichi.jp\",\n \"owariasahi.aichi.jp\",\n \"seto.aichi.jp\",\n \"shikatsu.aichi.jp\",\n \"shinshiro.aichi.jp\",\n \"shitara.aichi.jp\",\n \"tahara.aichi.jp\",\n \"takahama.aichi.jp\",\n \"tobishima.aichi.jp\",\n \"toei.aichi.jp\",\n \"togo.aichi.jp\",\n \"tokai.aichi.jp\",\n \"tokoname.aichi.jp\",\n \"toyoake.aichi.jp\",\n \"toyohashi.aichi.jp\",\n \"toyokawa.aichi.jp\",\n \"toyone.aichi.jp\",\n \"toyota.aichi.jp\",\n \"tsushima.aichi.jp\",\n \"yatomi.aichi.jp\",\n \"akita.akita.jp\",\n \"daisen.akita.jp\",\n \"fujisato.akita.jp\",\n \"gojome.akita.jp\",\n \"hachirogata.akita.jp\",\n \"happou.akita.jp\",\n \"higashinaruse.akita.jp\",\n \"honjo.akita.jp\",\n \"honjyo.akita.jp\",\n \"ikawa.akita.jp\",\n \"kamikoani.akita.jp\",\n \"kamioka.akita.jp\",\n \"katagami.akita.jp\",\n \"kazuno.akita.jp\",\n \"kitaakita.akita.jp\",\n \"kosaka.akita.jp\",\n \"kyowa.akita.jp\",\n \"misato.akita.jp\",\n \"mitane.akita.jp\",\n \"moriyoshi.akita.jp\",\n \"nikaho.akita.jp\",\n \"noshiro.akita.jp\",\n \"odate.akita.jp\",\n \"oga.akita.jp\",\n \"ogata.akita.jp\",\n \"semboku.akita.jp\",\n \"yokote.akita.jp\",\n \"yurihonjo.akita.jp\",\n \"aomori.aomori.jp\",\n \"gonohe.aomori.jp\",\n \"hachinohe.aomori.jp\",\n \"hashikami.aomori.jp\",\n \"hiranai.aomori.jp\",\n \"hirosaki.aomori.jp\",\n \"itayanagi.aomori.jp\",\n \"kuroishi.aomori.jp\",\n \"misawa.aomori.jp\",\n \"mutsu.aomori.jp\",\n \"nakadomari.aomori.jp\",\n \"noheji.aomori.jp\",\n \"oirase.aomori.jp\",\n \"owani.aomori.jp\",\n \"rokunohe.aomori.jp\",\n \"sannohe.aomori.jp\",\n \"shichinohe.aomori.jp\",\n \"shingo.aomori.jp\",\n \"takko.aomori.jp\",\n \"towada.aomori.jp\",\n \"tsugaru.aomori.jp\",\n \"tsuruta.aomori.jp\",\n \"abiko.chiba.jp\",\n \"asahi.chiba.jp\",\n \"chonan.chiba.jp\",\n \"chosei.chiba.jp\",\n \"choshi.chiba.jp\",\n \"chuo.chiba.jp\",\n \"funabashi.chiba.jp\",\n \"futtsu.chiba.jp\",\n \"hanamigawa.chiba.jp\",\n \"ichihara.chiba.jp\",\n \"ichikawa.chiba.jp\",\n \"ichinomiya.chiba.jp\",\n \"inzai.chiba.jp\",\n \"isumi.chiba.jp\",\n \"kamagaya.chiba.jp\",\n \"kamogawa.chiba.jp\",\n \"kashiwa.chiba.jp\",\n \"katori.chiba.jp\",\n \"katsuura.chiba.jp\",\n \"kimitsu.chiba.jp\",\n \"kisarazu.chiba.jp\",\n \"kozaki.chiba.jp\",\n \"kujukuri.chiba.jp\",\n \"kyonan.chiba.jp\",\n \"matsudo.chiba.jp\",\n \"midori.chiba.jp\",\n \"mihama.chiba.jp\",\n \"minamiboso.chiba.jp\",\n \"mobara.chiba.jp\",\n \"mutsuzawa.chiba.jp\",\n \"nagara.chiba.jp\",\n \"nagareyama.chiba.jp\",\n \"narashino.chiba.jp\",\n \"narita.chiba.jp\",\n \"noda.chiba.jp\",\n \"oamishirasato.chiba.jp\",\n \"omigawa.chiba.jp\",\n \"onjuku.chiba.jp\",\n \"otaki.chiba.jp\",\n \"sakae.chiba.jp\",\n \"sakura.chiba.jp\",\n \"shimofusa.chiba.jp\",\n \"shirako.chiba.jp\",\n \"shiroi.chiba.jp\",\n \"shisui.chiba.jp\",\n \"sodegaura.chiba.jp\",\n \"sosa.chiba.jp\",\n \"tako.chiba.jp\",\n \"tateyama.chiba.jp\",\n \"togane.chiba.jp\",\n \"tohnosho.chiba.jp\",\n \"tomisato.chiba.jp\",\n \"urayasu.chiba.jp\",\n \"yachimata.chiba.jp\",\n \"yachiyo.chiba.jp\",\n \"yokaichiba.chiba.jp\",\n \"yokoshibahikari.chiba.jp\",\n \"yotsukaido.chiba.jp\",\n \"ainan.ehime.jp\",\n \"honai.ehime.jp\",\n \"ikata.ehime.jp\",\n \"imabari.ehime.jp\",\n \"iyo.ehime.jp\",\n \"kamijima.ehime.jp\",\n \"kihoku.ehime.jp\",\n \"kumakogen.ehime.jp\",\n \"masaki.ehime.jp\",\n \"matsuno.ehime.jp\",\n \"matsuyama.ehime.jp\",\n \"namikata.ehime.jp\",\n \"niihama.ehime.jp\",\n \"ozu.ehime.jp\",\n \"saijo.ehime.jp\",\n \"seiyo.ehime.jp\",\n \"shikokuchuo.ehime.jp\",\n \"tobe.ehime.jp\",\n \"toon.ehime.jp\",\n \"uchiko.ehime.jp\",\n \"uwajima.ehime.jp\",\n \"yawatahama.ehime.jp\",\n \"echizen.fukui.jp\",\n \"eiheiji.fukui.jp\",\n \"fukui.fukui.jp\",\n \"ikeda.fukui.jp\",\n \"katsuyama.fukui.jp\",\n \"mihama.fukui.jp\",\n \"minamiechizen.fukui.jp\",\n \"obama.fukui.jp\",\n \"ohi.fukui.jp\",\n \"ono.fukui.jp\",\n \"sabae.fukui.jp\",\n \"sakai.fukui.jp\",\n \"takahama.fukui.jp\",\n \"tsuruga.fukui.jp\",\n \"wakasa.fukui.jp\",\n \"ashiya.fukuoka.jp\",\n \"buzen.fukuoka.jp\",\n \"chikugo.fukuoka.jp\",\n \"chikuho.fukuoka.jp\",\n \"chikujo.fukuoka.jp\",\n \"chikushino.fukuoka.jp\",\n \"chikuzen.fukuoka.jp\",\n \"chuo.fukuoka.jp\",\n \"dazaifu.fukuoka.jp\",\n \"fukuchi.fukuoka.jp\",\n \"hakata.fukuoka.jp\",\n \"higashi.fukuoka.jp\",\n \"hirokawa.fukuoka.jp\",\n \"hisayama.fukuoka.jp\",\n \"iizuka.fukuoka.jp\",\n \"inatsuki.fukuoka.jp\",\n \"kaho.fukuoka.jp\",\n \"kasuga.fukuoka.jp\",\n \"kasuya.fukuoka.jp\",\n \"kawara.fukuoka.jp\",\n \"keisen.fukuoka.jp\",\n \"koga.fukuoka.jp\",\n \"kurate.fukuoka.jp\",\n \"kurogi.fukuoka.jp\",\n \"kurume.fukuoka.jp\",\n \"minami.fukuoka.jp\",\n \"miyako.fukuoka.jp\",\n \"miyama.fukuoka.jp\",\n \"miyawaka.fukuoka.jp\",\n \"mizumaki.fukuoka.jp\",\n \"munakata.fukuoka.jp\",\n \"nakagawa.fukuoka.jp\",\n \"nakama.fukuoka.jp\",\n \"nishi.fukuoka.jp\",\n \"nogata.fukuoka.jp\",\n \"ogori.fukuoka.jp\",\n \"okagaki.fukuoka.jp\",\n \"okawa.fukuoka.jp\",\n \"oki.fukuoka.jp\",\n \"omuta.fukuoka.jp\",\n \"onga.fukuoka.jp\",\n \"onojo.fukuoka.jp\",\n \"oto.fukuoka.jp\",\n \"saigawa.fukuoka.jp\",\n \"sasaguri.fukuoka.jp\",\n \"shingu.fukuoka.jp\",\n \"shinyoshitomi.fukuoka.jp\",\n \"shonai.fukuoka.jp\",\n \"soeda.fukuoka.jp\",\n \"sue.fukuoka.jp\",\n \"tachiarai.fukuoka.jp\",\n \"tagawa.fukuoka.jp\",\n \"takata.fukuoka.jp\",\n \"toho.fukuoka.jp\",\n \"toyotsu.fukuoka.jp\",\n \"tsuiki.fukuoka.jp\",\n \"ukiha.fukuoka.jp\",\n \"umi.fukuoka.jp\",\n \"usui.fukuoka.jp\",\n \"yamada.fukuoka.jp\",\n \"yame.fukuoka.jp\",\n \"yanagawa.fukuoka.jp\",\n \"yukuhashi.fukuoka.jp\",\n \"aizubange.fukushima.jp\",\n \"aizumisato.fukushima.jp\",\n \"aizuwakamatsu.fukushima.jp\",\n \"asakawa.fukushima.jp\",\n \"bandai.fukushima.jp\",\n \"date.fukushima.jp\",\n \"fukushima.fukushima.jp\",\n \"furudono.fukushima.jp\",\n \"futaba.fukushima.jp\",\n \"hanawa.fukushima.jp\",\n \"higashi.fukushima.jp\",\n \"hirata.fukushima.jp\",\n \"hirono.fukushima.jp\",\n \"iitate.fukushima.jp\",\n \"inawashiro.fukushima.jp\",\n \"ishikawa.fukushima.jp\",\n \"iwaki.fukushima.jp\",\n \"izumizaki.fukushima.jp\",\n \"kagamiishi.fukushima.jp\",\n \"kaneyama.fukushima.jp\",\n \"kawamata.fukushima.jp\",\n \"kitakata.fukushima.jp\",\n \"kitashiobara.fukushima.jp\",\n \"koori.fukushima.jp\",\n \"koriyama.fukushima.jp\",\n \"kunimi.fukushima.jp\",\n \"miharu.fukushima.jp\",\n \"mishima.fukushima.jp\",\n \"namie.fukushima.jp\",\n \"nango.fukushima.jp\",\n \"nishiaizu.fukushima.jp\",\n \"nishigo.fukushima.jp\",\n \"okuma.fukushima.jp\",\n \"omotego.fukushima.jp\",\n \"ono.fukushima.jp\",\n \"otama.fukushima.jp\",\n \"samegawa.fukushima.jp\",\n \"shimogo.fukushima.jp\",\n \"shirakawa.fukushima.jp\",\n \"showa.fukushima.jp\",\n \"soma.fukushima.jp\",\n \"sukagawa.fukushima.jp\",\n \"taishin.fukushima.jp\",\n \"tamakawa.fukushima.jp\",\n \"tanagura.fukushima.jp\",\n \"tenei.fukushima.jp\",\n \"yabuki.fukushima.jp\",\n \"yamato.fukushima.jp\",\n \"yamatsuri.fukushima.jp\",\n \"yanaizu.fukushima.jp\",\n \"yugawa.fukushima.jp\",\n \"anpachi.gifu.jp\",\n \"ena.gifu.jp\",\n \"gifu.gifu.jp\",\n \"ginan.gifu.jp\",\n \"godo.gifu.jp\",\n \"gujo.gifu.jp\",\n \"hashima.gifu.jp\",\n \"hichiso.gifu.jp\",\n \"hida.gifu.jp\",\n \"higashishirakawa.gifu.jp\",\n \"ibigawa.gifu.jp\",\n \"ikeda.gifu.jp\",\n \"kakamigahara.gifu.jp\",\n \"kani.gifu.jp\",\n \"kasahara.gifu.jp\",\n \"kasamatsu.gifu.jp\",\n \"kawaue.gifu.jp\",\n \"kitagata.gifu.jp\",\n \"mino.gifu.jp\",\n \"minokamo.gifu.jp\",\n \"mitake.gifu.jp\",\n \"mizunami.gifu.jp\",\n \"motosu.gifu.jp\",\n \"nakatsugawa.gifu.jp\",\n \"ogaki.gifu.jp\",\n \"sakahogi.gifu.jp\",\n \"seki.gifu.jp\",\n \"sekigahara.gifu.jp\",\n \"shirakawa.gifu.jp\",\n \"tajimi.gifu.jp\",\n \"takayama.gifu.jp\",\n \"tarui.gifu.jp\",\n \"toki.gifu.jp\",\n \"tomika.gifu.jp\",\n \"wanouchi.gifu.jp\",\n \"yamagata.gifu.jp\",\n \"yaotsu.gifu.jp\",\n \"yoro.gifu.jp\",\n \"annaka.gunma.jp\",\n \"chiyoda.gunma.jp\",\n \"fujioka.gunma.jp\",\n \"higashiagatsuma.gunma.jp\",\n \"isesaki.gunma.jp\",\n \"itakura.gunma.jp\",\n \"kanna.gunma.jp\",\n \"kanra.gunma.jp\",\n \"katashina.gunma.jp\",\n \"kawaba.gunma.jp\",\n \"kiryu.gunma.jp\",\n \"kusatsu.gunma.jp\",\n \"maebashi.gunma.jp\",\n \"meiwa.gunma.jp\",\n \"midori.gunma.jp\",\n \"minakami.gunma.jp\",\n \"naganohara.gunma.jp\",\n \"nakanojo.gunma.jp\",\n \"nanmoku.gunma.jp\",\n \"numata.gunma.jp\",\n \"oizumi.gunma.jp\",\n \"ora.gunma.jp\",\n \"ota.gunma.jp\",\n \"shibukawa.gunma.jp\",\n \"shimonita.gunma.jp\",\n \"shinto.gunma.jp\",\n \"showa.gunma.jp\",\n \"takasaki.gunma.jp\",\n \"takayama.gunma.jp\",\n \"tamamura.gunma.jp\",\n \"tatebayashi.gunma.jp\",\n \"tomioka.gunma.jp\",\n \"tsukiyono.gunma.jp\",\n \"tsumagoi.gunma.jp\",\n \"ueno.gunma.jp\",\n \"yoshioka.gunma.jp\",\n \"asaminami.hiroshima.jp\",\n \"daiwa.hiroshima.jp\",\n \"etajima.hiroshima.jp\",\n \"fuchu.hiroshima.jp\",\n \"fukuyama.hiroshima.jp\",\n \"hatsukaichi.hiroshima.jp\",\n \"higashihiroshima.hiroshima.jp\",\n \"hongo.hiroshima.jp\",\n \"jinsekikogen.hiroshima.jp\",\n \"kaita.hiroshima.jp\",\n \"kui.hiroshima.jp\",\n \"kumano.hiroshima.jp\",\n \"kure.hiroshima.jp\",\n \"mihara.hiroshima.jp\",\n \"miyoshi.hiroshima.jp\",\n \"naka.hiroshima.jp\",\n \"onomichi.hiroshima.jp\",\n \"osakikamijima.hiroshima.jp\",\n \"otake.hiroshima.jp\",\n \"saka.hiroshima.jp\",\n \"sera.hiroshima.jp\",\n \"seranishi.hiroshima.jp\",\n \"shinichi.hiroshima.jp\",\n \"shobara.hiroshima.jp\",\n \"takehara.hiroshima.jp\",\n \"abashiri.hokkaido.jp\",\n \"abira.hokkaido.jp\",\n \"aibetsu.hokkaido.jp\",\n \"akabira.hokkaido.jp\",\n \"akkeshi.hokkaido.jp\",\n \"asahikawa.hokkaido.jp\",\n \"ashibetsu.hokkaido.jp\",\n \"ashoro.hokkaido.jp\",\n \"assabu.hokkaido.jp\",\n \"atsuma.hokkaido.jp\",\n \"bibai.hokkaido.jp\",\n \"biei.hokkaido.jp\",\n \"bifuka.hokkaido.jp\",\n \"bihoro.hokkaido.jp\",\n \"biratori.hokkaido.jp\",\n \"chippubetsu.hokkaido.jp\",\n \"chitose.hokkaido.jp\",\n \"date.hokkaido.jp\",\n \"ebetsu.hokkaido.jp\",\n \"embetsu.hokkaido.jp\",\n \"eniwa.hokkaido.jp\",\n \"erimo.hokkaido.jp\",\n \"esan.hokkaido.jp\",\n \"esashi.hokkaido.jp\",\n \"fukagawa.hokkaido.jp\",\n \"fukushima.hokkaido.jp\",\n \"furano.hokkaido.jp\",\n \"furubira.hokkaido.jp\",\n \"haboro.hokkaido.jp\",\n \"hakodate.hokkaido.jp\",\n \"hamatonbetsu.hokkaido.jp\",\n \"hidaka.hokkaido.jp\",\n \"higashikagura.hokkaido.jp\",\n \"higashikawa.hokkaido.jp\",\n \"hiroo.hokkaido.jp\",\n \"hokuryu.hokkaido.jp\",\n \"hokuto.hokkaido.jp\",\n \"honbetsu.hokkaido.jp\",\n \"horokanai.hokkaido.jp\",\n \"horonobe.hokkaido.jp\",\n \"ikeda.hokkaido.jp\",\n \"imakane.hokkaido.jp\",\n \"ishikari.hokkaido.jp\",\n \"iwamizawa.hokkaido.jp\",\n \"iwanai.hokkaido.jp\",\n \"kamifurano.hokkaido.jp\",\n \"kamikawa.hokkaido.jp\",\n \"kamishihoro.hokkaido.jp\",\n \"kamisunagawa.hokkaido.jp\",\n \"kamoenai.hokkaido.jp\",\n \"kayabe.hokkaido.jp\",\n \"kembuchi.hokkaido.jp\",\n \"kikonai.hokkaido.jp\",\n \"kimobetsu.hokkaido.jp\",\n \"kitahiroshima.hokkaido.jp\",\n \"kitami.hokkaido.jp\",\n \"kiyosato.hokkaido.jp\",\n \"koshimizu.hokkaido.jp\",\n \"kunneppu.hokkaido.jp\",\n \"kuriyama.hokkaido.jp\",\n \"kuromatsunai.hokkaido.jp\",\n \"kushiro.hokkaido.jp\",\n \"kutchan.hokkaido.jp\",\n \"kyowa.hokkaido.jp\",\n \"mashike.hokkaido.jp\",\n \"matsumae.hokkaido.jp\",\n \"mikasa.hokkaido.jp\",\n \"minamifurano.hokkaido.jp\",\n \"mombetsu.hokkaido.jp\",\n \"moseushi.hokkaido.jp\",\n \"mukawa.hokkaido.jp\",\n \"muroran.hokkaido.jp\",\n \"naie.hokkaido.jp\",\n \"nakagawa.hokkaido.jp\",\n \"nakasatsunai.hokkaido.jp\",\n \"nakatombetsu.hokkaido.jp\",\n \"nanae.hokkaido.jp\",\n \"nanporo.hokkaido.jp\",\n \"nayoro.hokkaido.jp\",\n \"nemuro.hokkaido.jp\",\n \"niikappu.hokkaido.jp\",\n \"niki.hokkaido.jp\",\n \"nishiokoppe.hokkaido.jp\",\n \"noboribetsu.hokkaido.jp\",\n \"numata.hokkaido.jp\",\n \"obihiro.hokkaido.jp\",\n \"obira.hokkaido.jp\",\n \"oketo.hokkaido.jp\",\n \"okoppe.hokkaido.jp\",\n \"otaru.hokkaido.jp\",\n \"otobe.hokkaido.jp\",\n \"otofuke.hokkaido.jp\",\n \"otoineppu.hokkaido.jp\",\n \"oumu.hokkaido.jp\",\n \"ozora.hokkaido.jp\",\n \"pippu.hokkaido.jp\",\n \"rankoshi.hokkaido.jp\",\n \"rebun.hokkaido.jp\",\n \"rikubetsu.hokkaido.jp\",\n \"rishiri.hokkaido.jp\",\n \"rishirifuji.hokkaido.jp\",\n \"saroma.hokkaido.jp\",\n \"sarufutsu.hokkaido.jp\",\n \"shakotan.hokkaido.jp\",\n \"shari.hokkaido.jp\",\n \"shibecha.hokkaido.jp\",\n \"shibetsu.hokkaido.jp\",\n \"shikabe.hokkaido.jp\",\n \"shikaoi.hokkaido.jp\",\n \"shimamaki.hokkaido.jp\",\n \"shimizu.hokkaido.jp\",\n \"shimokawa.hokkaido.jp\",\n \"shinshinotsu.hokkaido.jp\",\n \"shintoku.hokkaido.jp\",\n \"shiranuka.hokkaido.jp\",\n \"shiraoi.hokkaido.jp\",\n \"shiriuchi.hokkaido.jp\",\n \"sobetsu.hokkaido.jp\",\n \"sunagawa.hokkaido.jp\",\n \"taiki.hokkaido.jp\",\n \"takasu.hokkaido.jp\",\n \"takikawa.hokkaido.jp\",\n \"takinoue.hokkaido.jp\",\n \"teshikaga.hokkaido.jp\",\n \"tobetsu.hokkaido.jp\",\n \"tohma.hokkaido.jp\",\n \"tomakomai.hokkaido.jp\",\n \"tomari.hokkaido.jp\",\n \"toya.hokkaido.jp\",\n \"toyako.hokkaido.jp\",\n \"toyotomi.hokkaido.jp\",\n \"toyoura.hokkaido.jp\",\n \"tsubetsu.hokkaido.jp\",\n \"tsukigata.hokkaido.jp\",\n \"urakawa.hokkaido.jp\",\n \"urausu.hokkaido.jp\",\n \"uryu.hokkaido.jp\",\n \"utashinai.hokkaido.jp\",\n \"wakkanai.hokkaido.jp\",\n \"wassamu.hokkaido.jp\",\n \"yakumo.hokkaido.jp\",\n \"yoichi.hokkaido.jp\",\n \"aioi.hyogo.jp\",\n \"akashi.hyogo.jp\",\n \"ako.hyogo.jp\",\n \"amagasaki.hyogo.jp\",\n \"aogaki.hyogo.jp\",\n \"asago.hyogo.jp\",\n \"ashiya.hyogo.jp\",\n \"awaji.hyogo.jp\",\n \"fukusaki.hyogo.jp\",\n \"goshiki.hyogo.jp\",\n \"harima.hyogo.jp\",\n \"himeji.hyogo.jp\",\n \"ichikawa.hyogo.jp\",\n \"inagawa.hyogo.jp\",\n \"itami.hyogo.jp\",\n \"kakogawa.hyogo.jp\",\n \"kamigori.hyogo.jp\",\n \"kamikawa.hyogo.jp\",\n \"kasai.hyogo.jp\",\n \"kasuga.hyogo.jp\",\n \"kawanishi.hyogo.jp\",\n \"miki.hyogo.jp\",\n \"minamiawaji.hyogo.jp\",\n \"nishinomiya.hyogo.jp\",\n \"nishiwaki.hyogo.jp\",\n \"ono.hyogo.jp\",\n \"sanda.hyogo.jp\",\n \"sannan.hyogo.jp\",\n \"sasayama.hyogo.jp\",\n \"sayo.hyogo.jp\",\n \"shingu.hyogo.jp\",\n \"shinonsen.hyogo.jp\",\n \"shiso.hyogo.jp\",\n \"sumoto.hyogo.jp\",\n \"taishi.hyogo.jp\",\n \"taka.hyogo.jp\",\n \"takarazuka.hyogo.jp\",\n \"takasago.hyogo.jp\",\n \"takino.hyogo.jp\",\n \"tamba.hyogo.jp\",\n \"tatsuno.hyogo.jp\",\n \"toyooka.hyogo.jp\",\n \"yabu.hyogo.jp\",\n \"yashiro.hyogo.jp\",\n \"yoka.hyogo.jp\",\n \"yokawa.hyogo.jp\",\n \"ami.ibaraki.jp\",\n \"asahi.ibaraki.jp\",\n \"bando.ibaraki.jp\",\n \"chikusei.ibaraki.jp\",\n \"daigo.ibaraki.jp\",\n \"fujishiro.ibaraki.jp\",\n \"hitachi.ibaraki.jp\",\n \"hitachinaka.ibaraki.jp\",\n \"hitachiomiya.ibaraki.jp\",\n \"hitachiota.ibaraki.jp\",\n \"ibaraki.ibaraki.jp\",\n \"ina.ibaraki.jp\",\n \"inashiki.ibaraki.jp\",\n \"itako.ibaraki.jp\",\n \"iwama.ibaraki.jp\",\n \"joso.ibaraki.jp\",\n \"kamisu.ibaraki.jp\",\n \"kasama.ibaraki.jp\",\n \"kashima.ibaraki.jp\",\n \"kasumigaura.ibaraki.jp\",\n \"koga.ibaraki.jp\",\n \"miho.ibaraki.jp\",\n \"mito.ibaraki.jp\",\n \"moriya.ibaraki.jp\",\n \"naka.ibaraki.jp\",\n \"namegata.ibaraki.jp\",\n \"oarai.ibaraki.jp\",\n \"ogawa.ibaraki.jp\",\n \"omitama.ibaraki.jp\",\n \"ryugasaki.ibaraki.jp\",\n \"sakai.ibaraki.jp\",\n \"sakuragawa.ibaraki.jp\",\n \"shimodate.ibaraki.jp\",\n \"shimotsuma.ibaraki.jp\",\n \"shirosato.ibaraki.jp\",\n \"sowa.ibaraki.jp\",\n \"suifu.ibaraki.jp\",\n \"takahagi.ibaraki.jp\",\n \"tamatsukuri.ibaraki.jp\",\n \"tokai.ibaraki.jp\",\n \"tomobe.ibaraki.jp\",\n \"tone.ibaraki.jp\",\n \"toride.ibaraki.jp\",\n \"tsuchiura.ibaraki.jp\",\n \"tsukuba.ibaraki.jp\",\n \"uchihara.ibaraki.jp\",\n \"ushiku.ibaraki.jp\",\n \"yachiyo.ibaraki.jp\",\n \"yamagata.ibaraki.jp\",\n \"yawara.ibaraki.jp\",\n \"yuki.ibaraki.jp\",\n \"anamizu.ishikawa.jp\",\n \"hakui.ishikawa.jp\",\n \"hakusan.ishikawa.jp\",\n \"kaga.ishikawa.jp\",\n \"kahoku.ishikawa.jp\",\n \"kanazawa.ishikawa.jp\",\n \"kawakita.ishikawa.jp\",\n \"komatsu.ishikawa.jp\",\n \"nakanoto.ishikawa.jp\",\n \"nanao.ishikawa.jp\",\n \"nomi.ishikawa.jp\",\n \"nonoichi.ishikawa.jp\",\n \"noto.ishikawa.jp\",\n \"shika.ishikawa.jp\",\n \"suzu.ishikawa.jp\",\n \"tsubata.ishikawa.jp\",\n \"tsurugi.ishikawa.jp\",\n \"uchinada.ishikawa.jp\",\n \"wajima.ishikawa.jp\",\n \"fudai.iwate.jp\",\n \"fujisawa.iwate.jp\",\n \"hanamaki.iwate.jp\",\n \"hiraizumi.iwate.jp\",\n \"hirono.iwate.jp\",\n \"ichinohe.iwate.jp\",\n \"ichinoseki.iwate.jp\",\n \"iwaizumi.iwate.jp\",\n \"iwate.iwate.jp\",\n \"joboji.iwate.jp\",\n \"kamaishi.iwate.jp\",\n \"kanegasaki.iwate.jp\",\n \"karumai.iwate.jp\",\n \"kawai.iwate.jp\",\n \"kitakami.iwate.jp\",\n \"kuji.iwate.jp\",\n \"kunohe.iwate.jp\",\n \"kuzumaki.iwate.jp\",\n \"miyako.iwate.jp\",\n \"mizusawa.iwate.jp\",\n \"morioka.iwate.jp\",\n \"ninohe.iwate.jp\",\n \"noda.iwate.jp\",\n \"ofunato.iwate.jp\",\n \"oshu.iwate.jp\",\n \"otsuchi.iwate.jp\",\n \"rikuzentakata.iwate.jp\",\n \"shiwa.iwate.jp\",\n \"shizukuishi.iwate.jp\",\n \"sumita.iwate.jp\",\n \"tanohata.iwate.jp\",\n \"tono.iwate.jp\",\n \"yahaba.iwate.jp\",\n \"yamada.iwate.jp\",\n \"ayagawa.kagawa.jp\",\n \"higashikagawa.kagawa.jp\",\n \"kanonji.kagawa.jp\",\n \"kotohira.kagawa.jp\",\n \"manno.kagawa.jp\",\n \"marugame.kagawa.jp\",\n \"mitoyo.kagawa.jp\",\n \"naoshima.kagawa.jp\",\n \"sanuki.kagawa.jp\",\n \"tadotsu.kagawa.jp\",\n \"takamatsu.kagawa.jp\",\n \"tonosho.kagawa.jp\",\n \"uchinomi.kagawa.jp\",\n \"utazu.kagawa.jp\",\n \"zentsuji.kagawa.jp\",\n \"akune.kagoshima.jp\",\n \"amami.kagoshima.jp\",\n \"hioki.kagoshima.jp\",\n \"isa.kagoshima.jp\",\n \"isen.kagoshima.jp\",\n \"izumi.kagoshima.jp\",\n \"kagoshima.kagoshima.jp\",\n \"kanoya.kagoshima.jp\",\n \"kawanabe.kagoshima.jp\",\n \"kinko.kagoshima.jp\",\n \"kouyama.kagoshima.jp\",\n \"makurazaki.kagoshima.jp\",\n \"matsumoto.kagoshima.jp\",\n \"minamitane.kagoshima.jp\",\n \"nakatane.kagoshima.jp\",\n \"nishinoomote.kagoshima.jp\",\n \"satsumasendai.kagoshima.jp\",\n \"soo.kagoshima.jp\",\n \"tarumizu.kagoshima.jp\",\n \"yusui.kagoshima.jp\",\n \"aikawa.kanagawa.jp\",\n \"atsugi.kanagawa.jp\",\n \"ayase.kanagawa.jp\",\n \"chigasaki.kanagawa.jp\",\n \"ebina.kanagawa.jp\",\n \"fujisawa.kanagawa.jp\",\n \"hadano.kanagawa.jp\",\n \"hakone.kanagawa.jp\",\n \"hiratsuka.kanagawa.jp\",\n \"isehara.kanagawa.jp\",\n \"kaisei.kanagawa.jp\",\n \"kamakura.kanagawa.jp\",\n \"kiyokawa.kanagawa.jp\",\n \"matsuda.kanagawa.jp\",\n \"minamiashigara.kanagawa.jp\",\n \"miura.kanagawa.jp\",\n \"nakai.kanagawa.jp\",\n \"ninomiya.kanagawa.jp\",\n \"odawara.kanagawa.jp\",\n \"oi.kanagawa.jp\",\n \"oiso.kanagawa.jp\",\n \"sagamihara.kanagawa.jp\",\n \"samukawa.kanagawa.jp\",\n \"tsukui.kanagawa.jp\",\n \"yamakita.kanagawa.jp\",\n \"yamato.kanagawa.jp\",\n \"yokosuka.kanagawa.jp\",\n \"yugawara.kanagawa.jp\",\n \"zama.kanagawa.jp\",\n \"zushi.kanagawa.jp\",\n \"aki.kochi.jp\",\n \"geisei.kochi.jp\",\n \"hidaka.kochi.jp\",\n \"higashitsuno.kochi.jp\",\n \"ino.kochi.jp\",\n \"kagami.kochi.jp\",\n \"kami.kochi.jp\",\n \"kitagawa.kochi.jp\",\n \"kochi.kochi.jp\",\n \"mihara.kochi.jp\",\n \"motoyama.kochi.jp\",\n \"muroto.kochi.jp\",\n \"nahari.kochi.jp\",\n \"nakamura.kochi.jp\",\n \"nankoku.kochi.jp\",\n \"nishitosa.kochi.jp\",\n \"niyodogawa.kochi.jp\",\n \"ochi.kochi.jp\",\n \"okawa.kochi.jp\",\n \"otoyo.kochi.jp\",\n \"otsuki.kochi.jp\",\n \"sakawa.kochi.jp\",\n \"sukumo.kochi.jp\",\n \"susaki.kochi.jp\",\n \"tosa.kochi.jp\",\n \"tosashimizu.kochi.jp\",\n \"toyo.kochi.jp\",\n \"tsuno.kochi.jp\",\n \"umaji.kochi.jp\",\n \"yasuda.kochi.jp\",\n \"yusuhara.kochi.jp\",\n \"amakusa.kumamoto.jp\",\n \"arao.kumamoto.jp\",\n \"aso.kumamoto.jp\",\n \"choyo.kumamoto.jp\",\n \"gyokuto.kumamoto.jp\",\n \"kamiamakusa.kumamoto.jp\",\n \"kikuchi.kumamoto.jp\",\n \"kumamoto.kumamoto.jp\",\n \"mashiki.kumamoto.jp\",\n \"mifune.kumamoto.jp\",\n \"minamata.kumamoto.jp\",\n \"minamioguni.kumamoto.jp\",\n \"nagasu.kumamoto.jp\",\n \"nishihara.kumamoto.jp\",\n \"oguni.kumamoto.jp\",\n \"ozu.kumamoto.jp\",\n \"sumoto.kumamoto.jp\",\n \"takamori.kumamoto.jp\",\n \"uki.kumamoto.jp\",\n \"uto.kumamoto.jp\",\n \"yamaga.kumamoto.jp\",\n \"yamato.kumamoto.jp\",\n \"yatsushiro.kumamoto.jp\",\n \"ayabe.kyoto.jp\",\n \"fukuchiyama.kyoto.jp\",\n \"higashiyama.kyoto.jp\",\n \"ide.kyoto.jp\",\n \"ine.kyoto.jp\",\n \"joyo.kyoto.jp\",\n \"kameoka.kyoto.jp\",\n \"kamo.kyoto.jp\",\n \"kita.kyoto.jp\",\n \"kizu.kyoto.jp\",\n \"kumiyama.kyoto.jp\",\n \"kyotamba.kyoto.jp\",\n \"kyotanabe.kyoto.jp\",\n \"kyotango.kyoto.jp\",\n \"maizuru.kyoto.jp\",\n \"minami.kyoto.jp\",\n \"minamiyamashiro.kyoto.jp\",\n \"miyazu.kyoto.jp\",\n \"muko.kyoto.jp\",\n \"nagaokakyo.kyoto.jp\",\n \"nakagyo.kyoto.jp\",\n \"nantan.kyoto.jp\",\n \"oyamazaki.kyoto.jp\",\n \"sakyo.kyoto.jp\",\n \"seika.kyoto.jp\",\n \"tanabe.kyoto.jp\",\n \"uji.kyoto.jp\",\n \"ujitawara.kyoto.jp\",\n \"wazuka.kyoto.jp\",\n \"yamashina.kyoto.jp\",\n \"yawata.kyoto.jp\",\n \"asahi.mie.jp\",\n \"inabe.mie.jp\",\n \"ise.mie.jp\",\n \"kameyama.mie.jp\",\n \"kawagoe.mie.jp\",\n \"kiho.mie.jp\",\n \"kisosaki.mie.jp\",\n \"kiwa.mie.jp\",\n \"komono.mie.jp\",\n \"kumano.mie.jp\",\n \"kuwana.mie.jp\",\n \"matsusaka.mie.jp\",\n \"meiwa.mie.jp\",\n \"mihama.mie.jp\",\n \"minamiise.mie.jp\",\n \"misugi.mie.jp\",\n \"miyama.mie.jp\",\n \"nabari.mie.jp\",\n \"shima.mie.jp\",\n \"suzuka.mie.jp\",\n \"tado.mie.jp\",\n \"taiki.mie.jp\",\n \"taki.mie.jp\",\n \"tamaki.mie.jp\",\n \"toba.mie.jp\",\n \"tsu.mie.jp\",\n \"udono.mie.jp\",\n \"ureshino.mie.jp\",\n \"watarai.mie.jp\",\n \"yokkaichi.mie.jp\",\n \"furukawa.miyagi.jp\",\n \"higashimatsushima.miyagi.jp\",\n \"ishinomaki.miyagi.jp\",\n \"iwanuma.miyagi.jp\",\n \"kakuda.miyagi.jp\",\n \"kami.miyagi.jp\",\n \"kawasaki.miyagi.jp\",\n \"marumori.miyagi.jp\",\n \"matsushima.miyagi.jp\",\n \"minamisanriku.miyagi.jp\",\n \"misato.miyagi.jp\",\n \"murata.miyagi.jp\",\n \"natori.miyagi.jp\",\n \"ogawara.miyagi.jp\",\n \"ohira.miyagi.jp\",\n \"onagawa.miyagi.jp\",\n \"osaki.miyagi.jp\",\n \"rifu.miyagi.jp\",\n \"semine.miyagi.jp\",\n \"shibata.miyagi.jp\",\n \"shichikashuku.miyagi.jp\",\n \"shikama.miyagi.jp\",\n \"shiogama.miyagi.jp\",\n \"shiroishi.miyagi.jp\",\n \"tagajo.miyagi.jp\",\n \"taiwa.miyagi.jp\",\n \"tome.miyagi.jp\",\n \"tomiya.miyagi.jp\",\n \"wakuya.miyagi.jp\",\n \"watari.miyagi.jp\",\n \"yamamoto.miyagi.jp\",\n \"zao.miyagi.jp\",\n \"aya.miyazaki.jp\",\n \"ebino.miyazaki.jp\",\n \"gokase.miyazaki.jp\",\n \"hyuga.miyazaki.jp\",\n \"kadogawa.miyazaki.jp\",\n \"kawaminami.miyazaki.jp\",\n \"kijo.miyazaki.jp\",\n \"kitagawa.miyazaki.jp\",\n \"kitakata.miyazaki.jp\",\n \"kitaura.miyazaki.jp\",\n \"kobayashi.miyazaki.jp\",\n \"kunitomi.miyazaki.jp\",\n \"kushima.miyazaki.jp\",\n \"mimata.miyazaki.jp\",\n \"miyakonojo.miyazaki.jp\",\n \"miyazaki.miyazaki.jp\",\n \"morotsuka.miyazaki.jp\",\n \"nichinan.miyazaki.jp\",\n \"nishimera.miyazaki.jp\",\n \"nobeoka.miyazaki.jp\",\n \"saito.miyazaki.jp\",\n \"shiiba.miyazaki.jp\",\n \"shintomi.miyazaki.jp\",\n \"takaharu.miyazaki.jp\",\n \"takanabe.miyazaki.jp\",\n \"takazaki.miyazaki.jp\",\n \"tsuno.miyazaki.jp\",\n \"achi.nagano.jp\",\n \"agematsu.nagano.jp\",\n \"anan.nagano.jp\",\n \"aoki.nagano.jp\",\n \"asahi.nagano.jp\",\n \"azumino.nagano.jp\",\n \"chikuhoku.nagano.jp\",\n \"chikuma.nagano.jp\",\n \"chino.nagano.jp\",\n \"fujimi.nagano.jp\",\n \"hakuba.nagano.jp\",\n \"hara.nagano.jp\",\n \"hiraya.nagano.jp\",\n \"iida.nagano.jp\",\n \"iijima.nagano.jp\",\n \"iiyama.nagano.jp\",\n \"iizuna.nagano.jp\",\n \"ikeda.nagano.jp\",\n \"ikusaka.nagano.jp\",\n \"ina.nagano.jp\",\n \"karuizawa.nagano.jp\",\n \"kawakami.nagano.jp\",\n \"kiso.nagano.jp\",\n \"kisofukushima.nagano.jp\",\n \"kitaaiki.nagano.jp\",\n \"komagane.nagano.jp\",\n \"komoro.nagano.jp\",\n \"matsukawa.nagano.jp\",\n \"matsumoto.nagano.jp\",\n \"miasa.nagano.jp\",\n \"minamiaiki.nagano.jp\",\n \"minamimaki.nagano.jp\",\n \"minamiminowa.nagano.jp\",\n \"minowa.nagano.jp\",\n \"miyada.nagano.jp\",\n \"miyota.nagano.jp\",\n \"mochizuki.nagano.jp\",\n \"nagano.nagano.jp\",\n \"nagawa.nagano.jp\",\n \"nagiso.nagano.jp\",\n \"nakagawa.nagano.jp\",\n \"nakano.nagano.jp\",\n \"nozawaonsen.nagano.jp\",\n \"obuse.nagano.jp\",\n \"ogawa.nagano.jp\",\n \"okaya.nagano.jp\",\n \"omachi.nagano.jp\",\n \"omi.nagano.jp\",\n \"ookuwa.nagano.jp\",\n \"ooshika.nagano.jp\",\n \"otaki.nagano.jp\",\n \"otari.nagano.jp\",\n \"sakae.nagano.jp\",\n \"sakaki.nagano.jp\",\n \"saku.nagano.jp\",\n \"sakuho.nagano.jp\",\n \"shimosuwa.nagano.jp\",\n \"shinanomachi.nagano.jp\",\n \"shiojiri.nagano.jp\",\n \"suwa.nagano.jp\",\n \"suzaka.nagano.jp\",\n \"takagi.nagano.jp\",\n \"takamori.nagano.jp\",\n \"takayama.nagano.jp\",\n \"tateshina.nagano.jp\",\n \"tatsuno.nagano.jp\",\n \"togakushi.nagano.jp\",\n \"togura.nagano.jp\",\n \"tomi.nagano.jp\",\n \"ueda.nagano.jp\",\n \"wada.nagano.jp\",\n \"yamagata.nagano.jp\",\n \"yamanouchi.nagano.jp\",\n \"yasaka.nagano.jp\",\n \"yasuoka.nagano.jp\",\n \"chijiwa.nagasaki.jp\",\n \"futsu.nagasaki.jp\",\n \"goto.nagasaki.jp\",\n \"hasami.nagasaki.jp\",\n \"hirado.nagasaki.jp\",\n \"iki.nagasaki.jp\",\n \"isahaya.nagasaki.jp\",\n \"kawatana.nagasaki.jp\",\n \"kuchinotsu.nagasaki.jp\",\n \"matsuura.nagasaki.jp\",\n \"nagasaki.nagasaki.jp\",\n \"obama.nagasaki.jp\",\n \"omura.nagasaki.jp\",\n \"oseto.nagasaki.jp\",\n \"saikai.nagasaki.jp\",\n \"sasebo.nagasaki.jp\",\n \"seihi.nagasaki.jp\",\n \"shimabara.nagasaki.jp\",\n \"shinkamigoto.nagasaki.jp\",\n \"togitsu.nagasaki.jp\",\n \"tsushima.nagasaki.jp\",\n \"unzen.nagasaki.jp\",\n \"ando.nara.jp\",\n \"gose.nara.jp\",\n \"heguri.nara.jp\",\n \"higashiyoshino.nara.jp\",\n \"ikaruga.nara.jp\",\n \"ikoma.nara.jp\",\n \"kamikitayama.nara.jp\",\n \"kanmaki.nara.jp\",\n \"kashiba.nara.jp\",\n \"kashihara.nara.jp\",\n \"katsuragi.nara.jp\",\n \"kawai.nara.jp\",\n \"kawakami.nara.jp\",\n \"kawanishi.nara.jp\",\n \"koryo.nara.jp\",\n \"kurotaki.nara.jp\",\n \"mitsue.nara.jp\",\n \"miyake.nara.jp\",\n \"nara.nara.jp\",\n \"nosegawa.nara.jp\",\n \"oji.nara.jp\",\n \"ouda.nara.jp\",\n \"oyodo.nara.jp\",\n \"sakurai.nara.jp\",\n \"sango.nara.jp\",\n \"shimoichi.nara.jp\",\n \"shimokitayama.nara.jp\",\n \"shinjo.nara.jp\",\n \"soni.nara.jp\",\n \"takatori.nara.jp\",\n \"tawaramoto.nara.jp\",\n \"tenkawa.nara.jp\",\n \"tenri.nara.jp\",\n \"uda.nara.jp\",\n \"yamatokoriyama.nara.jp\",\n \"yamatotakada.nara.jp\",\n \"yamazoe.nara.jp\",\n \"yoshino.nara.jp\",\n \"aga.niigata.jp\",\n \"agano.niigata.jp\",\n \"gosen.niigata.jp\",\n \"itoigawa.niigata.jp\",\n \"izumozaki.niigata.jp\",\n \"joetsu.niigata.jp\",\n \"kamo.niigata.jp\",\n \"kariwa.niigata.jp\",\n \"kashiwazaki.niigata.jp\",\n \"minamiuonuma.niigata.jp\",\n \"mitsuke.niigata.jp\",\n \"muika.niigata.jp\",\n \"murakami.niigata.jp\",\n \"myoko.niigata.jp\",\n \"nagaoka.niigata.jp\",\n \"niigata.niigata.jp\",\n \"ojiya.niigata.jp\",\n \"omi.niigata.jp\",\n \"sado.niigata.jp\",\n \"sanjo.niigata.jp\",\n \"seiro.niigata.jp\",\n \"seirou.niigata.jp\",\n \"sekikawa.niigata.jp\",\n \"shibata.niigata.jp\",\n \"tagami.niigata.jp\",\n \"tainai.niigata.jp\",\n \"tochio.niigata.jp\",\n \"tokamachi.niigata.jp\",\n \"tsubame.niigata.jp\",\n \"tsunan.niigata.jp\",\n \"uonuma.niigata.jp\",\n \"yahiko.niigata.jp\",\n \"yoita.niigata.jp\",\n \"yuzawa.niigata.jp\",\n \"beppu.oita.jp\",\n \"bungoono.oita.jp\",\n \"bungotakada.oita.jp\",\n \"hasama.oita.jp\",\n \"hiji.oita.jp\",\n \"himeshima.oita.jp\",\n \"hita.oita.jp\",\n \"kamitsue.oita.jp\",\n \"kokonoe.oita.jp\",\n \"kuju.oita.jp\",\n \"kunisaki.oita.jp\",\n \"kusu.oita.jp\",\n \"oita.oita.jp\",\n \"saiki.oita.jp\",\n \"taketa.oita.jp\",\n \"tsukumi.oita.jp\",\n \"usa.oita.jp\",\n \"usuki.oita.jp\",\n \"yufu.oita.jp\",\n \"akaiwa.okayama.jp\",\n \"asakuchi.okayama.jp\",\n \"bizen.okayama.jp\",\n \"hayashima.okayama.jp\",\n \"ibara.okayama.jp\",\n \"kagamino.okayama.jp\",\n \"kasaoka.okayama.jp\",\n \"kibichuo.okayama.jp\",\n \"kumenan.okayama.jp\",\n \"kurashiki.okayama.jp\",\n \"maniwa.okayama.jp\",\n \"misaki.okayama.jp\",\n \"nagi.okayama.jp\",\n \"niimi.okayama.jp\",\n \"nishiawakura.okayama.jp\",\n \"okayama.okayama.jp\",\n \"satosho.okayama.jp\",\n \"setouchi.okayama.jp\",\n \"shinjo.okayama.jp\",\n \"shoo.okayama.jp\",\n \"soja.okayama.jp\",\n \"takahashi.okayama.jp\",\n \"tamano.okayama.jp\",\n \"tsuyama.okayama.jp\",\n \"wake.okayama.jp\",\n \"yakage.okayama.jp\",\n \"aguni.okinawa.jp\",\n \"ginowan.okinawa.jp\",\n \"ginoza.okinawa.jp\",\n \"gushikami.okinawa.jp\",\n \"haebaru.okinawa.jp\",\n \"higashi.okinawa.jp\",\n \"hirara.okinawa.jp\",\n \"iheya.okinawa.jp\",\n \"ishigaki.okinawa.jp\",\n \"ishikawa.okinawa.jp\",\n \"itoman.okinawa.jp\",\n \"izena.okinawa.jp\",\n \"kadena.okinawa.jp\",\n \"kin.okinawa.jp\",\n \"kitadaito.okinawa.jp\",\n \"kitanakagusuku.okinawa.jp\",\n \"kumejima.okinawa.jp\",\n \"kunigami.okinawa.jp\",\n \"minamidaito.okinawa.jp\",\n \"motobu.okinawa.jp\",\n \"nago.okinawa.jp\",\n \"naha.okinawa.jp\",\n \"nakagusuku.okinawa.jp\",\n \"nakijin.okinawa.jp\",\n \"nanjo.okinawa.jp\",\n \"nishihara.okinawa.jp\",\n \"ogimi.okinawa.jp\",\n \"okinawa.okinawa.jp\",\n \"onna.okinawa.jp\",\n \"shimoji.okinawa.jp\",\n \"taketomi.okinawa.jp\",\n \"tarama.okinawa.jp\",\n \"tokashiki.okinawa.jp\",\n \"tomigusuku.okinawa.jp\",\n \"tonaki.okinawa.jp\",\n \"urasoe.okinawa.jp\",\n \"uruma.okinawa.jp\",\n \"yaese.okinawa.jp\",\n \"yomitan.okinawa.jp\",\n \"yonabaru.okinawa.jp\",\n \"yonaguni.okinawa.jp\",\n \"zamami.okinawa.jp\",\n \"abeno.osaka.jp\",\n \"chihayaakasaka.osaka.jp\",\n \"chuo.osaka.jp\",\n \"daito.osaka.jp\",\n \"fujiidera.osaka.jp\",\n \"habikino.osaka.jp\",\n \"hannan.osaka.jp\",\n \"higashiosaka.osaka.jp\",\n \"higashisumiyoshi.osaka.jp\",\n \"higashiyodogawa.osaka.jp\",\n \"hirakata.osaka.jp\",\n \"ibaraki.osaka.jp\",\n \"ikeda.osaka.jp\",\n \"izumi.osaka.jp\",\n \"izumiotsu.osaka.jp\",\n \"izumisano.osaka.jp\",\n \"kadoma.osaka.jp\",\n \"kaizuka.osaka.jp\",\n \"kanan.osaka.jp\",\n \"kashiwara.osaka.jp\",\n \"katano.osaka.jp\",\n \"kawachinagano.osaka.jp\",\n \"kishiwada.osaka.jp\",\n \"kita.osaka.jp\",\n \"kumatori.osaka.jp\",\n \"matsubara.osaka.jp\",\n \"minato.osaka.jp\",\n \"minoh.osaka.jp\",\n \"misaki.osaka.jp\",\n \"moriguchi.osaka.jp\",\n \"neyagawa.osaka.jp\",\n \"nishi.osaka.jp\",\n \"nose.osaka.jp\",\n \"osakasayama.osaka.jp\",\n \"sakai.osaka.jp\",\n \"sayama.osaka.jp\",\n \"sennan.osaka.jp\",\n \"settsu.osaka.jp\",\n \"shijonawate.osaka.jp\",\n \"shimamoto.osaka.jp\",\n \"suita.osaka.jp\",\n \"tadaoka.osaka.jp\",\n \"taishi.osaka.jp\",\n \"tajiri.osaka.jp\",\n \"takaishi.osaka.jp\",\n \"takatsuki.osaka.jp\",\n \"tondabayashi.osaka.jp\",\n \"toyonaka.osaka.jp\",\n \"toyono.osaka.jp\",\n \"yao.osaka.jp\",\n \"ariake.saga.jp\",\n \"arita.saga.jp\",\n \"fukudomi.saga.jp\",\n \"genkai.saga.jp\",\n \"hamatama.saga.jp\",\n \"hizen.saga.jp\",\n \"imari.saga.jp\",\n \"kamimine.saga.jp\",\n \"kanzaki.saga.jp\",\n \"karatsu.saga.jp\",\n \"kashima.saga.jp\",\n \"kitagata.saga.jp\",\n \"kitahata.saga.jp\",\n \"kiyama.saga.jp\",\n \"kouhoku.saga.jp\",\n \"kyuragi.saga.jp\",\n \"nishiarita.saga.jp\",\n \"ogi.saga.jp\",\n \"omachi.saga.jp\",\n \"ouchi.saga.jp\",\n \"saga.saga.jp\",\n \"shiroishi.saga.jp\",\n \"taku.saga.jp\",\n \"tara.saga.jp\",\n \"tosu.saga.jp\",\n \"yoshinogari.saga.jp\",\n \"arakawa.saitama.jp\",\n \"asaka.saitama.jp\",\n \"chichibu.saitama.jp\",\n \"fujimi.saitama.jp\",\n \"fujimino.saitama.jp\",\n \"fukaya.saitama.jp\",\n \"hanno.saitama.jp\",\n \"hanyu.saitama.jp\",\n \"hasuda.saitama.jp\",\n \"hatogaya.saitama.jp\",\n \"hatoyama.saitama.jp\",\n \"hidaka.saitama.jp\",\n \"higashichichibu.saitama.jp\",\n \"higashimatsuyama.saitama.jp\",\n \"honjo.saitama.jp\",\n \"ina.saitama.jp\",\n \"iruma.saitama.jp\",\n \"iwatsuki.saitama.jp\",\n \"kamiizumi.saitama.jp\",\n \"kamikawa.saitama.jp\",\n \"kamisato.saitama.jp\",\n \"kasukabe.saitama.jp\",\n \"kawagoe.saitama.jp\",\n \"kawaguchi.saitama.jp\",\n \"kawajima.saitama.jp\",\n \"kazo.saitama.jp\",\n \"kitamoto.saitama.jp\",\n \"koshigaya.saitama.jp\",\n \"kounosu.saitama.jp\",\n \"kuki.saitama.jp\",\n \"kumagaya.saitama.jp\",\n \"matsubushi.saitama.jp\",\n \"minano.saitama.jp\",\n \"misato.saitama.jp\",\n \"miyashiro.saitama.jp\",\n \"miyoshi.saitama.jp\",\n \"moroyama.saitama.jp\",\n \"nagatoro.saitama.jp\",\n \"namegawa.saitama.jp\",\n \"niiza.saitama.jp\",\n \"ogano.saitama.jp\",\n \"ogawa.saitama.jp\",\n \"ogose.saitama.jp\",\n \"okegawa.saitama.jp\",\n \"omiya.saitama.jp\",\n \"otaki.saitama.jp\",\n \"ranzan.saitama.jp\",\n \"ryokami.saitama.jp\",\n \"saitama.saitama.jp\",\n \"sakado.saitama.jp\",\n \"satte.saitama.jp\",\n \"sayama.saitama.jp\",\n \"shiki.saitama.jp\",\n \"shiraoka.saitama.jp\",\n \"soka.saitama.jp\",\n \"sugito.saitama.jp\",\n \"toda.saitama.jp\",\n \"tokigawa.saitama.jp\",\n \"tokorozawa.saitama.jp\",\n \"tsurugashima.saitama.jp\",\n \"urawa.saitama.jp\",\n \"warabi.saitama.jp\",\n \"yashio.saitama.jp\",\n \"yokoze.saitama.jp\",\n \"yono.saitama.jp\",\n \"yorii.saitama.jp\",\n \"yoshida.saitama.jp\",\n \"yoshikawa.saitama.jp\",\n \"yoshimi.saitama.jp\",\n \"aisho.shiga.jp\",\n \"gamo.shiga.jp\",\n \"higashiomi.shiga.jp\",\n \"hikone.shiga.jp\",\n \"koka.shiga.jp\",\n \"konan.shiga.jp\",\n \"kosei.shiga.jp\",\n \"koto.shiga.jp\",\n \"kusatsu.shiga.jp\",\n \"maibara.shiga.jp\",\n \"moriyama.shiga.jp\",\n \"nagahama.shiga.jp\",\n \"nishiazai.shiga.jp\",\n \"notogawa.shiga.jp\",\n \"omihachiman.shiga.jp\",\n \"otsu.shiga.jp\",\n \"ritto.shiga.jp\",\n \"ryuoh.shiga.jp\",\n \"takashima.shiga.jp\",\n \"takatsuki.shiga.jp\",\n \"torahime.shiga.jp\",\n \"toyosato.shiga.jp\",\n \"yasu.shiga.jp\",\n \"akagi.shimane.jp\",\n \"ama.shimane.jp\",\n \"gotsu.shimane.jp\",\n \"hamada.shimane.jp\",\n \"higashiizumo.shimane.jp\",\n \"hikawa.shimane.jp\",\n \"hikimi.shimane.jp\",\n \"izumo.shimane.jp\",\n \"kakinoki.shimane.jp\",\n \"masuda.shimane.jp\",\n \"matsue.shimane.jp\",\n \"misato.shimane.jp\",\n \"nishinoshima.shimane.jp\",\n \"ohda.shimane.jp\",\n \"okinoshima.shimane.jp\",\n \"okuizumo.shimane.jp\",\n \"shimane.shimane.jp\",\n \"tamayu.shimane.jp\",\n \"tsuwano.shimane.jp\",\n \"unnan.shimane.jp\",\n \"yakumo.shimane.jp\",\n \"yasugi.shimane.jp\",\n \"yatsuka.shimane.jp\",\n \"arai.shizuoka.jp\",\n \"atami.shizuoka.jp\",\n \"fuji.shizuoka.jp\",\n \"fujieda.shizuoka.jp\",\n \"fujikawa.shizuoka.jp\",\n \"fujinomiya.shizuoka.jp\",\n \"fukuroi.shizuoka.jp\",\n \"gotemba.shizuoka.jp\",\n \"haibara.shizuoka.jp\",\n \"hamamatsu.shizuoka.jp\",\n \"higashiizu.shizuoka.jp\",\n \"ito.shizuoka.jp\",\n \"iwata.shizuoka.jp\",\n \"izu.shizuoka.jp\",\n \"izunokuni.shizuoka.jp\",\n \"kakegawa.shizuoka.jp\",\n \"kannami.shizuoka.jp\",\n \"kawanehon.shizuoka.jp\",\n \"kawazu.shizuoka.jp\",\n \"kikugawa.shizuoka.jp\",\n \"kosai.shizuoka.jp\",\n \"makinohara.shizuoka.jp\",\n \"matsuzaki.shizuoka.jp\",\n \"minamiizu.shizuoka.jp\",\n \"mishima.shizuoka.jp\",\n \"morimachi.shizuoka.jp\",\n \"nishiizu.shizuoka.jp\",\n \"numazu.shizuoka.jp\",\n \"omaezaki.shizuoka.jp\",\n \"shimada.shizuoka.jp\",\n \"shimizu.shizuoka.jp\",\n \"shimoda.shizuoka.jp\",\n \"shizuoka.shizuoka.jp\",\n \"susono.shizuoka.jp\",\n \"yaizu.shizuoka.jp\",\n \"yoshida.shizuoka.jp\",\n \"ashikaga.tochigi.jp\",\n \"bato.tochigi.jp\",\n \"haga.tochigi.jp\",\n \"ichikai.tochigi.jp\",\n \"iwafune.tochigi.jp\",\n \"kaminokawa.tochigi.jp\",\n \"kanuma.tochigi.jp\",\n \"karasuyama.tochigi.jp\",\n \"kuroiso.tochigi.jp\",\n \"mashiko.tochigi.jp\",\n \"mibu.tochigi.jp\",\n \"moka.tochigi.jp\",\n \"motegi.tochigi.jp\",\n \"nasu.tochigi.jp\",\n \"nasushiobara.tochigi.jp\",\n \"nikko.tochigi.jp\",\n \"nishikata.tochigi.jp\",\n \"nogi.tochigi.jp\",\n \"ohira.tochigi.jp\",\n \"ohtawara.tochigi.jp\",\n \"oyama.tochigi.jp\",\n \"sakura.tochigi.jp\",\n \"sano.tochigi.jp\",\n \"shimotsuke.tochigi.jp\",\n \"shioya.tochigi.jp\",\n \"takanezawa.tochigi.jp\",\n \"tochigi.tochigi.jp\",\n \"tsuga.tochigi.jp\",\n \"ujiie.tochigi.jp\",\n \"utsunomiya.tochigi.jp\",\n \"yaita.tochigi.jp\",\n \"aizumi.tokushima.jp\",\n \"anan.tokushima.jp\",\n \"ichiba.tokushima.jp\",\n \"itano.tokushima.jp\",\n \"kainan.tokushima.jp\",\n \"komatsushima.tokushima.jp\",\n \"matsushige.tokushima.jp\",\n \"mima.tokushima.jp\",\n \"minami.tokushima.jp\",\n \"miyoshi.tokushima.jp\",\n \"mugi.tokushima.jp\",\n \"nakagawa.tokushima.jp\",\n \"naruto.tokushima.jp\",\n \"sanagochi.tokushima.jp\",\n \"shishikui.tokushima.jp\",\n \"tokushima.tokushima.jp\",\n \"wajiki.tokushima.jp\",\n \"adachi.tokyo.jp\",\n \"akiruno.tokyo.jp\",\n \"akishima.tokyo.jp\",\n \"aogashima.tokyo.jp\",\n \"arakawa.tokyo.jp\",\n \"bunkyo.tokyo.jp\",\n \"chiyoda.tokyo.jp\",\n \"chofu.tokyo.jp\",\n \"chuo.tokyo.jp\",\n \"edogawa.tokyo.jp\",\n \"fuchu.tokyo.jp\",\n \"fussa.tokyo.jp\",\n \"hachijo.tokyo.jp\",\n \"hachioji.tokyo.jp\",\n \"hamura.tokyo.jp\",\n \"higashikurume.tokyo.jp\",\n \"higashimurayama.tokyo.jp\",\n \"higashiyamato.tokyo.jp\",\n \"hino.tokyo.jp\",\n \"hinode.tokyo.jp\",\n \"hinohara.tokyo.jp\",\n \"inagi.tokyo.jp\",\n \"itabashi.tokyo.jp\",\n \"katsushika.tokyo.jp\",\n \"kita.tokyo.jp\",\n \"kiyose.tokyo.jp\",\n \"kodaira.tokyo.jp\",\n \"koganei.tokyo.jp\",\n \"kokubunji.tokyo.jp\",\n \"komae.tokyo.jp\",\n \"koto.tokyo.jp\",\n \"kouzushima.tokyo.jp\",\n \"kunitachi.tokyo.jp\",\n \"machida.tokyo.jp\",\n \"meguro.tokyo.jp\",\n \"minato.tokyo.jp\",\n \"mitaka.tokyo.jp\",\n \"mizuho.tokyo.jp\",\n \"musashimurayama.tokyo.jp\",\n \"musashino.tokyo.jp\",\n \"nakano.tokyo.jp\",\n \"nerima.tokyo.jp\",\n \"ogasawara.tokyo.jp\",\n \"okutama.tokyo.jp\",\n \"ome.tokyo.jp\",\n \"oshima.tokyo.jp\",\n \"ota.tokyo.jp\",\n \"setagaya.tokyo.jp\",\n \"shibuya.tokyo.jp\",\n \"shinagawa.tokyo.jp\",\n \"shinjuku.tokyo.jp\",\n \"suginami.tokyo.jp\",\n \"sumida.tokyo.jp\",\n \"tachikawa.tokyo.jp\",\n \"taito.tokyo.jp\",\n \"tama.tokyo.jp\",\n \"toshima.tokyo.jp\",\n \"chizu.tottori.jp\",\n \"hino.tottori.jp\",\n \"kawahara.tottori.jp\",\n \"koge.tottori.jp\",\n \"kotoura.tottori.jp\",\n \"misasa.tottori.jp\",\n \"nanbu.tottori.jp\",\n \"nichinan.tottori.jp\",\n \"sakaiminato.tottori.jp\",\n \"tottori.tottori.jp\",\n \"wakasa.tottori.jp\",\n \"yazu.tottori.jp\",\n \"yonago.tottori.jp\",\n \"asahi.toyama.jp\",\n \"fuchu.toyama.jp\",\n \"fukumitsu.toyama.jp\",\n \"funahashi.toyama.jp\",\n \"himi.toyama.jp\",\n \"imizu.toyama.jp\",\n \"inami.toyama.jp\",\n \"johana.toyama.jp\",\n \"kamiichi.toyama.jp\",\n \"kurobe.toyama.jp\",\n \"nakaniikawa.toyama.jp\",\n \"namerikawa.toyama.jp\",\n \"nanto.toyama.jp\",\n \"nyuzen.toyama.jp\",\n \"oyabe.toyama.jp\",\n \"taira.toyama.jp\",\n \"takaoka.toyama.jp\",\n \"tateyama.toyama.jp\",\n \"toga.toyama.jp\",\n \"tonami.toyama.jp\",\n \"toyama.toyama.jp\",\n \"unazuki.toyama.jp\",\n \"uozu.toyama.jp\",\n \"yamada.toyama.jp\",\n \"arida.wakayama.jp\",\n \"aridagawa.wakayama.jp\",\n \"gobo.wakayama.jp\",\n \"hashimoto.wakayama.jp\",\n \"hidaka.wakayama.jp\",\n \"hirogawa.wakayama.jp\",\n \"inami.wakayama.jp\",\n \"iwade.wakayama.jp\",\n \"kainan.wakayama.jp\",\n \"kamitonda.wakayama.jp\",\n \"katsuragi.wakayama.jp\",\n \"kimino.wakayama.jp\",\n \"kinokawa.wakayama.jp\",\n \"kitayama.wakayama.jp\",\n \"koya.wakayama.jp\",\n \"koza.wakayama.jp\",\n \"kozagawa.wakayama.jp\",\n \"kudoyama.wakayama.jp\",\n \"kushimoto.wakayama.jp\",\n \"mihama.wakayama.jp\",\n \"misato.wakayama.jp\",\n \"nachikatsuura.wakayama.jp\",\n \"shingu.wakayama.jp\",\n \"shirahama.wakayama.jp\",\n \"taiji.wakayama.jp\",\n \"tanabe.wakayama.jp\",\n \"wakayama.wakayama.jp\",\n \"yuasa.wakayama.jp\",\n \"yura.wakayama.jp\",\n \"asahi.yamagata.jp\",\n \"funagata.yamagata.jp\",\n \"higashine.yamagata.jp\",\n \"iide.yamagata.jp\",\n \"kahoku.yamagata.jp\",\n \"kaminoyama.yamagata.jp\",\n \"kaneyama.yamagata.jp\",\n \"kawanishi.yamagata.jp\",\n \"mamurogawa.yamagata.jp\",\n \"mikawa.yamagata.jp\",\n \"murayama.yamagata.jp\",\n \"nagai.yamagata.jp\",\n \"nakayama.yamagata.jp\",\n \"nanyo.yamagata.jp\",\n \"nishikawa.yamagata.jp\",\n \"obanazawa.yamagata.jp\",\n \"oe.yamagata.jp\",\n \"oguni.yamagata.jp\",\n \"ohkura.yamagata.jp\",\n \"oishida.yamagata.jp\",\n \"sagae.yamagata.jp\",\n \"sakata.yamagata.jp\",\n \"sakegawa.yamagata.jp\",\n \"shinjo.yamagata.jp\",\n \"shirataka.yamagata.jp\",\n \"shonai.yamagata.jp\",\n \"takahata.yamagata.jp\",\n \"tendo.yamagata.jp\",\n \"tozawa.yamagata.jp\",\n \"tsuruoka.yamagata.jp\",\n \"yamagata.yamagata.jp\",\n \"yamanobe.yamagata.jp\",\n \"yonezawa.yamagata.jp\",\n \"yuza.yamagata.jp\",\n \"abu.yamaguchi.jp\",\n \"hagi.yamaguchi.jp\",\n \"hikari.yamaguchi.jp\",\n \"hofu.yamaguchi.jp\",\n \"iwakuni.yamaguchi.jp\",\n \"kudamatsu.yamaguchi.jp\",\n \"mitou.yamaguchi.jp\",\n \"nagato.yamaguchi.jp\",\n \"oshima.yamaguchi.jp\",\n \"shimonoseki.yamaguchi.jp\",\n \"shunan.yamaguchi.jp\",\n \"tabuse.yamaguchi.jp\",\n \"tokuyama.yamaguchi.jp\",\n \"toyota.yamaguchi.jp\",\n \"ube.yamaguchi.jp\",\n \"yuu.yamaguchi.jp\",\n \"chuo.yamanashi.jp\",\n \"doshi.yamanashi.jp\",\n \"fuefuki.yamanashi.jp\",\n \"fujikawa.yamanashi.jp\",\n \"fujikawaguchiko.yamanashi.jp\",\n \"fujiyoshida.yamanashi.jp\",\n \"hayakawa.yamanashi.jp\",\n \"hokuto.yamanashi.jp\",\n \"ichikawamisato.yamanashi.jp\",\n \"kai.yamanashi.jp\",\n \"kofu.yamanashi.jp\",\n \"koshu.yamanashi.jp\",\n \"kosuge.yamanashi.jp\",\n \"minami-alps.yamanashi.jp\",\n \"minobu.yamanashi.jp\",\n \"nakamichi.yamanashi.jp\",\n \"nanbu.yamanashi.jp\",\n \"narusawa.yamanashi.jp\",\n \"nirasaki.yamanashi.jp\",\n \"nishikatsura.yamanashi.jp\",\n \"oshino.yamanashi.jp\",\n \"otsuki.yamanashi.jp\",\n \"showa.yamanashi.jp\",\n \"tabayama.yamanashi.jp\",\n \"tsuru.yamanashi.jp\",\n \"uenohara.yamanashi.jp\",\n \"yamanakako.yamanashi.jp\",\n \"yamanashi.yamanashi.jp\",\n \"ke\",\n \"ac.ke\",\n \"co.ke\",\n \"go.ke\",\n \"info.ke\",\n \"me.ke\",\n \"mobi.ke\",\n \"ne.ke\",\n \"or.ke\",\n \"sc.ke\",\n \"kg\",\n \"org.kg\",\n \"net.kg\",\n \"com.kg\",\n \"edu.kg\",\n \"gov.kg\",\n \"mil.kg\",\n \"*.kh\",\n \"ki\",\n \"edu.ki\",\n \"biz.ki\",\n \"net.ki\",\n \"org.ki\",\n \"gov.ki\",\n \"info.ki\",\n \"com.ki\",\n \"km\",\n \"org.km\",\n \"nom.km\",\n \"gov.km\",\n \"prd.km\",\n \"tm.km\",\n \"edu.km\",\n \"mil.km\",\n \"ass.km\",\n \"com.km\",\n \"coop.km\",\n \"asso.km\",\n \"presse.km\",\n \"medecin.km\",\n \"notaires.km\",\n \"pharmaciens.km\",\n \"veterinaire.km\",\n \"gouv.km\",\n \"kn\",\n \"net.kn\",\n \"org.kn\",\n \"edu.kn\",\n \"gov.kn\",\n \"kp\",\n \"com.kp\",\n \"edu.kp\",\n \"gov.kp\",\n \"org.kp\",\n \"rep.kp\",\n \"tra.kp\",\n \"kr\",\n \"ac.kr\",\n \"co.kr\",\n \"es.kr\",\n \"go.kr\",\n \"hs.kr\",\n \"kg.kr\",\n \"mil.kr\",\n \"ms.kr\",\n \"ne.kr\",\n \"or.kr\",\n \"pe.kr\",\n \"re.kr\",\n \"sc.kr\",\n \"busan.kr\",\n \"chungbuk.kr\",\n \"chungnam.kr\",\n \"daegu.kr\",\n \"daejeon.kr\",\n \"gangwon.kr\",\n \"gwangju.kr\",\n \"gyeongbuk.kr\",\n \"gyeonggi.kr\",\n \"gyeongnam.kr\",\n \"incheon.kr\",\n \"jeju.kr\",\n \"jeonbuk.kr\",\n \"jeonnam.kr\",\n \"seoul.kr\",\n \"ulsan.kr\",\n \"kw\",\n \"com.kw\",\n \"edu.kw\",\n \"emb.kw\",\n \"gov.kw\",\n \"ind.kw\",\n \"net.kw\",\n \"org.kw\",\n \"ky\",\n \"com.ky\",\n \"edu.ky\",\n \"net.ky\",\n \"org.ky\",\n \"kz\",\n \"org.kz\",\n \"edu.kz\",\n \"net.kz\",\n \"gov.kz\",\n \"mil.kz\",\n \"com.kz\",\n \"la\",\n \"int.la\",\n \"net.la\",\n \"info.la\",\n \"edu.la\",\n \"gov.la\",\n \"per.la\",\n \"com.la\",\n \"org.la\",\n \"lb\",\n \"com.lb\",\n \"edu.lb\",\n \"gov.lb\",\n \"net.lb\",\n \"org.lb\",\n \"lc\",\n \"com.lc\",\n \"net.lc\",\n \"co.lc\",\n \"org.lc\",\n \"edu.lc\",\n \"gov.lc\",\n \"li\",\n \"lk\",\n \"gov.lk\",\n \"sch.lk\",\n \"net.lk\",\n \"int.lk\",\n \"com.lk\",\n \"org.lk\",\n \"edu.lk\",\n \"ngo.lk\",\n \"soc.lk\",\n \"web.lk\",\n \"ltd.lk\",\n \"assn.lk\",\n \"grp.lk\",\n \"hotel.lk\",\n \"ac.lk\",\n \"lr\",\n \"com.lr\",\n \"edu.lr\",\n \"gov.lr\",\n \"org.lr\",\n \"net.lr\",\n \"ls\",\n \"ac.ls\",\n \"biz.ls\",\n \"co.ls\",\n \"edu.ls\",\n \"gov.ls\",\n \"info.ls\",\n \"net.ls\",\n \"org.ls\",\n \"sc.ls\",\n \"lt\",\n \"gov.lt\",\n \"lu\",\n \"lv\",\n \"com.lv\",\n \"edu.lv\",\n \"gov.lv\",\n \"org.lv\",\n \"mil.lv\",\n \"id.lv\",\n \"net.lv\",\n \"asn.lv\",\n \"conf.lv\",\n \"ly\",\n \"com.ly\",\n \"net.ly\",\n \"gov.ly\",\n \"plc.ly\",\n \"edu.ly\",\n \"sch.ly\",\n \"med.ly\",\n \"org.ly\",\n \"id.ly\",\n \"ma\",\n \"co.ma\",\n \"net.ma\",\n \"gov.ma\",\n \"org.ma\",\n \"ac.ma\",\n \"press.ma\",\n \"mc\",\n \"tm.mc\",\n \"asso.mc\",\n \"md\",\n \"me\",\n \"co.me\",\n \"net.me\",\n \"org.me\",\n \"edu.me\",\n \"ac.me\",\n \"gov.me\",\n \"its.me\",\n \"priv.me\",\n \"mg\",\n \"org.mg\",\n \"nom.mg\",\n \"gov.mg\",\n \"prd.mg\",\n \"tm.mg\",\n \"edu.mg\",\n \"mil.mg\",\n \"com.mg\",\n \"co.mg\",\n \"mh\",\n \"mil\",\n \"mk\",\n \"com.mk\",\n \"org.mk\",\n \"net.mk\",\n \"edu.mk\",\n \"gov.mk\",\n \"inf.mk\",\n \"name.mk\",\n \"ml\",\n \"com.ml\",\n \"edu.ml\",\n \"gouv.ml\",\n \"gov.ml\",\n \"net.ml\",\n \"org.ml\",\n \"presse.ml\",\n \"*.mm\",\n \"mn\",\n \"gov.mn\",\n \"edu.mn\",\n \"org.mn\",\n \"mo\",\n \"com.mo\",\n \"net.mo\",\n \"org.mo\",\n \"edu.mo\",\n \"gov.mo\",\n \"mobi\",\n \"mp\",\n \"mq\",\n \"mr\",\n \"gov.mr\",\n \"ms\",\n \"com.ms\",\n \"edu.ms\",\n \"gov.ms\",\n \"net.ms\",\n \"org.ms\",\n \"mt\",\n \"com.mt\",\n \"edu.mt\",\n \"net.mt\",\n \"org.mt\",\n \"mu\",\n \"com.mu\",\n \"net.mu\",\n \"org.mu\",\n \"gov.mu\",\n \"ac.mu\",\n \"co.mu\",\n \"or.mu\",\n \"museum\",\n \"academy.museum\",\n \"agriculture.museum\",\n \"air.museum\",\n \"airguard.museum\",\n \"alabama.museum\",\n \"alaska.museum\",\n \"amber.museum\",\n \"ambulance.museum\",\n \"american.museum\",\n \"americana.museum\",\n \"americanantiques.museum\",\n \"americanart.museum\",\n \"amsterdam.museum\",\n \"and.museum\",\n \"annefrank.museum\",\n \"anthro.museum\",\n \"anthropology.museum\",\n \"antiques.museum\",\n \"aquarium.museum\",\n \"arboretum.museum\",\n \"archaeological.museum\",\n \"archaeology.museum\",\n \"architecture.museum\",\n \"art.museum\",\n \"artanddesign.museum\",\n \"artcenter.museum\",\n \"artdeco.museum\",\n \"arteducation.museum\",\n \"artgallery.museum\",\n \"arts.museum\",\n \"artsandcrafts.museum\",\n \"asmatart.museum\",\n \"assassination.museum\",\n \"assisi.museum\",\n \"association.museum\",\n \"astronomy.museum\",\n \"atlanta.museum\",\n \"austin.museum\",\n \"australia.museum\",\n \"automotive.museum\",\n \"aviation.museum\",\n \"axis.museum\",\n \"badajoz.museum\",\n \"baghdad.museum\",\n \"bahn.museum\",\n \"bale.museum\",\n \"baltimore.museum\",\n \"barcelona.museum\",\n \"baseball.museum\",\n \"basel.museum\",\n \"baths.museum\",\n \"bauern.museum\",\n \"beauxarts.museum\",\n \"beeldengeluid.museum\",\n \"bellevue.museum\",\n \"bergbau.museum\",\n \"berkeley.museum\",\n \"berlin.museum\",\n \"bern.museum\",\n \"bible.museum\",\n \"bilbao.museum\",\n \"bill.museum\",\n \"birdart.museum\",\n \"birthplace.museum\",\n \"bonn.museum\",\n \"boston.museum\",\n \"botanical.museum\",\n \"botanicalgarden.museum\",\n \"botanicgarden.museum\",\n \"botany.museum\",\n \"brandywinevalley.museum\",\n \"brasil.museum\",\n \"bristol.museum\",\n \"british.museum\",\n \"britishcolumbia.museum\",\n \"broadcast.museum\",\n \"brunel.museum\",\n \"brussel.museum\",\n \"brussels.museum\",\n \"bruxelles.museum\",\n \"building.museum\",\n \"burghof.museum\",\n \"bus.museum\",\n \"bushey.museum\",\n \"cadaques.museum\",\n \"california.museum\",\n \"cambridge.museum\",\n \"can.museum\",\n \"canada.museum\",\n \"capebreton.museum\",\n \"carrier.museum\",\n \"cartoonart.museum\",\n \"casadelamoneda.museum\",\n \"castle.museum\",\n \"castres.museum\",\n \"celtic.museum\",\n \"center.museum\",\n \"chattanooga.museum\",\n \"cheltenham.museum\",\n \"chesapeakebay.museum\",\n \"chicago.museum\",\n \"children.museum\",\n \"childrens.museum\",\n \"childrensgarden.museum\",\n \"chiropractic.museum\",\n \"chocolate.museum\",\n \"christiansburg.museum\",\n \"cincinnati.museum\",\n \"cinema.museum\",\n \"circus.museum\",\n \"civilisation.museum\",\n \"civilization.museum\",\n \"civilwar.museum\",\n \"clinton.museum\",\n \"clock.museum\",\n \"coal.museum\",\n \"coastaldefence.museum\",\n \"cody.museum\",\n \"coldwar.museum\",\n \"collection.museum\",\n \"colonialwilliamsburg.museum\",\n \"coloradoplateau.museum\",\n \"columbia.museum\",\n \"columbus.museum\",\n \"communication.museum\",\n \"communications.museum\",\n \"community.museum\",\n \"computer.museum\",\n \"computerhistory.museum\",\n \"comunica\\xE7\\xF5es.museum\",\n \"contemporary.museum\",\n \"contemporaryart.museum\",\n \"convent.museum\",\n \"copenhagen.museum\",\n \"corporation.museum\",\n \"correios-e-telecomunica\\xE7\\xF5es.museum\",\n \"corvette.museum\",\n \"costume.museum\",\n \"countryestate.museum\",\n \"county.museum\",\n \"crafts.museum\",\n \"cranbrook.museum\",\n \"creation.museum\",\n \"cultural.museum\",\n \"culturalcenter.museum\",\n \"culture.museum\",\n \"cyber.museum\",\n \"cymru.museum\",\n \"dali.museum\",\n \"dallas.museum\",\n \"database.museum\",\n \"ddr.museum\",\n \"decorativearts.museum\",\n \"delaware.museum\",\n \"delmenhorst.museum\",\n \"denmark.museum\",\n \"depot.museum\",\n \"design.museum\",\n \"detroit.museum\",\n \"dinosaur.museum\",\n \"discovery.museum\",\n \"dolls.museum\",\n \"donostia.museum\",\n \"durham.museum\",\n \"eastafrica.museum\",\n \"eastcoast.museum\",\n \"education.museum\",\n \"educational.museum\",\n \"egyptian.museum\",\n \"eisenbahn.museum\",\n \"elburg.museum\",\n \"elvendrell.museum\",\n \"embroidery.museum\",\n \"encyclopedic.museum\",\n \"england.museum\",\n \"entomology.museum\",\n \"environment.museum\",\n \"environmentalconservation.museum\",\n \"epilepsy.museum\",\n \"essex.museum\",\n \"estate.museum\",\n \"ethnology.museum\",\n \"exeter.museum\",\n \"exhibition.museum\",\n \"family.museum\",\n \"farm.museum\",\n \"farmequipment.museum\",\n \"farmers.museum\",\n \"farmstead.museum\",\n \"field.museum\",\n \"figueres.museum\",\n \"filatelia.museum\",\n \"film.museum\",\n \"fineart.museum\",\n \"finearts.museum\",\n \"finland.museum\",\n \"flanders.museum\",\n \"florida.museum\",\n \"force.museum\",\n \"fortmissoula.museum\",\n \"fortworth.museum\",\n \"foundation.museum\",\n \"francaise.museum\",\n \"frankfurt.museum\",\n \"franziskaner.museum\",\n \"freemasonry.museum\",\n \"freiburg.museum\",\n \"fribourg.museum\",\n \"frog.museum\",\n \"fundacio.museum\",\n \"furniture.museum\",\n \"gallery.museum\",\n \"garden.museum\",\n \"gateway.museum\",\n \"geelvinck.museum\",\n \"gemological.museum\",\n \"geology.museum\",\n \"georgia.museum\",\n \"giessen.museum\",\n \"glas.museum\",\n \"glass.museum\",\n \"gorge.museum\",\n \"grandrapids.museum\",\n \"graz.museum\",\n \"guernsey.museum\",\n \"halloffame.museum\",\n \"hamburg.museum\",\n \"handson.museum\",\n \"harvestcelebration.museum\",\n \"hawaii.museum\",\n \"health.museum\",\n \"heimatunduhren.museum\",\n \"hellas.museum\",\n \"helsinki.museum\",\n \"hembygdsforbund.museum\",\n \"heritage.museum\",\n \"histoire.museum\",\n \"historical.museum\",\n \"historicalsociety.museum\",\n \"historichouses.museum\",\n \"historisch.museum\",\n \"historisches.museum\",\n \"history.museum\",\n \"historyofscience.museum\",\n \"horology.museum\",\n \"house.museum\",\n \"humanities.museum\",\n \"illustration.museum\",\n \"imageandsound.museum\",\n \"indian.museum\",\n \"indiana.museum\",\n \"indianapolis.museum\",\n \"indianmarket.museum\",\n \"intelligence.museum\",\n \"interactive.museum\",\n \"iraq.museum\",\n \"iron.museum\",\n \"isleofman.museum\",\n \"jamison.museum\",\n \"jefferson.museum\",\n \"jerusalem.museum\",\n \"jewelry.museum\",\n \"jewish.museum\",\n \"jewishart.museum\",\n \"jfk.museum\",\n \"journalism.museum\",\n \"judaica.museum\",\n \"judygarland.museum\",\n \"juedisches.museum\",\n \"juif.museum\",\n \"karate.museum\",\n \"karikatur.museum\",\n \"kids.museum\",\n \"koebenhavn.museum\",\n \"koeln.museum\",\n \"kunst.museum\",\n \"kunstsammlung.museum\",\n \"kunstunddesign.museum\",\n \"labor.museum\",\n \"labour.museum\",\n \"lajolla.museum\",\n \"lancashire.museum\",\n \"landes.museum\",\n \"lans.museum\",\n \"l\\xE4ns.museum\",\n \"larsson.museum\",\n \"lewismiller.museum\",\n \"lincoln.museum\",\n \"linz.museum\",\n \"living.museum\",\n \"livinghistory.museum\",\n \"localhistory.museum\",\n \"london.museum\",\n \"losangeles.museum\",\n \"louvre.museum\",\n \"loyalist.museum\",\n \"lucerne.museum\",\n \"luxembourg.museum\",\n \"luzern.museum\",\n \"mad.museum\",\n \"madrid.museum\",\n \"mallorca.museum\",\n \"manchester.museum\",\n \"mansion.museum\",\n \"mansions.museum\",\n \"manx.museum\",\n \"marburg.museum\",\n \"maritime.museum\",\n \"maritimo.museum\",\n \"maryland.museum\",\n \"marylhurst.museum\",\n \"media.museum\",\n \"medical.museum\",\n \"medizinhistorisches.museum\",\n \"meeres.museum\",\n \"memorial.museum\",\n \"mesaverde.museum\",\n \"michigan.museum\",\n \"midatlantic.museum\",\n \"military.museum\",\n \"mill.museum\",\n \"miners.museum\",\n \"mining.museum\",\n \"minnesota.museum\",\n \"missile.museum\",\n \"missoula.museum\",\n \"modern.museum\",\n \"moma.museum\",\n \"money.museum\",\n \"monmouth.museum\",\n \"monticello.museum\",\n \"montreal.museum\",\n \"moscow.museum\",\n \"motorcycle.museum\",\n \"muenchen.museum\",\n \"muenster.museum\",\n \"mulhouse.museum\",\n \"muncie.museum\",\n \"museet.museum\",\n \"museumcenter.museum\",\n \"museumvereniging.museum\",\n \"music.museum\",\n \"national.museum\",\n \"nationalfirearms.museum\",\n \"nationalheritage.museum\",\n \"nativeamerican.museum\",\n \"naturalhistory.museum\",\n \"naturalhistorymuseum.museum\",\n \"naturalsciences.museum\",\n \"nature.museum\",\n \"naturhistorisches.museum\",\n \"natuurwetenschappen.museum\",\n \"naumburg.museum\",\n \"naval.museum\",\n \"nebraska.museum\",\n \"neues.museum\",\n \"newhampshire.museum\",\n \"newjersey.museum\",\n \"newmexico.museum\",\n \"newport.museum\",\n \"newspaper.museum\",\n \"newyork.museum\",\n \"niepce.museum\",\n \"norfolk.museum\",\n \"north.museum\",\n \"nrw.museum\",\n \"nyc.museum\",\n \"nyny.museum\",\n \"oceanographic.museum\",\n \"oceanographique.museum\",\n \"omaha.museum\",\n \"online.museum\",\n \"ontario.museum\",\n \"openair.museum\",\n \"oregon.museum\",\n \"oregontrail.museum\",\n \"otago.museum\",\n \"oxford.museum\",\n \"pacific.museum\",\n \"paderborn.museum\",\n \"palace.museum\",\n \"paleo.museum\",\n \"palmsprings.museum\",\n \"panama.museum\",\n \"paris.museum\",\n \"pasadena.museum\",\n \"pharmacy.museum\",\n \"philadelphia.museum\",\n \"philadelphiaarea.museum\",\n \"philately.museum\",\n \"phoenix.museum\",\n \"photography.museum\",\n \"pilots.museum\",\n \"pittsburgh.museum\",\n \"planetarium.museum\",\n \"plantation.museum\",\n \"plants.museum\",\n \"plaza.museum\",\n \"portal.museum\",\n \"portland.museum\",\n \"portlligat.museum\",\n \"posts-and-telecommunications.museum\",\n \"preservation.museum\",\n \"presidio.museum\",\n \"press.museum\",\n \"project.museum\",\n \"public.museum\",\n \"pubol.museum\",\n \"quebec.museum\",\n \"railroad.museum\",\n \"railway.museum\",\n \"research.museum\",\n \"resistance.museum\",\n \"riodejaneiro.museum\",\n \"rochester.museum\",\n \"rockart.museum\",\n \"roma.museum\",\n \"russia.museum\",\n \"saintlouis.museum\",\n \"salem.museum\",\n \"salvadordali.museum\",\n \"salzburg.museum\",\n \"sandiego.museum\",\n \"sanfrancisco.museum\",\n \"santabarbara.museum\",\n \"santacruz.museum\",\n \"santafe.museum\",\n \"saskatchewan.museum\",\n \"satx.museum\",\n \"savannahga.museum\",\n \"schlesisches.museum\",\n \"schoenbrunn.museum\",\n \"schokoladen.museum\",\n \"school.museum\",\n \"schweiz.museum\",\n \"science.museum\",\n \"scienceandhistory.museum\",\n \"scienceandindustry.museum\",\n \"sciencecenter.museum\",\n \"sciencecenters.museum\",\n \"science-fiction.museum\",\n \"sciencehistory.museum\",\n \"sciences.museum\",\n \"sciencesnaturelles.museum\",\n \"scotland.museum\",\n \"seaport.museum\",\n \"settlement.museum\",\n \"settlers.museum\",\n \"shell.museum\",\n \"sherbrooke.museum\",\n \"sibenik.museum\",\n \"silk.museum\",\n \"ski.museum\",\n \"skole.museum\",\n \"society.museum\",\n \"sologne.museum\",\n \"soundandvision.museum\",\n \"southcarolina.museum\",\n \"southwest.museum\",\n \"space.museum\",\n \"spy.museum\",\n \"square.museum\",\n \"stadt.museum\",\n \"stalbans.museum\",\n \"starnberg.museum\",\n \"state.museum\",\n \"stateofdelaware.museum\",\n \"station.museum\",\n \"steam.museum\",\n \"steiermark.museum\",\n \"stjohn.museum\",\n \"stockholm.museum\",\n \"stpetersburg.museum\",\n \"stuttgart.museum\",\n \"suisse.museum\",\n \"surgeonshall.museum\",\n \"surrey.museum\",\n \"svizzera.museum\",\n \"sweden.museum\",\n \"sydney.museum\",\n \"tank.museum\",\n \"tcm.museum\",\n \"technology.museum\",\n \"telekommunikation.museum\",\n \"television.museum\",\n \"texas.museum\",\n \"textile.museum\",\n \"theater.museum\",\n \"time.museum\",\n \"timekeeping.museum\",\n \"topology.museum\",\n \"torino.museum\",\n \"touch.museum\",\n \"town.museum\",\n \"transport.museum\",\n \"tree.museum\",\n \"trolley.museum\",\n \"trust.museum\",\n \"trustee.museum\",\n \"uhren.museum\",\n \"ulm.museum\",\n \"undersea.museum\",\n \"university.museum\",\n \"usa.museum\",\n \"usantiques.museum\",\n \"usarts.museum\",\n \"uscountryestate.museum\",\n \"usculture.museum\",\n \"usdecorativearts.museum\",\n \"usgarden.museum\",\n \"ushistory.museum\",\n \"ushuaia.museum\",\n \"uslivinghistory.museum\",\n \"utah.museum\",\n \"uvic.museum\",\n \"valley.museum\",\n \"vantaa.museum\",\n \"versailles.museum\",\n \"viking.museum\",\n \"village.museum\",\n \"virginia.museum\",\n \"virtual.museum\",\n \"virtuel.museum\",\n \"vlaanderen.museum\",\n \"volkenkunde.museum\",\n \"wales.museum\",\n \"wallonie.museum\",\n \"war.museum\",\n \"washingtondc.museum\",\n \"watchandclock.museum\",\n \"watch-and-clock.museum\",\n \"western.museum\",\n \"westfalen.museum\",\n \"whaling.museum\",\n \"wildlife.museum\",\n \"williamsburg.museum\",\n \"windmill.museum\",\n \"workshop.museum\",\n \"york.museum\",\n \"yorkshire.museum\",\n \"yosemite.museum\",\n \"youth.museum\",\n \"zoological.museum\",\n \"zoology.museum\",\n \"\\u05D9\\u05E8\\u05D5\\u05E9\\u05DC\\u05D9\\u05DD.museum\",\n \"\\u0438\\u043A\\u043E\\u043C.museum\",\n \"mv\",\n \"aero.mv\",\n \"biz.mv\",\n \"com.mv\",\n \"coop.mv\",\n \"edu.mv\",\n \"gov.mv\",\n \"info.mv\",\n \"int.mv\",\n \"mil.mv\",\n \"museum.mv\",\n \"name.mv\",\n \"net.mv\",\n \"org.mv\",\n \"pro.mv\",\n \"mw\",\n \"ac.mw\",\n \"biz.mw\",\n \"co.mw\",\n \"com.mw\",\n \"coop.mw\",\n \"edu.mw\",\n \"gov.mw\",\n \"int.mw\",\n \"museum.mw\",\n \"net.mw\",\n \"org.mw\",\n \"mx\",\n \"com.mx\",\n \"org.mx\",\n \"gob.mx\",\n \"edu.mx\",\n \"net.mx\",\n \"my\",\n \"biz.my\",\n \"com.my\",\n \"edu.my\",\n \"gov.my\",\n \"mil.my\",\n \"name.my\",\n \"net.my\",\n \"org.my\",\n \"mz\",\n \"ac.mz\",\n \"adv.mz\",\n \"co.mz\",\n \"edu.mz\",\n \"gov.mz\",\n \"mil.mz\",\n \"net.mz\",\n \"org.mz\",\n \"na\",\n \"info.na\",\n \"pro.na\",\n \"name.na\",\n \"school.na\",\n \"or.na\",\n \"dr.na\",\n \"us.na\",\n \"mx.na\",\n \"ca.na\",\n \"in.na\",\n \"cc.na\",\n \"tv.na\",\n \"ws.na\",\n \"mobi.na\",\n \"co.na\",\n \"com.na\",\n \"org.na\",\n \"name\",\n \"nc\",\n \"asso.nc\",\n \"nom.nc\",\n \"ne\",\n \"net\",\n \"nf\",\n \"com.nf\",\n \"net.nf\",\n \"per.nf\",\n \"rec.nf\",\n \"web.nf\",\n \"arts.nf\",\n \"firm.nf\",\n \"info.nf\",\n \"other.nf\",\n \"store.nf\",\n \"ng\",\n \"com.ng\",\n \"edu.ng\",\n \"gov.ng\",\n \"i.ng\",\n \"mil.ng\",\n \"mobi.ng\",\n \"name.ng\",\n \"net.ng\",\n \"org.ng\",\n \"sch.ng\",\n \"ni\",\n \"ac.ni\",\n \"biz.ni\",\n \"co.ni\",\n \"com.ni\",\n \"edu.ni\",\n \"gob.ni\",\n \"in.ni\",\n \"info.ni\",\n \"int.ni\",\n \"mil.ni\",\n \"net.ni\",\n \"nom.ni\",\n \"org.ni\",\n \"web.ni\",\n \"nl\",\n \"no\",\n \"fhs.no\",\n \"vgs.no\",\n \"fylkesbibl.no\",\n \"folkebibl.no\",\n \"museum.no\",\n \"idrett.no\",\n \"priv.no\",\n \"mil.no\",\n \"stat.no\",\n \"dep.no\",\n \"kommune.no\",\n \"herad.no\",\n \"aa.no\",\n \"ah.no\",\n \"bu.no\",\n \"fm.no\",\n \"hl.no\",\n \"hm.no\",\n \"jan-mayen.no\",\n \"mr.no\",\n \"nl.no\",\n \"nt.no\",\n \"of.no\",\n \"ol.no\",\n \"oslo.no\",\n \"rl.no\",\n \"sf.no\",\n \"st.no\",\n \"svalbard.no\",\n \"tm.no\",\n \"tr.no\",\n \"va.no\",\n \"vf.no\",\n \"gs.aa.no\",\n \"gs.ah.no\",\n \"gs.bu.no\",\n \"gs.fm.no\",\n \"gs.hl.no\",\n \"gs.hm.no\",\n \"gs.jan-mayen.no\",\n \"gs.mr.no\",\n \"gs.nl.no\",\n \"gs.nt.no\",\n \"gs.of.no\",\n \"gs.ol.no\",\n \"gs.oslo.no\",\n \"gs.rl.no\",\n \"gs.sf.no\",\n \"gs.st.no\",\n \"gs.svalbard.no\",\n \"gs.tm.no\",\n \"gs.tr.no\",\n \"gs.va.no\",\n \"gs.vf.no\",\n \"akrehamn.no\",\n \"\\xE5krehamn.no\",\n \"algard.no\",\n \"\\xE5lg\\xE5rd.no\",\n \"arna.no\",\n \"brumunddal.no\",\n \"bryne.no\",\n \"bronnoysund.no\",\n \"br\\xF8nn\\xF8ysund.no\",\n \"drobak.no\",\n \"dr\\xF8bak.no\",\n \"egersund.no\",\n \"fetsund.no\",\n \"floro.no\",\n \"flor\\xF8.no\",\n \"fredrikstad.no\",\n \"hokksund.no\",\n \"honefoss.no\",\n \"h\\xF8nefoss.no\",\n \"jessheim.no\",\n \"jorpeland.no\",\n \"j\\xF8rpeland.no\",\n \"kirkenes.no\",\n \"kopervik.no\",\n \"krokstadelva.no\",\n \"langevag.no\",\n \"langev\\xE5g.no\",\n \"leirvik.no\",\n \"mjondalen.no\",\n \"mj\\xF8ndalen.no\",\n \"mo-i-rana.no\",\n \"mosjoen.no\",\n \"mosj\\xF8en.no\",\n \"nesoddtangen.no\",\n \"orkanger.no\",\n \"osoyro.no\",\n \"os\\xF8yro.no\",\n \"raholt.no\",\n \"r\\xE5holt.no\",\n \"sandnessjoen.no\",\n \"sandnessj\\xF8en.no\",\n \"skedsmokorset.no\",\n \"slattum.no\",\n \"spjelkavik.no\",\n \"stathelle.no\",\n \"stavern.no\",\n \"stjordalshalsen.no\",\n \"stj\\xF8rdalshalsen.no\",\n \"tananger.no\",\n \"tranby.no\",\n \"vossevangen.no\",\n \"afjord.no\",\n \"\\xE5fjord.no\",\n \"agdenes.no\",\n \"al.no\",\n \"\\xE5l.no\",\n \"alesund.no\",\n \"\\xE5lesund.no\",\n \"alstahaug.no\",\n \"alta.no\",\n \"\\xE1lt\\xE1.no\",\n \"alaheadju.no\",\n \"\\xE1laheadju.no\",\n \"alvdal.no\",\n \"amli.no\",\n \"\\xE5mli.no\",\n \"amot.no\",\n \"\\xE5mot.no\",\n \"andebu.no\",\n \"andoy.no\",\n \"and\\xF8y.no\",\n \"andasuolo.no\",\n \"ardal.no\",\n \"\\xE5rdal.no\",\n \"aremark.no\",\n \"arendal.no\",\n \"\\xE5s.no\",\n \"aseral.no\",\n \"\\xE5seral.no\",\n \"asker.no\",\n \"askim.no\",\n \"askvoll.no\",\n \"askoy.no\",\n \"ask\\xF8y.no\",\n \"asnes.no\",\n \"\\xE5snes.no\",\n \"audnedaln.no\",\n \"aukra.no\",\n \"aure.no\",\n \"aurland.no\",\n \"aurskog-holand.no\",\n \"aurskog-h\\xF8land.no\",\n \"austevoll.no\",\n \"austrheim.no\",\n \"averoy.no\",\n \"aver\\xF8y.no\",\n \"balestrand.no\",\n \"ballangen.no\",\n \"balat.no\",\n \"b\\xE1l\\xE1t.no\",\n \"balsfjord.no\",\n \"bahccavuotna.no\",\n \"b\\xE1hccavuotna.no\",\n \"bamble.no\",\n \"bardu.no\",\n \"beardu.no\",\n \"beiarn.no\",\n \"bajddar.no\",\n \"b\\xE1jddar.no\",\n \"baidar.no\",\n \"b\\xE1id\\xE1r.no\",\n \"berg.no\",\n \"bergen.no\",\n \"berlevag.no\",\n \"berlev\\xE5g.no\",\n \"bearalvahki.no\",\n \"bearalv\\xE1hki.no\",\n \"bindal.no\",\n \"birkenes.no\",\n \"bjarkoy.no\",\n \"bjark\\xF8y.no\",\n \"bjerkreim.no\",\n \"bjugn.no\",\n \"bodo.no\",\n \"bod\\xF8.no\",\n \"badaddja.no\",\n \"b\\xE5d\\xE5ddj\\xE5.no\",\n \"budejju.no\",\n \"bokn.no\",\n \"bremanger.no\",\n \"bronnoy.no\",\n \"br\\xF8nn\\xF8y.no\",\n \"bygland.no\",\n \"bykle.no\",\n \"barum.no\",\n \"b\\xE6rum.no\",\n \"bo.telemark.no\",\n \"b\\xF8.telemark.no\",\n \"bo.nordland.no\",\n \"b\\xF8.nordland.no\",\n \"bievat.no\",\n \"biev\\xE1t.no\",\n \"bomlo.no\",\n \"b\\xF8mlo.no\",\n \"batsfjord.no\",\n \"b\\xE5tsfjord.no\",\n \"bahcavuotna.no\",\n \"b\\xE1hcavuotna.no\",\n \"dovre.no\",\n \"drammen.no\",\n \"drangedal.no\",\n \"dyroy.no\",\n \"dyr\\xF8y.no\",\n \"donna.no\",\n \"d\\xF8nna.no\",\n \"eid.no\",\n \"eidfjord.no\",\n \"eidsberg.no\",\n \"eidskog.no\",\n \"eidsvoll.no\",\n \"eigersund.no\",\n \"elverum.no\",\n \"enebakk.no\",\n \"engerdal.no\",\n \"etne.no\",\n \"etnedal.no\",\n \"evenes.no\",\n \"evenassi.no\",\n \"even\\xE1\\u0161\\u0161i.no\",\n \"evje-og-hornnes.no\",\n \"farsund.no\",\n \"fauske.no\",\n \"fuossko.no\",\n \"fuoisku.no\",\n \"fedje.no\",\n \"fet.no\",\n \"finnoy.no\",\n \"finn\\xF8y.no\",\n \"fitjar.no\",\n \"fjaler.no\",\n \"fjell.no\",\n \"flakstad.no\",\n \"flatanger.no\",\n \"flekkefjord.no\",\n \"flesberg.no\",\n \"flora.no\",\n \"fla.no\",\n \"fl\\xE5.no\",\n \"folldal.no\",\n \"forsand.no\",\n \"fosnes.no\",\n \"frei.no\",\n \"frogn.no\",\n \"froland.no\",\n \"frosta.no\",\n \"frana.no\",\n \"fr\\xE6na.no\",\n \"froya.no\",\n \"fr\\xF8ya.no\",\n \"fusa.no\",\n \"fyresdal.no\",\n \"forde.no\",\n \"f\\xF8rde.no\",\n \"gamvik.no\",\n \"gangaviika.no\",\n \"g\\xE1\\u014Bgaviika.no\",\n \"gaular.no\",\n \"gausdal.no\",\n \"gildeskal.no\",\n \"gildesk\\xE5l.no\",\n \"giske.no\",\n \"gjemnes.no\",\n \"gjerdrum.no\",\n \"gjerstad.no\",\n \"gjesdal.no\",\n \"gjovik.no\",\n \"gj\\xF8vik.no\",\n \"gloppen.no\",\n \"gol.no\",\n \"gran.no\",\n \"grane.no\",\n \"granvin.no\",\n \"gratangen.no\",\n \"grimstad.no\",\n \"grong.no\",\n \"kraanghke.no\",\n \"kr\\xE5anghke.no\",\n \"grue.no\",\n \"gulen.no\",\n \"hadsel.no\",\n \"halden.no\",\n \"halsa.no\",\n \"hamar.no\",\n \"hamaroy.no\",\n \"habmer.no\",\n \"h\\xE1bmer.no\",\n \"hapmir.no\",\n \"h\\xE1pmir.no\",\n \"hammerfest.no\",\n \"hammarfeasta.no\",\n \"h\\xE1mm\\xE1rfeasta.no\",\n \"haram.no\",\n \"hareid.no\",\n \"harstad.no\",\n \"hasvik.no\",\n \"aknoluokta.no\",\n \"\\xE1k\\u014Boluokta.no\",\n \"hattfjelldal.no\",\n \"aarborte.no\",\n \"haugesund.no\",\n \"hemne.no\",\n \"hemnes.no\",\n \"hemsedal.no\",\n \"heroy.more-og-romsdal.no\",\n \"her\\xF8y.m\\xF8re-og-romsdal.no\",\n \"heroy.nordland.no\",\n \"her\\xF8y.nordland.no\",\n \"hitra.no\",\n \"hjartdal.no\",\n \"hjelmeland.no\",\n \"hobol.no\",\n \"hob\\xF8l.no\",\n \"hof.no\",\n \"hol.no\",\n \"hole.no\",\n \"holmestrand.no\",\n \"holtalen.no\",\n \"holt\\xE5len.no\",\n \"hornindal.no\",\n \"horten.no\",\n \"hurdal.no\",\n \"hurum.no\",\n \"hvaler.no\",\n \"hyllestad.no\",\n \"hagebostad.no\",\n \"h\\xE6gebostad.no\",\n \"hoyanger.no\",\n \"h\\xF8yanger.no\",\n \"hoylandet.no\",\n \"h\\xF8ylandet.no\",\n \"ha.no\",\n \"h\\xE5.no\",\n \"ibestad.no\",\n \"inderoy.no\",\n \"inder\\xF8y.no\",\n \"iveland.no\",\n \"jevnaker.no\",\n \"jondal.no\",\n \"jolster.no\",\n \"j\\xF8lster.no\",\n \"karasjok.no\",\n \"karasjohka.no\",\n \"k\\xE1r\\xE1\\u0161johka.no\",\n \"karlsoy.no\",\n \"galsa.no\",\n \"g\\xE1ls\\xE1.no\",\n \"karmoy.no\",\n \"karm\\xF8y.no\",\n \"kautokeino.no\",\n \"guovdageaidnu.no\",\n \"klepp.no\",\n \"klabu.no\",\n \"kl\\xE6bu.no\",\n \"kongsberg.no\",\n \"kongsvinger.no\",\n \"kragero.no\",\n \"krager\\xF8.no\",\n \"kristiansand.no\",\n \"kristiansund.no\",\n \"krodsherad.no\",\n \"kr\\xF8dsherad.no\",\n \"kvalsund.no\",\n \"rahkkeravju.no\",\n \"r\\xE1hkker\\xE1vju.no\",\n \"kvam.no\",\n \"kvinesdal.no\",\n \"kvinnherad.no\",\n \"kviteseid.no\",\n \"kvitsoy.no\",\n \"kvits\\xF8y.no\",\n \"kvafjord.no\",\n \"kv\\xE6fjord.no\",\n \"giehtavuoatna.no\",\n \"kvanangen.no\",\n \"kv\\xE6nangen.no\",\n \"navuotna.no\",\n \"n\\xE1vuotna.no\",\n \"kafjord.no\",\n \"k\\xE5fjord.no\",\n \"gaivuotna.no\",\n \"g\\xE1ivuotna.no\",\n \"larvik.no\",\n \"lavangen.no\",\n \"lavagis.no\",\n \"loabat.no\",\n \"loab\\xE1t.no\",\n \"lebesby.no\",\n \"davvesiida.no\",\n \"leikanger.no\",\n \"leirfjord.no\",\n \"leka.no\",\n \"leksvik.no\",\n \"lenvik.no\",\n \"leangaviika.no\",\n \"lea\\u014Bgaviika.no\",\n \"lesja.no\",\n \"levanger.no\",\n \"lier.no\",\n \"lierne.no\",\n \"lillehammer.no\",\n \"lillesand.no\",\n \"lindesnes.no\",\n \"lindas.no\",\n \"lind\\xE5s.no\",\n \"lom.no\",\n \"loppa.no\",\n \"lahppi.no\",\n \"l\\xE1hppi.no\",\n \"lund.no\",\n \"lunner.no\",\n \"luroy.no\",\n \"lur\\xF8y.no\",\n \"luster.no\",\n \"lyngdal.no\",\n \"lyngen.no\",\n \"ivgu.no\",\n \"lardal.no\",\n \"lerdal.no\",\n \"l\\xE6rdal.no\",\n \"lodingen.no\",\n \"l\\xF8dingen.no\",\n \"lorenskog.no\",\n \"l\\xF8renskog.no\",\n \"loten.no\",\n \"l\\xF8ten.no\",\n \"malvik.no\",\n \"masoy.no\",\n \"m\\xE5s\\xF8y.no\",\n \"muosat.no\",\n \"muos\\xE1t.no\",\n \"mandal.no\",\n \"marker.no\",\n \"marnardal.no\",\n \"masfjorden.no\",\n \"meland.no\",\n \"meldal.no\",\n \"melhus.no\",\n \"meloy.no\",\n \"mel\\xF8y.no\",\n \"meraker.no\",\n \"mer\\xE5ker.no\",\n \"moareke.no\",\n \"mo\\xE5reke.no\",\n \"midsund.no\",\n \"midtre-gauldal.no\",\n \"modalen.no\",\n \"modum.no\",\n \"molde.no\",\n \"moskenes.no\",\n \"moss.no\",\n \"mosvik.no\",\n \"malselv.no\",\n \"m\\xE5lselv.no\",\n \"malatvuopmi.no\",\n \"m\\xE1latvuopmi.no\",\n \"namdalseid.no\",\n \"aejrie.no\",\n \"namsos.no\",\n \"namsskogan.no\",\n \"naamesjevuemie.no\",\n \"n\\xE5\\xE5mesjevuemie.no\",\n \"laakesvuemie.no\",\n \"nannestad.no\",\n \"narvik.no\",\n \"narviika.no\",\n \"naustdal.no\",\n \"nedre-eiker.no\",\n \"nes.akershus.no\",\n \"nes.buskerud.no\",\n \"nesna.no\",\n \"nesodden.no\",\n \"nesseby.no\",\n \"unjarga.no\",\n \"unj\\xE1rga.no\",\n \"nesset.no\",\n \"nissedal.no\",\n \"nittedal.no\",\n \"nord-aurdal.no\",\n \"nord-fron.no\",\n \"nord-odal.no\",\n \"norddal.no\",\n \"nordkapp.no\",\n \"davvenjarga.no\",\n \"davvenj\\xE1rga.no\",\n \"nordre-land.no\",\n \"nordreisa.no\",\n \"raisa.no\",\n \"r\\xE1isa.no\",\n \"nore-og-uvdal.no\",\n \"notodden.no\",\n \"naroy.no\",\n \"n\\xE6r\\xF8y.no\",\n \"notteroy.no\",\n \"n\\xF8tter\\xF8y.no\",\n \"odda.no\",\n \"oksnes.no\",\n \"\\xF8ksnes.no\",\n \"oppdal.no\",\n \"oppegard.no\",\n \"oppeg\\xE5rd.no\",\n \"orkdal.no\",\n \"orland.no\",\n \"\\xF8rland.no\",\n \"orskog.no\",\n \"\\xF8rskog.no\",\n \"orsta.no\",\n \"\\xF8rsta.no\",\n \"os.hedmark.no\",\n \"os.hordaland.no\",\n \"osen.no\",\n \"osteroy.no\",\n \"oster\\xF8y.no\",\n \"ostre-toten.no\",\n \"\\xF8stre-toten.no\",\n \"overhalla.no\",\n \"ovre-eiker.no\",\n \"\\xF8vre-eiker.no\",\n \"oyer.no\",\n \"\\xF8yer.no\",\n \"oygarden.no\",\n \"\\xF8ygarden.no\",\n \"oystre-slidre.no\",\n \"\\xF8ystre-slidre.no\",\n \"porsanger.no\",\n \"porsangu.no\",\n \"pors\\xE1\\u014Bgu.no\",\n \"porsgrunn.no\",\n \"radoy.no\",\n \"rad\\xF8y.no\",\n \"rakkestad.no\",\n \"rana.no\",\n \"ruovat.no\",\n \"randaberg.no\",\n \"rauma.no\",\n \"rendalen.no\",\n \"rennebu.no\",\n \"rennesoy.no\",\n \"rennes\\xF8y.no\",\n \"rindal.no\",\n \"ringebu.no\",\n \"ringerike.no\",\n \"ringsaker.no\",\n \"rissa.no\",\n \"risor.no\",\n \"ris\\xF8r.no\",\n \"roan.no\",\n \"rollag.no\",\n \"rygge.no\",\n \"ralingen.no\",\n \"r\\xE6lingen.no\",\n \"rodoy.no\",\n \"r\\xF8d\\xF8y.no\",\n \"romskog.no\",\n \"r\\xF8mskog.no\",\n \"roros.no\",\n \"r\\xF8ros.no\",\n \"rost.no\",\n \"r\\xF8st.no\",\n \"royken.no\",\n \"r\\xF8yken.no\",\n \"royrvik.no\",\n \"r\\xF8yrvik.no\",\n \"rade.no\",\n \"r\\xE5de.no\",\n \"salangen.no\",\n \"siellak.no\",\n \"saltdal.no\",\n \"salat.no\",\n \"s\\xE1l\\xE1t.no\",\n \"s\\xE1lat.no\",\n \"samnanger.no\",\n \"sande.more-og-romsdal.no\",\n \"sande.m\\xF8re-og-romsdal.no\",\n \"sande.vestfold.no\",\n \"sandefjord.no\",\n \"sandnes.no\",\n \"sandoy.no\",\n \"sand\\xF8y.no\",\n \"sarpsborg.no\",\n \"sauda.no\",\n \"sauherad.no\",\n \"sel.no\",\n \"selbu.no\",\n \"selje.no\",\n \"seljord.no\",\n \"sigdal.no\",\n \"siljan.no\",\n \"sirdal.no\",\n \"skaun.no\",\n \"skedsmo.no\",\n \"ski.no\",\n \"skien.no\",\n \"skiptvet.no\",\n \"skjervoy.no\",\n \"skjerv\\xF8y.no\",\n \"skierva.no\",\n \"skierv\\xE1.no\",\n \"skjak.no\",\n \"skj\\xE5k.no\",\n \"skodje.no\",\n \"skanland.no\",\n \"sk\\xE5nland.no\",\n \"skanit.no\",\n \"sk\\xE1nit.no\",\n \"smola.no\",\n \"sm\\xF8la.no\",\n \"snillfjord.no\",\n \"snasa.no\",\n \"sn\\xE5sa.no\",\n \"snoasa.no\",\n \"snaase.no\",\n \"sn\\xE5ase.no\",\n \"sogndal.no\",\n \"sokndal.no\",\n \"sola.no\",\n \"solund.no\",\n \"songdalen.no\",\n \"sortland.no\",\n \"spydeberg.no\",\n \"stange.no\",\n \"stavanger.no\",\n \"steigen.no\",\n \"steinkjer.no\",\n \"stjordal.no\",\n \"stj\\xF8rdal.no\",\n \"stokke.no\",\n \"stor-elvdal.no\",\n \"stord.no\",\n \"stordal.no\",\n \"storfjord.no\",\n \"omasvuotna.no\",\n \"strand.no\",\n \"stranda.no\",\n \"stryn.no\",\n \"sula.no\",\n \"suldal.no\",\n \"sund.no\",\n \"sunndal.no\",\n \"surnadal.no\",\n \"sveio.no\",\n \"svelvik.no\",\n \"sykkylven.no\",\n \"sogne.no\",\n \"s\\xF8gne.no\",\n \"somna.no\",\n \"s\\xF8mna.no\",\n \"sondre-land.no\",\n \"s\\xF8ndre-land.no\",\n \"sor-aurdal.no\",\n \"s\\xF8r-aurdal.no\",\n \"sor-fron.no\",\n \"s\\xF8r-fron.no\",\n \"sor-odal.no\",\n \"s\\xF8r-odal.no\",\n \"sor-varanger.no\",\n \"s\\xF8r-varanger.no\",\n \"matta-varjjat.no\",\n \"m\\xE1tta-v\\xE1rjjat.no\",\n \"sorfold.no\",\n \"s\\xF8rfold.no\",\n \"sorreisa.no\",\n \"s\\xF8rreisa.no\",\n \"sorum.no\",\n \"s\\xF8rum.no\",\n \"tana.no\",\n \"deatnu.no\",\n \"time.no\",\n \"tingvoll.no\",\n \"tinn.no\",\n \"tjeldsund.no\",\n \"dielddanuorri.no\",\n \"tjome.no\",\n \"tj\\xF8me.no\",\n \"tokke.no\",\n \"tolga.no\",\n \"torsken.no\",\n \"tranoy.no\",\n \"tran\\xF8y.no\",\n \"tromso.no\",\n \"troms\\xF8.no\",\n \"tromsa.no\",\n \"romsa.no\",\n \"trondheim.no\",\n \"troandin.no\",\n \"trysil.no\",\n \"trana.no\",\n \"tr\\xE6na.no\",\n \"trogstad.no\",\n \"tr\\xF8gstad.no\",\n \"tvedestrand.no\",\n \"tydal.no\",\n \"tynset.no\",\n \"tysfjord.no\",\n \"divtasvuodna.no\",\n \"divttasvuotna.no\",\n \"tysnes.no\",\n \"tysvar.no\",\n \"tysv\\xE6r.no\",\n \"tonsberg.no\",\n \"t\\xF8nsberg.no\",\n \"ullensaker.no\",\n \"ullensvang.no\",\n \"ulvik.no\",\n \"utsira.no\",\n \"vadso.no\",\n \"vads\\xF8.no\",\n \"cahcesuolo.no\",\n \"\\u010D\\xE1hcesuolo.no\",\n \"vaksdal.no\",\n \"valle.no\",\n \"vang.no\",\n \"vanylven.no\",\n \"vardo.no\",\n \"vard\\xF8.no\",\n \"varggat.no\",\n \"v\\xE1rgg\\xE1t.no\",\n \"vefsn.no\",\n \"vaapste.no\",\n \"vega.no\",\n \"vegarshei.no\",\n \"veg\\xE5rshei.no\",\n \"vennesla.no\",\n \"verdal.no\",\n \"verran.no\",\n \"vestby.no\",\n \"vestnes.no\",\n \"vestre-slidre.no\",\n \"vestre-toten.no\",\n \"vestvagoy.no\",\n \"vestv\\xE5g\\xF8y.no\",\n \"vevelstad.no\",\n \"vik.no\",\n \"vikna.no\",\n \"vindafjord.no\",\n \"volda.no\",\n \"voss.no\",\n \"varoy.no\",\n \"v\\xE6r\\xF8y.no\",\n \"vagan.no\",\n \"v\\xE5gan.no\",\n \"voagat.no\",\n \"vagsoy.no\",\n \"v\\xE5gs\\xF8y.no\",\n \"vaga.no\",\n \"v\\xE5g\\xE5.no\",\n \"valer.ostfold.no\",\n \"v\\xE5ler.\\xF8stfold.no\",\n \"valer.hedmark.no\",\n \"v\\xE5ler.hedmark.no\",\n \"*.np\",\n \"nr\",\n \"biz.nr\",\n \"info.nr\",\n \"gov.nr\",\n \"edu.nr\",\n \"org.nr\",\n \"net.nr\",\n \"com.nr\",\n \"nu\",\n \"nz\",\n \"ac.nz\",\n \"co.nz\",\n \"cri.nz\",\n \"geek.nz\",\n \"gen.nz\",\n \"govt.nz\",\n \"health.nz\",\n \"iwi.nz\",\n \"kiwi.nz\",\n \"maori.nz\",\n \"mil.nz\",\n \"m\\u0101ori.nz\",\n \"net.nz\",\n \"org.nz\",\n \"parliament.nz\",\n \"school.nz\",\n \"om\",\n \"co.om\",\n \"com.om\",\n \"edu.om\",\n \"gov.om\",\n \"med.om\",\n \"museum.om\",\n \"net.om\",\n \"org.om\",\n \"pro.om\",\n \"onion\",\n \"org\",\n \"pa\",\n \"ac.pa\",\n \"gob.pa\",\n \"com.pa\",\n \"org.pa\",\n \"sld.pa\",\n \"edu.pa\",\n \"net.pa\",\n \"ing.pa\",\n \"abo.pa\",\n \"med.pa\",\n \"nom.pa\",\n \"pe\",\n \"edu.pe\",\n \"gob.pe\",\n \"nom.pe\",\n \"mil.pe\",\n \"org.pe\",\n \"com.pe\",\n \"net.pe\",\n \"pf\",\n \"com.pf\",\n \"org.pf\",\n \"edu.pf\",\n \"*.pg\",\n \"ph\",\n \"com.ph\",\n \"net.ph\",\n \"org.ph\",\n \"gov.ph\",\n \"edu.ph\",\n \"ngo.ph\",\n \"mil.ph\",\n \"i.ph\",\n \"pk\",\n \"com.pk\",\n \"net.pk\",\n \"edu.pk\",\n \"org.pk\",\n \"fam.pk\",\n \"biz.pk\",\n \"web.pk\",\n \"gov.pk\",\n \"gob.pk\",\n \"gok.pk\",\n \"gon.pk\",\n \"gop.pk\",\n \"gos.pk\",\n \"info.pk\",\n \"pl\",\n \"com.pl\",\n \"net.pl\",\n \"org.pl\",\n \"aid.pl\",\n \"agro.pl\",\n \"atm.pl\",\n \"auto.pl\",\n \"biz.pl\",\n \"edu.pl\",\n \"gmina.pl\",\n \"gsm.pl\",\n \"info.pl\",\n \"mail.pl\",\n \"miasta.pl\",\n \"media.pl\",\n \"mil.pl\",\n \"nieruchomosci.pl\",\n \"nom.pl\",\n \"pc.pl\",\n \"powiat.pl\",\n \"priv.pl\",\n \"realestate.pl\",\n \"rel.pl\",\n \"sex.pl\",\n \"shop.pl\",\n \"sklep.pl\",\n \"sos.pl\",\n \"szkola.pl\",\n \"targi.pl\",\n \"tm.pl\",\n \"tourism.pl\",\n \"travel.pl\",\n \"turystyka.pl\",\n \"gov.pl\",\n \"ap.gov.pl\",\n \"ic.gov.pl\",\n \"is.gov.pl\",\n \"us.gov.pl\",\n \"kmpsp.gov.pl\",\n \"kppsp.gov.pl\",\n \"kwpsp.gov.pl\",\n \"psp.gov.pl\",\n \"wskr.gov.pl\",\n \"kwp.gov.pl\",\n \"mw.gov.pl\",\n \"ug.gov.pl\",\n \"um.gov.pl\",\n \"umig.gov.pl\",\n \"ugim.gov.pl\",\n \"upow.gov.pl\",\n \"uw.gov.pl\",\n \"starostwo.gov.pl\",\n \"pa.gov.pl\",\n \"po.gov.pl\",\n \"psse.gov.pl\",\n \"pup.gov.pl\",\n \"rzgw.gov.pl\",\n \"sa.gov.pl\",\n \"so.gov.pl\",\n \"sr.gov.pl\",\n \"wsa.gov.pl\",\n \"sko.gov.pl\",\n \"uzs.gov.pl\",\n \"wiih.gov.pl\",\n \"winb.gov.pl\",\n \"pinb.gov.pl\",\n \"wios.gov.pl\",\n \"witd.gov.pl\",\n \"wzmiuw.gov.pl\",\n \"piw.gov.pl\",\n \"wiw.gov.pl\",\n \"griw.gov.pl\",\n \"wif.gov.pl\",\n \"oum.gov.pl\",\n \"sdn.gov.pl\",\n \"zp.gov.pl\",\n \"uppo.gov.pl\",\n \"mup.gov.pl\",\n \"wuoz.gov.pl\",\n \"konsulat.gov.pl\",\n \"oirm.gov.pl\",\n \"augustow.pl\",\n \"babia-gora.pl\",\n \"bedzin.pl\",\n \"beskidy.pl\",\n \"bialowieza.pl\",\n \"bialystok.pl\",\n \"bielawa.pl\",\n \"bieszczady.pl\",\n \"boleslawiec.pl\",\n \"bydgoszcz.pl\",\n \"bytom.pl\",\n \"cieszyn.pl\",\n \"czeladz.pl\",\n \"czest.pl\",\n \"dlugoleka.pl\",\n \"elblag.pl\",\n \"elk.pl\",\n \"glogow.pl\",\n \"gniezno.pl\",\n \"gorlice.pl\",\n \"grajewo.pl\",\n \"ilawa.pl\",\n \"jaworzno.pl\",\n \"jelenia-gora.pl\",\n \"jgora.pl\",\n \"kalisz.pl\",\n \"kazimierz-dolny.pl\",\n \"karpacz.pl\",\n \"kartuzy.pl\",\n \"kaszuby.pl\",\n \"katowice.pl\",\n \"kepno.pl\",\n \"ketrzyn.pl\",\n \"klodzko.pl\",\n \"kobierzyce.pl\",\n \"kolobrzeg.pl\",\n \"konin.pl\",\n \"konskowola.pl\",\n \"kutno.pl\",\n \"lapy.pl\",\n \"lebork.pl\",\n \"legnica.pl\",\n \"lezajsk.pl\",\n \"limanowa.pl\",\n \"lomza.pl\",\n \"lowicz.pl\",\n \"lubin.pl\",\n \"lukow.pl\",\n \"malbork.pl\",\n \"malopolska.pl\",\n \"mazowsze.pl\",\n \"mazury.pl\",\n \"mielec.pl\",\n \"mielno.pl\",\n \"mragowo.pl\",\n \"naklo.pl\",\n \"nowaruda.pl\",\n \"nysa.pl\",\n \"olawa.pl\",\n \"olecko.pl\",\n \"olkusz.pl\",\n \"olsztyn.pl\",\n \"opoczno.pl\",\n \"opole.pl\",\n \"ostroda.pl\",\n \"ostroleka.pl\",\n \"ostrowiec.pl\",\n \"ostrowwlkp.pl\",\n \"pila.pl\",\n \"pisz.pl\",\n \"podhale.pl\",\n \"podlasie.pl\",\n \"polkowice.pl\",\n \"pomorze.pl\",\n \"pomorskie.pl\",\n \"prochowice.pl\",\n \"pruszkow.pl\",\n \"przeworsk.pl\",\n \"pulawy.pl\",\n \"radom.pl\",\n \"rawa-maz.pl\",\n \"rybnik.pl\",\n \"rzeszow.pl\",\n \"sanok.pl\",\n \"sejny.pl\",\n \"slask.pl\",\n \"slupsk.pl\",\n \"sosnowiec.pl\",\n \"stalowa-wola.pl\",\n \"skoczow.pl\",\n \"starachowice.pl\",\n \"stargard.pl\",\n \"suwalki.pl\",\n \"swidnica.pl\",\n \"swiebodzin.pl\",\n \"swinoujscie.pl\",\n \"szczecin.pl\",\n \"szczytno.pl\",\n \"tarnobrzeg.pl\",\n \"tgory.pl\",\n \"turek.pl\",\n \"tychy.pl\",\n \"ustka.pl\",\n \"walbrzych.pl\",\n \"warmia.pl\",\n \"warszawa.pl\",\n \"waw.pl\",\n \"wegrow.pl\",\n \"wielun.pl\",\n \"wlocl.pl\",\n \"wloclawek.pl\",\n \"wodzislaw.pl\",\n \"wolomin.pl\",\n \"wroclaw.pl\",\n \"zachpomor.pl\",\n \"zagan.pl\",\n \"zarow.pl\",\n \"zgora.pl\",\n \"zgorzelec.pl\",\n \"pm\",\n \"pn\",\n \"gov.pn\",\n \"co.pn\",\n \"org.pn\",\n \"edu.pn\",\n \"net.pn\",\n \"post\",\n \"pr\",\n \"com.pr\",\n \"net.pr\",\n \"org.pr\",\n \"gov.pr\",\n \"edu.pr\",\n \"isla.pr\",\n \"pro.pr\",\n \"biz.pr\",\n \"info.pr\",\n \"name.pr\",\n \"est.pr\",\n \"prof.pr\",\n \"ac.pr\",\n \"pro\",\n \"aaa.pro\",\n \"aca.pro\",\n \"acct.pro\",\n \"avocat.pro\",\n \"bar.pro\",\n \"cpa.pro\",\n \"eng.pro\",\n \"jur.pro\",\n \"law.pro\",\n \"med.pro\",\n \"recht.pro\",\n \"ps\",\n \"edu.ps\",\n \"gov.ps\",\n \"sec.ps\",\n \"plo.ps\",\n \"com.ps\",\n \"org.ps\",\n \"net.ps\",\n \"pt\",\n \"net.pt\",\n \"gov.pt\",\n \"org.pt\",\n \"edu.pt\",\n \"int.pt\",\n \"publ.pt\",\n \"com.pt\",\n \"nome.pt\",\n \"pw\",\n \"co.pw\",\n \"ne.pw\",\n \"or.pw\",\n \"ed.pw\",\n \"go.pw\",\n \"belau.pw\",\n \"py\",\n \"com.py\",\n \"coop.py\",\n \"edu.py\",\n \"gov.py\",\n \"mil.py\",\n \"net.py\",\n \"org.py\",\n \"qa\",\n \"com.qa\",\n \"edu.qa\",\n \"gov.qa\",\n \"mil.qa\",\n \"name.qa\",\n \"net.qa\",\n \"org.qa\",\n \"sch.qa\",\n \"re\",\n \"asso.re\",\n \"com.re\",\n \"nom.re\",\n \"ro\",\n \"arts.ro\",\n \"com.ro\",\n \"firm.ro\",\n \"info.ro\",\n \"nom.ro\",\n \"nt.ro\",\n \"org.ro\",\n \"rec.ro\",\n \"store.ro\",\n \"tm.ro\",\n \"www.ro\",\n \"rs\",\n \"ac.rs\",\n \"co.rs\",\n \"edu.rs\",\n \"gov.rs\",\n \"in.rs\",\n \"org.rs\",\n \"ru\",\n \"rw\",\n \"ac.rw\",\n \"co.rw\",\n \"coop.rw\",\n \"gov.rw\",\n \"mil.rw\",\n \"net.rw\",\n \"org.rw\",\n \"sa\",\n \"com.sa\",\n \"net.sa\",\n \"org.sa\",\n \"gov.sa\",\n \"med.sa\",\n \"pub.sa\",\n \"edu.sa\",\n \"sch.sa\",\n \"sb\",\n \"com.sb\",\n \"edu.sb\",\n \"gov.sb\",\n \"net.sb\",\n \"org.sb\",\n \"sc\",\n \"com.sc\",\n \"gov.sc\",\n \"net.sc\",\n \"org.sc\",\n \"edu.sc\",\n \"sd\",\n \"com.sd\",\n \"net.sd\",\n \"org.sd\",\n \"edu.sd\",\n \"med.sd\",\n \"tv.sd\",\n \"gov.sd\",\n \"info.sd\",\n \"se\",\n \"a.se\",\n \"ac.se\",\n \"b.se\",\n \"bd.se\",\n \"brand.se\",\n \"c.se\",\n \"d.se\",\n \"e.se\",\n \"f.se\",\n \"fh.se\",\n \"fhsk.se\",\n \"fhv.se\",\n \"g.se\",\n \"h.se\",\n \"i.se\",\n \"k.se\",\n \"komforb.se\",\n \"kommunalforbund.se\",\n \"komvux.se\",\n \"l.se\",\n \"lanbib.se\",\n \"m.se\",\n \"n.se\",\n \"naturbruksgymn.se\",\n \"o.se\",\n \"org.se\",\n \"p.se\",\n \"parti.se\",\n \"pp.se\",\n \"press.se\",\n \"r.se\",\n \"s.se\",\n \"t.se\",\n \"tm.se\",\n \"u.se\",\n \"w.se\",\n \"x.se\",\n \"y.se\",\n \"z.se\",\n \"sg\",\n \"com.sg\",\n \"net.sg\",\n \"org.sg\",\n \"gov.sg\",\n \"edu.sg\",\n \"per.sg\",\n \"sh\",\n \"com.sh\",\n \"net.sh\",\n \"gov.sh\",\n \"org.sh\",\n \"mil.sh\",\n \"si\",\n \"sj\",\n \"sk\",\n \"sl\",\n \"com.sl\",\n \"net.sl\",\n \"edu.sl\",\n \"gov.sl\",\n \"org.sl\",\n \"sm\",\n \"sn\",\n \"art.sn\",\n \"com.sn\",\n \"edu.sn\",\n \"gouv.sn\",\n \"org.sn\",\n \"perso.sn\",\n \"univ.sn\",\n \"so\",\n \"com.so\",\n \"edu.so\",\n \"gov.so\",\n \"me.so\",\n \"net.so\",\n \"org.so\",\n \"sr\",\n \"ss\",\n \"biz.ss\",\n \"com.ss\",\n \"edu.ss\",\n \"gov.ss\",\n \"me.ss\",\n \"net.ss\",\n \"org.ss\",\n \"sch.ss\",\n \"st\",\n \"co.st\",\n \"com.st\",\n \"consulado.st\",\n \"edu.st\",\n \"embaixada.st\",\n \"mil.st\",\n \"net.st\",\n \"org.st\",\n \"principe.st\",\n \"saotome.st\",\n \"store.st\",\n \"su\",\n \"sv\",\n \"com.sv\",\n \"edu.sv\",\n \"gob.sv\",\n \"org.sv\",\n \"red.sv\",\n \"sx\",\n \"gov.sx\",\n \"sy\",\n \"edu.sy\",\n \"gov.sy\",\n \"net.sy\",\n \"mil.sy\",\n \"com.sy\",\n \"org.sy\",\n \"sz\",\n \"co.sz\",\n \"ac.sz\",\n \"org.sz\",\n \"tc\",\n \"td\",\n \"tel\",\n \"tf\",\n \"tg\",\n \"th\",\n \"ac.th\",\n \"co.th\",\n \"go.th\",\n \"in.th\",\n \"mi.th\",\n \"net.th\",\n \"or.th\",\n \"tj\",\n \"ac.tj\",\n \"biz.tj\",\n \"co.tj\",\n \"com.tj\",\n \"edu.tj\",\n \"go.tj\",\n \"gov.tj\",\n \"int.tj\",\n \"mil.tj\",\n \"name.tj\",\n \"net.tj\",\n \"nic.tj\",\n \"org.tj\",\n \"test.tj\",\n \"web.tj\",\n \"tk\",\n \"tl\",\n \"gov.tl\",\n \"tm\",\n \"com.tm\",\n \"co.tm\",\n \"org.tm\",\n \"net.tm\",\n \"nom.tm\",\n \"gov.tm\",\n \"mil.tm\",\n \"edu.tm\",\n \"tn\",\n \"com.tn\",\n \"ens.tn\",\n \"fin.tn\",\n \"gov.tn\",\n \"ind.tn\",\n \"info.tn\",\n \"intl.tn\",\n \"mincom.tn\",\n \"nat.tn\",\n \"net.tn\",\n \"org.tn\",\n \"perso.tn\",\n \"tourism.tn\",\n \"to\",\n \"com.to\",\n \"gov.to\",\n \"net.to\",\n \"org.to\",\n \"edu.to\",\n \"mil.to\",\n \"tr\",\n \"av.tr\",\n \"bbs.tr\",\n \"bel.tr\",\n \"biz.tr\",\n \"com.tr\",\n \"dr.tr\",\n \"edu.tr\",\n \"gen.tr\",\n \"gov.tr\",\n \"info.tr\",\n \"mil.tr\",\n \"k12.tr\",\n \"kep.tr\",\n \"name.tr\",\n \"net.tr\",\n \"org.tr\",\n \"pol.tr\",\n \"tel.tr\",\n \"tsk.tr\",\n \"tv.tr\",\n \"web.tr\",\n \"nc.tr\",\n \"gov.nc.tr\",\n \"tt\",\n \"co.tt\",\n \"com.tt\",\n \"org.tt\",\n \"net.tt\",\n \"biz.tt\",\n \"info.tt\",\n \"pro.tt\",\n \"int.tt\",\n \"coop.tt\",\n \"jobs.tt\",\n \"mobi.tt\",\n \"travel.tt\",\n \"museum.tt\",\n \"aero.tt\",\n \"name.tt\",\n \"gov.tt\",\n \"edu.tt\",\n \"tv\",\n \"tw\",\n \"edu.tw\",\n \"gov.tw\",\n \"mil.tw\",\n \"com.tw\",\n \"net.tw\",\n \"org.tw\",\n \"idv.tw\",\n \"game.tw\",\n \"ebiz.tw\",\n \"club.tw\",\n \"\\u7DB2\\u8DEF.tw\",\n \"\\u7D44\\u7E54.tw\",\n \"\\u5546\\u696D.tw\",\n \"tz\",\n \"ac.tz\",\n \"co.tz\",\n \"go.tz\",\n \"hotel.tz\",\n \"info.tz\",\n \"me.tz\",\n \"mil.tz\",\n \"mobi.tz\",\n \"ne.tz\",\n \"or.tz\",\n \"sc.tz\",\n \"tv.tz\",\n \"ua\",\n \"com.ua\",\n \"edu.ua\",\n \"gov.ua\",\n \"in.ua\",\n \"net.ua\",\n \"org.ua\",\n \"cherkassy.ua\",\n \"cherkasy.ua\",\n \"chernigov.ua\",\n \"chernihiv.ua\",\n \"chernivtsi.ua\",\n \"chernovtsy.ua\",\n \"ck.ua\",\n \"cn.ua\",\n \"cr.ua\",\n \"crimea.ua\",\n \"cv.ua\",\n \"dn.ua\",\n \"dnepropetrovsk.ua\",\n \"dnipropetrovsk.ua\",\n \"donetsk.ua\",\n \"dp.ua\",\n \"if.ua\",\n \"ivano-frankivsk.ua\",\n \"kh.ua\",\n \"kharkiv.ua\",\n \"kharkov.ua\",\n \"kherson.ua\",\n \"khmelnitskiy.ua\",\n \"khmelnytskyi.ua\",\n \"kiev.ua\",\n \"kirovograd.ua\",\n \"km.ua\",\n \"kr.ua\",\n \"krym.ua\",\n \"ks.ua\",\n \"kv.ua\",\n \"kyiv.ua\",\n \"lg.ua\",\n \"lt.ua\",\n \"lugansk.ua\",\n \"lutsk.ua\",\n \"lv.ua\",\n \"lviv.ua\",\n \"mk.ua\",\n \"mykolaiv.ua\",\n \"nikolaev.ua\",\n \"od.ua\",\n \"odesa.ua\",\n \"odessa.ua\",\n \"pl.ua\",\n \"poltava.ua\",\n \"rivne.ua\",\n \"rovno.ua\",\n \"rv.ua\",\n \"sb.ua\",\n \"sebastopol.ua\",\n \"sevastopol.ua\",\n \"sm.ua\",\n \"sumy.ua\",\n \"te.ua\",\n \"ternopil.ua\",\n \"uz.ua\",\n \"uzhgorod.ua\",\n \"vinnica.ua\",\n \"vinnytsia.ua\",\n \"vn.ua\",\n \"volyn.ua\",\n \"yalta.ua\",\n \"zaporizhzhe.ua\",\n \"zaporizhzhia.ua\",\n \"zhitomir.ua\",\n \"zhytomyr.ua\",\n \"zp.ua\",\n \"zt.ua\",\n \"ug\",\n \"co.ug\",\n \"or.ug\",\n \"ac.ug\",\n \"sc.ug\",\n \"go.ug\",\n \"ne.ug\",\n \"com.ug\",\n \"org.ug\",\n \"uk\",\n \"ac.uk\",\n \"co.uk\",\n \"gov.uk\",\n \"ltd.uk\",\n \"me.uk\",\n \"net.uk\",\n \"nhs.uk\",\n \"org.uk\",\n \"plc.uk\",\n \"police.uk\",\n \"*.sch.uk\",\n \"us\",\n \"dni.us\",\n \"fed.us\",\n \"isa.us\",\n \"kids.us\",\n \"nsn.us\",\n \"ak.us\",\n \"al.us\",\n \"ar.us\",\n \"as.us\",\n \"az.us\",\n \"ca.us\",\n \"co.us\",\n \"ct.us\",\n \"dc.us\",\n \"de.us\",\n \"fl.us\",\n \"ga.us\",\n \"gu.us\",\n \"hi.us\",\n \"ia.us\",\n \"id.us\",\n \"il.us\",\n \"in.us\",\n \"ks.us\",\n \"ky.us\",\n \"la.us\",\n \"ma.us\",\n \"md.us\",\n \"me.us\",\n \"mi.us\",\n \"mn.us\",\n \"mo.us\",\n \"ms.us\",\n \"mt.us\",\n \"nc.us\",\n \"nd.us\",\n \"ne.us\",\n \"nh.us\",\n \"nj.us\",\n \"nm.us\",\n \"nv.us\",\n \"ny.us\",\n \"oh.us\",\n \"ok.us\",\n \"or.us\",\n \"pa.us\",\n \"pr.us\",\n \"ri.us\",\n \"sc.us\",\n \"sd.us\",\n \"tn.us\",\n \"tx.us\",\n \"ut.us\",\n \"vi.us\",\n \"vt.us\",\n \"va.us\",\n \"wa.us\",\n \"wi.us\",\n \"wv.us\",\n \"wy.us\",\n \"k12.ak.us\",\n \"k12.al.us\",\n \"k12.ar.us\",\n \"k12.as.us\",\n \"k12.az.us\",\n \"k12.ca.us\",\n \"k12.co.us\",\n \"k12.ct.us\",\n \"k12.dc.us\",\n \"k12.de.us\",\n \"k12.fl.us\",\n \"k12.ga.us\",\n \"k12.gu.us\",\n \"k12.ia.us\",\n \"k12.id.us\",\n \"k12.il.us\",\n \"k12.in.us\",\n \"k12.ks.us\",\n \"k12.ky.us\",\n \"k12.la.us\",\n \"k12.ma.us\",\n \"k12.md.us\",\n \"k12.me.us\",\n \"k12.mi.us\",\n \"k12.mn.us\",\n \"k12.mo.us\",\n \"k12.ms.us\",\n \"k12.mt.us\",\n \"k12.nc.us\",\n \"k12.ne.us\",\n \"k12.nh.us\",\n \"k12.nj.us\",\n \"k12.nm.us\",\n \"k12.nv.us\",\n \"k12.ny.us\",\n \"k12.oh.us\",\n \"k12.ok.us\",\n \"k12.or.us\",\n \"k12.pa.us\",\n \"k12.pr.us\",\n \"k12.sc.us\",\n \"k12.tn.us\",\n \"k12.tx.us\",\n \"k12.ut.us\",\n \"k12.vi.us\",\n \"k12.vt.us\",\n \"k12.va.us\",\n \"k12.wa.us\",\n \"k12.wi.us\",\n \"k12.wy.us\",\n \"cc.ak.us\",\n \"cc.al.us\",\n \"cc.ar.us\",\n \"cc.as.us\",\n \"cc.az.us\",\n \"cc.ca.us\",\n \"cc.co.us\",\n \"cc.ct.us\",\n \"cc.dc.us\",\n \"cc.de.us\",\n \"cc.fl.us\",\n \"cc.ga.us\",\n \"cc.gu.us\",\n \"cc.hi.us\",\n \"cc.ia.us\",\n \"cc.id.us\",\n \"cc.il.us\",\n \"cc.in.us\",\n \"cc.ks.us\",\n \"cc.ky.us\",\n \"cc.la.us\",\n \"cc.ma.us\",\n \"cc.md.us\",\n \"cc.me.us\",\n \"cc.mi.us\",\n \"cc.mn.us\",\n \"cc.mo.us\",\n \"cc.ms.us\",\n \"cc.mt.us\",\n \"cc.nc.us\",\n \"cc.nd.us\",\n \"cc.ne.us\",\n \"cc.nh.us\",\n \"cc.nj.us\",\n \"cc.nm.us\",\n \"cc.nv.us\",\n \"cc.ny.us\",\n \"cc.oh.us\",\n \"cc.ok.us\",\n \"cc.or.us\",\n \"cc.pa.us\",\n \"cc.pr.us\",\n \"cc.ri.us\",\n \"cc.sc.us\",\n \"cc.sd.us\",\n \"cc.tn.us\",\n \"cc.tx.us\",\n \"cc.ut.us\",\n \"cc.vi.us\",\n \"cc.vt.us\",\n \"cc.va.us\",\n \"cc.wa.us\",\n \"cc.wi.us\",\n \"cc.wv.us\",\n \"cc.wy.us\",\n \"lib.ak.us\",\n \"lib.al.us\",\n \"lib.ar.us\",\n \"lib.as.us\",\n \"lib.az.us\",\n \"lib.ca.us\",\n \"lib.co.us\",\n \"lib.ct.us\",\n \"lib.dc.us\",\n \"lib.fl.us\",\n \"lib.ga.us\",\n \"lib.gu.us\",\n \"lib.hi.us\",\n \"lib.ia.us\",\n \"lib.id.us\",\n \"lib.il.us\",\n \"lib.in.us\",\n \"lib.ks.us\",\n \"lib.ky.us\",\n \"lib.la.us\",\n \"lib.ma.us\",\n \"lib.md.us\",\n \"lib.me.us\",\n \"lib.mi.us\",\n \"lib.mn.us\",\n \"lib.mo.us\",\n \"lib.ms.us\",\n \"lib.mt.us\",\n \"lib.nc.us\",\n \"lib.nd.us\",\n \"lib.ne.us\",\n \"lib.nh.us\",\n \"lib.nj.us\",\n \"lib.nm.us\",\n \"lib.nv.us\",\n \"lib.ny.us\",\n \"lib.oh.us\",\n \"lib.ok.us\",\n \"lib.or.us\",\n \"lib.pa.us\",\n \"lib.pr.us\",\n \"lib.ri.us\",\n \"lib.sc.us\",\n \"lib.sd.us\",\n \"lib.tn.us\",\n \"lib.tx.us\",\n \"lib.ut.us\",\n \"lib.vi.us\",\n \"lib.vt.us\",\n \"lib.va.us\",\n \"lib.wa.us\",\n \"lib.wi.us\",\n \"lib.wy.us\",\n \"pvt.k12.ma.us\",\n \"chtr.k12.ma.us\",\n \"paroch.k12.ma.us\",\n \"ann-arbor.mi.us\",\n \"cog.mi.us\",\n \"dst.mi.us\",\n \"eaton.mi.us\",\n \"gen.mi.us\",\n \"mus.mi.us\",\n \"tec.mi.us\",\n \"washtenaw.mi.us\",\n \"uy\",\n \"com.uy\",\n \"edu.uy\",\n \"gub.uy\",\n \"mil.uy\",\n \"net.uy\",\n \"org.uy\",\n \"uz\",\n \"co.uz\",\n \"com.uz\",\n \"net.uz\",\n \"org.uz\",\n \"va\",\n \"vc\",\n \"com.vc\",\n \"net.vc\",\n \"org.vc\",\n \"gov.vc\",\n \"mil.vc\",\n \"edu.vc\",\n \"ve\",\n \"arts.ve\",\n \"bib.ve\",\n \"co.ve\",\n \"com.ve\",\n \"e12.ve\",\n \"edu.ve\",\n \"firm.ve\",\n \"gob.ve\",\n \"gov.ve\",\n \"info.ve\",\n \"int.ve\",\n \"mil.ve\",\n \"net.ve\",\n \"nom.ve\",\n \"org.ve\",\n \"rar.ve\",\n \"rec.ve\",\n \"store.ve\",\n \"tec.ve\",\n \"web.ve\",\n \"vg\",\n \"vi\",\n \"co.vi\",\n \"com.vi\",\n \"k12.vi\",\n \"net.vi\",\n \"org.vi\",\n \"vn\",\n \"com.vn\",\n \"net.vn\",\n \"org.vn\",\n \"edu.vn\",\n \"gov.vn\",\n \"int.vn\",\n \"ac.vn\",\n \"biz.vn\",\n \"info.vn\",\n \"name.vn\",\n \"pro.vn\",\n \"health.vn\",\n \"vu\",\n \"com.vu\",\n \"edu.vu\",\n \"net.vu\",\n \"org.vu\",\n \"wf\",\n \"ws\",\n \"com.ws\",\n \"net.ws\",\n \"org.ws\",\n \"gov.ws\",\n \"edu.ws\",\n \"yt\",\n \"\\u0627\\u0645\\u0627\\u0631\\u0627\\u062A\",\n \"\\u0570\\u0561\\u0575\",\n \"\\u09AC\\u09BE\\u0982\\u09B2\\u09BE\",\n \"\\u0431\\u0433\",\n \"\\u0627\\u0644\\u0628\\u062D\\u0631\\u064A\\u0646\",\n \"\\u0431\\u0435\\u043B\",\n \"\\u4E2D\\u56FD\",\n \"\\u4E2D\\u570B\",\n \"\\u0627\\u0644\\u062C\\u0632\\u0627\\u0626\\u0631\",\n \"\\u0645\\u0635\\u0631\",\n \"\\u0435\\u044E\",\n \"\\u03B5\\u03C5\",\n \"\\u0645\\u0648\\u0631\\u064A\\u062A\\u0627\\u0646\\u064A\\u0627\",\n \"\\u10D2\\u10D4\",\n \"\\u03B5\\u03BB\",\n \"\\u9999\\u6E2F\",\n \"\\u516C\\u53F8.\\u9999\\u6E2F\",\n \"\\u6559\\u80B2.\\u9999\\u6E2F\",\n \"\\u653F\\u5E9C.\\u9999\\u6E2F\",\n \"\\u500B\\u4EBA.\\u9999\\u6E2F\",\n \"\\u7DB2\\u7D61.\\u9999\\u6E2F\",\n \"\\u7D44\\u7E54.\\u9999\\u6E2F\",\n \"\\u0CAD\\u0CBE\\u0CB0\\u0CA4\",\n \"\\u0B2D\\u0B3E\\u0B30\\u0B24\",\n \"\\u09AD\\u09BE\\u09F0\\u09A4\",\n \"\\u092D\\u093E\\u0930\\u0924\\u092E\\u094D\",\n \"\\u092D\\u093E\\u0930\\u094B\\u0924\",\n \"\\u0680\\u0627\\u0631\\u062A\",\n \"\\u0D2D\\u0D3E\\u0D30\\u0D24\\u0D02\",\n \"\\u092D\\u093E\\u0930\\u0924\",\n \"\\u0628\\u0627\\u0631\\u062A\",\n \"\\u0628\\u06BE\\u0627\\u0631\\u062A\",\n \"\\u0C2D\\u0C3E\\u0C30\\u0C24\\u0C4D\",\n \"\\u0AAD\\u0ABE\\u0AB0\\u0AA4\",\n \"\\u0A2D\\u0A3E\\u0A30\\u0A24\",\n \"\\u09AD\\u09BE\\u09B0\\u09A4\",\n \"\\u0B87\\u0BA8\\u0BCD\\u0BA4\\u0BBF\\u0BAF\\u0BBE\",\n \"\\u0627\\u06CC\\u0631\\u0627\\u0646\",\n \"\\u0627\\u064A\\u0631\\u0627\\u0646\",\n \"\\u0639\\u0631\\u0627\\u0642\",\n \"\\u0627\\u0644\\u0627\\u0631\\u062F\\u0646\",\n \"\\uD55C\\uAD6D\",\n \"\\u049B\\u0430\\u0437\",\n \"\\u0EA5\\u0EB2\\u0EA7\",\n \"\\u0DBD\\u0D82\\u0D9A\\u0DCF\",\n \"\\u0B87\\u0BB2\\u0B99\\u0BCD\\u0B95\\u0BC8\",\n \"\\u0627\\u0644\\u0645\\u063A\\u0631\\u0628\",\n \"\\u043C\\u043A\\u0434\",\n \"\\u043C\\u043E\\u043D\",\n \"\\u6FB3\\u9580\",\n \"\\u6FB3\\u95E8\",\n \"\\u0645\\u0644\\u064A\\u0633\\u064A\\u0627\",\n \"\\u0639\\u0645\\u0627\\u0646\",\n \"\\u067E\\u0627\\u06A9\\u0633\\u062A\\u0627\\u0646\",\n \"\\u067E\\u0627\\u0643\\u0633\\u062A\\u0627\\u0646\",\n \"\\u0641\\u0644\\u0633\\u0637\\u064A\\u0646\",\n \"\\u0441\\u0440\\u0431\",\n \"\\u043F\\u0440.\\u0441\\u0440\\u0431\",\n \"\\u043E\\u0440\\u0433.\\u0441\\u0440\\u0431\",\n \"\\u043E\\u0431\\u0440.\\u0441\\u0440\\u0431\",\n \"\\u043E\\u0434.\\u0441\\u0440\\u0431\",\n \"\\u0443\\u043F\\u0440.\\u0441\\u0440\\u0431\",\n \"\\u0430\\u043A.\\u0441\\u0440\\u0431\",\n \"\\u0440\\u0444\",\n \"\\u0642\\u0637\\u0631\",\n \"\\u0627\\u0644\\u0633\\u0639\\u0648\\u062F\\u064A\\u0629\",\n \"\\u0627\\u0644\\u0633\\u0639\\u0648\\u062F\\u06CC\\u0629\",\n \"\\u0627\\u0644\\u0633\\u0639\\u0648\\u062F\\u06CC\\u06C3\",\n \"\\u0627\\u0644\\u0633\\u0639\\u0648\\u062F\\u064A\\u0647\",\n \"\\u0633\\u0648\\u062F\\u0627\\u0646\",\n \"\\u65B0\\u52A0\\u5761\",\n \"\\u0B9A\\u0BBF\\u0B99\\u0BCD\\u0B95\\u0BAA\\u0BCD\\u0BAA\\u0BC2\\u0BB0\\u0BCD\",\n \"\\u0633\\u0648\\u0631\\u064A\\u0629\",\n \"\\u0633\\u0648\\u0631\\u064A\\u0627\",\n \"\\u0E44\\u0E17\\u0E22\",\n \"\\u0E28\\u0E36\\u0E01\\u0E29\\u0E32.\\u0E44\\u0E17\\u0E22\",\n \"\\u0E18\\u0E38\\u0E23\\u0E01\\u0E34\\u0E08.\\u0E44\\u0E17\\u0E22\",\n \"\\u0E23\\u0E31\\u0E10\\u0E1A\\u0E32\\u0E25.\\u0E44\\u0E17\\u0E22\",\n \"\\u0E17\\u0E2B\\u0E32\\u0E23.\\u0E44\\u0E17\\u0E22\",\n \"\\u0E40\\u0E19\\u0E47\\u0E15.\\u0E44\\u0E17\\u0E22\",\n \"\\u0E2D\\u0E07\\u0E04\\u0E4C\\u0E01\\u0E23.\\u0E44\\u0E17\\u0E22\",\n \"\\u062A\\u0648\\u0646\\u0633\",\n \"\\u53F0\\u7063\",\n \"\\u53F0\\u6E7E\",\n \"\\u81FA\\u7063\",\n \"\\u0443\\u043A\\u0440\",\n \"\\u0627\\u0644\\u064A\\u0645\\u0646\",\n \"xxx\",\n \"ye\",\n \"com.ye\",\n \"edu.ye\",\n \"gov.ye\",\n \"net.ye\",\n \"mil.ye\",\n \"org.ye\",\n \"ac.za\",\n \"agric.za\",\n \"alt.za\",\n \"co.za\",\n \"edu.za\",\n \"gov.za\",\n \"grondar.za\",\n \"law.za\",\n \"mil.za\",\n \"net.za\",\n \"ngo.za\",\n \"nic.za\",\n \"nis.za\",\n \"nom.za\",\n \"org.za\",\n \"school.za\",\n \"tm.za\",\n \"web.za\",\n \"zm\",\n \"ac.zm\",\n \"biz.zm\",\n \"co.zm\",\n \"com.zm\",\n \"edu.zm\",\n \"gov.zm\",\n \"info.zm\",\n \"mil.zm\",\n \"net.zm\",\n \"org.zm\",\n \"sch.zm\",\n \"zw\",\n \"ac.zw\",\n \"co.zw\",\n \"gov.zw\",\n \"mil.zw\",\n \"org.zw\",\n \"aaa\",\n \"aarp\",\n \"abarth\",\n \"abb\",\n \"abbott\",\n \"abbvie\",\n \"abc\",\n \"able\",\n \"abogado\",\n \"abudhabi\",\n \"academy\",\n \"accenture\",\n \"accountant\",\n \"accountants\",\n \"aco\",\n \"actor\",\n \"adac\",\n \"ads\",\n \"adult\",\n \"aeg\",\n \"aetna\",\n \"afl\",\n \"africa\",\n \"agakhan\",\n \"agency\",\n \"aig\",\n \"airbus\",\n \"airforce\",\n \"airtel\",\n \"akdn\",\n \"alfaromeo\",\n \"alibaba\",\n \"alipay\",\n \"allfinanz\",\n \"allstate\",\n \"ally\",\n \"alsace\",\n \"alstom\",\n \"amazon\",\n \"americanexpress\",\n \"americanfamily\",\n \"amex\",\n \"amfam\",\n \"amica\",\n \"amsterdam\",\n \"analytics\",\n \"android\",\n \"anquan\",\n \"anz\",\n \"aol\",\n \"apartments\",\n \"app\",\n \"apple\",\n \"aquarelle\",\n \"arab\",\n \"aramco\",\n \"archi\",\n \"army\",\n \"art\",\n \"arte\",\n \"asda\",\n \"associates\",\n \"athleta\",\n \"attorney\",\n \"auction\",\n \"audi\",\n \"audible\",\n \"audio\",\n \"auspost\",\n \"author\",\n \"auto\",\n \"autos\",\n \"avianca\",\n \"aws\",\n \"axa\",\n \"azure\",\n \"baby\",\n \"baidu\",\n \"banamex\",\n \"bananarepublic\",\n \"band\",\n \"bank\",\n \"bar\",\n \"barcelona\",\n \"barclaycard\",\n \"barclays\",\n \"barefoot\",\n \"bargains\",\n \"baseball\",\n \"basketball\",\n \"bauhaus\",\n \"bayern\",\n \"bbc\",\n \"bbt\",\n \"bbva\",\n \"bcg\",\n \"bcn\",\n \"beats\",\n \"beauty\",\n \"beer\",\n \"bentley\",\n \"berlin\",\n \"best\",\n \"bestbuy\",\n \"bet\",\n \"bharti\",\n \"bible\",\n \"bid\",\n \"bike\",\n \"bing\",\n \"bingo\",\n \"bio\",\n \"black\",\n \"blackfriday\",\n \"blockbuster\",\n \"blog\",\n \"bloomberg\",\n \"blue\",\n \"bms\",\n \"bmw\",\n \"bnpparibas\",\n \"boats\",\n \"boehringer\",\n \"bofa\",\n \"bom\",\n \"bond\",\n \"boo\",\n \"book\",\n \"booking\",\n \"bosch\",\n \"bostik\",\n \"boston\",\n \"bot\",\n \"boutique\",\n \"box\",\n \"bradesco\",\n \"bridgestone\",\n \"broadway\",\n \"broker\",\n \"brother\",\n \"brussels\",\n \"bugatti\",\n \"build\",\n \"builders\",\n \"business\",\n \"buy\",\n \"buzz\",\n \"bzh\",\n \"cab\",\n \"cafe\",\n \"cal\",\n \"call\",\n \"calvinklein\",\n \"cam\",\n \"camera\",\n \"camp\",\n \"cancerresearch\",\n \"canon\",\n \"capetown\",\n \"capital\",\n \"capitalone\",\n \"car\",\n \"caravan\",\n \"cards\",\n \"care\",\n \"career\",\n \"careers\",\n \"cars\",\n \"casa\",\n \"case\",\n \"cash\",\n \"casino\",\n \"catering\",\n \"catholic\",\n \"cba\",\n \"cbn\",\n \"cbre\",\n \"cbs\",\n \"center\",\n \"ceo\",\n \"cern\",\n \"cfa\",\n \"cfd\",\n \"chanel\",\n \"channel\",\n \"charity\",\n \"chase\",\n \"chat\",\n \"cheap\",\n \"chintai\",\n \"christmas\",\n \"chrome\",\n \"church\",\n \"cipriani\",\n \"circle\",\n \"cisco\",\n \"citadel\",\n \"citi\",\n \"citic\",\n \"city\",\n \"cityeats\",\n \"claims\",\n \"cleaning\",\n \"click\",\n \"clinic\",\n \"clinique\",\n \"clothing\",\n \"cloud\",\n \"club\",\n \"clubmed\",\n \"coach\",\n \"codes\",\n \"coffee\",\n \"college\",\n \"cologne\",\n \"comcast\",\n \"commbank\",\n \"community\",\n \"company\",\n \"compare\",\n \"computer\",\n \"comsec\",\n \"condos\",\n \"construction\",\n \"consulting\",\n \"contact\",\n \"contractors\",\n \"cooking\",\n \"cookingchannel\",\n \"cool\",\n \"corsica\",\n \"country\",\n \"coupon\",\n \"coupons\",\n \"courses\",\n \"cpa\",\n \"credit\",\n \"creditcard\",\n \"creditunion\",\n \"cricket\",\n \"crown\",\n \"crs\",\n \"cruise\",\n \"cruises\",\n \"cuisinella\",\n \"cymru\",\n \"cyou\",\n \"dabur\",\n \"dad\",\n \"dance\",\n \"data\",\n \"date\",\n \"dating\",\n \"datsun\",\n \"day\",\n \"dclk\",\n \"dds\",\n \"deal\",\n \"dealer\",\n \"deals\",\n \"degree\",\n \"delivery\",\n \"dell\",\n \"deloitte\",\n \"delta\",\n \"democrat\",\n \"dental\",\n \"dentist\",\n \"desi\",\n \"design\",\n \"dev\",\n \"dhl\",\n \"diamonds\",\n \"diet\",\n \"digital\",\n \"direct\",\n \"directory\",\n \"discount\",\n \"discover\",\n \"dish\",\n \"diy\",\n \"dnp\",\n \"docs\",\n \"doctor\",\n \"dog\",\n \"domains\",\n \"dot\",\n \"download\",\n \"drive\",\n \"dtv\",\n \"dubai\",\n \"dunlop\",\n \"dupont\",\n \"durban\",\n \"dvag\",\n \"dvr\",\n \"earth\",\n \"eat\",\n \"eco\",\n \"edeka\",\n \"education\",\n \"email\",\n \"emerck\",\n \"energy\",\n \"engineer\",\n \"engineering\",\n \"enterprises\",\n \"epson\",\n \"equipment\",\n \"ericsson\",\n \"erni\",\n \"esq\",\n \"estate\",\n \"etisalat\",\n \"eurovision\",\n \"eus\",\n \"events\",\n \"exchange\",\n \"expert\",\n \"exposed\",\n \"express\",\n \"extraspace\",\n \"fage\",\n \"fail\",\n \"fairwinds\",\n \"faith\",\n \"family\",\n \"fan\",\n \"fans\",\n \"farm\",\n \"farmers\",\n \"fashion\",\n \"fast\",\n \"fedex\",\n \"feedback\",\n \"ferrari\",\n \"ferrero\",\n \"fiat\",\n \"fidelity\",\n \"fido\",\n \"film\",\n \"final\",\n \"finance\",\n \"financial\",\n \"fire\",\n \"firestone\",\n \"firmdale\",\n \"fish\",\n \"fishing\",\n \"fit\",\n \"fitness\",\n \"flickr\",\n \"flights\",\n \"flir\",\n \"florist\",\n \"flowers\",\n \"fly\",\n \"foo\",\n \"food\",\n \"foodnetwork\",\n \"football\",\n \"ford\",\n \"forex\",\n \"forsale\",\n \"forum\",\n \"foundation\",\n \"fox\",\n \"free\",\n \"fresenius\",\n \"frl\",\n \"frogans\",\n \"frontdoor\",\n \"frontier\",\n \"ftr\",\n \"fujitsu\",\n \"fun\",\n \"fund\",\n \"furniture\",\n \"futbol\",\n \"fyi\",\n \"gal\",\n \"gallery\",\n \"gallo\",\n \"gallup\",\n \"game\",\n \"games\",\n \"gap\",\n \"garden\",\n \"gay\",\n \"gbiz\",\n \"gdn\",\n \"gea\",\n \"gent\",\n \"genting\",\n \"george\",\n \"ggee\",\n \"gift\",\n \"gifts\",\n \"gives\",\n \"giving\",\n \"glass\",\n \"gle\",\n \"global\",\n \"globo\",\n \"gmail\",\n \"gmbh\",\n \"gmo\",\n \"gmx\",\n \"godaddy\",\n \"gold\",\n \"goldpoint\",\n \"golf\",\n \"goo\",\n \"goodyear\",\n \"goog\",\n \"google\",\n \"gop\",\n \"got\",\n \"grainger\",\n \"graphics\",\n \"gratis\",\n \"green\",\n \"gripe\",\n \"grocery\",\n \"group\",\n \"guardian\",\n \"gucci\",\n \"guge\",\n \"guide\",\n \"guitars\",\n \"guru\",\n \"hair\",\n \"hamburg\",\n \"hangout\",\n \"haus\",\n \"hbo\",\n \"hdfc\",\n \"hdfcbank\",\n \"health\",\n \"healthcare\",\n \"help\",\n \"helsinki\",\n \"here\",\n \"hermes\",\n \"hgtv\",\n \"hiphop\",\n \"hisamitsu\",\n \"hitachi\",\n \"hiv\",\n \"hkt\",\n \"hockey\",\n \"holdings\",\n \"holiday\",\n \"homedepot\",\n \"homegoods\",\n \"homes\",\n \"homesense\",\n \"honda\",\n \"horse\",\n \"hospital\",\n \"host\",\n \"hosting\",\n \"hot\",\n \"hoteles\",\n \"hotels\",\n \"hotmail\",\n \"house\",\n \"how\",\n \"hsbc\",\n \"hughes\",\n \"hyatt\",\n \"hyundai\",\n \"ibm\",\n \"icbc\",\n \"ice\",\n \"icu\",\n \"ieee\",\n \"ifm\",\n \"ikano\",\n \"imamat\",\n \"imdb\",\n \"immo\",\n \"immobilien\",\n \"inc\",\n \"industries\",\n \"infiniti\",\n \"ing\",\n \"ink\",\n \"institute\",\n \"insurance\",\n \"insure\",\n \"international\",\n \"intuit\",\n \"investments\",\n \"ipiranga\",\n \"irish\",\n \"ismaili\",\n \"ist\",\n \"istanbul\",\n \"itau\",\n \"itv\",\n \"jaguar\",\n \"java\",\n \"jcb\",\n \"jeep\",\n \"jetzt\",\n \"jewelry\",\n \"jio\",\n \"jll\",\n \"jmp\",\n \"jnj\",\n \"joburg\",\n \"jot\",\n \"joy\",\n \"jpmorgan\",\n \"jprs\",\n \"juegos\",\n \"juniper\",\n \"kaufen\",\n \"kddi\",\n \"kerryhotels\",\n \"kerrylogistics\",\n \"kerryproperties\",\n \"kfh\",\n \"kia\",\n \"kids\",\n \"kim\",\n \"kinder\",\n \"kindle\",\n \"kitchen\",\n \"kiwi\",\n \"koeln\",\n \"komatsu\",\n \"kosher\",\n \"kpmg\",\n \"kpn\",\n \"krd\",\n \"kred\",\n \"kuokgroup\",\n \"kyoto\",\n \"lacaixa\",\n \"lamborghini\",\n \"lamer\",\n \"lancaster\",\n \"lancia\",\n \"land\",\n \"landrover\",\n \"lanxess\",\n \"lasalle\",\n \"lat\",\n \"latino\",\n \"latrobe\",\n \"law\",\n \"lawyer\",\n \"lds\",\n \"lease\",\n \"leclerc\",\n \"lefrak\",\n \"legal\",\n \"lego\",\n \"lexus\",\n \"lgbt\",\n \"lidl\",\n \"life\",\n \"lifeinsurance\",\n \"lifestyle\",\n \"lighting\",\n \"like\",\n \"lilly\",\n \"limited\",\n \"limo\",\n \"lincoln\",\n \"linde\",\n \"link\",\n \"lipsy\",\n \"live\",\n \"living\",\n \"llc\",\n \"llp\",\n \"loan\",\n \"loans\",\n \"locker\",\n \"locus\",\n \"loft\",\n \"lol\",\n \"london\",\n \"lotte\",\n \"lotto\",\n \"love\",\n \"lpl\",\n \"lplfinancial\",\n \"ltd\",\n \"ltda\",\n \"lundbeck\",\n \"luxe\",\n \"luxury\",\n \"macys\",\n \"madrid\",\n \"maif\",\n \"maison\",\n \"makeup\",\n \"man\",\n \"management\",\n \"mango\",\n \"map\",\n \"market\",\n \"marketing\",\n \"markets\",\n \"marriott\",\n \"marshalls\",\n \"maserati\",\n \"mattel\",\n \"mba\",\n \"mckinsey\",\n \"med\",\n \"media\",\n \"meet\",\n \"melbourne\",\n \"meme\",\n \"memorial\",\n \"men\",\n \"menu\",\n \"merckmsd\",\n \"miami\",\n \"microsoft\",\n \"mini\",\n \"mint\",\n \"mit\",\n \"mitsubishi\",\n \"mlb\",\n \"mls\",\n \"mma\",\n \"mobile\",\n \"moda\",\n \"moe\",\n \"moi\",\n \"mom\",\n \"monash\",\n \"money\",\n \"monster\",\n \"mormon\",\n \"mortgage\",\n \"moscow\",\n \"moto\",\n \"motorcycles\",\n \"mov\",\n \"movie\",\n \"msd\",\n \"mtn\",\n \"mtr\",\n \"music\",\n \"mutual\",\n \"nab\",\n \"nagoya\",\n \"natura\",\n \"navy\",\n \"nba\",\n \"nec\",\n \"netbank\",\n \"netflix\",\n \"network\",\n \"neustar\",\n \"new\",\n \"news\",\n \"next\",\n \"nextdirect\",\n \"nexus\",\n \"nfl\",\n \"ngo\",\n \"nhk\",\n \"nico\",\n \"nike\",\n \"nikon\",\n \"ninja\",\n \"nissan\",\n \"nissay\",\n \"nokia\",\n \"northwesternmutual\",\n \"norton\",\n \"now\",\n \"nowruz\",\n \"nowtv\",\n \"nra\",\n \"nrw\",\n \"ntt\",\n \"nyc\",\n \"obi\",\n \"observer\",\n \"office\",\n \"okinawa\",\n \"olayan\",\n \"olayangroup\",\n \"oldnavy\",\n \"ollo\",\n \"omega\",\n \"one\",\n \"ong\",\n \"onl\",\n \"online\",\n \"ooo\",\n \"open\",\n \"oracle\",\n \"orange\",\n \"organic\",\n \"origins\",\n \"osaka\",\n \"otsuka\",\n \"ott\",\n \"ovh\",\n \"page\",\n \"panasonic\",\n \"paris\",\n \"pars\",\n \"partners\",\n \"parts\",\n \"party\",\n \"passagens\",\n \"pay\",\n \"pccw\",\n \"pet\",\n \"pfizer\",\n \"pharmacy\",\n \"phd\",\n \"philips\",\n \"phone\",\n \"photo\",\n \"photography\",\n \"photos\",\n \"physio\",\n \"pics\",\n \"pictet\",\n \"pictures\",\n \"pid\",\n \"pin\",\n \"ping\",\n \"pink\",\n \"pioneer\",\n \"pizza\",\n \"place\",\n \"play\",\n \"playstation\",\n \"plumbing\",\n \"plus\",\n \"pnc\",\n \"pohl\",\n \"poker\",\n \"politie\",\n \"porn\",\n \"pramerica\",\n \"praxi\",\n \"press\",\n \"prime\",\n \"prod\",\n \"productions\",\n \"prof\",\n \"progressive\",\n \"promo\",\n \"properties\",\n \"property\",\n \"protection\",\n \"pru\",\n \"prudential\",\n \"pub\",\n \"pwc\",\n \"qpon\",\n \"quebec\",\n \"quest\",\n \"racing\",\n \"radio\",\n \"read\",\n \"realestate\",\n \"realtor\",\n \"realty\",\n \"recipes\",\n \"red\",\n \"redstone\",\n \"redumbrella\",\n \"rehab\",\n \"reise\",\n \"reisen\",\n \"reit\",\n \"reliance\",\n \"ren\",\n \"rent\",\n \"rentals\",\n \"repair\",\n \"report\",\n \"republican\",\n \"rest\",\n \"restaurant\",\n \"review\",\n \"reviews\",\n \"rexroth\",\n \"rich\",\n \"richardli\",\n \"ricoh\",\n \"ril\",\n \"rio\",\n \"rip\",\n \"rocher\",\n \"rocks\",\n \"rodeo\",\n \"rogers\",\n \"room\",\n \"rsvp\",\n \"rugby\",\n \"ruhr\",\n \"run\",\n \"rwe\",\n \"ryukyu\",\n \"saarland\",\n \"safe\",\n \"safety\",\n \"sakura\",\n \"sale\",\n \"salon\",\n \"samsclub\",\n \"samsung\",\n \"sandvik\",\n \"sandvikcoromant\",\n \"sanofi\",\n \"sap\",\n \"sarl\",\n \"sas\",\n \"save\",\n \"saxo\",\n \"sbi\",\n \"sbs\",\n \"sca\",\n \"scb\",\n \"schaeffler\",\n \"schmidt\",\n \"scholarships\",\n \"school\",\n \"schule\",\n \"schwarz\",\n \"science\",\n \"scot\",\n \"search\",\n \"seat\",\n \"secure\",\n \"security\",\n \"seek\",\n \"select\",\n \"sener\",\n \"services\",\n \"ses\",\n \"seven\",\n \"sew\",\n \"sex\",\n \"sexy\",\n \"sfr\",\n \"shangrila\",\n \"sharp\",\n \"shaw\",\n \"shell\",\n \"shia\",\n \"shiksha\",\n \"shoes\",\n \"shop\",\n \"shopping\",\n \"shouji\",\n \"show\",\n \"showtime\",\n \"silk\",\n \"sina\",\n \"singles\",\n \"site\",\n \"ski\",\n \"skin\",\n \"sky\",\n \"skype\",\n \"sling\",\n \"smart\",\n \"smile\",\n \"sncf\",\n \"soccer\",\n \"social\",\n \"softbank\",\n \"software\",\n \"sohu\",\n \"solar\",\n \"solutions\",\n \"song\",\n \"sony\",\n \"soy\",\n \"spa\",\n \"space\",\n \"sport\",\n \"spot\",\n \"srl\",\n \"stada\",\n \"staples\",\n \"star\",\n \"statebank\",\n \"statefarm\",\n \"stc\",\n \"stcgroup\",\n \"stockholm\",\n \"storage\",\n \"store\",\n \"stream\",\n \"studio\",\n \"study\",\n \"style\",\n \"sucks\",\n \"supplies\",\n \"supply\",\n \"support\",\n \"surf\",\n \"surgery\",\n \"suzuki\",\n \"swatch\",\n \"swiss\",\n \"sydney\",\n \"systems\",\n \"tab\",\n \"taipei\",\n \"talk\",\n \"taobao\",\n \"target\",\n \"tatamotors\",\n \"tatar\",\n \"tattoo\",\n \"tax\",\n \"taxi\",\n \"tci\",\n \"tdk\",\n \"team\",\n \"tech\",\n \"technology\",\n \"temasek\",\n \"tennis\",\n \"teva\",\n \"thd\",\n \"theater\",\n \"theatre\",\n \"tiaa\",\n \"tickets\",\n \"tienda\",\n \"tiffany\",\n \"tips\",\n \"tires\",\n \"tirol\",\n \"tjmaxx\",\n \"tjx\",\n \"tkmaxx\",\n \"tmall\",\n \"today\",\n \"tokyo\",\n \"tools\",\n \"top\",\n \"toray\",\n \"toshiba\",\n \"total\",\n \"tours\",\n \"town\",\n \"toyota\",\n \"toys\",\n \"trade\",\n \"trading\",\n \"training\",\n \"travel\",\n \"travelchannel\",\n \"travelers\",\n \"travelersinsurance\",\n \"trust\",\n \"trv\",\n \"tube\",\n \"tui\",\n \"tunes\",\n \"tushu\",\n \"tvs\",\n \"ubank\",\n \"ubs\",\n \"unicom\",\n \"university\",\n \"uno\",\n \"uol\",\n \"ups\",\n \"vacations\",\n \"vana\",\n \"vanguard\",\n \"vegas\",\n \"ventures\",\n \"verisign\",\n \"versicherung\",\n \"vet\",\n \"viajes\",\n \"video\",\n \"vig\",\n \"viking\",\n \"villas\",\n \"vin\",\n \"vip\",\n \"virgin\",\n \"visa\",\n \"vision\",\n \"viva\",\n \"vivo\",\n \"vlaanderen\",\n \"vodka\",\n \"volkswagen\",\n \"volvo\",\n \"vote\",\n \"voting\",\n \"voto\",\n \"voyage\",\n \"vuelos\",\n \"wales\",\n \"walmart\",\n \"walter\",\n \"wang\",\n \"wanggou\",\n \"watch\",\n \"watches\",\n \"weather\",\n \"weatherchannel\",\n \"webcam\",\n \"weber\",\n \"website\",\n \"wedding\",\n \"weibo\",\n \"weir\",\n \"whoswho\",\n \"wien\",\n \"wiki\",\n \"williamhill\",\n \"win\",\n \"windows\",\n \"wine\",\n \"winners\",\n \"wme\",\n \"wolterskluwer\",\n \"woodside\",\n \"work\",\n \"works\",\n \"world\",\n \"wow\",\n \"wtc\",\n \"wtf\",\n \"xbox\",\n \"xerox\",\n \"xfinity\",\n \"xihuan\",\n \"xin\",\n \"\\u0915\\u0949\\u092E\",\n \"\\u30BB\\u30FC\\u30EB\",\n \"\\u4F5B\\u5C71\",\n \"\\u6148\\u5584\",\n \"\\u96C6\\u56E2\",\n \"\\u5728\\u7EBF\",\n \"\\u70B9\\u770B\",\n \"\\u0E04\\u0E2D\\u0E21\",\n \"\\u516B\\u5366\",\n \"\\u0645\\u0648\\u0642\\u0639\",\n \"\\u516C\\u76CA\",\n \"\\u516C\\u53F8\",\n \"\\u9999\\u683C\\u91CC\\u62C9\",\n \"\\u7F51\\u7AD9\",\n \"\\u79FB\\u52A8\",\n \"\\u6211\\u7231\\u4F60\",\n \"\\u043C\\u043E\\u0441\\u043A\\u0432\\u0430\",\n \"\\u043A\\u0430\\u0442\\u043E\\u043B\\u0438\\u043A\",\n \"\\u043E\\u043D\\u043B\\u0430\\u0439\\u043D\",\n \"\\u0441\\u0430\\u0439\\u0442\",\n \"\\u8054\\u901A\",\n \"\\u05E7\\u05D5\\u05DD\",\n \"\\u65F6\\u5C1A\",\n \"\\u5FAE\\u535A\",\n \"\\u6DE1\\u9A6C\\u9521\",\n \"\\u30D5\\u30A1\\u30C3\\u30B7\\u30E7\\u30F3\",\n \"\\u043E\\u0440\\u0433\",\n \"\\u0928\\u0947\\u091F\",\n \"\\u30B9\\u30C8\\u30A2\",\n \"\\u30A2\\u30DE\\u30BE\\u30F3\",\n \"\\uC0BC\\uC131\",\n \"\\u5546\\u6807\",\n \"\\u5546\\u5E97\",\n \"\\u5546\\u57CE\",\n \"\\u0434\\u0435\\u0442\\u0438\",\n \"\\u30DD\\u30A4\\u30F3\\u30C8\",\n \"\\u65B0\\u95FB\",\n \"\\u5BB6\\u96FB\",\n \"\\u0643\\u0648\\u0645\",\n \"\\u4E2D\\u6587\\u7F51\",\n \"\\u4E2D\\u4FE1\",\n \"\\u5A31\\u4E50\",\n \"\\u8C37\\u6B4C\",\n \"\\u96FB\\u8A0A\\u76C8\\u79D1\",\n \"\\u8D2D\\u7269\",\n \"\\u30AF\\u30E9\\u30A6\\u30C9\",\n \"\\u901A\\u8CA9\",\n \"\\u7F51\\u5E97\",\n \"\\u0938\\u0902\\u0917\\u0920\\u0928\",\n \"\\u9910\\u5385\",\n \"\\u7F51\\u7EDC\",\n \"\\u043A\\u043E\\u043C\",\n \"\\u4E9A\\u9A6C\\u900A\",\n \"\\u8BFA\\u57FA\\u4E9A\",\n \"\\u98DF\\u54C1\",\n \"\\u98DE\\u5229\\u6D66\",\n \"\\u624B\\u673A\",\n \"\\u0627\\u0631\\u0627\\u0645\\u0643\\u0648\",\n \"\\u0627\\u0644\\u0639\\u0644\\u064A\\u0627\\u0646\",\n \"\\u0627\\u062A\\u0635\\u0627\\u0644\\u0627\\u062A\",\n \"\\u0628\\u0627\\u0632\\u0627\\u0631\",\n \"\\u0627\\u0628\\u0648\\u0638\\u0628\\u064A\",\n \"\\u0643\\u0627\\u062B\\u0648\\u0644\\u064A\\u0643\",\n \"\\u0647\\u0645\\u0631\\u0627\\u0647\",\n \"\\uB2F7\\uCEF4\",\n \"\\u653F\\u5E9C\",\n \"\\u0634\\u0628\\u0643\\u0629\",\n \"\\u0628\\u064A\\u062A\\u0643\",\n \"\\u0639\\u0631\\u0628\",\n \"\\u673A\\u6784\",\n \"\\u7EC4\\u7EC7\\u673A\\u6784\",\n \"\\u5065\\u5EB7\",\n \"\\u62DB\\u8058\",\n \"\\u0440\\u0443\\u0441\",\n \"\\u5927\\u62FF\",\n \"\\u307F\\u3093\\u306A\",\n \"\\u30B0\\u30FC\\u30B0\\u30EB\",\n \"\\u4E16\\u754C\",\n \"\\u66F8\\u7C4D\",\n \"\\u7F51\\u5740\",\n \"\\uB2F7\\uB137\",\n \"\\u30B3\\u30E0\",\n \"\\u5929\\u4E3B\\u6559\",\n \"\\u6E38\\u620F\",\n \"verm\\xF6gensberater\",\n \"verm\\xF6gensberatung\",\n \"\\u4F01\\u4E1A\",\n \"\\u4FE1\\u606F\",\n \"\\u5609\\u91CC\\u5927\\u9152\\u5E97\",\n \"\\u5609\\u91CC\",\n \"\\u5E7F\\u4E1C\",\n \"\\u653F\\u52A1\",\n \"xyz\",\n \"yachts\",\n \"yahoo\",\n \"yamaxun\",\n \"yandex\",\n \"yodobashi\",\n \"yoga\",\n \"yokohama\",\n \"you\",\n \"youtube\",\n \"yun\",\n \"zappos\",\n \"zara\",\n \"zero\",\n \"zip\",\n \"zone\",\n \"zuerich\",\n \"cc.ua\",\n \"inf.ua\",\n \"ltd.ua\",\n \"611.to\",\n \"graphox.us\",\n \"*.devcdnaccesso.com\",\n \"adobeaemcloud.com\",\n \"*.dev.adobeaemcloud.com\",\n \"hlx.live\",\n \"adobeaemcloud.net\",\n \"hlx.page\",\n \"hlx3.page\",\n \"beep.pl\",\n \"airkitapps.com\",\n \"airkitapps-au.com\",\n \"airkitapps.eu\",\n \"aivencloud.com\",\n \"barsy.ca\",\n \"*.compute.estate\",\n \"*.alces.network\",\n \"kasserver.com\",\n \"altervista.org\",\n \"alwaysdata.net\",\n \"cloudfront.net\",\n \"*.compute.amazonaws.com\",\n \"*.compute-1.amazonaws.com\",\n \"*.compute.amazonaws.com.cn\",\n \"us-east-1.amazonaws.com\",\n \"cn-north-1.eb.amazonaws.com.cn\",\n \"cn-northwest-1.eb.amazonaws.com.cn\",\n \"elasticbeanstalk.com\",\n \"ap-northeast-1.elasticbeanstalk.com\",\n \"ap-northeast-2.elasticbeanstalk.com\",\n \"ap-northeast-3.elasticbeanstalk.com\",\n \"ap-south-1.elasticbeanstalk.com\",\n \"ap-southeast-1.elasticbeanstalk.com\",\n \"ap-southeast-2.elasticbeanstalk.com\",\n \"ca-central-1.elasticbeanstalk.com\",\n \"eu-central-1.elasticbeanstalk.com\",\n \"eu-west-1.elasticbeanstalk.com\",\n \"eu-west-2.elasticbeanstalk.com\",\n \"eu-west-3.elasticbeanstalk.com\",\n \"sa-east-1.elasticbeanstalk.com\",\n \"us-east-1.elasticbeanstalk.com\",\n \"us-east-2.elasticbeanstalk.com\",\n \"us-gov-west-1.elasticbeanstalk.com\",\n \"us-west-1.elasticbeanstalk.com\",\n \"us-west-2.elasticbeanstalk.com\",\n \"*.elb.amazonaws.com\",\n \"*.elb.amazonaws.com.cn\",\n \"awsglobalaccelerator.com\",\n \"s3.amazonaws.com\",\n \"s3-ap-northeast-1.amazonaws.com\",\n \"s3-ap-northeast-2.amazonaws.com\",\n \"s3-ap-south-1.amazonaws.com\",\n \"s3-ap-southeast-1.amazonaws.com\",\n \"s3-ap-southeast-2.amazonaws.com\",\n \"s3-ca-central-1.amazonaws.com\",\n \"s3-eu-central-1.amazonaws.com\",\n \"s3-eu-west-1.amazonaws.com\",\n \"s3-eu-west-2.amazonaws.com\",\n \"s3-eu-west-3.amazonaws.com\",\n \"s3-external-1.amazonaws.com\",\n \"s3-fips-us-gov-west-1.amazonaws.com\",\n \"s3-sa-east-1.amazonaws.com\",\n \"s3-us-gov-west-1.amazonaws.com\",\n \"s3-us-east-2.amazonaws.com\",\n \"s3-us-west-1.amazonaws.com\",\n \"s3-us-west-2.amazonaws.com\",\n \"s3.ap-northeast-2.amazonaws.com\",\n \"s3.ap-south-1.amazonaws.com\",\n \"s3.cn-north-1.amazonaws.com.cn\",\n \"s3.ca-central-1.amazonaws.com\",\n \"s3.eu-central-1.amazonaws.com\",\n \"s3.eu-west-2.amazonaws.com\",\n \"s3.eu-west-3.amazonaws.com\",\n \"s3.us-east-2.amazonaws.com\",\n \"s3.dualstack.ap-northeast-1.amazonaws.com\",\n \"s3.dualstack.ap-northeast-2.amazonaws.com\",\n \"s3.dualstack.ap-south-1.amazonaws.com\",\n \"s3.dualstack.ap-southeast-1.amazonaws.com\",\n \"s3.dualstack.ap-southeast-2.amazonaws.com\",\n \"s3.dualstack.ca-central-1.amazonaws.com\",\n \"s3.dualstack.eu-central-1.amazonaws.com\",\n \"s3.dualstack.eu-west-1.amazonaws.com\",\n \"s3.dualstack.eu-west-2.amazonaws.com\",\n \"s3.dualstack.eu-west-3.amazonaws.com\",\n \"s3.dualstack.sa-east-1.amazonaws.com\",\n \"s3.dualstack.us-east-1.amazonaws.com\",\n \"s3.dualstack.us-east-2.amazonaws.com\",\n \"s3-website-us-east-1.amazonaws.com\",\n \"s3-website-us-west-1.amazonaws.com\",\n \"s3-website-us-west-2.amazonaws.com\",\n \"s3-website-ap-northeast-1.amazonaws.com\",\n \"s3-website-ap-southeast-1.amazonaws.com\",\n \"s3-website-ap-southeast-2.amazonaws.com\",\n \"s3-website-eu-west-1.amazonaws.com\",\n \"s3-website-sa-east-1.amazonaws.com\",\n \"s3-website.ap-northeast-2.amazonaws.com\",\n \"s3-website.ap-south-1.amazonaws.com\",\n \"s3-website.ca-central-1.amazonaws.com\",\n \"s3-website.eu-central-1.amazonaws.com\",\n \"s3-website.eu-west-2.amazonaws.com\",\n \"s3-website.eu-west-3.amazonaws.com\",\n \"s3-website.us-east-2.amazonaws.com\",\n \"t3l3p0rt.net\",\n \"tele.amune.org\",\n \"apigee.io\",\n \"siiites.com\",\n \"appspacehosted.com\",\n \"appspaceusercontent.com\",\n \"appudo.net\",\n \"on-aptible.com\",\n \"user.aseinet.ne.jp\",\n \"gv.vc\",\n \"d.gv.vc\",\n \"user.party.eus\",\n \"pimienta.org\",\n \"poivron.org\",\n \"potager.org\",\n \"sweetpepper.org\",\n \"myasustor.com\",\n \"cdn.prod.atlassian-dev.net\",\n \"translated.page\",\n \"myfritz.net\",\n \"onavstack.net\",\n \"*.awdev.ca\",\n \"*.advisor.ws\",\n \"ecommerce-shop.pl\",\n \"b-data.io\",\n \"backplaneapp.io\",\n \"balena-devices.com\",\n \"rs.ba\",\n \"*.banzai.cloud\",\n \"app.banzaicloud.io\",\n \"*.backyards.banzaicloud.io\",\n \"base.ec\",\n \"official.ec\",\n \"buyshop.jp\",\n \"fashionstore.jp\",\n \"handcrafted.jp\",\n \"kawaiishop.jp\",\n \"supersale.jp\",\n \"theshop.jp\",\n \"shopselect.net\",\n \"base.shop\",\n \"*.beget.app\",\n \"betainabox.com\",\n \"bnr.la\",\n \"bitbucket.io\",\n \"blackbaudcdn.net\",\n \"of.je\",\n \"bluebite.io\",\n \"boomla.net\",\n \"boutir.com\",\n \"boxfuse.io\",\n \"square7.ch\",\n \"bplaced.com\",\n \"bplaced.de\",\n \"square7.de\",\n \"bplaced.net\",\n \"square7.net\",\n \"shop.brendly.rs\",\n \"browsersafetymark.io\",\n \"uk0.bigv.io\",\n \"dh.bytemark.co.uk\",\n \"vm.bytemark.co.uk\",\n \"cafjs.com\",\n \"mycd.eu\",\n \"drr.ac\",\n \"uwu.ai\",\n \"carrd.co\",\n \"crd.co\",\n \"ju.mp\",\n \"ae.org\",\n \"br.com\",\n \"cn.com\",\n \"com.de\",\n \"com.se\",\n \"de.com\",\n \"eu.com\",\n \"gb.net\",\n \"hu.net\",\n \"jp.net\",\n \"jpn.com\",\n \"mex.com\",\n \"ru.com\",\n \"sa.com\",\n \"se.net\",\n \"uk.com\",\n \"uk.net\",\n \"us.com\",\n \"za.bz\",\n \"za.com\",\n \"ar.com\",\n \"hu.com\",\n \"kr.com\",\n \"no.com\",\n \"qc.com\",\n \"uy.com\",\n \"africa.com\",\n \"gr.com\",\n \"in.net\",\n \"web.in\",\n \"us.org\",\n \"co.com\",\n \"aus.basketball\",\n \"nz.basketball\",\n \"radio.am\",\n \"radio.fm\",\n \"c.la\",\n \"certmgr.org\",\n \"cx.ua\",\n \"discourse.group\",\n \"discourse.team\",\n \"cleverapps.io\",\n \"clerk.app\",\n \"clerkstage.app\",\n \"*.lcl.dev\",\n \"*.lclstage.dev\",\n \"*.stg.dev\",\n \"*.stgstage.dev\",\n \"clickrising.net\",\n \"c66.me\",\n \"cloud66.ws\",\n \"cloud66.zone\",\n \"jdevcloud.com\",\n \"wpdevcloud.com\",\n \"cloudaccess.host\",\n \"freesite.host\",\n \"cloudaccess.net\",\n \"cloudcontrolled.com\",\n \"cloudcontrolapp.com\",\n \"*.cloudera.site\",\n \"pages.dev\",\n \"trycloudflare.com\",\n \"workers.dev\",\n \"wnext.app\",\n \"co.ca\",\n \"*.otap.co\",\n \"co.cz\",\n \"c.cdn77.org\",\n \"cdn77-ssl.net\",\n \"r.cdn77.net\",\n \"rsc.cdn77.org\",\n \"ssl.origin.cdn77-secure.org\",\n \"cloudns.asia\",\n \"cloudns.biz\",\n \"cloudns.club\",\n \"cloudns.cc\",\n \"cloudns.eu\",\n \"cloudns.in\",\n \"cloudns.info\",\n \"cloudns.org\",\n \"cloudns.pro\",\n \"cloudns.pw\",\n \"cloudns.us\",\n \"cnpy.gdn\",\n \"codeberg.page\",\n \"co.nl\",\n \"co.no\",\n \"webhosting.be\",\n \"hosting-cluster.nl\",\n \"ac.ru\",\n \"edu.ru\",\n \"gov.ru\",\n \"int.ru\",\n \"mil.ru\",\n \"test.ru\",\n \"dyn.cosidns.de\",\n \"dynamisches-dns.de\",\n \"dnsupdater.de\",\n \"internet-dns.de\",\n \"l-o-g-i-n.de\",\n \"dynamic-dns.info\",\n \"feste-ip.net\",\n \"knx-server.net\",\n \"static-access.net\",\n \"realm.cz\",\n \"*.cryptonomic.net\",\n \"cupcake.is\",\n \"curv.dev\",\n \"*.customer-oci.com\",\n \"*.oci.customer-oci.com\",\n \"*.ocp.customer-oci.com\",\n \"*.ocs.customer-oci.com\",\n \"cyon.link\",\n \"cyon.site\",\n \"fnwk.site\",\n \"folionetwork.site\",\n \"platform0.app\",\n \"daplie.me\",\n \"localhost.daplie.me\",\n \"dattolocal.com\",\n \"dattorelay.com\",\n \"dattoweb.com\",\n \"mydatto.com\",\n \"dattolocal.net\",\n \"mydatto.net\",\n \"biz.dk\",\n \"co.dk\",\n \"firm.dk\",\n \"reg.dk\",\n \"store.dk\",\n \"dyndns.dappnode.io\",\n \"*.dapps.earth\",\n \"*.bzz.dapps.earth\",\n \"builtwithdark.com\",\n \"demo.datadetect.com\",\n \"instance.datadetect.com\",\n \"edgestack.me\",\n \"ddns5.com\",\n \"debian.net\",\n \"deno.dev\",\n \"deno-staging.dev\",\n \"dedyn.io\",\n \"deta.app\",\n \"deta.dev\",\n \"*.rss.my.id\",\n \"*.diher.solutions\",\n \"discordsays.com\",\n \"discordsez.com\",\n \"jozi.biz\",\n \"dnshome.de\",\n \"online.th\",\n \"shop.th\",\n \"drayddns.com\",\n \"shoparena.pl\",\n \"dreamhosters.com\",\n \"mydrobo.com\",\n \"drud.io\",\n \"drud.us\",\n \"duckdns.org\",\n \"bip.sh\",\n \"bitbridge.net\",\n \"dy.fi\",\n \"tunk.org\",\n \"dyndns-at-home.com\",\n \"dyndns-at-work.com\",\n \"dyndns-blog.com\",\n \"dyndns-free.com\",\n \"dyndns-home.com\",\n \"dyndns-ip.com\",\n \"dyndns-mail.com\",\n \"dyndns-office.com\",\n \"dyndns-pics.com\",\n \"dyndns-remote.com\",\n \"dyndns-server.com\",\n \"dyndns-web.com\",\n \"dyndns-wiki.com\",\n \"dyndns-work.com\",\n \"dyndns.biz\",\n \"dyndns.info\",\n \"dyndns.org\",\n \"dyndns.tv\",\n \"at-band-camp.net\",\n \"ath.cx\",\n \"barrel-of-knowledge.info\",\n \"barrell-of-knowledge.info\",\n \"better-than.tv\",\n \"blogdns.com\",\n \"blogdns.net\",\n \"blogdns.org\",\n \"blogsite.org\",\n \"boldlygoingnowhere.org\",\n \"broke-it.net\",\n \"buyshouses.net\",\n \"cechire.com\",\n \"dnsalias.com\",\n \"dnsalias.net\",\n \"dnsalias.org\",\n \"dnsdojo.com\",\n \"dnsdojo.net\",\n \"dnsdojo.org\",\n \"does-it.net\",\n \"doesntexist.com\",\n \"doesntexist.org\",\n \"dontexist.com\",\n \"dontexist.net\",\n \"dontexist.org\",\n \"doomdns.com\",\n \"doomdns.org\",\n \"dvrdns.org\",\n \"dyn-o-saur.com\",\n \"dynalias.com\",\n \"dynalias.net\",\n \"dynalias.org\",\n \"dynathome.net\",\n \"dyndns.ws\",\n \"endofinternet.net\",\n \"endofinternet.org\",\n \"endoftheinternet.org\",\n \"est-a-la-maison.com\",\n \"est-a-la-masion.com\",\n \"est-le-patron.com\",\n \"est-mon-blogueur.com\",\n \"for-better.biz\",\n \"for-more.biz\",\n \"for-our.info\",\n \"for-some.biz\",\n \"for-the.biz\",\n \"forgot.her.name\",\n \"forgot.his.name\",\n \"from-ak.com\",\n \"from-al.com\",\n \"from-ar.com\",\n \"from-az.net\",\n \"from-ca.com\",\n \"from-co.net\",\n \"from-ct.com\",\n \"from-dc.com\",\n \"from-de.com\",\n \"from-fl.com\",\n \"from-ga.com\",\n \"from-hi.com\",\n \"from-ia.com\",\n \"from-id.com\",\n \"from-il.com\",\n \"from-in.com\",\n \"from-ks.com\",\n \"from-ky.com\",\n \"from-la.net\",\n \"from-ma.com\",\n \"from-md.com\",\n \"from-me.org\",\n \"from-mi.com\",\n \"from-mn.com\",\n \"from-mo.com\",\n \"from-ms.com\",\n \"from-mt.com\",\n \"from-nc.com\",\n \"from-nd.com\",\n \"from-ne.com\",\n \"from-nh.com\",\n \"from-nj.com\",\n \"from-nm.com\",\n \"from-nv.com\",\n \"from-ny.net\",\n \"from-oh.com\",\n \"from-ok.com\",\n \"from-or.com\",\n \"from-pa.com\",\n \"from-pr.com\",\n \"from-ri.com\",\n \"from-sc.com\",\n \"from-sd.com\",\n \"from-tn.com\",\n \"from-tx.com\",\n \"from-ut.com\",\n \"from-va.com\",\n \"from-vt.com\",\n \"from-wa.com\",\n \"from-wi.com\",\n \"from-wv.com\",\n \"from-wy.com\",\n \"ftpaccess.cc\",\n \"fuettertdasnetz.de\",\n \"game-host.org\",\n \"game-server.cc\",\n \"getmyip.com\",\n \"gets-it.net\",\n \"go.dyndns.org\",\n \"gotdns.com\",\n \"gotdns.org\",\n \"groks-the.info\",\n \"groks-this.info\",\n \"ham-radio-op.net\",\n \"here-for-more.info\",\n \"hobby-site.com\",\n \"hobby-site.org\",\n \"home.dyndns.org\",\n \"homedns.org\",\n \"homeftp.net\",\n \"homeftp.org\",\n \"homeip.net\",\n \"homelinux.com\",\n \"homelinux.net\",\n \"homelinux.org\",\n \"homeunix.com\",\n \"homeunix.net\",\n \"homeunix.org\",\n \"iamallama.com\",\n \"in-the-band.net\",\n \"is-a-anarchist.com\",\n \"is-a-blogger.com\",\n \"is-a-bookkeeper.com\",\n \"is-a-bruinsfan.org\",\n \"is-a-bulls-fan.com\",\n \"is-a-candidate.org\",\n \"is-a-caterer.com\",\n \"is-a-celticsfan.org\",\n \"is-a-chef.com\",\n \"is-a-chef.net\",\n \"is-a-chef.org\",\n \"is-a-conservative.com\",\n \"is-a-cpa.com\",\n \"is-a-cubicle-slave.com\",\n \"is-a-democrat.com\",\n \"is-a-designer.com\",\n \"is-a-doctor.com\",\n \"is-a-financialadvisor.com\",\n \"is-a-geek.com\",\n \"is-a-geek.net\",\n \"is-a-geek.org\",\n \"is-a-green.com\",\n \"is-a-guru.com\",\n \"is-a-hard-worker.com\",\n \"is-a-hunter.com\",\n \"is-a-knight.org\",\n \"is-a-landscaper.com\",\n \"is-a-lawyer.com\",\n \"is-a-liberal.com\",\n \"is-a-libertarian.com\",\n \"is-a-linux-user.org\",\n \"is-a-llama.com\",\n \"is-a-musician.com\",\n \"is-a-nascarfan.com\",\n \"is-a-nurse.com\",\n \"is-a-painter.com\",\n \"is-a-patsfan.org\",\n \"is-a-personaltrainer.com\",\n \"is-a-photographer.com\",\n \"is-a-player.com\",\n \"is-a-republican.com\",\n \"is-a-rockstar.com\",\n \"is-a-socialist.com\",\n \"is-a-soxfan.org\",\n \"is-a-student.com\",\n \"is-a-teacher.com\",\n \"is-a-techie.com\",\n \"is-a-therapist.com\",\n \"is-an-accountant.com\",\n \"is-an-actor.com\",\n \"is-an-actress.com\",\n \"is-an-anarchist.com\",\n \"is-an-artist.com\",\n \"is-an-engineer.com\",\n \"is-an-entertainer.com\",\n \"is-by.us\",\n \"is-certified.com\",\n \"is-found.org\",\n \"is-gone.com\",\n \"is-into-anime.com\",\n \"is-into-cars.com\",\n \"is-into-cartoons.com\",\n \"is-into-games.com\",\n \"is-leet.com\",\n \"is-lost.org\",\n \"is-not-certified.com\",\n \"is-saved.org\",\n \"is-slick.com\",\n \"is-uberleet.com\",\n \"is-very-bad.org\",\n \"is-very-evil.org\",\n \"is-very-good.org\",\n \"is-very-nice.org\",\n \"is-very-sweet.org\",\n \"is-with-theband.com\",\n \"isa-geek.com\",\n \"isa-geek.net\",\n \"isa-geek.org\",\n \"isa-hockeynut.com\",\n \"issmarterthanyou.com\",\n \"isteingeek.de\",\n \"istmein.de\",\n \"kicks-ass.net\",\n \"kicks-ass.org\",\n \"knowsitall.info\",\n \"land-4-sale.us\",\n \"lebtimnetz.de\",\n \"leitungsen.de\",\n \"likes-pie.com\",\n \"likescandy.com\",\n \"merseine.nu\",\n \"mine.nu\",\n \"misconfused.org\",\n \"mypets.ws\",\n \"myphotos.cc\",\n \"neat-url.com\",\n \"office-on-the.net\",\n \"on-the-web.tv\",\n \"podzone.net\",\n \"podzone.org\",\n \"readmyblog.org\",\n \"saves-the-whales.com\",\n \"scrapper-site.net\",\n \"scrapping.cc\",\n \"selfip.biz\",\n \"selfip.com\",\n \"selfip.info\",\n \"selfip.net\",\n \"selfip.org\",\n \"sells-for-less.com\",\n \"sells-for-u.com\",\n \"sells-it.net\",\n \"sellsyourhome.org\",\n \"servebbs.com\",\n \"servebbs.net\",\n \"servebbs.org\",\n \"serveftp.net\",\n \"serveftp.org\",\n \"servegame.org\",\n \"shacknet.nu\",\n \"simple-url.com\",\n \"space-to-rent.com\",\n \"stuff-4-sale.org\",\n \"stuff-4-sale.us\",\n \"teaches-yoga.com\",\n \"thruhere.net\",\n \"traeumtgerade.de\",\n \"webhop.biz\",\n \"webhop.info\",\n \"webhop.net\",\n \"webhop.org\",\n \"worse-than.tv\",\n \"writesthisblog.com\",\n \"ddnss.de\",\n \"dyn.ddnss.de\",\n \"dyndns.ddnss.de\",\n \"dyndns1.de\",\n \"dyn-ip24.de\",\n \"home-webserver.de\",\n \"dyn.home-webserver.de\",\n \"myhome-server.de\",\n \"ddnss.org\",\n \"definima.net\",\n \"definima.io\",\n \"ondigitalocean.app\",\n \"*.digitaloceanspaces.com\",\n \"bci.dnstrace.pro\",\n \"ddnsfree.com\",\n \"ddnsgeek.com\",\n \"giize.com\",\n \"gleeze.com\",\n \"kozow.com\",\n \"loseyourip.com\",\n \"ooguy.com\",\n \"theworkpc.com\",\n \"casacam.net\",\n \"dynu.net\",\n \"accesscam.org\",\n \"camdvr.org\",\n \"freeddns.org\",\n \"mywire.org\",\n \"webredirect.org\",\n \"myddns.rocks\",\n \"blogsite.xyz\",\n \"dynv6.net\",\n \"e4.cz\",\n \"eero.online\",\n \"eero-stage.online\",\n \"elementor.cloud\",\n \"elementor.cool\",\n \"en-root.fr\",\n \"mytuleap.com\",\n \"tuleap-partners.com\",\n \"encr.app\",\n \"encoreapi.com\",\n \"onred.one\",\n \"staging.onred.one\",\n \"eu.encoway.cloud\",\n \"eu.org\",\n \"al.eu.org\",\n \"asso.eu.org\",\n \"at.eu.org\",\n \"au.eu.org\",\n \"be.eu.org\",\n \"bg.eu.org\",\n \"ca.eu.org\",\n \"cd.eu.org\",\n \"ch.eu.org\",\n \"cn.eu.org\",\n \"cy.eu.org\",\n \"cz.eu.org\",\n \"de.eu.org\",\n \"dk.eu.org\",\n \"edu.eu.org\",\n \"ee.eu.org\",\n \"es.eu.org\",\n \"fi.eu.org\",\n \"fr.eu.org\",\n \"gr.eu.org\",\n \"hr.eu.org\",\n \"hu.eu.org\",\n \"ie.eu.org\",\n \"il.eu.org\",\n \"in.eu.org\",\n \"int.eu.org\",\n \"is.eu.org\",\n \"it.eu.org\",\n \"jp.eu.org\",\n \"kr.eu.org\",\n \"lt.eu.org\",\n \"lu.eu.org\",\n \"lv.eu.org\",\n \"mc.eu.org\",\n \"me.eu.org\",\n \"mk.eu.org\",\n \"mt.eu.org\",\n \"my.eu.org\",\n \"net.eu.org\",\n \"ng.eu.org\",\n \"nl.eu.org\",\n \"no.eu.org\",\n \"nz.eu.org\",\n \"paris.eu.org\",\n \"pl.eu.org\",\n \"pt.eu.org\",\n \"q-a.eu.org\",\n \"ro.eu.org\",\n \"ru.eu.org\",\n \"se.eu.org\",\n \"si.eu.org\",\n \"sk.eu.org\",\n \"tr.eu.org\",\n \"uk.eu.org\",\n \"us.eu.org\",\n \"eurodir.ru\",\n \"eu-1.evennode.com\",\n \"eu-2.evennode.com\",\n \"eu-3.evennode.com\",\n \"eu-4.evennode.com\",\n \"us-1.evennode.com\",\n \"us-2.evennode.com\",\n \"us-3.evennode.com\",\n \"us-4.evennode.com\",\n \"twmail.cc\",\n \"twmail.net\",\n \"twmail.org\",\n \"mymailer.com.tw\",\n \"url.tw\",\n \"onfabrica.com\",\n \"apps.fbsbx.com\",\n \"ru.net\",\n \"adygeya.ru\",\n \"bashkiria.ru\",\n \"bir.ru\",\n \"cbg.ru\",\n \"com.ru\",\n \"dagestan.ru\",\n \"grozny.ru\",\n \"kalmykia.ru\",\n \"kustanai.ru\",\n \"marine.ru\",\n \"mordovia.ru\",\n \"msk.ru\",\n \"mytis.ru\",\n \"nalchik.ru\",\n \"nov.ru\",\n \"pyatigorsk.ru\",\n \"spb.ru\",\n \"vladikavkaz.ru\",\n \"vladimir.ru\",\n \"abkhazia.su\",\n \"adygeya.su\",\n \"aktyubinsk.su\",\n \"arkhangelsk.su\",\n \"armenia.su\",\n \"ashgabad.su\",\n \"azerbaijan.su\",\n \"balashov.su\",\n \"bashkiria.su\",\n \"bryansk.su\",\n \"bukhara.su\",\n \"chimkent.su\",\n \"dagestan.su\",\n \"east-kazakhstan.su\",\n \"exnet.su\",\n \"georgia.su\",\n \"grozny.su\",\n \"ivanovo.su\",\n \"jambyl.su\",\n \"kalmykia.su\",\n \"kaluga.su\",\n \"karacol.su\",\n \"karaganda.su\",\n \"karelia.su\",\n \"khakassia.su\",\n \"krasnodar.su\",\n \"kurgan.su\",\n \"kustanai.su\",\n \"lenug.su\",\n \"mangyshlak.su\",\n \"mordovia.su\",\n \"msk.su\",\n \"murmansk.su\",\n \"nalchik.su\",\n \"navoi.su\",\n \"north-kazakhstan.su\",\n \"nov.su\",\n \"obninsk.su\",\n \"penza.su\",\n \"pokrovsk.su\",\n \"sochi.su\",\n \"spb.su\",\n \"tashkent.su\",\n \"termez.su\",\n \"togliatti.su\",\n \"troitsk.su\",\n \"tselinograd.su\",\n \"tula.su\",\n \"tuva.su\",\n \"vladikavkaz.su\",\n \"vladimir.su\",\n \"vologda.su\",\n \"channelsdvr.net\",\n \"u.channelsdvr.net\",\n \"edgecompute.app\",\n \"fastly-terrarium.com\",\n \"fastlylb.net\",\n \"map.fastlylb.net\",\n \"freetls.fastly.net\",\n \"map.fastly.net\",\n \"a.prod.fastly.net\",\n \"global.prod.fastly.net\",\n \"a.ssl.fastly.net\",\n \"b.ssl.fastly.net\",\n \"global.ssl.fastly.net\",\n \"fastvps-server.com\",\n \"fastvps.host\",\n \"myfast.host\",\n \"fastvps.site\",\n \"myfast.space\",\n \"fedorainfracloud.org\",\n \"fedorapeople.org\",\n \"cloud.fedoraproject.org\",\n \"app.os.fedoraproject.org\",\n \"app.os.stg.fedoraproject.org\",\n \"conn.uk\",\n \"copro.uk\",\n \"hosp.uk\",\n \"mydobiss.com\",\n \"fh-muenster.io\",\n \"filegear.me\",\n \"filegear-au.me\",\n \"filegear-de.me\",\n \"filegear-gb.me\",\n \"filegear-ie.me\",\n \"filegear-jp.me\",\n \"filegear-sg.me\",\n \"firebaseapp.com\",\n \"fireweb.app\",\n \"flap.id\",\n \"onflashdrive.app\",\n \"fldrv.com\",\n \"fly.dev\",\n \"edgeapp.net\",\n \"shw.io\",\n \"flynnhosting.net\",\n \"forgeblocks.com\",\n \"id.forgerock.io\",\n \"framer.app\",\n \"framercanvas.com\",\n \"*.frusky.de\",\n \"ravpage.co.il\",\n \"0e.vc\",\n \"freebox-os.com\",\n \"freeboxos.com\",\n \"fbx-os.fr\",\n \"fbxos.fr\",\n \"freebox-os.fr\",\n \"freeboxos.fr\",\n \"freedesktop.org\",\n \"freemyip.com\",\n \"wien.funkfeuer.at\",\n \"*.futurecms.at\",\n \"*.ex.futurecms.at\",\n \"*.in.futurecms.at\",\n \"futurehosting.at\",\n \"futuremailing.at\",\n \"*.ex.ortsinfo.at\",\n \"*.kunden.ortsinfo.at\",\n \"*.statics.cloud\",\n \"independent-commission.uk\",\n \"independent-inquest.uk\",\n \"independent-inquiry.uk\",\n \"independent-panel.uk\",\n \"independent-review.uk\",\n \"public-inquiry.uk\",\n \"royal-commission.uk\",\n \"campaign.gov.uk\",\n \"service.gov.uk\",\n \"api.gov.uk\",\n \"gehirn.ne.jp\",\n \"usercontent.jp\",\n \"gentapps.com\",\n \"gentlentapis.com\",\n \"lab.ms\",\n \"cdn-edges.net\",\n \"ghost.io\",\n \"gsj.bz\",\n \"githubusercontent.com\",\n \"githubpreview.dev\",\n \"github.io\",\n \"gitlab.io\",\n \"gitapp.si\",\n \"gitpage.si\",\n \"glitch.me\",\n \"nog.community\",\n \"co.ro\",\n \"shop.ro\",\n \"lolipop.io\",\n \"angry.jp\",\n \"babyblue.jp\",\n \"babymilk.jp\",\n \"backdrop.jp\",\n \"bambina.jp\",\n \"bitter.jp\",\n \"blush.jp\",\n \"boo.jp\",\n \"boy.jp\",\n \"boyfriend.jp\",\n \"but.jp\",\n \"candypop.jp\",\n \"capoo.jp\",\n \"catfood.jp\",\n \"cheap.jp\",\n \"chicappa.jp\",\n \"chillout.jp\",\n \"chips.jp\",\n \"chowder.jp\",\n \"chu.jp\",\n \"ciao.jp\",\n \"cocotte.jp\",\n \"coolblog.jp\",\n \"cranky.jp\",\n \"cutegirl.jp\",\n \"daa.jp\",\n \"deca.jp\",\n \"deci.jp\",\n \"digick.jp\",\n \"egoism.jp\",\n \"fakefur.jp\",\n \"fem.jp\",\n \"flier.jp\",\n \"floppy.jp\",\n \"fool.jp\",\n \"frenchkiss.jp\",\n \"girlfriend.jp\",\n \"girly.jp\",\n \"gloomy.jp\",\n \"gonna.jp\",\n \"greater.jp\",\n \"hacca.jp\",\n \"heavy.jp\",\n \"her.jp\",\n \"hiho.jp\",\n \"hippy.jp\",\n \"holy.jp\",\n \"hungry.jp\",\n \"icurus.jp\",\n \"itigo.jp\",\n \"jellybean.jp\",\n \"kikirara.jp\",\n \"kill.jp\",\n \"kilo.jp\",\n \"kuron.jp\",\n \"littlestar.jp\",\n \"lolipopmc.jp\",\n \"lolitapunk.jp\",\n \"lomo.jp\",\n \"lovepop.jp\",\n \"lovesick.jp\",\n \"main.jp\",\n \"mods.jp\",\n \"mond.jp\",\n \"mongolian.jp\",\n \"moo.jp\",\n \"namaste.jp\",\n \"nikita.jp\",\n \"nobushi.jp\",\n \"noor.jp\",\n \"oops.jp\",\n \"parallel.jp\",\n \"parasite.jp\",\n \"pecori.jp\",\n \"peewee.jp\",\n \"penne.jp\",\n \"pepper.jp\",\n \"perma.jp\",\n \"pigboat.jp\",\n \"pinoko.jp\",\n \"punyu.jp\",\n \"pupu.jp\",\n \"pussycat.jp\",\n \"pya.jp\",\n \"raindrop.jp\",\n \"readymade.jp\",\n \"sadist.jp\",\n \"schoolbus.jp\",\n \"secret.jp\",\n \"staba.jp\",\n \"stripper.jp\",\n \"sub.jp\",\n \"sunnyday.jp\",\n \"thick.jp\",\n \"tonkotsu.jp\",\n \"under.jp\",\n \"upper.jp\",\n \"velvet.jp\",\n \"verse.jp\",\n \"versus.jp\",\n \"vivian.jp\",\n \"watson.jp\",\n \"weblike.jp\",\n \"whitesnow.jp\",\n \"zombie.jp\",\n \"heteml.net\",\n \"cloudapps.digital\",\n \"london.cloudapps.digital\",\n \"pymnt.uk\",\n \"homeoffice.gov.uk\",\n \"ro.im\",\n \"goip.de\",\n \"run.app\",\n \"a.run.app\",\n \"web.app\",\n \"*.0emm.com\",\n \"appspot.com\",\n \"*.r.appspot.com\",\n \"codespot.com\",\n \"googleapis.com\",\n \"googlecode.com\",\n \"pagespeedmobilizer.com\",\n \"publishproxy.com\",\n \"withgoogle.com\",\n \"withyoutube.com\",\n \"*.gateway.dev\",\n \"cloud.goog\",\n \"translate.goog\",\n \"*.usercontent.goog\",\n \"cloudfunctions.net\",\n \"blogspot.ae\",\n \"blogspot.al\",\n \"blogspot.am\",\n \"blogspot.ba\",\n \"blogspot.be\",\n \"blogspot.bg\",\n \"blogspot.bj\",\n \"blogspot.ca\",\n \"blogspot.cf\",\n \"blogspot.ch\",\n \"blogspot.cl\",\n \"blogspot.co.at\",\n \"blogspot.co.id\",\n \"blogspot.co.il\",\n \"blogspot.co.ke\",\n \"blogspot.co.nz\",\n \"blogspot.co.uk\",\n \"blogspot.co.za\",\n \"blogspot.com\",\n \"blogspot.com.ar\",\n \"blogspot.com.au\",\n \"blogspot.com.br\",\n \"blogspot.com.by\",\n \"blogspot.com.co\",\n \"blogspot.com.cy\",\n \"blogspot.com.ee\",\n \"blogspot.com.eg\",\n \"blogspot.com.es\",\n \"blogspot.com.mt\",\n \"blogspot.com.ng\",\n \"blogspot.com.tr\",\n \"blogspot.com.uy\",\n \"blogspot.cv\",\n \"blogspot.cz\",\n \"blogspot.de\",\n \"blogspot.dk\",\n \"blogspot.fi\",\n \"blogspot.fr\",\n \"blogspot.gr\",\n \"blogspot.hk\",\n \"blogspot.hr\",\n \"blogspot.hu\",\n \"blogspot.ie\",\n \"blogspot.in\",\n \"blogspot.is\",\n \"blogspot.it\",\n \"blogspot.jp\",\n \"blogspot.kr\",\n \"blogspot.li\",\n \"blogspot.lt\",\n \"blogspot.lu\",\n \"blogspot.md\",\n \"blogspot.mk\",\n \"blogspot.mr\",\n \"blogspot.mx\",\n \"blogspot.my\",\n \"blogspot.nl\",\n \"blogspot.no\",\n \"blogspot.pe\",\n \"blogspot.pt\",\n \"blogspot.qa\",\n \"blogspot.re\",\n \"blogspot.ro\",\n \"blogspot.rs\",\n \"blogspot.ru\",\n \"blogspot.se\",\n \"blogspot.sg\",\n \"blogspot.si\",\n \"blogspot.sk\",\n \"blogspot.sn\",\n \"blogspot.td\",\n \"blogspot.tw\",\n \"blogspot.ug\",\n \"blogspot.vn\",\n \"goupile.fr\",\n \"gov.nl\",\n \"awsmppl.com\",\n \"g\\xFCnstigbestellen.de\",\n \"g\\xFCnstigliefern.de\",\n \"fin.ci\",\n \"free.hr\",\n \"caa.li\",\n \"ua.rs\",\n \"conf.se\",\n \"hs.zone\",\n \"hs.run\",\n \"hashbang.sh\",\n \"hasura.app\",\n \"hasura-app.io\",\n \"pages.it.hs-heilbronn.de\",\n \"hepforge.org\",\n \"herokuapp.com\",\n \"herokussl.com\",\n \"ravendb.cloud\",\n \"myravendb.com\",\n \"ravendb.community\",\n \"ravendb.me\",\n \"development.run\",\n \"ravendb.run\",\n \"homesklep.pl\",\n \"secaas.hk\",\n \"hoplix.shop\",\n \"orx.biz\",\n \"biz.gl\",\n \"col.ng\",\n \"firm.ng\",\n \"gen.ng\",\n \"ltd.ng\",\n \"ngo.ng\",\n \"edu.scot\",\n \"sch.so\",\n \"hostyhosting.io\",\n \"h\\xE4kkinen.fi\",\n \"*.moonscale.io\",\n \"moonscale.net\",\n \"iki.fi\",\n \"ibxos.it\",\n \"iliadboxos.it\",\n \"impertrixcdn.com\",\n \"impertrix.com\",\n \"smushcdn.com\",\n \"wphostedmail.com\",\n \"wpmucdn.com\",\n \"tempurl.host\",\n \"wpmudev.host\",\n \"dyn-berlin.de\",\n \"in-berlin.de\",\n \"in-brb.de\",\n \"in-butter.de\",\n \"in-dsl.de\",\n \"in-dsl.net\",\n \"in-dsl.org\",\n \"in-vpn.de\",\n \"in-vpn.net\",\n \"in-vpn.org\",\n \"biz.at\",\n \"info.at\",\n \"info.cx\",\n \"ac.leg.br\",\n \"al.leg.br\",\n \"am.leg.br\",\n \"ap.leg.br\",\n \"ba.leg.br\",\n \"ce.leg.br\",\n \"df.leg.br\",\n \"es.leg.br\",\n \"go.leg.br\",\n \"ma.leg.br\",\n \"mg.leg.br\",\n \"ms.leg.br\",\n \"mt.leg.br\",\n \"pa.leg.br\",\n \"pb.leg.br\",\n \"pe.leg.br\",\n \"pi.leg.br\",\n \"pr.leg.br\",\n \"rj.leg.br\",\n \"rn.leg.br\",\n \"ro.leg.br\",\n \"rr.leg.br\",\n \"rs.leg.br\",\n \"sc.leg.br\",\n \"se.leg.br\",\n \"sp.leg.br\",\n \"to.leg.br\",\n \"pixolino.com\",\n \"na4u.ru\",\n \"iopsys.se\",\n \"ipifony.net\",\n \"iservschule.de\",\n \"mein-iserv.de\",\n \"schulplattform.de\",\n \"schulserver.de\",\n \"test-iserv.de\",\n \"iserv.dev\",\n \"iobb.net\",\n \"mel.cloudlets.com.au\",\n \"cloud.interhostsolutions.be\",\n \"users.scale.virtualcloud.com.br\",\n \"mycloud.by\",\n \"alp1.ae.flow.ch\",\n \"appengine.flow.ch\",\n \"es-1.axarnet.cloud\",\n \"diadem.cloud\",\n \"vip.jelastic.cloud\",\n \"jele.cloud\",\n \"it1.eur.aruba.jenv-aruba.cloud\",\n \"it1.jenv-aruba.cloud\",\n \"keliweb.cloud\",\n \"cs.keliweb.cloud\",\n \"oxa.cloud\",\n \"tn.oxa.cloud\",\n \"uk.oxa.cloud\",\n \"primetel.cloud\",\n \"uk.primetel.cloud\",\n \"ca.reclaim.cloud\",\n \"uk.reclaim.cloud\",\n \"us.reclaim.cloud\",\n \"ch.trendhosting.cloud\",\n \"de.trendhosting.cloud\",\n \"jele.club\",\n \"amscompute.com\",\n \"clicketcloud.com\",\n \"dopaas.com\",\n \"hidora.com\",\n \"paas.hosted-by-previder.com\",\n \"rag-cloud.hosteur.com\",\n \"rag-cloud-ch.hosteur.com\",\n \"jcloud.ik-server.com\",\n \"jcloud-ver-jpc.ik-server.com\",\n \"demo.jelastic.com\",\n \"kilatiron.com\",\n \"paas.massivegrid.com\",\n \"jed.wafaicloud.com\",\n \"lon.wafaicloud.com\",\n \"ryd.wafaicloud.com\",\n \"j.scaleforce.com.cy\",\n \"jelastic.dogado.eu\",\n \"fi.cloudplatform.fi\",\n \"demo.datacenter.fi\",\n \"paas.datacenter.fi\",\n \"jele.host\",\n \"mircloud.host\",\n \"paas.beebyte.io\",\n \"sekd1.beebyteapp.io\",\n \"jele.io\",\n \"cloud-fr1.unispace.io\",\n \"jc.neen.it\",\n \"cloud.jelastic.open.tim.it\",\n \"jcloud.kz\",\n \"upaas.kazteleport.kz\",\n \"cloudjiffy.net\",\n \"fra1-de.cloudjiffy.net\",\n \"west1-us.cloudjiffy.net\",\n \"jls-sto1.elastx.net\",\n \"jls-sto2.elastx.net\",\n \"jls-sto3.elastx.net\",\n \"faststacks.net\",\n \"fr-1.paas.massivegrid.net\",\n \"lon-1.paas.massivegrid.net\",\n \"lon-2.paas.massivegrid.net\",\n \"ny-1.paas.massivegrid.net\",\n \"ny-2.paas.massivegrid.net\",\n \"sg-1.paas.massivegrid.net\",\n \"jelastic.saveincloud.net\",\n \"nordeste-idc.saveincloud.net\",\n \"j.scaleforce.net\",\n \"jelastic.tsukaeru.net\",\n \"sdscloud.pl\",\n \"unicloud.pl\",\n \"mircloud.ru\",\n \"jelastic.regruhosting.ru\",\n \"enscaled.sg\",\n \"jele.site\",\n \"jelastic.team\",\n \"orangecloud.tn\",\n \"j.layershift.co.uk\",\n \"phx.enscaled.us\",\n \"mircloud.us\",\n \"myjino.ru\",\n \"*.hosting.myjino.ru\",\n \"*.landing.myjino.ru\",\n \"*.spectrum.myjino.ru\",\n \"*.vps.myjino.ru\",\n \"jotelulu.cloud\",\n \"*.triton.zone\",\n \"*.cns.joyent.com\",\n \"js.org\",\n \"kaas.gg\",\n \"khplay.nl\",\n \"ktistory.com\",\n \"kapsi.fi\",\n \"keymachine.de\",\n \"kinghost.net\",\n \"uni5.net\",\n \"knightpoint.systems\",\n \"koobin.events\",\n \"oya.to\",\n \"kuleuven.cloud\",\n \"ezproxy.kuleuven.be\",\n \"co.krd\",\n \"edu.krd\",\n \"krellian.net\",\n \"webthings.io\",\n \"git-repos.de\",\n \"lcube-server.de\",\n \"svn-repos.de\",\n \"leadpages.co\",\n \"lpages.co\",\n \"lpusercontent.com\",\n \"lelux.site\",\n \"co.business\",\n \"co.education\",\n \"co.events\",\n \"co.financial\",\n \"co.network\",\n \"co.place\",\n \"co.technology\",\n \"app.lmpm.com\",\n \"linkyard.cloud\",\n \"linkyard-cloud.ch\",\n \"members.linode.com\",\n \"*.nodebalancer.linode.com\",\n \"*.linodeobjects.com\",\n \"ip.linodeusercontent.com\",\n \"we.bs\",\n \"*.user.localcert.dev\",\n \"localzone.xyz\",\n \"loginline.app\",\n \"loginline.dev\",\n \"loginline.io\",\n \"loginline.services\",\n \"loginline.site\",\n \"servers.run\",\n \"lohmus.me\",\n \"krasnik.pl\",\n \"leczna.pl\",\n \"lubartow.pl\",\n \"lublin.pl\",\n \"poniatowa.pl\",\n \"swidnik.pl\",\n \"glug.org.uk\",\n \"lug.org.uk\",\n \"lugs.org.uk\",\n \"barsy.bg\",\n \"barsy.co.uk\",\n \"barsyonline.co.uk\",\n \"barsycenter.com\",\n \"barsyonline.com\",\n \"barsy.club\",\n \"barsy.de\",\n \"barsy.eu\",\n \"barsy.in\",\n \"barsy.info\",\n \"barsy.io\",\n \"barsy.me\",\n \"barsy.menu\",\n \"barsy.mobi\",\n \"barsy.net\",\n \"barsy.online\",\n \"barsy.org\",\n \"barsy.pro\",\n \"barsy.pub\",\n \"barsy.ro\",\n \"barsy.shop\",\n \"barsy.site\",\n \"barsy.support\",\n \"barsy.uk\",\n \"*.magentosite.cloud\",\n \"mayfirst.info\",\n \"mayfirst.org\",\n \"hb.cldmail.ru\",\n \"cn.vu\",\n \"mazeplay.com\",\n \"mcpe.me\",\n \"mcdir.me\",\n \"mcdir.ru\",\n \"mcpre.ru\",\n \"vps.mcdir.ru\",\n \"mediatech.by\",\n \"mediatech.dev\",\n \"hra.health\",\n \"miniserver.com\",\n \"memset.net\",\n \"messerli.app\",\n \"*.cloud.metacentrum.cz\",\n \"custom.metacentrum.cz\",\n \"flt.cloud.muni.cz\",\n \"usr.cloud.muni.cz\",\n \"meteorapp.com\",\n \"eu.meteorapp.com\",\n \"co.pl\",\n \"*.azurecontainer.io\",\n \"azurewebsites.net\",\n \"azure-mobile.net\",\n \"cloudapp.net\",\n \"azurestaticapps.net\",\n \"1.azurestaticapps.net\",\n \"centralus.azurestaticapps.net\",\n \"eastasia.azurestaticapps.net\",\n \"eastus2.azurestaticapps.net\",\n \"westeurope.azurestaticapps.net\",\n \"westus2.azurestaticapps.net\",\n \"csx.cc\",\n \"mintere.site\",\n \"forte.id\",\n \"mozilla-iot.org\",\n \"bmoattachments.org\",\n \"net.ru\",\n \"org.ru\",\n \"pp.ru\",\n \"hostedpi.com\",\n \"customer.mythic-beasts.com\",\n \"caracal.mythic-beasts.com\",\n \"fentiger.mythic-beasts.com\",\n \"lynx.mythic-beasts.com\",\n \"ocelot.mythic-beasts.com\",\n \"oncilla.mythic-beasts.com\",\n \"onza.mythic-beasts.com\",\n \"sphinx.mythic-beasts.com\",\n \"vs.mythic-beasts.com\",\n \"x.mythic-beasts.com\",\n \"yali.mythic-beasts.com\",\n \"cust.retrosnub.co.uk\",\n \"ui.nabu.casa\",\n \"pony.club\",\n \"of.fashion\",\n \"in.london\",\n \"of.london\",\n \"from.marketing\",\n \"with.marketing\",\n \"for.men\",\n \"repair.men\",\n \"and.mom\",\n \"for.mom\",\n \"for.one\",\n \"under.one\",\n \"for.sale\",\n \"that.win\",\n \"from.work\",\n \"to.work\",\n \"cloud.nospamproxy.com\",\n \"netlify.app\",\n \"4u.com\",\n \"ngrok.io\",\n \"nh-serv.co.uk\",\n \"nfshost.com\",\n \"*.developer.app\",\n \"noop.app\",\n \"*.northflank.app\",\n \"*.build.run\",\n \"*.code.run\",\n \"*.database.run\",\n \"*.migration.run\",\n \"noticeable.news\",\n \"dnsking.ch\",\n \"mypi.co\",\n \"n4t.co\",\n \"001www.com\",\n \"ddnslive.com\",\n \"myiphost.com\",\n \"forumz.info\",\n \"16-b.it\",\n \"32-b.it\",\n \"64-b.it\",\n \"soundcast.me\",\n \"tcp4.me\",\n \"dnsup.net\",\n \"hicam.net\",\n \"now-dns.net\",\n \"ownip.net\",\n \"vpndns.net\",\n \"dynserv.org\",\n \"now-dns.org\",\n \"x443.pw\",\n \"now-dns.top\",\n \"ntdll.top\",\n \"freeddns.us\",\n \"crafting.xyz\",\n \"zapto.xyz\",\n \"nsupdate.info\",\n \"nerdpol.ovh\",\n \"blogsyte.com\",\n \"brasilia.me\",\n \"cable-modem.org\",\n \"ciscofreak.com\",\n \"collegefan.org\",\n \"couchpotatofries.org\",\n \"damnserver.com\",\n \"ddns.me\",\n \"ditchyourip.com\",\n \"dnsfor.me\",\n \"dnsiskinky.com\",\n \"dvrcam.info\",\n \"dynns.com\",\n \"eating-organic.net\",\n \"fantasyleague.cc\",\n \"geekgalaxy.com\",\n \"golffan.us\",\n \"health-carereform.com\",\n \"homesecuritymac.com\",\n \"homesecuritypc.com\",\n \"hopto.me\",\n \"ilovecollege.info\",\n \"loginto.me\",\n \"mlbfan.org\",\n \"mmafan.biz\",\n \"myactivedirectory.com\",\n \"mydissent.net\",\n \"myeffect.net\",\n \"mymediapc.net\",\n \"mypsx.net\",\n \"mysecuritycamera.com\",\n \"mysecuritycamera.net\",\n \"mysecuritycamera.org\",\n \"net-freaks.com\",\n \"nflfan.org\",\n \"nhlfan.net\",\n \"no-ip.ca\",\n \"no-ip.co.uk\",\n \"no-ip.net\",\n \"noip.us\",\n \"onthewifi.com\",\n \"pgafan.net\",\n \"point2this.com\",\n \"pointto.us\",\n \"privatizehealthinsurance.net\",\n \"quicksytes.com\",\n \"read-books.org\",\n \"securitytactics.com\",\n \"serveexchange.com\",\n \"servehumour.com\",\n \"servep2p.com\",\n \"servesarcasm.com\",\n \"stufftoread.com\",\n \"ufcfan.org\",\n \"unusualperson.com\",\n \"workisboring.com\",\n \"3utilities.com\",\n \"bounceme.net\",\n \"ddns.net\",\n \"ddnsking.com\",\n \"gotdns.ch\",\n \"hopto.org\",\n \"myftp.biz\",\n \"myftp.org\",\n \"myvnc.com\",\n \"no-ip.biz\",\n \"no-ip.info\",\n \"no-ip.org\",\n \"noip.me\",\n \"redirectme.net\",\n \"servebeer.com\",\n \"serveblog.net\",\n \"servecounterstrike.com\",\n \"serveftp.com\",\n \"servegame.com\",\n \"servehalflife.com\",\n \"servehttp.com\",\n \"serveirc.com\",\n \"serveminecraft.net\",\n \"servemp3.com\",\n \"servepics.com\",\n \"servequake.com\",\n \"sytes.net\",\n \"webhop.me\",\n \"zapto.org\",\n \"stage.nodeart.io\",\n \"pcloud.host\",\n \"nyc.mn\",\n \"static.observableusercontent.com\",\n \"cya.gg\",\n \"omg.lol\",\n \"cloudycluster.net\",\n \"omniwe.site\",\n \"service.one\",\n \"nid.io\",\n \"opensocial.site\",\n \"opencraft.hosting\",\n \"orsites.com\",\n \"operaunite.com\",\n \"tech.orange\",\n \"authgear-staging.com\",\n \"authgearapps.com\",\n \"skygearapp.com\",\n \"outsystemscloud.com\",\n \"*.webpaas.ovh.net\",\n \"*.hosting.ovh.net\",\n \"ownprovider.com\",\n \"own.pm\",\n \"*.owo.codes\",\n \"ox.rs\",\n \"oy.lc\",\n \"pgfog.com\",\n \"pagefrontapp.com\",\n \"pagexl.com\",\n \"*.paywhirl.com\",\n \"bar0.net\",\n \"bar1.net\",\n \"bar2.net\",\n \"rdv.to\",\n \"art.pl\",\n \"gliwice.pl\",\n \"krakow.pl\",\n \"poznan.pl\",\n \"wroc.pl\",\n \"zakopane.pl\",\n \"pantheonsite.io\",\n \"gotpantheon.com\",\n \"mypep.link\",\n \"perspecta.cloud\",\n \"lk3.ru\",\n \"on-web.fr\",\n \"bc.platform.sh\",\n \"ent.platform.sh\",\n \"eu.platform.sh\",\n \"us.platform.sh\",\n \"*.platformsh.site\",\n \"*.tst.site\",\n \"platter-app.com\",\n \"platter-app.dev\",\n \"platterp.us\",\n \"pdns.page\",\n \"plesk.page\",\n \"pleskns.com\",\n \"dyn53.io\",\n \"onporter.run\",\n \"co.bn\",\n \"postman-echo.com\",\n \"pstmn.io\",\n \"mock.pstmn.io\",\n \"httpbin.org\",\n \"prequalifyme.today\",\n \"xen.prgmr.com\",\n \"priv.at\",\n \"prvcy.page\",\n \"*.dweb.link\",\n \"protonet.io\",\n \"chirurgiens-dentistes-en-france.fr\",\n \"byen.site\",\n \"pubtls.org\",\n \"pythonanywhere.com\",\n \"eu.pythonanywhere.com\",\n \"qoto.io\",\n \"qualifioapp.com\",\n \"qbuser.com\",\n \"cloudsite.builders\",\n \"instances.spawn.cc\",\n \"instantcloud.cn\",\n \"ras.ru\",\n \"qa2.com\",\n \"qcx.io\",\n \"*.sys.qcx.io\",\n \"dev-myqnapcloud.com\",\n \"alpha-myqnapcloud.com\",\n \"myqnapcloud.com\",\n \"*.quipelements.com\",\n \"vapor.cloud\",\n \"vaporcloud.io\",\n \"rackmaze.com\",\n \"rackmaze.net\",\n \"g.vbrplsbx.io\",\n \"*.on-k3s.io\",\n \"*.on-rancher.cloud\",\n \"*.on-rio.io\",\n \"readthedocs.io\",\n \"rhcloud.com\",\n \"app.render.com\",\n \"onrender.com\",\n \"repl.co\",\n \"id.repl.co\",\n \"repl.run\",\n \"resindevice.io\",\n \"devices.resinstaging.io\",\n \"hzc.io\",\n \"wellbeingzone.eu\",\n \"wellbeingzone.co.uk\",\n \"adimo.co.uk\",\n \"itcouldbewor.se\",\n \"git-pages.rit.edu\",\n \"rocky.page\",\n \"\\u0431\\u0438\\u0437.\\u0440\\u0443\\u0441\",\n \"\\u043A\\u043E\\u043C.\\u0440\\u0443\\u0441\",\n \"\\u043A\\u0440\\u044B\\u043C.\\u0440\\u0443\\u0441\",\n \"\\u043C\\u0438\\u0440.\\u0440\\u0443\\u0441\",\n \"\\u043C\\u0441\\u043A.\\u0440\\u0443\\u0441\",\n \"\\u043E\\u0440\\u0433.\\u0440\\u0443\\u0441\",\n \"\\u0441\\u0430\\u043C\\u0430\\u0440\\u0430.\\u0440\\u0443\\u0441\",\n \"\\u0441\\u043E\\u0447\\u0438.\\u0440\\u0443\\u0441\",\n \"\\u0441\\u043F\\u0431.\\u0440\\u0443\\u0441\",\n \"\\u044F.\\u0440\\u0443\\u0441\",\n \"*.builder.code.com\",\n \"*.dev-builder.code.com\",\n \"*.stg-builder.code.com\",\n \"sandcats.io\",\n \"logoip.de\",\n \"logoip.com\",\n \"fr-par-1.baremetal.scw.cloud\",\n \"fr-par-2.baremetal.scw.cloud\",\n \"nl-ams-1.baremetal.scw.cloud\",\n \"fnc.fr-par.scw.cloud\",\n \"functions.fnc.fr-par.scw.cloud\",\n \"k8s.fr-par.scw.cloud\",\n \"nodes.k8s.fr-par.scw.cloud\",\n \"s3.fr-par.scw.cloud\",\n \"s3-website.fr-par.scw.cloud\",\n \"whm.fr-par.scw.cloud\",\n \"priv.instances.scw.cloud\",\n \"pub.instances.scw.cloud\",\n \"k8s.scw.cloud\",\n \"k8s.nl-ams.scw.cloud\",\n \"nodes.k8s.nl-ams.scw.cloud\",\n \"s3.nl-ams.scw.cloud\",\n \"s3-website.nl-ams.scw.cloud\",\n \"whm.nl-ams.scw.cloud\",\n \"k8s.pl-waw.scw.cloud\",\n \"nodes.k8s.pl-waw.scw.cloud\",\n \"s3.pl-waw.scw.cloud\",\n \"s3-website.pl-waw.scw.cloud\",\n \"scalebook.scw.cloud\",\n \"smartlabeling.scw.cloud\",\n \"dedibox.fr\",\n \"schokokeks.net\",\n \"gov.scot\",\n \"service.gov.scot\",\n \"scrysec.com\",\n \"firewall-gateway.com\",\n \"firewall-gateway.de\",\n \"my-gateway.de\",\n \"my-router.de\",\n \"spdns.de\",\n \"spdns.eu\",\n \"firewall-gateway.net\",\n \"my-firewall.org\",\n \"myfirewall.org\",\n \"spdns.org\",\n \"seidat.net\",\n \"sellfy.store\",\n \"senseering.net\",\n \"minisite.ms\",\n \"magnet.page\",\n \"biz.ua\",\n \"co.ua\",\n \"pp.ua\",\n \"shiftcrypto.dev\",\n \"shiftcrypto.io\",\n \"shiftedit.io\",\n \"myshopblocks.com\",\n \"myshopify.com\",\n \"shopitsite.com\",\n \"shopware.store\",\n \"mo-siemens.io\",\n \"1kapp.com\",\n \"appchizi.com\",\n \"applinzi.com\",\n \"sinaapp.com\",\n \"vipsinaapp.com\",\n \"siteleaf.net\",\n \"bounty-full.com\",\n \"alpha.bounty-full.com\",\n \"beta.bounty-full.com\",\n \"small-web.org\",\n \"vp4.me\",\n \"try-snowplow.com\",\n \"srht.site\",\n \"stackhero-network.com\",\n \"musician.io\",\n \"novecore.site\",\n \"static.land\",\n \"dev.static.land\",\n \"sites.static.land\",\n \"storebase.store\",\n \"vps-host.net\",\n \"atl.jelastic.vps-host.net\",\n \"njs.jelastic.vps-host.net\",\n \"ric.jelastic.vps-host.net\",\n \"playstation-cloud.com\",\n \"apps.lair.io\",\n \"*.stolos.io\",\n \"spacekit.io\",\n \"customer.speedpartner.de\",\n \"myspreadshop.at\",\n \"myspreadshop.com.au\",\n \"myspreadshop.be\",\n \"myspreadshop.ca\",\n \"myspreadshop.ch\",\n \"myspreadshop.com\",\n \"myspreadshop.de\",\n \"myspreadshop.dk\",\n \"myspreadshop.es\",\n \"myspreadshop.fi\",\n \"myspreadshop.fr\",\n \"myspreadshop.ie\",\n \"myspreadshop.it\",\n \"myspreadshop.net\",\n \"myspreadshop.nl\",\n \"myspreadshop.no\",\n \"myspreadshop.pl\",\n \"myspreadshop.se\",\n \"myspreadshop.co.uk\",\n \"api.stdlib.com\",\n \"storj.farm\",\n \"utwente.io\",\n \"soc.srcf.net\",\n \"user.srcf.net\",\n \"temp-dns.com\",\n \"supabase.co\",\n \"supabase.in\",\n \"supabase.net\",\n \"su.paba.se\",\n \"*.s5y.io\",\n \"*.sensiosite.cloud\",\n \"syncloud.it\",\n \"dscloud.biz\",\n \"direct.quickconnect.cn\",\n \"dsmynas.com\",\n \"familyds.com\",\n \"diskstation.me\",\n \"dscloud.me\",\n \"i234.me\",\n \"myds.me\",\n \"synology.me\",\n \"dscloud.mobi\",\n \"dsmynas.net\",\n \"familyds.net\",\n \"dsmynas.org\",\n \"familyds.org\",\n \"vpnplus.to\",\n \"direct.quickconnect.to\",\n \"tabitorder.co.il\",\n \"taifun-dns.de\",\n \"beta.tailscale.net\",\n \"ts.net\",\n \"gda.pl\",\n \"gdansk.pl\",\n \"gdynia.pl\",\n \"med.pl\",\n \"sopot.pl\",\n \"site.tb-hosting.com\",\n \"edugit.io\",\n \"s3.teckids.org\",\n \"telebit.app\",\n \"telebit.io\",\n \"*.telebit.xyz\",\n \"gwiddle.co.uk\",\n \"*.firenet.ch\",\n \"*.svc.firenet.ch\",\n \"reservd.com\",\n \"thingdustdata.com\",\n \"cust.dev.thingdust.io\",\n \"cust.disrec.thingdust.io\",\n \"cust.prod.thingdust.io\",\n \"cust.testing.thingdust.io\",\n \"reservd.dev.thingdust.io\",\n \"reservd.disrec.thingdust.io\",\n \"reservd.testing.thingdust.io\",\n \"tickets.io\",\n \"arvo.network\",\n \"azimuth.network\",\n \"tlon.network\",\n \"torproject.net\",\n \"pages.torproject.net\",\n \"bloxcms.com\",\n \"townnews-staging.com\",\n \"tbits.me\",\n \"12hp.at\",\n \"2ix.at\",\n \"4lima.at\",\n \"lima-city.at\",\n \"12hp.ch\",\n \"2ix.ch\",\n \"4lima.ch\",\n \"lima-city.ch\",\n \"trafficplex.cloud\",\n \"de.cool\",\n \"12hp.de\",\n \"2ix.de\",\n \"4lima.de\",\n \"lima-city.de\",\n \"1337.pictures\",\n \"clan.rip\",\n \"lima-city.rocks\",\n \"webspace.rocks\",\n \"lima.zone\",\n \"*.transurl.be\",\n \"*.transurl.eu\",\n \"*.transurl.nl\",\n \"site.transip.me\",\n \"tuxfamily.org\",\n \"dd-dns.de\",\n \"diskstation.eu\",\n \"diskstation.org\",\n \"dray-dns.de\",\n \"draydns.de\",\n \"dyn-vpn.de\",\n \"dynvpn.de\",\n \"mein-vigor.de\",\n \"my-vigor.de\",\n \"my-wan.de\",\n \"syno-ds.de\",\n \"synology-diskstation.de\",\n \"synology-ds.de\",\n \"typedream.app\",\n \"pro.typeform.com\",\n \"uber.space\",\n \"*.uberspace.de\",\n \"hk.com\",\n \"hk.org\",\n \"ltd.hk\",\n \"inc.hk\",\n \"name.pm\",\n \"sch.tf\",\n \"biz.wf\",\n \"sch.wf\",\n \"org.yt\",\n \"virtualuser.de\",\n \"virtual-user.de\",\n \"upli.io\",\n \"urown.cloud\",\n \"dnsupdate.info\",\n \"lib.de.us\",\n \"2038.io\",\n \"vercel.app\",\n \"vercel.dev\",\n \"now.sh\",\n \"router.management\",\n \"v-info.info\",\n \"voorloper.cloud\",\n \"neko.am\",\n \"nyaa.am\",\n \"be.ax\",\n \"cat.ax\",\n \"es.ax\",\n \"eu.ax\",\n \"gg.ax\",\n \"mc.ax\",\n \"us.ax\",\n \"xy.ax\",\n \"nl.ci\",\n \"xx.gl\",\n \"app.gp\",\n \"blog.gt\",\n \"de.gt\",\n \"to.gt\",\n \"be.gy\",\n \"cc.hn\",\n \"blog.kg\",\n \"io.kg\",\n \"jp.kg\",\n \"tv.kg\",\n \"uk.kg\",\n \"us.kg\",\n \"de.ls\",\n \"at.md\",\n \"de.md\",\n \"jp.md\",\n \"to.md\",\n \"indie.porn\",\n \"vxl.sh\",\n \"ch.tc\",\n \"me.tc\",\n \"we.tc\",\n \"nyan.to\",\n \"at.vg\",\n \"blog.vu\",\n \"dev.vu\",\n \"me.vu\",\n \"v.ua\",\n \"*.vultrobjects.com\",\n \"wafflecell.com\",\n \"*.webhare.dev\",\n \"reserve-online.net\",\n \"reserve-online.com\",\n \"bookonline.app\",\n \"hotelwithflight.com\",\n \"wedeploy.io\",\n \"wedeploy.me\",\n \"wedeploy.sh\",\n \"remotewd.com\",\n \"pages.wiardweb.com\",\n \"wmflabs.org\",\n \"toolforge.org\",\n \"wmcloud.org\",\n \"panel.gg\",\n \"daemon.panel.gg\",\n \"messwithdns.com\",\n \"woltlab-demo.com\",\n \"myforum.community\",\n \"community-pro.de\",\n \"diskussionsbereich.de\",\n \"community-pro.net\",\n \"meinforum.net\",\n \"affinitylottery.org.uk\",\n \"raffleentry.org.uk\",\n \"weeklylottery.org.uk\",\n \"wpenginepowered.com\",\n \"js.wpenginepowered.com\",\n \"wixsite.com\",\n \"editorx.io\",\n \"half.host\",\n \"xnbay.com\",\n \"u2.xnbay.com\",\n \"u2-local.xnbay.com\",\n \"cistron.nl\",\n \"demon.nl\",\n \"xs4all.space\",\n \"yandexcloud.net\",\n \"storage.yandexcloud.net\",\n \"website.yandexcloud.net\",\n \"official.academy\",\n \"yolasite.com\",\n \"ybo.faith\",\n \"yombo.me\",\n \"homelink.one\",\n \"ybo.party\",\n \"ybo.review\",\n \"ybo.science\",\n \"ybo.trade\",\n \"ynh.fr\",\n \"nohost.me\",\n \"noho.st\",\n \"za.net\",\n \"za.org\",\n \"bss.design\",\n \"basicserver.io\",\n \"virtualserver.io\",\n \"enterprisecloud.nu\"\n ];\n }\n});\n\n// node_modules/psl/index.js\nvar require_psl = __commonJS({\n \"node_modules/psl/index.js\"(exports) {\n \"use strict\";\n var Punycode = require_punycode();\n var internals = {};\n internals.rules = require_rules().map(function(rule) {\n return {\n rule,\n suffix: rule.replace(/^(\\*\\.|\\!)/, \"\"),\n punySuffix: -1,\n wildcard: rule.charAt(0) === \"*\",\n exception: rule.charAt(0) === \"!\"\n };\n });\n internals.endsWith = function(str, suffix) {\n return str.indexOf(suffix, str.length - suffix.length) !== -1;\n };\n internals.findRule = function(domain) {\n var punyDomain = Punycode.toASCII(domain);\n return internals.rules.reduce(function(memo, rule) {\n if (rule.punySuffix === -1) {\n rule.punySuffix = Punycode.toASCII(rule.suffix);\n }\n if (!internals.endsWith(punyDomain, \".\" + rule.punySuffix) && punyDomain !== rule.punySuffix) {\n return memo;\n }\n return rule;\n }, null);\n };\n exports.errorCodes = {\n DOMAIN_TOO_SHORT: \"Domain name too short.\",\n DOMAIN_TOO_LONG: \"Domain name too long. It should be no more than 255 chars.\",\n LABEL_STARTS_WITH_DASH: \"Domain name label can not start with a dash.\",\n LABEL_ENDS_WITH_DASH: \"Domain name label can not end with a dash.\",\n LABEL_TOO_LONG: \"Domain name label should be at most 63 chars long.\",\n LABEL_TOO_SHORT: \"Domain name label should be at least 1 character long.\",\n LABEL_INVALID_CHARS: \"Domain name label can only contain alphanumeric characters or dashes.\"\n };\n internals.validate = function(input) {\n var ascii = Punycode.toASCII(input);\n if (ascii.length < 1) {\n return \"DOMAIN_TOO_SHORT\";\n }\n if (ascii.length > 255) {\n return \"DOMAIN_TOO_LONG\";\n }\n var labels = ascii.split(\".\");\n var label;\n for (var i = 0; i < labels.length; ++i) {\n label = labels[i];\n if (!label.length) {\n return \"LABEL_TOO_SHORT\";\n }\n if (label.length > 63) {\n return \"LABEL_TOO_LONG\";\n }\n if (label.charAt(0) === \"-\") {\n return \"LABEL_STARTS_WITH_DASH\";\n }\n if (label.charAt(label.length - 1) === \"-\") {\n return \"LABEL_ENDS_WITH_DASH\";\n }\n if (!/^[a-z0-9\\-]+$/.test(label)) {\n return \"LABEL_INVALID_CHARS\";\n }\n }\n };\n exports.parse = function(input) {\n if (typeof input !== \"string\") {\n throw new TypeError(\"Domain name must be a string.\");\n }\n var domain = input.slice(0).toLowerCase();\n if (domain.charAt(domain.length - 1) === \".\") {\n domain = domain.slice(0, domain.length - 1);\n }\n var error = internals.validate(domain);\n if (error) {\n return {\n input,\n error: {\n message: exports.errorCodes[error],\n code: error\n }\n };\n }\n var parsed = {\n input,\n tld: null,\n sld: null,\n domain: null,\n subdomain: null,\n listed: false\n };\n var domainParts = domain.split(\".\");\n if (domainParts[domainParts.length - 1] === \"local\") {\n return parsed;\n }\n var handlePunycode = function() {\n if (!/xn--/.test(domain)) {\n return parsed;\n }\n if (parsed.domain) {\n parsed.domain = Punycode.toASCII(parsed.domain);\n }\n if (parsed.subdomain) {\n parsed.subdomain = Punycode.toASCII(parsed.subdomain);\n }\n return parsed;\n };\n var rule = internals.findRule(domain);\n if (!rule) {\n if (domainParts.length < 2) {\n return parsed;\n }\n parsed.tld = domainParts.pop();\n parsed.sld = domainParts.pop();\n parsed.domain = [parsed.sld, parsed.tld].join(\".\");\n if (domainParts.length) {\n parsed.subdomain = domainParts.pop();\n }\n return handlePunycode();\n }\n parsed.listed = true;\n var tldParts = rule.suffix.split(\".\");\n var privateParts = domainParts.slice(0, domainParts.length - tldParts.length);\n if (rule.exception) {\n privateParts.push(tldParts.shift());\n }\n parsed.tld = tldParts.join(\".\");\n if (!privateParts.length) {\n return handlePunycode();\n }\n if (rule.wildcard) {\n tldParts.unshift(privateParts.pop());\n parsed.tld = tldParts.join(\".\");\n }\n if (!privateParts.length) {\n return handlePunycode();\n }\n parsed.sld = privateParts.pop();\n parsed.domain = [parsed.sld, parsed.tld].join(\".\");\n if (privateParts.length) {\n parsed.subdomain = privateParts.join(\".\");\n }\n return handlePunycode();\n };\n exports.get = function(domain) {\n if (!domain) {\n return null;\n }\n return exports.parse(domain).domain || null;\n };\n exports.isValid = function(domain) {\n var parsed = exports.parse(domain);\n return Boolean(parsed.domain && parsed.listed);\n };\n }\n});\n\n// node_modules/tough-cookie/lib/pubsuffix-psl.js\nvar require_pubsuffix_psl = __commonJS({\n \"node_modules/tough-cookie/lib/pubsuffix-psl.js\"(exports) {\n \"use strict\";\n var psl = require_psl();\n var SPECIAL_USE_DOMAINS = [\n \"local\",\n \"example\",\n \"invalid\",\n \"localhost\",\n \"test\"\n ];\n var SPECIAL_TREATMENT_DOMAINS = [\"localhost\", \"invalid\"];\n function getPublicSuffix(domain, options = {}) {\n const domainParts = domain.split(\".\");\n const topLevelDomain = domainParts[domainParts.length - 1];\n const allowSpecialUseDomain = !!options.allowSpecialUseDomain;\n const ignoreError = !!options.ignoreError;\n if (allowSpecialUseDomain && SPECIAL_USE_DOMAINS.includes(topLevelDomain)) {\n if (domainParts.length > 1) {\n const secondLevelDomain = domainParts[domainParts.length - 2];\n return `${secondLevelDomain}.${topLevelDomain}`;\n } else if (SPECIAL_TREATMENT_DOMAINS.includes(topLevelDomain)) {\n return `${topLevelDomain}`;\n }\n }\n if (!ignoreError && SPECIAL_USE_DOMAINS.includes(topLevelDomain)) {\n throw new Error(\n `Cookie has domain set to the public suffix \"${topLevelDomain}\" which is a special use domain. To allow this, configure your CookieJar with {allowSpecialUseDomain:true, rejectPublicSuffixes: false}.`\n );\n }\n return psl.get(domain);\n }\n exports.getPublicSuffix = getPublicSuffix;\n }\n});\n\n// node_modules/tough-cookie/lib/store.js\nvar require_store = __commonJS({\n \"node_modules/tough-cookie/lib/store.js\"(exports) {\n \"use strict\";\n var Store = class {\n constructor() {\n this.synchronous = false;\n }\n findCookie(domain, path, key, cb) {\n throw new Error(\"findCookie is not implemented\");\n }\n findCookies(domain, path, allowSpecialUseDomain, cb) {\n throw new Error(\"findCookies is not implemented\");\n }\n putCookie(cookie, cb) {\n throw new Error(\"putCookie is not implemented\");\n }\n updateCookie(oldCookie, newCookie, cb) {\n throw new Error(\"updateCookie is not implemented\");\n }\n removeCookie(domain, path, key, cb) {\n throw new Error(\"removeCookie is not implemented\");\n }\n removeCookies(domain, path, cb) {\n throw new Error(\"removeCookies is not implemented\");\n }\n removeAllCookies(cb) {\n throw new Error(\"removeAllCookies is not implemented\");\n }\n getAllCookies(cb) {\n throw new Error(\n \"getAllCookies is not implemented (therefore jar cannot be serialized)\"\n );\n }\n };\n exports.Store = Store;\n }\n});\n\n// node_modules/universalify/index.js\nvar require_universalify = __commonJS({\n \"node_modules/universalify/index.js\"(exports) {\n \"use strict\";\n exports.fromCallback = function(fn) {\n return Object.defineProperty(function() {\n if (typeof arguments[arguments.length - 1] === \"function\") fn.apply(this, arguments);\n else {\n return new Promise((resolve, reject) => {\n arguments[arguments.length] = (err, res) => {\n if (err) return reject(err);\n resolve(res);\n };\n arguments.length++;\n fn.apply(this, arguments);\n });\n }\n }, \"name\", { value: fn.name });\n };\n exports.fromPromise = function(fn) {\n return Object.defineProperty(function() {\n const cb = arguments[arguments.length - 1];\n if (typeof cb !== \"function\") return fn.apply(this, arguments);\n else {\n delete arguments[arguments.length - 1];\n arguments.length--;\n fn.apply(this, arguments).then((r) => cb(null, r), cb);\n }\n }, \"name\", { value: fn.name });\n };\n }\n});\n\n// node_modules/tough-cookie/lib/permuteDomain.js\nvar require_permuteDomain = __commonJS({\n \"node_modules/tough-cookie/lib/permuteDomain.js\"(exports) {\n \"use strict\";\n var pubsuffix = require_pubsuffix_psl();\n function permuteDomain(domain, allowSpecialUseDomain) {\n const pubSuf = pubsuffix.getPublicSuffix(domain, {\n allowSpecialUseDomain\n });\n if (!pubSuf) {\n return null;\n }\n if (pubSuf == domain) {\n return [domain];\n }\n if (domain.slice(-1) == \".\") {\n domain = domain.slice(0, -1);\n }\n const prefix = domain.slice(0, -(pubSuf.length + 1));\n const parts = prefix.split(\".\").reverse();\n let cur = pubSuf;\n const permutations = [cur];\n while (parts.length) {\n cur = `${parts.shift()}.${cur}`;\n permutations.push(cur);\n }\n return permutations;\n }\n exports.permuteDomain = permuteDomain;\n }\n});\n\n// node_modules/tough-cookie/lib/pathMatch.js\nvar require_pathMatch = __commonJS({\n \"node_modules/tough-cookie/lib/pathMatch.js\"(exports) {\n \"use strict\";\n function pathMatch(reqPath, cookiePath) {\n if (cookiePath === reqPath) {\n return true;\n }\n const idx = reqPath.indexOf(cookiePath);\n if (idx === 0) {\n if (cookiePath.substr(-1) === \"/\") {\n return true;\n }\n if (reqPath.substr(cookiePath.length, 1) === \"/\") {\n return true;\n }\n }\n return false;\n }\n exports.pathMatch = pathMatch;\n }\n});\n\n// node_modules/tough-cookie/lib/utilHelper.js\nvar require_utilHelper = __commonJS({\n \"node_modules/tough-cookie/lib/utilHelper.js\"(exports) {\n function requireUtil() {\n try {\n return __require(\"util\");\n } catch (e) {\n return null;\n }\n }\n function lookupCustomInspectSymbol() {\n return Symbol.for(\"nodejs.util.inspect.custom\");\n }\n function tryReadingCustomSymbolFromUtilInspect(options) {\n const _requireUtil = options.requireUtil || requireUtil;\n const util = _requireUtil();\n return util ? util.inspect.custom : null;\n }\n exports.getUtilInspect = function getUtilInspect(fallback, options = {}) {\n const _requireUtil = options.requireUtil || requireUtil;\n const util = _requireUtil();\n return function inspect(value, showHidden, depth) {\n return util ? util.inspect(value, showHidden, depth) : fallback(value);\n };\n };\n exports.getCustomInspectSymbol = function getCustomInspectSymbol(options = {}) {\n const _lookupCustomInspectSymbol = options.lookupCustomInspectSymbol || lookupCustomInspectSymbol;\n return _lookupCustomInspectSymbol() || tryReadingCustomSymbolFromUtilInspect(options);\n };\n }\n});\n\n// node_modules/tough-cookie/lib/memstore.js\nvar require_memstore = __commonJS({\n \"node_modules/tough-cookie/lib/memstore.js\"(exports) {\n \"use strict\";\n var { fromCallback } = require_universalify();\n var Store = require_store().Store;\n var permuteDomain = require_permuteDomain().permuteDomain;\n var pathMatch = require_pathMatch().pathMatch;\n var { getCustomInspectSymbol, getUtilInspect } = require_utilHelper();\n var MemoryCookieStore = class extends Store {\n constructor() {\n super();\n this.synchronous = true;\n this.idx = /* @__PURE__ */ Object.create(null);\n const customInspectSymbol = getCustomInspectSymbol();\n if (customInspectSymbol) {\n this[customInspectSymbol] = this.inspect;\n }\n }\n inspect() {\n const util = { inspect: getUtilInspect(inspectFallback) };\n return `{ idx: ${util.inspect(this.idx, false, 2)} }`;\n }\n findCookie(domain, path, key, cb) {\n if (!this.idx[domain]) {\n return cb(null, void 0);\n }\n if (!this.idx[domain][path]) {\n return cb(null, void 0);\n }\n return cb(null, this.idx[domain][path][key] || null);\n }\n findCookies(domain, path, allowSpecialUseDomain, cb) {\n const results = [];\n if (typeof allowSpecialUseDomain === \"function\") {\n cb = allowSpecialUseDomain;\n allowSpecialUseDomain = true;\n }\n if (!domain) {\n return cb(null, []);\n }\n let pathMatcher;\n if (!path) {\n pathMatcher = function matchAll(domainIndex) {\n for (const curPath in domainIndex) {\n const pathIndex = domainIndex[curPath];\n for (const key in pathIndex) {\n results.push(pathIndex[key]);\n }\n }\n };\n } else {\n pathMatcher = function matchRFC(domainIndex) {\n Object.keys(domainIndex).forEach((cookiePath) => {\n if (pathMatch(path, cookiePath)) {\n const pathIndex = domainIndex[cookiePath];\n for (const key in pathIndex) {\n results.push(pathIndex[key]);\n }\n }\n });\n };\n }\n const domains = permuteDomain(domain, allowSpecialUseDomain) || [domain];\n const idx = this.idx;\n domains.forEach((curDomain) => {\n const domainIndex = idx[curDomain];\n if (!domainIndex) {\n return;\n }\n pathMatcher(domainIndex);\n });\n cb(null, results);\n }\n putCookie(cookie, cb) {\n if (!this.idx[cookie.domain]) {\n this.idx[cookie.domain] = /* @__PURE__ */ Object.create(null);\n }\n if (!this.idx[cookie.domain][cookie.path]) {\n this.idx[cookie.domain][cookie.path] = /* @__PURE__ */ Object.create(null);\n }\n this.idx[cookie.domain][cookie.path][cookie.key] = cookie;\n cb(null);\n }\n updateCookie(oldCookie, newCookie, cb) {\n this.putCookie(newCookie, cb);\n }\n removeCookie(domain, path, key, cb) {\n if (this.idx[domain] && this.idx[domain][path] && this.idx[domain][path][key]) {\n delete this.idx[domain][path][key];\n }\n cb(null);\n }\n removeCookies(domain, path, cb) {\n if (this.idx[domain]) {\n if (path) {\n delete this.idx[domain][path];\n } else {\n delete this.idx[domain];\n }\n }\n return cb(null);\n }\n removeAllCookies(cb) {\n this.idx = /* @__PURE__ */ Object.create(null);\n return cb(null);\n }\n getAllCookies(cb) {\n const cookies = [];\n const idx = this.idx;\n const domains = Object.keys(idx);\n domains.forEach((domain) => {\n const paths = Object.keys(idx[domain]);\n paths.forEach((path) => {\n const keys = Object.keys(idx[domain][path]);\n keys.forEach((key) => {\n if (key !== null) {\n cookies.push(idx[domain][path][key]);\n }\n });\n });\n });\n cookies.sort((a, b) => {\n return (a.creationIndex || 0) - (b.creationIndex || 0);\n });\n cb(null, cookies);\n }\n };\n [\n \"findCookie\",\n \"findCookies\",\n \"putCookie\",\n \"updateCookie\",\n \"removeCookie\",\n \"removeCookies\",\n \"removeAllCookies\",\n \"getAllCookies\"\n ].forEach((name) => {\n MemoryCookieStore.prototype[name] = fromCallback(\n MemoryCookieStore.prototype[name]\n );\n });\n exports.MemoryCookieStore = MemoryCookieStore;\n function inspectFallback(val) {\n const domains = Object.keys(val);\n if (domains.length === 0) {\n return \"[Object: null prototype] {}\";\n }\n let result = \"[Object: null prototype] {\\n\";\n Object.keys(val).forEach((domain, i) => {\n result += formatDomain(domain, val[domain]);\n if (i < domains.length - 1) {\n result += \",\";\n }\n result += \"\\n\";\n });\n result += \"}\";\n return result;\n }\n function formatDomain(domainName, domainValue) {\n const indent = \" \";\n let result = `${indent}'${domainName}': [Object: null prototype] {\n`;\n Object.keys(domainValue).forEach((path, i, paths) => {\n result += formatPath(path, domainValue[path]);\n if (i < paths.length - 1) {\n result += \",\";\n }\n result += \"\\n\";\n });\n result += `${indent}}`;\n return result;\n }\n function formatPath(pathName, pathValue) {\n const indent = \" \";\n let result = `${indent}'${pathName}': [Object: null prototype] {\n`;\n Object.keys(pathValue).forEach((cookieName, i, cookieNames) => {\n const cookie = pathValue[cookieName];\n result += ` ${cookieName}: ${cookie.inspect()}`;\n if (i < cookieNames.length - 1) {\n result += \",\";\n }\n result += \"\\n\";\n });\n result += `${indent}}`;\n return result;\n }\n exports.inspectFallback = inspectFallback;\n }\n});\n\n// node_modules/tough-cookie/lib/validators.js\nvar require_validators = __commonJS({\n \"node_modules/tough-cookie/lib/validators.js\"(exports) {\n \"use strict\";\n var toString = Object.prototype.toString;\n function isFunction(data) {\n return typeof data === \"function\";\n }\n function isNonEmptyString(data) {\n return isString(data) && data !== \"\";\n }\n function isDate(data) {\n return isInstanceStrict(data, Date) && isInteger(data.getTime());\n }\n function isEmptyString(data) {\n return data === \"\" || data instanceof String && data.toString() === \"\";\n }\n function isString(data) {\n return typeof data === \"string\" || data instanceof String;\n }\n function isObject(data) {\n return toString.call(data) === \"[object Object]\";\n }\n function isInstanceStrict(data, prototype) {\n try {\n return data instanceof prototype;\n } catch (error) {\n return false;\n }\n }\n function isUrlStringOrObject(data) {\n return isNonEmptyString(data) || isObject(data) && \"hostname\" in data && \"pathname\" in data && \"protocol\" in data || isInstanceStrict(data, URL);\n }\n function isInteger(data) {\n return typeof data === \"number\" && data % 1 === 0;\n }\n function validate(bool, cb, options) {\n if (!isFunction(cb)) {\n options = cb;\n cb = null;\n }\n if (!isObject(options)) options = { Error: \"Failed Check\" };\n if (!bool) {\n if (cb) {\n cb(new ParameterError(options));\n } else {\n throw new ParameterError(options);\n }\n }\n }\n var ParameterError = class extends Error {\n constructor(...params) {\n super(...params);\n }\n };\n exports.ParameterError = ParameterError;\n exports.isFunction = isFunction;\n exports.isNonEmptyString = isNonEmptyString;\n exports.isDate = isDate;\n exports.isEmptyString = isEmptyString;\n exports.isString = isString;\n exports.isObject = isObject;\n exports.isUrlStringOrObject = isUrlStringOrObject;\n exports.validate = validate;\n }\n});\n\n// node_modules/tough-cookie/lib/version.js\nvar require_version = __commonJS({\n \"node_modules/tough-cookie/lib/version.js\"(exports, module) {\n module.exports = \"4.1.4\";\n }\n});\n\n// node_modules/tough-cookie/lib/cookie.js\nvar require_cookie = __commonJS({\n \"node_modules/tough-cookie/lib/cookie.js\"(exports) {\n \"use strict\";\n var punycode = require_punycode();\n var urlParse = require_url_parse();\n var pubsuffix = require_pubsuffix_psl();\n var Store = require_store().Store;\n var MemoryCookieStore = require_memstore().MemoryCookieStore;\n var pathMatch = require_pathMatch().pathMatch;\n var validators = require_validators();\n var VERSION = require_version();\n var { fromCallback } = require_universalify();\n var { getCustomInspectSymbol } = require_utilHelper();\n var COOKIE_OCTETS = /^[\\x21\\x23-\\x2B\\x2D-\\x3A\\x3C-\\x5B\\x5D-\\x7E]+$/;\n var CONTROL_CHARS = /[\\x00-\\x1F]/;\n var TERMINATORS = [\"\\n\", \"\\r\", \"\\0\"];\n var PATH_VALUE = /[\\x20-\\x3A\\x3C-\\x7E]+/;\n var DATE_DELIM = /[\\x09\\x20-\\x2F\\x3B-\\x40\\x5B-\\x60\\x7B-\\x7E]/;\n var MONTH_TO_NUM = {\n jan: 0,\n feb: 1,\n mar: 2,\n apr: 3,\n may: 4,\n jun: 5,\n jul: 6,\n aug: 7,\n sep: 8,\n oct: 9,\n nov: 10,\n dec: 11\n };\n var MAX_TIME = 2147483647e3;\n var MIN_TIME = 0;\n var SAME_SITE_CONTEXT_VAL_ERR = 'Invalid sameSiteContext option for getCookies(); expected one of \"strict\", \"lax\", or \"none\"';\n function checkSameSiteContext(value) {\n validators.validate(validators.isNonEmptyString(value), value);\n const context = String(value).toLowerCase();\n if (context === \"none\" || context === \"lax\" || context === \"strict\") {\n return context;\n } else {\n return null;\n }\n }\n var PrefixSecurityEnum = Object.freeze({\n SILENT: \"silent\",\n STRICT: \"strict\",\n DISABLED: \"unsafe-disabled\"\n });\n var IP_REGEX_LOWERCASE = /(?:^(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}$)|(?:^(?:(?:[a-f\\d]{1,4}:){7}(?:[a-f\\d]{1,4}|:)|(?:[a-f\\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|:[a-f\\d]{1,4}|:)|(?:[a-f\\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-f\\d]{1,4}){1,2}|:)|(?:[a-f\\d]{1,4}:){4}(?:(?::[a-f\\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-f\\d]{1,4}){1,3}|:)|(?:[a-f\\d]{1,4}:){3}(?:(?::[a-f\\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-f\\d]{1,4}){1,4}|:)|(?:[a-f\\d]{1,4}:){2}(?:(?::[a-f\\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-f\\d]{1,4}){1,5}|:)|(?:[a-f\\d]{1,4}:){1}(?:(?::[a-f\\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-f\\d]{1,4}){1,6}|:)|(?::(?:(?::[a-f\\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-f\\d]{1,4}){1,7}|:)))$)/;\n var IP_V6_REGEX = `\n\\\\[?(?:\n(?:[a-fA-F\\\\d]{1,4}:){7}(?:[a-fA-F\\\\d]{1,4}|:)|\n(?:[a-fA-F\\\\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}|:[a-fA-F\\\\d]{1,4}|:)|\n(?:[a-fA-F\\\\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}|(?::[a-fA-F\\\\d]{1,4}){1,2}|:)|\n(?:[a-fA-F\\\\d]{1,4}:){4}(?:(?::[a-fA-F\\\\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}|(?::[a-fA-F\\\\d]{1,4}){1,3}|:)|\n(?:[a-fA-F\\\\d]{1,4}:){3}(?:(?::[a-fA-F\\\\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}|(?::[a-fA-F\\\\d]{1,4}){1,4}|:)|\n(?:[a-fA-F\\\\d]{1,4}:){2}(?:(?::[a-fA-F\\\\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}|(?::[a-fA-F\\\\d]{1,4}){1,5}|:)|\n(?:[a-fA-F\\\\d]{1,4}:){1}(?:(?::[a-fA-F\\\\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}|(?::[a-fA-F\\\\d]{1,4}){1,6}|:)|\n(?::(?:(?::[a-fA-F\\\\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}|(?::[a-fA-F\\\\d]{1,4}){1,7}|:))\n)(?:%[0-9a-zA-Z]{1,})?\\\\]?\n`.replace(/\\s*\\/\\/.*$/gm, \"\").replace(/\\n/g, \"\").trim();\n var IP_V6_REGEX_OBJECT = new RegExp(`^${IP_V6_REGEX}$`);\n function parseDigits(token, minDigits, maxDigits, trailingOK) {\n let count = 0;\n while (count < token.length) {\n const c = token.charCodeAt(count);\n if (c <= 47 || c >= 58) {\n break;\n }\n count++;\n }\n if (count < minDigits || count > maxDigits) {\n return null;\n }\n if (!trailingOK && count != token.length) {\n return null;\n }\n return parseInt(token.substr(0, count), 10);\n }\n function parseTime(token) {\n const parts = token.split(\":\");\n const result = [0, 0, 0];\n if (parts.length !== 3) {\n return null;\n }\n for (let i = 0; i < 3; i++) {\n const trailingOK = i == 2;\n const num = parseDigits(parts[i], 1, 2, trailingOK);\n if (num === null) {\n return null;\n }\n result[i] = num;\n }\n return result;\n }\n function parseMonth(token) {\n token = String(token).substr(0, 3).toLowerCase();\n const num = MONTH_TO_NUM[token];\n return num >= 0 ? num : null;\n }\n function parseDate(str) {\n if (!str) {\n return;\n }\n const tokens = str.split(DATE_DELIM);\n if (!tokens) {\n return;\n }\n let hour = null;\n let minute = null;\n let second = null;\n let dayOfMonth = null;\n let month = null;\n let year = null;\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i].trim();\n if (!token.length) {\n continue;\n }\n let result;\n if (second === null) {\n result = parseTime(token);\n if (result) {\n hour = result[0];\n minute = result[1];\n second = result[2];\n continue;\n }\n }\n if (dayOfMonth === null) {\n result = parseDigits(token, 1, 2, true);\n if (result !== null) {\n dayOfMonth = result;\n continue;\n }\n }\n if (month === null) {\n result = parseMonth(token);\n if (result !== null) {\n month = result;\n continue;\n }\n }\n if (year === null) {\n result = parseDigits(token, 2, 4, true);\n if (result !== null) {\n year = result;\n if (year >= 70 && year <= 99) {\n year += 1900;\n } else if (year >= 0 && year <= 69) {\n year += 2e3;\n }\n }\n }\n }\n if (dayOfMonth === null || month === null || year === null || second === null || dayOfMonth < 1 || dayOfMonth > 31 || year < 1601 || hour > 23 || minute > 59 || second > 59) {\n return;\n }\n return new Date(Date.UTC(year, month, dayOfMonth, hour, minute, second));\n }\n function formatDate(date) {\n validators.validate(validators.isDate(date), date);\n return date.toUTCString();\n }\n function canonicalDomain(str) {\n if (str == null) {\n return null;\n }\n str = str.trim().replace(/^\\./, \"\");\n if (IP_V6_REGEX_OBJECT.test(str)) {\n str = str.replace(\"[\", \"\").replace(\"]\", \"\");\n }\n if (punycode && /[^\\u0001-\\u007f]/.test(str)) {\n str = punycode.toASCII(str);\n }\n return str.toLowerCase();\n }\n function domainMatch(str, domStr, canonicalize) {\n if (str == null || domStr == null) {\n return null;\n }\n if (canonicalize !== false) {\n str = canonicalDomain(str);\n domStr = canonicalDomain(domStr);\n }\n if (str == domStr) {\n return true;\n }\n const idx = str.lastIndexOf(domStr);\n if (idx <= 0) {\n return false;\n }\n if (str.length !== domStr.length + idx) {\n return false;\n }\n if (str.substr(idx - 1, 1) !== \".\") {\n return false;\n }\n if (IP_REGEX_LOWERCASE.test(str)) {\n return false;\n }\n return true;\n }\n function defaultPath(path) {\n if (!path || path.substr(0, 1) !== \"/\") {\n return \"/\";\n }\n if (path === \"/\") {\n return path;\n }\n const rightSlash = path.lastIndexOf(\"/\");\n if (rightSlash === 0) {\n return \"/\";\n }\n return path.slice(0, rightSlash);\n }\n function trimTerminator(str) {\n if (validators.isEmptyString(str)) return str;\n for (let t = 0; t < TERMINATORS.length; t++) {\n const terminatorIdx = str.indexOf(TERMINATORS[t]);\n if (terminatorIdx !== -1) {\n str = str.substr(0, terminatorIdx);\n }\n }\n return str;\n }\n function parseCookiePair(cookiePair, looseMode) {\n cookiePair = trimTerminator(cookiePair);\n validators.validate(validators.isString(cookiePair), cookiePair);\n let firstEq = cookiePair.indexOf(\"=\");\n if (looseMode) {\n if (firstEq === 0) {\n cookiePair = cookiePair.substr(1);\n firstEq = cookiePair.indexOf(\"=\");\n }\n } else {\n if (firstEq <= 0) {\n return;\n }\n }\n let cookieName, cookieValue;\n if (firstEq <= 0) {\n cookieName = \"\";\n cookieValue = cookiePair.trim();\n } else {\n cookieName = cookiePair.substr(0, firstEq).trim();\n cookieValue = cookiePair.substr(firstEq + 1).trim();\n }\n if (CONTROL_CHARS.test(cookieName) || CONTROL_CHARS.test(cookieValue)) {\n return;\n }\n const c = new Cookie();\n c.key = cookieName;\n c.value = cookieValue;\n return c;\n }\n function parse(str, options) {\n if (!options || typeof options !== \"object\") {\n options = {};\n }\n if (validators.isEmptyString(str) || !validators.isString(str)) {\n return null;\n }\n str = str.trim();\n const firstSemi = str.indexOf(\";\");\n const cookiePair = firstSemi === -1 ? str : str.substr(0, firstSemi);\n const c = parseCookiePair(cookiePair, !!options.loose);\n if (!c) {\n return;\n }\n if (firstSemi === -1) {\n return c;\n }\n const unparsed = str.slice(firstSemi + 1).trim();\n if (unparsed.length === 0) {\n return c;\n }\n const cookie_avs = unparsed.split(\";\");\n while (cookie_avs.length) {\n const av = cookie_avs.shift().trim();\n if (av.length === 0) {\n continue;\n }\n const av_sep = av.indexOf(\"=\");\n let av_key, av_value;\n if (av_sep === -1) {\n av_key = av;\n av_value = null;\n } else {\n av_key = av.substr(0, av_sep);\n av_value = av.substr(av_sep + 1);\n }\n av_key = av_key.trim().toLowerCase();\n if (av_value) {\n av_value = av_value.trim();\n }\n switch (av_key) {\n case \"expires\":\n if (av_value) {\n const exp = parseDate(av_value);\n if (exp) {\n c.expires = exp;\n }\n }\n break;\n case \"max-age\":\n if (av_value) {\n if (/^-?[0-9]+$/.test(av_value)) {\n const delta = parseInt(av_value, 10);\n c.setMaxAge(delta);\n }\n }\n break;\n case \"domain\":\n if (av_value) {\n const domain = av_value.trim().replace(/^\\./, \"\");\n if (domain) {\n c.domain = domain.toLowerCase();\n }\n }\n break;\n case \"path\":\n c.path = av_value && av_value[0] === \"/\" ? av_value : null;\n break;\n case \"secure\":\n c.secure = true;\n break;\n case \"httponly\":\n c.httpOnly = true;\n break;\n case \"samesite\":\n const enforcement = av_value ? av_value.toLowerCase() : \"\";\n switch (enforcement) {\n case \"strict\":\n c.sameSite = \"strict\";\n break;\n case \"lax\":\n c.sameSite = \"lax\";\n break;\n case \"none\":\n c.sameSite = \"none\";\n break;\n default:\n c.sameSite = void 0;\n break;\n }\n break;\n default:\n c.extensions = c.extensions || [];\n c.extensions.push(av);\n break;\n }\n }\n return c;\n }\n function isSecurePrefixConditionMet(cookie) {\n validators.validate(validators.isObject(cookie), cookie);\n return !cookie.key.startsWith(\"__Secure-\") || cookie.secure;\n }\n function isHostPrefixConditionMet(cookie) {\n validators.validate(validators.isObject(cookie));\n return !cookie.key.startsWith(\"__Host-\") || cookie.secure && cookie.hostOnly && cookie.path != null && cookie.path === \"/\";\n }\n function jsonParse(str) {\n let obj;\n try {\n obj = JSON.parse(str);\n } catch (e) {\n return e;\n }\n return obj;\n }\n function fromJSON(str) {\n if (!str || validators.isEmptyString(str)) {\n return null;\n }\n let obj;\n if (typeof str === \"string\") {\n obj = jsonParse(str);\n if (obj instanceof Error) {\n return null;\n }\n } else {\n obj = str;\n }\n const c = new Cookie();\n for (let i = 0; i < Cookie.serializableProperties.length; i++) {\n const prop = Cookie.serializableProperties[i];\n if (obj[prop] === void 0 || obj[prop] === cookieDefaults[prop]) {\n continue;\n }\n if (prop === \"expires\" || prop === \"creation\" || prop === \"lastAccessed\") {\n if (obj[prop] === null) {\n c[prop] = null;\n } else {\n c[prop] = obj[prop] == \"Infinity\" ? \"Infinity\" : new Date(obj[prop]);\n }\n } else {\n c[prop] = obj[prop];\n }\n }\n return c;\n }\n function cookieCompare(a, b) {\n validators.validate(validators.isObject(a), a);\n validators.validate(validators.isObject(b), b);\n let cmp = 0;\n const aPathLen = a.path ? a.path.length : 0;\n const bPathLen = b.path ? b.path.length : 0;\n cmp = bPathLen - aPathLen;\n if (cmp !== 0) {\n return cmp;\n }\n const aTime = a.creation ? a.creation.getTime() : MAX_TIME;\n const bTime = b.creation ? b.creation.getTime() : MAX_TIME;\n cmp = aTime - bTime;\n if (cmp !== 0) {\n return cmp;\n }\n cmp = a.creationIndex - b.creationIndex;\n return cmp;\n }\n function permutePath(path) {\n validators.validate(validators.isString(path));\n if (path === \"/\") {\n return [\"/\"];\n }\n const permutations = [path];\n while (path.length > 1) {\n const lindex = path.lastIndexOf(\"/\");\n if (lindex === 0) {\n break;\n }\n path = path.substr(0, lindex);\n permutations.push(path);\n }\n permutations.push(\"/\");\n return permutations;\n }\n function getCookieContext(url) {\n if (url instanceof Object) {\n return url;\n }\n try {\n url = decodeURI(url);\n } catch (err) {\n }\n return urlParse(url);\n }\n var cookieDefaults = {\n // the order in which the RFC has them:\n key: \"\",\n value: \"\",\n expires: \"Infinity\",\n maxAge: null,\n domain: null,\n path: null,\n secure: false,\n httpOnly: false,\n extensions: null,\n // set by the CookieJar:\n hostOnly: null,\n pathIsDefault: null,\n creation: null,\n lastAccessed: null,\n sameSite: void 0\n };\n var Cookie = class _Cookie {\n constructor(options = {}) {\n const customInspectSymbol = getCustomInspectSymbol();\n if (customInspectSymbol) {\n this[customInspectSymbol] = this.inspect;\n }\n Object.assign(this, cookieDefaults, options);\n this.creation = this.creation || /* @__PURE__ */ new Date();\n Object.defineProperty(this, \"creationIndex\", {\n configurable: false,\n enumerable: false,\n // important for assert.deepEqual checks\n writable: true,\n value: ++_Cookie.cookiesCreated\n });\n }\n inspect() {\n const now = Date.now();\n const hostOnly = this.hostOnly != null ? this.hostOnly : \"?\";\n const createAge = this.creation ? `${now - this.creation.getTime()}ms` : \"?\";\n const accessAge = this.lastAccessed ? `${now - this.lastAccessed.getTime()}ms` : \"?\";\n return `Cookie=\"${this.toString()}; hostOnly=${hostOnly}; aAge=${accessAge}; cAge=${createAge}\"`;\n }\n toJSON() {\n const obj = {};\n for (const prop of _Cookie.serializableProperties) {\n if (this[prop] === cookieDefaults[prop]) {\n continue;\n }\n if (prop === \"expires\" || prop === \"creation\" || prop === \"lastAccessed\") {\n if (this[prop] === null) {\n obj[prop] = null;\n } else {\n obj[prop] = this[prop] == \"Infinity\" ? \"Infinity\" : this[prop].toISOString();\n }\n } else if (prop === \"maxAge\") {\n if (this[prop] !== null) {\n obj[prop] = this[prop] == Infinity || this[prop] == -Infinity ? this[prop].toString() : this[prop];\n }\n } else {\n if (this[prop] !== cookieDefaults[prop]) {\n obj[prop] = this[prop];\n }\n }\n }\n return obj;\n }\n clone() {\n return fromJSON(this.toJSON());\n }\n validate() {\n if (!COOKIE_OCTETS.test(this.value)) {\n return false;\n }\n if (this.expires != Infinity && !(this.expires instanceof Date) && !parseDate(this.expires)) {\n return false;\n }\n if (this.maxAge != null && this.maxAge <= 0) {\n return false;\n }\n if (this.path != null && !PATH_VALUE.test(this.path)) {\n return false;\n }\n const cdomain = this.cdomain();\n if (cdomain) {\n if (cdomain.match(/\\.$/)) {\n return false;\n }\n const suffix = pubsuffix.getPublicSuffix(cdomain);\n if (suffix == null) {\n return false;\n }\n }\n return true;\n }\n setExpires(exp) {\n if (exp instanceof Date) {\n this.expires = exp;\n } else {\n this.expires = parseDate(exp) || \"Infinity\";\n }\n }\n setMaxAge(age) {\n if (age === Infinity || age === -Infinity) {\n this.maxAge = age.toString();\n } else {\n this.maxAge = age;\n }\n }\n cookieString() {\n let val = this.value;\n if (val == null) {\n val = \"\";\n }\n if (this.key === \"\") {\n return val;\n }\n return `${this.key}=${val}`;\n }\n // gives Set-Cookie header format\n toString() {\n let str = this.cookieString();\n if (this.expires != Infinity) {\n if (this.expires instanceof Date) {\n str += `; Expires=${formatDate(this.expires)}`;\n } else {\n str += `; Expires=${this.expires}`;\n }\n }\n if (this.maxAge != null && this.maxAge != Infinity) {\n str += `; Max-Age=${this.maxAge}`;\n }\n if (this.domain && !this.hostOnly) {\n str += `; Domain=${this.domain}`;\n }\n if (this.path) {\n str += `; Path=${this.path}`;\n }\n if (this.secure) {\n str += \"; Secure\";\n }\n if (this.httpOnly) {\n str += \"; HttpOnly\";\n }\n if (this.sameSite && this.sameSite !== \"none\") {\n const ssCanon = _Cookie.sameSiteCanonical[this.sameSite.toLowerCase()];\n str += `; SameSite=${ssCanon ? ssCanon : this.sameSite}`;\n }\n if (this.extensions) {\n this.extensions.forEach((ext) => {\n str += `; ${ext}`;\n });\n }\n return str;\n }\n // TTL() partially replaces the \"expiry-time\" parts of S5.3 step 3 (setCookie()\n // elsewhere)\n // S5.3 says to give the \"latest representable date\" for which we use Infinity\n // For \"expired\" we use 0\n TTL(now) {\n if (this.maxAge != null) {\n return this.maxAge <= 0 ? 0 : this.maxAge * 1e3;\n }\n let expires = this.expires;\n if (expires != Infinity) {\n if (!(expires instanceof Date)) {\n expires = parseDate(expires) || Infinity;\n }\n if (expires == Infinity) {\n return Infinity;\n }\n return expires.getTime() - (now || Date.now());\n }\n return Infinity;\n }\n // expiryTime() replaces the \"expiry-time\" parts of S5.3 step 3 (setCookie()\n // elsewhere)\n expiryTime(now) {\n if (this.maxAge != null) {\n const relativeTo = now || this.creation || /* @__PURE__ */ new Date();\n const age = this.maxAge <= 0 ? -Infinity : this.maxAge * 1e3;\n return relativeTo.getTime() + age;\n }\n if (this.expires == Infinity) {\n return Infinity;\n }\n return this.expires.getTime();\n }\n // expiryDate() replaces the \"expiry-time\" parts of S5.3 step 3 (setCookie()\n // elsewhere), except it returns a Date\n expiryDate(now) {\n const millisec = this.expiryTime(now);\n if (millisec == Infinity) {\n return new Date(MAX_TIME);\n } else if (millisec == -Infinity) {\n return new Date(MIN_TIME);\n } else {\n return new Date(millisec);\n }\n }\n // This replaces the \"persistent-flag\" parts of S5.3 step 3\n isPersistent() {\n return this.maxAge != null || this.expires != Infinity;\n }\n // Mostly S5.1.2 and S5.2.3:\n canonicalizedDomain() {\n if (this.domain == null) {\n return null;\n }\n return canonicalDomain(this.domain);\n }\n cdomain() {\n return this.canonicalizedDomain();\n }\n };\n Cookie.cookiesCreated = 0;\n Cookie.parse = parse;\n Cookie.fromJSON = fromJSON;\n Cookie.serializableProperties = Object.keys(cookieDefaults);\n Cookie.sameSiteLevel = {\n strict: 3,\n lax: 2,\n none: 1\n };\n Cookie.sameSiteCanonical = {\n strict: \"Strict\",\n lax: \"Lax\"\n };\n function getNormalizedPrefixSecurity(prefixSecurity) {\n if (prefixSecurity != null) {\n const normalizedPrefixSecurity = prefixSecurity.toLowerCase();\n switch (normalizedPrefixSecurity) {\n case PrefixSecurityEnum.STRICT:\n case PrefixSecurityEnum.SILENT:\n case PrefixSecurityEnum.DISABLED:\n return normalizedPrefixSecurity;\n }\n }\n return PrefixSecurityEnum.SILENT;\n }\n var CookieJar = class _CookieJar {\n constructor(store, options = { rejectPublicSuffixes: true }) {\n if (typeof options === \"boolean\") {\n options = { rejectPublicSuffixes: options };\n }\n validators.validate(validators.isObject(options), options);\n this.rejectPublicSuffixes = options.rejectPublicSuffixes;\n this.enableLooseMode = !!options.looseMode;\n this.allowSpecialUseDomain = typeof options.allowSpecialUseDomain === \"boolean\" ? options.allowSpecialUseDomain : true;\n this.store = store || new MemoryCookieStore();\n this.prefixSecurity = getNormalizedPrefixSecurity(options.prefixSecurity);\n this._cloneSync = syncWrap(\"clone\");\n this._importCookiesSync = syncWrap(\"_importCookies\");\n this.getCookiesSync = syncWrap(\"getCookies\");\n this.getCookieStringSync = syncWrap(\"getCookieString\");\n this.getSetCookieStringsSync = syncWrap(\"getSetCookieStrings\");\n this.removeAllCookiesSync = syncWrap(\"removeAllCookies\");\n this.setCookieSync = syncWrap(\"setCookie\");\n this.serializeSync = syncWrap(\"serialize\");\n }\n setCookie(cookie, url, options, cb) {\n validators.validate(validators.isUrlStringOrObject(url), cb, options);\n let err;\n if (validators.isFunction(url)) {\n cb = url;\n return cb(new Error(\"No URL was specified\"));\n }\n const context = getCookieContext(url);\n if (validators.isFunction(options)) {\n cb = options;\n options = {};\n }\n validators.validate(validators.isFunction(cb), cb);\n if (!validators.isNonEmptyString(cookie) && !validators.isObject(cookie) && cookie instanceof String && cookie.length == 0) {\n return cb(null);\n }\n const host = canonicalDomain(context.hostname);\n const loose = options.loose || this.enableLooseMode;\n let sameSiteContext = null;\n if (options.sameSiteContext) {\n sameSiteContext = checkSameSiteContext(options.sameSiteContext);\n if (!sameSiteContext) {\n return cb(new Error(SAME_SITE_CONTEXT_VAL_ERR));\n }\n }\n if (typeof cookie === \"string\" || cookie instanceof String) {\n cookie = Cookie.parse(cookie, { loose });\n if (!cookie) {\n err = new Error(\"Cookie failed to parse\");\n return cb(options.ignoreError ? null : err);\n }\n } else if (!(cookie instanceof Cookie)) {\n err = new Error(\n \"First argument to setCookie must be a Cookie object or string\"\n );\n return cb(options.ignoreError ? null : err);\n }\n const now = options.now || /* @__PURE__ */ new Date();\n if (this.rejectPublicSuffixes && cookie.domain) {\n const suffix = pubsuffix.getPublicSuffix(cookie.cdomain(), {\n allowSpecialUseDomain: this.allowSpecialUseDomain,\n ignoreError: options.ignoreError\n });\n if (suffix == null && !IP_V6_REGEX_OBJECT.test(cookie.domain)) {\n err = new Error(\"Cookie has domain set to a public suffix\");\n return cb(options.ignoreError ? null : err);\n }\n }\n if (cookie.domain) {\n if (!domainMatch(host, cookie.cdomain(), false)) {\n err = new Error(\n `Cookie not in this host's domain. Cookie:${cookie.cdomain()} Request:${host}`\n );\n return cb(options.ignoreError ? null : err);\n }\n if (cookie.hostOnly == null) {\n cookie.hostOnly = false;\n }\n } else {\n cookie.hostOnly = true;\n cookie.domain = host;\n }\n if (!cookie.path || cookie.path[0] !== \"/\") {\n cookie.path = defaultPath(context.pathname);\n cookie.pathIsDefault = true;\n }\n if (options.http === false && cookie.httpOnly) {\n err = new Error(\"Cookie is HttpOnly and this isn't an HTTP API\");\n return cb(options.ignoreError ? null : err);\n }\n if (cookie.sameSite !== \"none\" && cookie.sameSite !== void 0 && sameSiteContext) {\n if (sameSiteContext === \"none\") {\n err = new Error(\n \"Cookie is SameSite but this is a cross-origin request\"\n );\n return cb(options.ignoreError ? null : err);\n }\n }\n const ignoreErrorForPrefixSecurity = this.prefixSecurity === PrefixSecurityEnum.SILENT;\n const prefixSecurityDisabled = this.prefixSecurity === PrefixSecurityEnum.DISABLED;\n if (!prefixSecurityDisabled) {\n let errorFound = false;\n let errorMsg;\n if (!isSecurePrefixConditionMet(cookie)) {\n errorFound = true;\n errorMsg = \"Cookie has __Secure prefix but Secure attribute is not set\";\n } else if (!isHostPrefixConditionMet(cookie)) {\n errorFound = true;\n errorMsg = \"Cookie has __Host prefix but either Secure or HostOnly attribute is not set or Path is not '/'\";\n }\n if (errorFound) {\n return cb(\n options.ignoreError || ignoreErrorForPrefixSecurity ? null : new Error(errorMsg)\n );\n }\n }\n const store = this.store;\n if (!store.updateCookie) {\n store.updateCookie = function(oldCookie, newCookie, cb2) {\n this.putCookie(newCookie, cb2);\n };\n }\n function withCookie(err2, oldCookie) {\n if (err2) {\n return cb(err2);\n }\n const next = function(err3) {\n if (err3) {\n return cb(err3);\n } else {\n cb(null, cookie);\n }\n };\n if (oldCookie) {\n if (options.http === false && oldCookie.httpOnly) {\n err2 = new Error(\"old Cookie is HttpOnly and this isn't an HTTP API\");\n return cb(options.ignoreError ? null : err2);\n }\n cookie.creation = oldCookie.creation;\n cookie.creationIndex = oldCookie.creationIndex;\n cookie.lastAccessed = now;\n store.updateCookie(oldCookie, cookie, next);\n } else {\n cookie.creation = cookie.lastAccessed = now;\n store.putCookie(cookie, next);\n }\n }\n store.findCookie(cookie.domain, cookie.path, cookie.key, withCookie);\n }\n // RFC6365 S5.4\n getCookies(url, options, cb) {\n validators.validate(validators.isUrlStringOrObject(url), cb, url);\n const context = getCookieContext(url);\n if (validators.isFunction(options)) {\n cb = options;\n options = {};\n }\n validators.validate(validators.isObject(options), cb, options);\n validators.validate(validators.isFunction(cb), cb);\n const host = canonicalDomain(context.hostname);\n const path = context.pathname || \"/\";\n let secure = options.secure;\n if (secure == null && context.protocol && (context.protocol == \"https:\" || context.protocol == \"wss:\")) {\n secure = true;\n }\n let sameSiteLevel = 0;\n if (options.sameSiteContext) {\n const sameSiteContext = checkSameSiteContext(options.sameSiteContext);\n sameSiteLevel = Cookie.sameSiteLevel[sameSiteContext];\n if (!sameSiteLevel) {\n return cb(new Error(SAME_SITE_CONTEXT_VAL_ERR));\n }\n }\n let http = options.http;\n if (http == null) {\n http = true;\n }\n const now = options.now || Date.now();\n const expireCheck = options.expire !== false;\n const allPaths = !!options.allPaths;\n const store = this.store;\n function matchingCookie(c) {\n if (c.hostOnly) {\n if (c.domain != host) {\n return false;\n }\n } else {\n if (!domainMatch(host, c.domain, false)) {\n return false;\n }\n }\n if (!allPaths && !pathMatch(path, c.path)) {\n return false;\n }\n if (c.secure && !secure) {\n return false;\n }\n if (c.httpOnly && !http) {\n return false;\n }\n if (sameSiteLevel) {\n const cookieLevel = Cookie.sameSiteLevel[c.sameSite || \"none\"];\n if (cookieLevel > sameSiteLevel) {\n return false;\n }\n }\n if (expireCheck && c.expiryTime() <= now) {\n store.removeCookie(c.domain, c.path, c.key, () => {\n });\n return false;\n }\n return true;\n }\n store.findCookies(\n host,\n allPaths ? null : path,\n this.allowSpecialUseDomain,\n (err, cookies) => {\n if (err) {\n return cb(err);\n }\n cookies = cookies.filter(matchingCookie);\n if (options.sort !== false) {\n cookies = cookies.sort(cookieCompare);\n }\n const now2 = /* @__PURE__ */ new Date();\n for (const cookie of cookies) {\n cookie.lastAccessed = now2;\n }\n cb(null, cookies);\n }\n );\n }\n getCookieString(...args) {\n const cb = args.pop();\n validators.validate(validators.isFunction(cb), cb);\n const next = function(err, cookies) {\n if (err) {\n cb(err);\n } else {\n cb(\n null,\n cookies.sort(cookieCompare).map((c) => c.cookieString()).join(\"; \")\n );\n }\n };\n args.push(next);\n this.getCookies.apply(this, args);\n }\n getSetCookieStrings(...args) {\n const cb = args.pop();\n validators.validate(validators.isFunction(cb), cb);\n const next = function(err, cookies) {\n if (err) {\n cb(err);\n } else {\n cb(\n null,\n cookies.map((c) => {\n return c.toString();\n })\n );\n }\n };\n args.push(next);\n this.getCookies.apply(this, args);\n }\n serialize(cb) {\n validators.validate(validators.isFunction(cb), cb);\n let type = this.store.constructor.name;\n if (validators.isObject(type)) {\n type = null;\n }\n const serialized = {\n // The version of tough-cookie that serialized this jar. Generally a good\n // practice since future versions can make data import decisions based on\n // known past behavior. When/if this matters, use `semver`.\n version: `tough-cookie@${VERSION}`,\n // add the store type, to make humans happy:\n storeType: type,\n // CookieJar configuration:\n rejectPublicSuffixes: !!this.rejectPublicSuffixes,\n enableLooseMode: !!this.enableLooseMode,\n allowSpecialUseDomain: !!this.allowSpecialUseDomain,\n prefixSecurity: getNormalizedPrefixSecurity(this.prefixSecurity),\n // this gets filled from getAllCookies:\n cookies: []\n };\n if (!(this.store.getAllCookies && typeof this.store.getAllCookies === \"function\")) {\n return cb(\n new Error(\n \"store does not support getAllCookies and cannot be serialized\"\n )\n );\n }\n this.store.getAllCookies((err, cookies) => {\n if (err) {\n return cb(err);\n }\n serialized.cookies = cookies.map((cookie) => {\n cookie = cookie instanceof Cookie ? cookie.toJSON() : cookie;\n delete cookie.creationIndex;\n return cookie;\n });\n return cb(null, serialized);\n });\n }\n toJSON() {\n return this.serializeSync();\n }\n // use the class method CookieJar.deserialize instead of calling this directly\n _importCookies(serialized, cb) {\n let cookies = serialized.cookies;\n if (!cookies || !Array.isArray(cookies)) {\n return cb(new Error(\"serialized jar has no cookies array\"));\n }\n cookies = cookies.slice();\n const putNext = (err) => {\n if (err) {\n return cb(err);\n }\n if (!cookies.length) {\n return cb(err, this);\n }\n let cookie;\n try {\n cookie = fromJSON(cookies.shift());\n } catch (e) {\n return cb(e);\n }\n if (cookie === null) {\n return putNext(null);\n }\n this.store.putCookie(cookie, putNext);\n };\n putNext();\n }\n clone(newStore, cb) {\n if (arguments.length === 1) {\n cb = newStore;\n newStore = null;\n }\n this.serialize((err, serialized) => {\n if (err) {\n return cb(err);\n }\n _CookieJar.deserialize(serialized, newStore, cb);\n });\n }\n cloneSync(newStore) {\n if (arguments.length === 0) {\n return this._cloneSync();\n }\n if (!newStore.synchronous) {\n throw new Error(\n \"CookieJar clone destination store is not synchronous; use async API instead.\"\n );\n }\n return this._cloneSync(newStore);\n }\n removeAllCookies(cb) {\n validators.validate(validators.isFunction(cb), cb);\n const store = this.store;\n if (typeof store.removeAllCookies === \"function\" && store.removeAllCookies !== Store.prototype.removeAllCookies) {\n return store.removeAllCookies(cb);\n }\n store.getAllCookies((err, cookies) => {\n if (err) {\n return cb(err);\n }\n if (cookies.length === 0) {\n return cb(null);\n }\n let completedCount = 0;\n const removeErrors = [];\n function removeCookieCb(removeErr) {\n if (removeErr) {\n removeErrors.push(removeErr);\n }\n completedCount++;\n if (completedCount === cookies.length) {\n return cb(removeErrors.length ? removeErrors[0] : null);\n }\n }\n cookies.forEach((cookie) => {\n store.removeCookie(\n cookie.domain,\n cookie.path,\n cookie.key,\n removeCookieCb\n );\n });\n });\n }\n static deserialize(strOrObj, store, cb) {\n if (arguments.length !== 3) {\n cb = store;\n store = null;\n }\n validators.validate(validators.isFunction(cb), cb);\n let serialized;\n if (typeof strOrObj === \"string\") {\n serialized = jsonParse(strOrObj);\n if (serialized instanceof Error) {\n return cb(serialized);\n }\n } else {\n serialized = strOrObj;\n }\n const jar = new _CookieJar(store, {\n rejectPublicSuffixes: serialized.rejectPublicSuffixes,\n looseMode: serialized.enableLooseMode,\n allowSpecialUseDomain: serialized.allowSpecialUseDomain,\n prefixSecurity: serialized.prefixSecurity\n });\n jar._importCookies(serialized, (err) => {\n if (err) {\n return cb(err);\n }\n cb(null, jar);\n });\n }\n static deserializeSync(strOrObj, store) {\n const serialized = typeof strOrObj === \"string\" ? JSON.parse(strOrObj) : strOrObj;\n const jar = new _CookieJar(store, {\n rejectPublicSuffixes: serialized.rejectPublicSuffixes,\n looseMode: serialized.enableLooseMode\n });\n if (!jar.store.synchronous) {\n throw new Error(\n \"CookieJar store is not synchronous; use async API instead.\"\n );\n }\n jar._importCookiesSync(serialized);\n return jar;\n }\n };\n CookieJar.fromJSON = CookieJar.deserializeSync;\n [\n \"_importCookies\",\n \"clone\",\n \"getCookies\",\n \"getCookieString\",\n \"getSetCookieStrings\",\n \"removeAllCookies\",\n \"serialize\",\n \"setCookie\"\n ].forEach((name) => {\n CookieJar.prototype[name] = fromCallback(CookieJar.prototype[name]);\n });\n CookieJar.deserialize = fromCallback(CookieJar.deserialize);\n function syncWrap(method) {\n return function(...args) {\n if (!this.store.synchronous) {\n throw new Error(\n \"CookieJar store is not synchronous; use async API instead.\"\n );\n }\n let syncErr, syncResult;\n this[method](...args, (err, result) => {\n syncErr = err;\n syncResult = result;\n });\n if (syncErr) {\n throw syncErr;\n }\n return syncResult;\n };\n }\n exports.version = VERSION;\n exports.CookieJar = CookieJar;\n exports.Cookie = Cookie;\n exports.Store = Store;\n exports.MemoryCookieStore = MemoryCookieStore;\n exports.parseDate = parseDate;\n exports.formatDate = formatDate;\n exports.parse = parse;\n exports.fromJSON = fromJSON;\n exports.domainMatch = domainMatch;\n exports.defaultPath = defaultPath;\n exports.pathMatch = pathMatch;\n exports.getPublicSuffix = pubsuffix.getPublicSuffix;\n exports.cookieCompare = cookieCompare;\n exports.permuteDomain = require_permuteDomain().permuteDomain;\n exports.permutePath = permutePath;\n exports.canonicalDomain = canonicalDomain;\n exports.PrefixSecurityEnum = PrefixSecurityEnum;\n exports.ParameterError = validators.ParameterError;\n }\n});\n\n// source.js\nvar import_tough_cookie = __toESM(require_cookie(), 1);\nvar source_default = import_tough_cookie.default;\nexport {\n source_default as default\n};\n/*! Bundled license information:\n\ntough-cookie/lib/pubsuffix-psl.js:\n (*!\n * Copyright (c) 2018, Salesforce.com, Inc.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice,\n * this list of conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n *\n * 3. Neither the name of Salesforce.com nor the names of its contributors may\n * be used to endorse or promote products derived from this software without\n * specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n *)\n\ntough-cookie/lib/store.js:\n (*!\n * Copyright (c) 2015, Salesforce.com, Inc.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice,\n * this list of conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n *\n * 3. Neither the name of Salesforce.com nor the names of its contributors may\n * be used to endorse or promote products derived from this software without\n * specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n *)\n\ntough-cookie/lib/permuteDomain.js:\n (*!\n * Copyright (c) 2015, Salesforce.com, Inc.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice,\n * this list of conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n *\n * 3. Neither the name of Salesforce.com nor the names of its contributors may\n * be used to endorse or promote products derived from this software without\n * specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n *)\n\ntough-cookie/lib/pathMatch.js:\n (*!\n * Copyright (c) 2015, Salesforce.com, Inc.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice,\n * this list of conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n *\n * 3. Neither the name of Salesforce.com nor the names of its contributors may\n * be used to endorse or promote products derived from this software without\n * specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n *)\n\ntough-cookie/lib/memstore.js:\n (*!\n * Copyright (c) 2015, Salesforce.com, Inc.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice,\n * this list of conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n *\n * 3. Neither the name of Salesforce.com nor the names of its contributors may\n * be used to endorse or promote products derived from this software without\n * specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n *)\n\ntough-cookie/lib/cookie.js:\n (*!\n * Copyright (c) 2015-2020, Salesforce.com, Inc.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice,\n * this list of conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n *\n * 3. Neither the name of Salesforce.com nor the names of its contributors may\n * be used to endorse or promote products derived from this software without\n * specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n *)\n*/\n","import { invariant } from 'outvariant'\nimport { isNodeProcess } from 'is-node-process'\nimport toughCookie, {\n type Cookie as CookieInstance,\n} from '@bundled-es-modules/tough-cookie'\n\nconst { Cookie, CookieJar, Store, MemoryCookieStore, domainMatch, pathMatch } =\n toughCookie\n\n/**\n * Custom cookie store that uses the Web Storage API.\n * @see https://github.com/expo/tough-cookie-web-storage-store\n */\nclass WebStorageCookieStore extends Store {\n private storage: Storage\n private storageKey: string\n\n constructor() {\n super()\n\n invariant(\n typeof localStorage !== 'undefined',\n 'Failed to create a WebStorageCookieStore: `localStorage` is not available in this environment. This is likely an issue with MSW. Please report it on GitHub: https://github.com/mswjs/msw/issues',\n )\n\n this.synchronous = true\n this.storage = localStorage\n this.storageKey = '__msw-cookie-store__'\n }\n\n findCookie(\n domain: string,\n path: string,\n key: string,\n callback: (error: Error | null, cookie: CookieInstance | null) => void,\n ): void {\n try {\n const store = this.getStore()\n const cookies = this.filterCookiesFromList(store, { domain, path, key })\n callback(null, cookies[0] || null)\n } catch (error) {\n if (error instanceof Error) {\n callback(error, null)\n }\n }\n }\n\n findCookies(\n domain: string,\n path: string,\n allowSpecialUseDomain: boolean,\n callback: (error: Error | null, cookie: Array<CookieInstance>) => void,\n ): void {\n if (!domain) {\n callback(null, [])\n return\n }\n\n try {\n const store = this.getStore()\n const results = this.filterCookiesFromList(store, {\n domain,\n path,\n })\n callback(null, results)\n } catch (error) {\n if (error instanceof Error) {\n callback(error, [])\n }\n }\n }\n\n putCookie(\n cookie: CookieInstance,\n callback: (error: Error | null) => void,\n ): void {\n try {\n // Never set cookies with `maxAge` of `0`.\n if (cookie.maxAge === 0) {\n return\n }\n\n const store = this.getStore()\n store.push(cookie)\n this.updateStore(store)\n } catch (error) {\n if (error instanceof Error) {\n callback(error)\n }\n }\n }\n\n updateCookie(\n oldCookie: CookieInstance,\n newCookie: CookieInstance,\n callback: (error: Error | null) => void,\n ): void {\n /**\n * If updating a cookie with `maxAge` of `0`, remove it from the store.\n * Otherwise, two cookie entries will be created.\n * @see https://github.com/mswjs/msw/issues/2272\n */\n if (newCookie.maxAge === 0) {\n this.removeCookie(\n newCookie.domain || '',\n newCookie.path || '',\n newCookie.key,\n callback,\n )\n return\n }\n\n this.putCookie(newCookie, callback)\n }\n\n removeCookie(\n domain: string,\n path: string,\n key: string,\n callback: (error: Error | null) => void,\n ): void {\n try {\n const store = this.getStore()\n const nextStore = this.deleteCookiesFromList(store, { domain, path, key })\n this.updateStore(nextStore)\n callback(null)\n } catch (error) {\n if (error instanceof Error) {\n callback(error)\n }\n }\n }\n\n removeCookies(\n domain: string,\n path: string,\n callback: (error: Error | null) => void,\n ): void {\n try {\n const store = this.getStore()\n const nextStore = this.deleteCookiesFromList(store, { domain, path })\n this.updateStore(nextStore)\n callback(null)\n } catch (error) {\n if (error instanceof Error) {\n callback(error)\n }\n }\n }\n\n getAllCookies(\n callback: (error: Error | null, cookie: Array<CookieInstance>) => void,\n ): void {\n try {\n callback(null, this.getStore())\n } catch (error) {\n if (error instanceof Error) {\n callback(error, [])\n }\n }\n }\n\n private getStore(): Array<CookieInstance> {\n try {\n const json = this.storage.getItem(this.storageKey)\n\n if (json == null) {\n return []\n }\n\n const rawCookies = JSON.parse(json) as Array<Record<string, any>>\n const cookies: Array<CookieInstance> = []\n for (const rawCookie of rawCookies) {\n const cookie = Cookie.fromJSON(rawCookie)\n if (cookie != null) {\n cookies.push(cookie)\n }\n }\n return cookies\n } catch {\n return []\n }\n }\n\n private updateStore(nextStore: Array<CookieInstance>) {\n this.storage.setItem(\n this.storageKey,\n JSON.stringify(nextStore.map((cookie) => cookie.toJSON())),\n )\n }\n\n private filterCookiesFromList(\n cookies: Array<CookieInstance>,\n matches: { domain?: string; path?: string; key?: string },\n ): Array<CookieInstance> {\n const result: Array<CookieInstance> = []\n\n for (const cookie of cookies) {\n if (matches.domain && !domainMatch(matches.domain, cookie.domain || '')) {\n continue\n }\n\n if (matches.path && !pathMatch(matches.path, cookie.path || '')) {\n continue\n }\n\n if (matches.key && cookie.key !== matches.key) {\n continue\n }\n\n result.push(cookie)\n }\n\n return result\n }\n\n private deleteCookiesFromList(\n cookies: Array<CookieInstance>,\n matches: { domain?: string; path?: string; key?: string },\n ) {\n const matchingCookies = this.filterCookiesFromList(cookies, matches)\n return cookies.filter((cookie) => !matchingCookies.includes(cookie))\n }\n}\n\nconst store = isNodeProcess()\n ? new MemoryCookieStore()\n : new WebStorageCookieStore()\n\nexport const cookieStore = new CookieJar(store)\n","\"use strict\";\n\nvar defaultParseOptions = {\n decodeValues: true,\n map: false,\n silent: false,\n};\n\nfunction isNonEmptyString(str) {\n return typeof str === \"string\" && !!str.trim();\n}\n\nfunction parseString(setCookieValue, options) {\n var parts = setCookieValue.split(\";\").filter(isNonEmptyString);\n\n var nameValuePairStr = parts.shift();\n var parsed = parseNameValuePair(nameValuePairStr);\n var name = parsed.name;\n var value = parsed.value;\n\n options = options\n ? Object.assign({}, defaultParseOptions, options)\n : defaultParseOptions;\n\n try {\n value = options.decodeValues ? decodeURIComponent(value) : value; // decode cookie value\n } catch (e) {\n console.error(\n \"set-cookie-parser encountered an error while decoding a cookie with value '\" +\n value +\n \"'. Set options.decodeValues to false to disable this feature.\",\n e\n );\n }\n\n var cookie = {\n name: name,\n value: value,\n };\n\n parts.forEach(function (part) {\n var sides = part.split(\"=\");\n var key = sides.shift().trimLeft().toLowerCase();\n var value = sides.join(\"=\");\n if (key === \"expires\") {\n cookie.expires = new Date(value);\n } else if (key === \"max-age\") {\n cookie.maxAge = parseInt(value, 10);\n } else if (key === \"secure\") {\n cookie.secure = true;\n } else if (key === \"httponly\") {\n cookie.httpOnly = true;\n } else if (key === \"samesite\") {\n cookie.sameSite = value;\n } else {\n cookie[key] = value;\n }\n });\n\n return cookie;\n}\n\nfunction parseNameValuePair(nameValuePairStr) {\n // Parses name-value-pair according to rfc6265bis draft\n\n var name = \"\";\n var value = \"\";\n var nameValueArr = nameValuePairStr.split(\"=\");\n if (nameValueArr.length > 1) {\n name = nameValueArr.shift();\n value = nameValueArr.join(\"=\"); // everything after the first =, joined by a \"=\" if there was more than one part\n } else {\n value = nameValuePairStr;\n }\n\n return { name: name, value: value };\n}\n\nfunction parse(input, options) {\n options = options\n ? Object.assign({}, defaultParseOptions, options)\n : defaultParseOptions;\n\n if (!input) {\n if (!options.map) {\n return [];\n } else {\n return {};\n }\n }\n\n if (input.headers) {\n if (typeof input.headers.getSetCookie === \"function\") {\n // for fetch responses - they combine headers of the same type in the headers array,\n // but getSetCookie returns an uncombined array\n input = input.headers.getSetCookie();\n } else if (input.headers[\"set-cookie\"]) {\n // fast-path for node.js (which automatically normalizes header names to lower-case\n input = input.headers[\"set-cookie\"];\n } else {\n // slow-path for other environments - see #25\n var sch =\n input.headers[\n Object.keys(input.headers).find(function (key) {\n return key.toLowerCase() === \"set-cookie\";\n })\n ];\n // warn if called on a request-like object with a cookie header rather than a set-cookie header - see #34, 36\n if (!sch && input.headers.cookie && !options.silent) {\n console.warn(\n \"Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses, not Cookie headers from requests. Set the option {silent: true} to suppress this warning.\"\n );\n }\n input = sch;\n }\n }\n if (!Array.isArray(input)) {\n input = [input];\n }\n\n options = options\n ? Object.assign({}, defaultParseOptions, options)\n : defaultParseOptions;\n\n if (!options.map) {\n return input.filter(isNonEmptyString).map(function (str) {\n return parseString(str, options);\n });\n } else {\n var cookies = {};\n return input.filter(isNonEmptyString).reduce(function (cookies, str) {\n var cookie = parseString(str, options);\n cookies[cookie.name] = cookie;\n return cookies;\n }, cookies);\n }\n}\n\n/*\n Set-Cookie header field-values are sometimes comma joined in one string. This splits them without choking on commas\n that are within a single set-cookie field-value, such as in the Expires portion.\n\n This is uncommon, but explicitly allowed - see https://tools.ietf.org/html/rfc2616#section-4.2\n Node.js does this for every header *except* set-cookie - see https://github.com/nodejs/node/blob/d5e363b77ebaf1caf67cd7528224b651c86815c1/lib/_http_incoming.js#L128\n React Native's fetch does this for *every* header, including set-cookie.\n\n Based on: https://github.com/google/j2objc/commit/16820fdbc8f76ca0c33472810ce0cb03d20efe25\n Credits to: https://github.com/tomball for original and https://github.com/chrusart for JavaScript implementation\n*/\nfunction splitCookiesString(cookiesString) {\n if (Array.isArray(cookiesString)) {\n return cookiesString;\n }\n if (typeof cookiesString !== \"string\") {\n return [];\n }\n\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n\n function skipWhitespace() {\n while (pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))) {\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n\n return ch !== \"=\" && ch !== \";\" && ch !== \",\";\n }\n\n while (pos < cookiesString.length) {\n start = pos;\n cookiesSeparatorFound = false;\n\n while (skipWhitespace()) {\n ch = cookiesString.charAt(pos);\n if (ch === \",\") {\n // ',' is a cookie separator if we have later first '=', not ';' or ','\n lastComma = pos;\n pos += 1;\n\n skipWhitespace();\n nextStart = pos;\n\n while (pos < cookiesString.length && notSpecialChar()) {\n pos += 1;\n }\n\n // currently special character\n if (pos < cookiesString.length && cookiesString.charAt(pos) === \"=\") {\n // we found cookies separator\n cookiesSeparatorFound = true;\n // pos is inside the next cookie, so back up and return it.\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n // in param ',' or param separator ';',\n // we continue from that comma\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n\n return cookiesStrings;\n}\n\nmodule.exports = parse;\nmodule.exports.parse = parse;\nmodule.exports.parseString = parseString;\nmodule.exports.splitCookiesString = splitCookiesString;\n","import { splitCookiesString } from 'set-cookie-parser'\nimport { HeadersList, HeadersObject } from './glossary'\nimport { normalizeHeaderName } from './utils/normalizeHeaderName'\nimport { normalizeHeaderValue } from './utils/normalizeHeaderValue'\nimport { isValidHeaderName } from './utils/isValidHeaderName'\nimport { isValidHeaderValue } from './utils/isValidHeaderValue'\n\nexport const NORMALIZED_HEADERS: unique symbol = Symbol('normalizedHeaders')\n\nexport const RAW_HEADER_NAMES: unique symbol = Symbol('rawHeaderNames')\n\nconst HEADER_VALUE_DELIMITER = ', ' as const\n\nexport class Headers {\n // Normalized header {\"name\":\"a, b\"} storage.\n private [NORMALIZED_HEADERS]: Record<string, string> = {}\n\n // Keeps the mapping between the raw header name\n // and the normalized header name to ease the lookup.\n private [RAW_HEADER_NAMES]: Map<string, string> = new Map()\n\n constructor(init?: HeadersInit | HeadersObject | HeadersList) {\n /**\n * @note Cannot necessarily check if the `init` is an instance of the\n * `Headers` because that class may not be defined in Node or jsdom.\n */\n if (\n ['Headers', 'HeadersPolyfill'].includes(init?.constructor.name) ||\n init instanceof Headers ||\n (typeof globalThis.Headers !== 'undefined' &&\n init instanceof globalThis.Headers)\n ) {\n const initialHeaders = init as Headers\n initialHeaders.forEach((value, name) => {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(init)) {\n init.forEach(([name, value]) => {\n this.append(\n name,\n Array.isArray(value) ? value.join(HEADER_VALUE_DELIMITER) : value\n )\n })\n } else if (init) {\n Object.getOwnPropertyNames(init).forEach((name) => {\n const value = init[name]\n this.append(\n name,\n Array.isArray(value) ? value.join(HEADER_VALUE_DELIMITER) : value\n )\n })\n }\n }\n\n [Symbol.toStringTag] = 'Headers';\n\n [Symbol.iterator]() {\n return this.entries()\n }\n\n *keys(): IterableIterator<string> {\n for (const [name] of this.entries()) {\n yield name\n }\n }\n\n *values(): IterableIterator<string> {\n for (const [, value] of this.entries()) {\n yield value\n }\n }\n\n *entries(): IterableIterator<[string, string]> {\n // https://fetch.spec.whatwg.org/#concept-header-list-sort-and-combine\n let sortedKeys = Object.keys(this[NORMALIZED_HEADERS]).sort((a, b) =>\n a.localeCompare(b)\n )\n for (const name of sortedKeys) {\n if (name === 'set-cookie') {\n for (const value of this.getSetCookie()) {\n yield [name, value]\n }\n } else {\n yield [name, this.get(name)]\n }\n }\n }\n\n /**\n * Returns a boolean stating whether a `Headers` object contains a certain header.\n */\n has(name: string): boolean {\n if (!isValidHeaderName(name)) {\n throw new TypeError(`Invalid header name \"${name}\"`)\n }\n\n return this[NORMALIZED_HEADERS].hasOwnProperty(normalizeHeaderName(name))\n }\n\n /**\n * Returns a `ByteString` sequence of all the values of a header with a given name.\n */\n get(name: string): string | null {\n if (!isValidHeaderName(name)) {\n throw TypeError(`Invalid header name \"${name}\"`)\n }\n\n return this[NORMALIZED_HEADERS][normalizeHeaderName(name)] ?? null\n }\n\n /**\n * Sets a new value for an existing header inside a `Headers` object, or adds the header if it does not already exist.\n */\n set(name: string, value: string): void {\n if (!isValidHeaderName(name) || !isValidHeaderValue(value)) {\n return\n }\n\n const normalizedName = normalizeHeaderName(name)\n const normalizedValue = normalizeHeaderValue(value)\n\n this[NORMALIZED_HEADERS][normalizedName] =\n normalizeHeaderValue(normalizedValue)\n this[RAW_HEADER_NAMES].set(normalizedName, name)\n }\n\n /**\n * Appends a new value onto an existing header inside a `Headers` object, or adds the header if it does not already exist.\n */\n append(name: string, value: string): void {\n if (!isValidHeaderName(name) || !isValidHeaderValue(value)) {\n return\n }\n\n const normalizedName = normalizeHeaderName(name)\n const normalizedValue = normalizeHeaderValue(value)\n\n let resolvedValue = this.has(normalizedName)\n ? `${this.get(normalizedName)}, ${normalizedValue}`\n : normalizedValue\n\n this.set(name, resolvedValue)\n }\n\n /**\n * Deletes a header from the `Headers` object.\n */\n delete(name: string): void {\n if (!isValidHeaderName(name)) {\n return\n }\n\n if (!this.has(name)) {\n return\n }\n\n const normalizedName = normalizeHeaderName(name)\n delete this[NORMALIZED_HEADERS][normalizedName]\n this[RAW_HEADER_NAMES].delete(normalizedName)\n }\n\n /**\n * Traverses the `Headers` object,\n * calling the given callback for each header.\n */\n forEach<ThisArg = this>(\n callback: (\n this: ThisArg,\n value: string,\n name: string,\n parent: this\n ) => void,\n thisArg?: ThisArg\n ) {\n for (const [name, value] of this.entries()) {\n callback.call(thisArg, value, name, this)\n }\n }\n\n /**\n * Returns an array containing the values\n * of all Set-Cookie headers associated\n * with a response\n */\n getSetCookie(): string[] {\n const setCookieHeader = this.get('set-cookie')\n\n if (setCookieHeader === null) {\n return []\n }\n\n if (setCookieHeader === '') {\n return ['']\n }\n\n return splitCookiesString(setCookieHeader)\n }\n}\n","export type PromiseState = 'pending' | 'fulfilled' | 'rejected'\n\nexport type Executor<Value> = ConstructorParameters<typeof Promise<Value>>[0]\nexport type ResolveFunction<Value> = Parameters<Executor<Value>>[0]\nexport type RejectFunction<Reason> = Parameters<Executor<Reason>>[1]\n\nexport type DeferredPromiseExecutor<Input = never, Output = Input> = {\n (resolve?: ResolveFunction<Input>, reject?: RejectFunction<any>): void\n\n resolve: ResolveFunction<Input>\n reject: RejectFunction<any>\n result?: Output\n state: PromiseState\n rejectionReason?: unknown\n}\nexport function createDeferredExecutor<\n Input = never,\n Output = Input\n>(): DeferredPromiseExecutor<Input, Output> {\n const executor = <DeferredPromiseExecutor<Input, Output>>((\n resolve,\n reject\n ) => {\n executor.state = 'pending'\n\n executor.resolve = (data) => {\n if (executor.state !== 'pending') {\n return\n }\n\n executor.result = data as Output\n\n const onFulfilled = <Value>(value: Value) => {\n executor.state = 'fulfilled'\n return value\n }\n\n return resolve(\n data instanceof Promise ? data : Promise.resolve(data).then(onFulfilled)\n )\n }\n\n executor.reject = (reason) => {\n if (executor.state !== 'pending') {\n return\n }\n\n queueMicrotask(() => {\n executor.state = 'rejected'\n })\n\n return reject((executor.rejectionReason = reason))\n }\n })\n\n return executor\n}\n","import {\n type Executor,\n type RejectFunction,\n type ResolveFunction,\n type DeferredPromiseExecutor,\n createDeferredExecutor,\n} from './createDeferredExecutor'\n\nexport class DeferredPromise<Input, Output = Input> extends Promise<Input> {\n #executor: DeferredPromiseExecutor\n\n public resolve: ResolveFunction<Output>\n public reject: RejectFunction<Output>\n\n constructor(executor: Executor<Input> | null = null) {\n const deferredExecutor = createDeferredExecutor()\n super((originalResolve, originalReject) => {\n deferredExecutor(originalResolve, originalReject)\n executor?.(deferredExecutor.resolve, deferredExecutor.reject)\n })\n\n this.#executor = deferredExecutor\n this.resolve = this.#executor.resolve\n this.reject = this.#executor.reject\n }\n\n public get state() {\n return this.#executor.state\n }\n\n public get rejectionReason() {\n return this.#executor.rejectionReason\n }\n\n public then<ThenResult = Input, CatchResult = never>(\n onFulfilled?: (value: Input) => ThenResult | PromiseLike<ThenResult>,\n onRejected?: (reason: any) => CatchResult | PromiseLike<CatchResult>\n ) {\n return this.#decorate(super.then(onFulfilled, onRejected))\n }\n\n public catch<CatchResult = never>(\n onRejected?: (reason: any) => CatchResult | PromiseLike<CatchResult>\n ) {\n return this.#decorate(super.catch(onRejected))\n }\n\n public finally(onfinally?: () => void | Promise<any>) {\n return this.#decorate(super.finally(onfinally))\n }\n\n #decorate<ChildInput>(\n promise: Promise<ChildInput>\n ): DeferredPromise<ChildInput, Output> {\n return Object.defineProperties(promise, {\n resolve: { configurable: true, value: this.resolve },\n reject: { configurable: true, value: this.reject },\n }) as DeferredPromise<ChildInput, Output>\n }\n}\n","import { checkGlobals } from './utils/internal/checkGlobals'\n\nexport { SetupApi } from './SetupApi'\n\n/* HTTP handlers */\nexport { RequestHandler } from './handlers/RequestHandler'\nexport { http } from './http'\nexport { HttpHandler, HttpMethods } from './handlers/HttpHandler'\nexport { graphql } from './graphql'\nexport { GraphQLHandler } from './handlers/GraphQLHandler'\n\n/* WebSocket handler */\nexport { ws, type WebSocketLink } from './ws'\nexport {\n WebSocketHandler,\n type WebSocketHandlerEventMap,\n type WebSocketHandlerConnection,\n} from './handlers/WebSocketHandler'\n\n/* Utils */\nexport { matchRequestUrl } from './utils/matching/matchRequestUrl'\nexport * from './utils/handleRequest'\nexport { getResponse } from './getResponse'\nexport { cleanUrl } from './utils/url/cleanUrl'\n\n/**\n * Type definitions.\n */\n\nexport type { SharedOptions, LifeCycleEventsMap } from './sharedOptions'\n\nexport type {\n ResponseResolver,\n ResponseResolverReturnType,\n AsyncResponseResolverReturnType,\n RequestHandlerOptions,\n DefaultBodyType,\n DefaultRequestMultipartBody,\n JsonBodyType,\n} from './handlers/RequestHandler'\n\nexport type {\n RequestQuery,\n HttpRequestParsedResult,\n} from './handlers/HttpHandler'\nexport type { HttpRequestHandler, HttpResponseResolver } from './http'\n\nexport type {\n GraphQLQuery,\n GraphQLVariables,\n GraphQLRequestBody,\n GraphQLJsonRequestBody,\n} from './handlers/GraphQLHandler'\nexport type { GraphQLRequestHandler, GraphQLResponseResolver } from './graphql'\n\nexport type { WebSocketData, WebSocketEventListener } from './ws'\n\nexport type { Path, PathParams, Match } from './utils/matching/matchRequestUrl'\nexport type { ParsedGraphQLRequest } from './utils/internal/parseGraphQLRequest'\n\nexport * from './HttpResponse'\nexport * from './delay'\nexport { bypass } from './bypass'\nexport { passthrough } from './passthrough'\n\n// Validate environmental globals before executing any code.\n// This ensures that the library gives user-friendly errors\n// when ran in the environments that require additional polyfills\n// from the end user.\ncheckGlobals()\n","import { Agent } from 'http'\nimport { RequestOptions, Agent as HttpsAgent } from 'https'\nimport { Logger } from '@open-draft/logger'\n\nconst logger = new Logger('utils getUrlByRequestOptions')\n\n// Request instance constructed by the \"request\" library\n// has a \"self\" property that has a \"uri\" field. This is\n// reproducible by performing a \"XMLHttpRequest\" request in JSDOM.\nexport interface RequestSelf {\n uri?: URL\n}\n\nexport type ResolvedRequestOptions = RequestOptions & RequestSelf\n\nexport const DEFAULT_PATH = '/'\nconst DEFAULT_PROTOCOL = 'http:'\nconst DEFAULT_HOSTNAME = 'localhost'\nconst SSL_PORT = 443\n\nfunction getAgent(\n options: ResolvedRequestOptions\n): Agent | HttpsAgent | undefined {\n return options.agent instanceof Agent ? options.agent : undefined\n}\n\nfunction getProtocolByRequestOptions(options: ResolvedRequestOptions): string {\n if (options.protocol) {\n return options.protocol\n }\n\n const agent = getAgent(options)\n const agentProtocol = (agent as RequestOptions)?.protocol\n\n if (agentProtocol) {\n return agentProtocol\n }\n\n const port = getPortByRequestOptions(options)\n const isSecureRequest = options.cert || port === SSL_PORT\n\n return isSecureRequest ? 'https:' : options.uri?.protocol || DEFAULT_PROTOCOL\n}\n\nfunction getPortByRequestOptions(\n options: ResolvedRequestOptions\n): number | undefined {\n // Use the explicitly provided port.\n if (options.port) {\n return Number(options.port)\n }\n\n // Otherwise, try to resolve port from the agent.\n const agent = getAgent(options)\n\n if ((agent as HttpsAgent)?.options.port) {\n return Number((agent as HttpsAgent).options.port)\n }\n\n if ((agent as RequestOptions)?.defaultPort) {\n return Number((agent as RequestOptions).defaultPort)\n }\n\n // Lastly, return undefined indicating that the port\n // must inferred from the protocol. Do not infer it here.\n return undefined\n}\n\ninterface RequestAuth {\n username: string\n password: string\n}\n\nfunction getAuthByRequestOptions(\n options: ResolvedRequestOptions\n): RequestAuth | undefined {\n if (options.auth) {\n const [username, password] = options.auth.split(':')\n return { username, password }\n }\n}\n\n/**\n * Returns true if host looks like an IPv6 address without surrounding brackets\n * It assumes any host containing `:` is definitely not IPv4 and probably IPv6,\n * but note that this could include invalid IPv6 addresses as well.\n */\nfunction isRawIPv6Address(host: string): boolean {\n return host.includes(':') && !host.startsWith('[') && !host.endsWith(']')\n}\n\nfunction getHostname(options: ResolvedRequestOptions): string | undefined {\n let host = options.hostname || options.host\n\n if (host) {\n if (isRawIPv6Address(host)) {\n host = `[${host}]`\n }\n\n // Check the presence of the port, and if it's present,\n // remove it from the host, returning a hostname.\n return new URL(`http://${host}`).hostname\n }\n\n return DEFAULT_HOSTNAME\n}\n\n/**\n * Creates a `URL` instance from a given `RequestOptions` object.\n */\nexport function getUrlByRequestOptions(options: ResolvedRequestOptions): URL {\n logger.info('request options', options)\n\n if (options.uri) {\n logger.info(\n 'constructing url from explicitly provided \"options.uri\": %s',\n options.uri\n )\n return new URL(options.uri.href)\n }\n\n logger.info('figuring out url from request options...')\n\n const protocol = getProtocolByRequestOptions(options)\n logger.info('protocol', protocol)\n\n const port = getPortByRequestOptions(options)\n logger.info('port', port)\n\n const hostname = getHostname(options)\n logger.info('hostname', hostname)\n\n const path = options.path || DEFAULT_PATH\n logger.info('path', path)\n\n const credentials = getAuthByRequestOptions(options)\n logger.info('credentials', credentials)\n\n const authString = credentials\n ? `${credentials.username}:${credentials.password}@`\n : ''\n logger.info('auth string:', authString)\n\n const portString = typeof port !== 'undefined' ? `:${port}` : ''\n const url = new URL(`${protocol}//${hostname}${portString}${path}`)\n url.username = credentials?.username || ''\n url.password = credentials?.password || ''\n\n logger.info('created url:', url)\n\n return url\n}\n","import { Logger } from '@open-draft/logger'\n\nconst logger = new Logger('cloneObject')\n\nfunction isPlainObject(obj?: Record<string, any>): boolean {\n logger.info('is plain object?', obj)\n\n if (obj == null || !obj.constructor?.name) {\n logger.info('given object is undefined, not a plain object...')\n return false\n }\n\n logger.info('checking the object constructor:', obj.constructor.name)\n return obj.constructor.name === 'Object'\n}\n\nexport function cloneObject<ObjectType extends Record<string, any>>(\n obj: ObjectType\n): ObjectType {\n logger.info('cloning object:', obj)\n\n const enumerableProperties = Object.entries(obj).reduce<Record<string, any>>(\n (acc, [key, value]) => {\n logger.info('analyzing key-value pair:', key, value)\n\n // Recursively clone only plain objects, omitting class instances.\n acc[key] = isPlainObject(value) ? cloneObject(value) : value\n return acc\n },\n {}\n )\n\n return isPlainObject(obj)\n ? enumerableProperties\n : Object.assign(Object.getPrototypeOf(obj), enumerableProperties)\n}\n","import { urlToHttpOptions } from 'node:url'\nimport {\n Agent as HttpAgent,\n globalAgent as httpGlobalAgent,\n IncomingMessage,\n} from 'node:http'\nimport {\n RequestOptions,\n Agent as HttpsAgent,\n globalAgent as httpsGlobalAgent,\n} from 'node:https'\nimport {\n /**\n * @note Use the Node.js URL instead of the global URL\n * because environments like JSDOM may override the global,\n * breaking the compatibility with Node.js.\n * @see https://github.com/node-fetch/node-fetch/issues/1376#issuecomment-966435555\n */\n URL,\n Url as LegacyURL,\n parse as parseUrl,\n} from 'node:url'\nimport { Logger } from '@open-draft/logger'\nimport {\n ResolvedRequestOptions,\n getUrlByRequestOptions,\n} from '../../../utils/getUrlByRequestOptions'\nimport { cloneObject } from '../../../utils/cloneObject'\nimport { isObject } from '../../../utils/isObject'\n\nconst logger = new Logger('http normalizeClientRequestArgs')\n\nexport type HttpRequestCallback = (response: IncomingMessage) => void\n\nexport type ClientRequestArgs =\n // Request without any arguments is also possible.\n | []\n | [string | URL | LegacyURL, HttpRequestCallback?]\n | [string | URL | LegacyURL, RequestOptions, HttpRequestCallback?]\n | [RequestOptions, HttpRequestCallback?]\n\nfunction resolveRequestOptions(\n args: ClientRequestArgs,\n url: URL\n): RequestOptions {\n // Calling `fetch` provides only URL to `ClientRequest`\n // without any `RequestOptions` or callback.\n if (typeof args[1] === 'undefined' || typeof args[1] === 'function') {\n logger.info('request options not provided, deriving from the url', url)\n return urlToHttpOptions(url)\n }\n\n if (args[1]) {\n logger.info('has custom RequestOptions!', args[1])\n const requestOptionsFromUrl = urlToHttpOptions(url)\n\n logger.info('derived RequestOptions from the URL:', requestOptionsFromUrl)\n\n /**\n * Clone the request options to lock their state\n * at the moment they are provided to `ClientRequest`.\n * @see https://github.com/mswjs/interceptors/issues/86\n */\n logger.info('cloning RequestOptions...')\n const clonedRequestOptions = cloneObject(args[1])\n logger.info('successfully cloned RequestOptions!', clonedRequestOptions)\n\n return {\n ...requestOptionsFromUrl,\n ...clonedRequestOptions,\n }\n }\n\n logger.info('using an empty object as request options')\n return {} as RequestOptions\n}\n\n/**\n * Overrides the given `URL` instance with the explicit properties provided\n * on the `RequestOptions` object. The options object takes precedence,\n * and will replace URL properties like \"host\", \"path\", and \"port\", if specified.\n */\nfunction overrideUrlByRequestOptions(url: URL, options: RequestOptions): URL {\n url.host = options.host || url.host\n url.hostname = options.hostname || url.hostname\n url.port = options.port ? options.port.toString() : url.port\n\n if (options.path) {\n const parsedOptionsPath = parseUrl(options.path, false)\n url.pathname = parsedOptionsPath.pathname || ''\n url.search = parsedOptionsPath.search || ''\n }\n\n return url\n}\n\nfunction resolveCallback(\n args: ClientRequestArgs\n): HttpRequestCallback | undefined {\n return typeof args[1] === 'function' ? args[1] : args[2]\n}\n\nexport type NormalizedClientRequestArgs = [\n url: URL,\n options: ResolvedRequestOptions,\n callback?: HttpRequestCallback\n]\n\n/**\n * Normalizes parameters given to a `http.request` call\n * so it always has a `URL` and `RequestOptions`.\n */\nexport function normalizeClientRequestArgs(\n defaultProtocol: string,\n args: ClientRequestArgs\n): NormalizedClientRequestArgs {\n let url: URL\n let options: ResolvedRequestOptions\n let callback: HttpRequestCallback | undefined\n\n logger.info('arguments', args)\n logger.info('using default protocol:', defaultProtocol)\n\n // Support \"http.request()\" calls without any arguments.\n // That call results in a \"GET http://localhost\" request.\n if (args.length === 0) {\n const url = new URL('http://localhost')\n const options = resolveRequestOptions(args, url)\n return [url, options]\n }\n\n // Convert a url string into a URL instance\n // and derive request options from it.\n if (typeof args[0] === 'string') {\n logger.info('first argument is a location string:', args[0])\n\n url = new URL(args[0])\n logger.info('created a url:', url)\n\n const requestOptionsFromUrl = urlToHttpOptions(url)\n logger.info('request options from url:', requestOptionsFromUrl)\n\n options = resolveRequestOptions(args, url)\n logger.info('resolved request options:', options)\n\n callback = resolveCallback(args)\n }\n // Handle a given URL instance as-is\n // and derive request options from it.\n else if (args[0] instanceof URL) {\n url = args[0]\n logger.info('first argument is a URL:', url)\n\n // Check if the second provided argument is RequestOptions.\n // If it is, check if \"options.path\" was set and rewrite it\n // on the input URL.\n // Do this before resolving options from the URL below\n // to prevent query string from being duplicated in the path.\n if (typeof args[1] !== 'undefined' && isObject<RequestOptions>(args[1])) {\n url = overrideUrlByRequestOptions(url, args[1])\n }\n\n options = resolveRequestOptions(args, url)\n logger.info('derived request options:', options)\n\n callback = resolveCallback(args)\n }\n // Handle a legacy URL instance and re-normalize from either a RequestOptions object\n // or a WHATWG URL.\n else if ('hash' in args[0] && !('method' in args[0])) {\n const [legacyUrl] = args\n logger.info('first argument is a legacy URL:', legacyUrl)\n\n if (legacyUrl.hostname === null) {\n /**\n * We are dealing with a relative url, so use the path as an \"option\" and\n * merge in any existing options, giving priority to exising options -- i.e. a path in any\n * existing options will take precedence over the one contained in the url. This is consistent\n * with the behaviour in ClientRequest.\n * @see https://github.com/nodejs/node/blob/d84f1312915fe45fe0febe888db692c74894c382/lib/_http_client.js#L122\n */\n logger.info('given legacy URL is relative (no hostname)')\n\n return isObject(args[1])\n ? normalizeClientRequestArgs(defaultProtocol, [\n { path: legacyUrl.path, ...args[1] },\n args[2],\n ])\n : normalizeClientRequestArgs(defaultProtocol, [\n { path: legacyUrl.path },\n args[1] as HttpRequestCallback,\n ])\n }\n\n logger.info('given legacy url is absolute')\n\n // We are dealing with an absolute URL, so convert to WHATWG and try again.\n const resolvedUrl = new URL(legacyUrl.href)\n\n return args[1] === undefined\n ? normalizeClientRequestArgs(defaultProtocol, [resolvedUrl])\n : typeof args[1] === 'function'\n ? normalizeClientRequestArgs(defaultProtocol, [resolvedUrl, args[1]])\n : normalizeClientRequestArgs(defaultProtocol, [\n resolvedUrl,\n args[1],\n args[2],\n ])\n }\n // Handle a given \"RequestOptions\" object as-is\n // and derive the URL instance from it.\n else if (isObject(args[0])) {\n options = { ...(args[0] as any) }\n logger.info('first argument is RequestOptions:', options)\n\n // When handling a \"RequestOptions\" object without an explicit \"protocol\",\n // infer the protocol from the request issuing module (http/https).\n options.protocol = options.protocol || defaultProtocol\n logger.info('normalized request options:', options)\n\n url = getUrlByRequestOptions(options)\n logger.info('created a URL from RequestOptions:', url.href)\n\n callback = resolveCallback(args)\n } else {\n throw new Error(\n `Failed to construct ClientRequest with these parameters: ${args}`\n )\n }\n\n options.protocol = options.protocol || url.protocol\n options.method = options.method || 'GET'\n\n /**\n * Infer a fallback agent from the URL protocol.\n * The interception is done on the \"ClientRequest\" level (\"NodeClientRequest\")\n * and it may miss the correct agent. Always align the agent\n * with the URL protocol, if not provided.\n *\n * @note Respect the \"agent: false\" value.\n */\n if (typeof options.agent === 'undefined') {\n const agent =\n options.protocol === 'https:'\n ? new HttpsAgent({\n rejectUnauthorized: options.rejectUnauthorized,\n })\n : new HttpAgent()\n\n options.agent = agent\n logger.info('resolved fallback agent:', agent)\n }\n\n /**\n * Ensure that the default Agent is always set.\n * This prevents the protocol mismatch for requests with { agent: false },\n * where the global Agent is inferred.\n * @see https://github.com/mswjs/msw/issues/1150\n * @see https://github.com/nodejs/node/blob/418ff70b810f0e7112d48baaa72932a56cfa213b/lib/_http_client.js#L130\n * @see https://github.com/nodejs/node/blob/418ff70b810f0e7112d48baaa72932a56cfa213b/lib/_http_client.js#L157-L159\n */\n if (!options._defaultAgent) {\n logger.info(\n 'has no default agent, setting the default agent for \"%s\"',\n options.protocol\n )\n\n options._defaultAgent =\n options.protocol === 'https:' ? httpsGlobalAgent : httpGlobalAgent\n }\n\n logger.info('successfully resolved url:', url.href)\n logger.info('successfully resolved options:', options)\n logger.info('successfully resolved callback:', callback)\n\n /**\n * @note If the user-provided URL is not a valid URL in Node.js,\n * (e.g. the one provided by the JSDOM polyfills), case it to\n * string. Otherwise, this throws on Node.js incompatibility\n * (`ERR_INVALID_ARG_TYPE` on the connection listener)\n * @see https://github.com/node-fetch/node-fetch/issues/1376#issuecomment-966435555\n */\n if (!(url instanceof URL)) {\n url = (url as any).toString()\n }\n\n return [url, options, callback]\n}\n","/**\n * Returns a boolean indicating whether the given global property\n * is defined and is configurable.\n */\nexport function hasConfigurableGlobal(propertyName: string): boolean {\n const descriptor = Object.getOwnPropertyDescriptor(globalThis, propertyName)\n\n // The property is not set at all.\n if (typeof descriptor === 'undefined') {\n return false\n }\n\n // The property is set to a getter that returns undefined.\n if (\n typeof descriptor.get === 'function' &&\n typeof descriptor.get() === 'undefined'\n ) {\n return false\n }\n\n // The property is set to a value equal to undefined.\n if (typeof descriptor.get === 'undefined' && descriptor.value == null) {\n return false\n }\n\n if (typeof descriptor.set === 'undefined' && !descriptor.configurable) {\n console.error(\n `[MSW] Failed to apply interceptor: the global \\`${propertyName}\\` property is non-configurable. This is likely an issue with your environment. If you are using a framework, please open an issue about this in their repository.`\n )\n return false\n }\n\n return true\n}\n","import { Logger } from '@open-draft/logger'\nimport { Emitter, Listener } from 'strict-event-emitter'\n\nexport type InterceptorEventMap = Record<string, any>\nexport type InterceptorSubscription = () => void\n\n/**\n * Request header name to detect when a single request\n * is being handled by nested interceptors (XHR -> ClientRequest).\n * Obscure by design to prevent collisions with user-defined headers.\n * Ideally, come up with the Interceptor-level mechanism for this.\n * @see https://github.com/mswjs/interceptors/issues/378\n */\nexport const INTERNAL_REQUEST_ID_HEADER_NAME =\n 'x-interceptors-internal-request-id'\n\nexport function getGlobalSymbol<V>(symbol: Symbol): V | undefined {\n return (\n // @ts-ignore https://github.com/Microsoft/TypeScript/issues/24587\n globalThis[symbol] || undefined\n )\n}\n\nfunction setGlobalSymbol(symbol: Symbol, value: any): void {\n // @ts-ignore\n globalThis[symbol] = value\n}\n\nexport function deleteGlobalSymbol(symbol: Symbol): void {\n // @ts-ignore\n delete globalThis[symbol]\n}\n\nexport enum InterceptorReadyState {\n INACTIVE = 'INACTIVE',\n APPLYING = 'APPLYING',\n APPLIED = 'APPLIED',\n DISPOSING = 'DISPOSING',\n DISPOSED = 'DISPOSED',\n}\n\nexport type ExtractEventNames<Events extends Record<string, any>> =\n Events extends Record<infer EventName, any> ? EventName : never\n\nexport class Interceptor<Events extends InterceptorEventMap> {\n protected emitter: Emitter<Events>\n protected subscriptions: Array<InterceptorSubscription>\n protected logger: Logger\n\n public readyState: InterceptorReadyState\n\n constructor(private readonly symbol: symbol) {\n this.readyState = InterceptorReadyState.INACTIVE\n\n this.emitter = new Emitter()\n this.subscriptions = []\n this.logger = new Logger(symbol.description!)\n\n // Do not limit the maximum number of listeners\n // so not to limit the maximum amount of parallel events emitted.\n this.emitter.setMaxListeners(0)\n\n this.logger.info('constructing the interceptor...')\n }\n\n /**\n * Determine if this interceptor can be applied\n * in the current environment.\n */\n protected checkEnvironment(): boolean {\n return true\n }\n\n /**\n * Apply this interceptor to the current process.\n * Returns an already running interceptor instance if it's present.\n */\n public apply(): void {\n const logger = this.logger.extend('apply')\n logger.info('applying the interceptor...')\n\n if (this.readyState === InterceptorReadyState.APPLIED) {\n logger.info('intercepted already applied!')\n return\n }\n\n const shouldApply = this.checkEnvironment()\n\n if (!shouldApply) {\n logger.info('the interceptor cannot be applied in this environment!')\n return\n }\n\n this.readyState = InterceptorReadyState.APPLYING\n\n // Whenever applying a new interceptor, check if it hasn't been applied already.\n // This enables to apply the same interceptor multiple times, for example from a different\n // interceptor, only proxying events but keeping the stubs in a single place.\n const runningInstance = this.getInstance()\n\n if (runningInstance) {\n logger.info('found a running instance, reusing...')\n\n // Proxy any listeners you set on this instance to the running instance.\n this.on = (event, listener) => {\n logger.info('proxying the \"%s\" listener', event)\n\n // Add listeners to the running instance so they appear\n // at the top of the event listeners list and are executed first.\n runningInstance.emitter.addListener(event, listener)\n\n // Ensure that once this interceptor instance is disposed,\n // it removes all listeners it has appended to the running interceptor instance.\n this.subscriptions.push(() => {\n runningInstance.emitter.removeListener(event, listener)\n logger.info('removed proxied \"%s\" listener!', event)\n })\n\n return this\n }\n\n this.readyState = InterceptorReadyState.APPLIED\n\n return\n }\n\n logger.info('no running instance found, setting up a new instance...')\n\n // Setup the interceptor.\n this.setup()\n\n // Store the newly applied interceptor instance globally.\n this.setInstance()\n\n this.readyState = InterceptorReadyState.APPLIED\n }\n\n /**\n * Setup the module augments and stubs necessary for this interceptor.\n * This method is not run if there's a running interceptor instance\n * to prevent instantiating an interceptor multiple times.\n */\n protected setup(): void {}\n\n /**\n * Listen to the interceptor's public events.\n */\n public on<EventName extends ExtractEventNames<Events>>(\n event: EventName,\n listener: Listener<Events[EventName]>\n ): this {\n const logger = this.logger.extend('on')\n\n if (\n this.readyState === InterceptorReadyState.DISPOSING ||\n this.readyState === InterceptorReadyState.DISPOSED\n ) {\n logger.info('cannot listen to events, already disposed!')\n return this\n }\n\n logger.info('adding \"%s\" event listener:', event, listener)\n\n this.emitter.on(event, listener)\n return this\n }\n\n public once<EventName extends ExtractEventNames<Events>>(\n event: EventName,\n listener: Listener<Events[EventName]>\n ): this {\n this.emitter.once(event, listener)\n return this\n }\n\n public off<EventName extends ExtractEventNames<Events>>(\n event: EventName,\n listener: Listener<Events[EventName]>\n ): this {\n this.emitter.off(event, listener)\n return this\n }\n\n public removeAllListeners<EventName extends ExtractEventNames<Events>>(\n event?: EventName\n ): this {\n this.emitter.removeAllListeners(event)\n return this\n }\n\n /**\n * Disposes of any side-effects this interceptor has introduced.\n */\n public dispose(): void {\n const logger = this.logger.extend('dispose')\n\n if (this.readyState === InterceptorReadyState.DISPOSED) {\n logger.info('cannot dispose, already disposed!')\n return\n }\n\n logger.info('disposing the interceptor...')\n this.readyState = InterceptorReadyState.DISPOSING\n\n if (!this.getInstance()) {\n logger.info('no interceptors running, skipping dispose...')\n return\n }\n\n // Delete the global symbol as soon as possible,\n // indicating that the interceptor is no longer running.\n this.clearInstance()\n\n logger.info('global symbol deleted:', getGlobalSymbol(this.symbol))\n\n if (this.subscriptions.length > 0) {\n logger.info('disposing of %d subscriptions...', this.subscriptions.length)\n\n for (const dispose of this.subscriptions) {\n dispose()\n }\n\n this.subscriptions = []\n\n logger.info('disposed of all subscriptions!', this.subscriptions.length)\n }\n\n this.emitter.removeAllListeners()\n logger.info('destroyed the listener!')\n\n this.readyState = InterceptorReadyState.DISPOSED\n }\n\n private getInstance(): this | undefined {\n const instance = getGlobalSymbol<this>(this.symbol)\n this.logger.info('retrieved global instance:', instance?.constructor?.name)\n return instance\n }\n\n private setInstance(): void {\n setGlobalSymbol(this.symbol, this)\n this.logger.info('set global instance!', this.symbol.description)\n }\n\n private clearInstance(): void {\n deleteGlobalSymbol(this.symbol)\n this.logger.info('cleared global instance!', this.symbol.description)\n }\n}\n","/**\n * Generate a random ID string to represent a request.\n * @example\n * createRequestId()\n * // \"f774b6c9c600f\"\n */\nexport function createRequestId(): string {\n return Math.random().toString(16).slice(2)\n}\n","type EventWithTarget<E extends Event, T> = E & { target: T }\n\nexport function bindEvent<E extends Event, T>(\n target: T,\n event: E\n): EventWithTarget<E, T> {\n Object.defineProperties(event, {\n target: {\n value: target,\n enumerable: true,\n writable: true,\n },\n currentTarget: {\n value: target,\n enumerable: true,\n writable: true,\n },\n })\n\n return event as EventWithTarget<E, T>\n}\n","const kCancelable = Symbol('kCancelable')\nconst kDefaultPrevented = Symbol('kDefaultPrevented')\n\n/**\n * A `MessageEvent` superset that supports event cancellation\n * in Node.js. It's rather non-intrusive so it can be safely\n * used in the browser as well.\n *\n * @see https://github.com/nodejs/node/issues/51767\n */\nexport class CancelableMessageEvent<T = any> extends MessageEvent<T> {\n [kCancelable]: boolean;\n [kDefaultPrevented]: boolean\n\n constructor(type: string, init: MessageEventInit<T>) {\n super(type, init)\n this[kCancelable] = !!init.cancelable\n this[kDefaultPrevented] = false\n }\n\n get cancelable() {\n return this[kCancelable]\n }\n\n set cancelable(nextCancelable) {\n this[kCancelable] = nextCancelable\n }\n\n get defaultPrevented() {\n return this[kDefaultPrevented]\n }\n\n set defaultPrevented(nextDefaultPrevented) {\n this[kDefaultPrevented] = nextDefaultPrevented\n }\n\n public preventDefault(): void {\n if (this.cancelable && !this[kDefaultPrevented]) {\n this[kDefaultPrevented] = true\n }\n }\n}\n\ninterface CloseEventInit extends EventInit {\n code?: number\n reason?: string\n wasClean?: boolean\n}\n\nexport class CloseEvent extends Event {\n public code: number\n public reason: string\n public wasClean: boolean\n\n constructor(type: string, init: CloseEventInit = {}) {\n super(type, init)\n this.code = init.code === undefined ? 0 : init.code\n this.reason = init.reason === undefined ? '' : init.reason\n this.wasClean = init.wasClean === undefined ? false : init.wasClean\n }\n}\n\nexport class CancelableCloseEvent extends CloseEvent {\n [kCancelable]: boolean;\n [kDefaultPrevented]: boolean\n\n constructor(type: string, init: CloseEventInit = {}) {\n super(type, init)\n this[kCancelable] = !!init.cancelable\n this[kDefaultPrevented] = false\n }\n\n get cancelable() {\n return this[kCancelable]\n }\n\n set cancelable(nextCancelable) {\n this[kCancelable] = nextCancelable\n }\n\n get defaultPrevented() {\n return this[kDefaultPrevented]\n }\n\n set defaultPrevented(nextDefaultPrevented) {\n this[kDefaultPrevented] = nextDefaultPrevented\n }\n\n public preventDefault(): void {\n if (this.cancelable && !this[kDefaultPrevented]) {\n this[kDefaultPrevented] = true\n }\n }\n}\n","import type { WebSocketData, WebSocketTransport } from './WebSocketTransport'\nimport type { WebSocketEventListener } from './WebSocketOverride'\nimport { bindEvent } from './utils/bindEvent'\nimport { CancelableMessageEvent, CloseEvent } from './utils/events'\nimport { createRequestId } from '../../createRequestId'\n\nconst kEmitter = Symbol('kEmitter')\nconst kBoundListener = Symbol('kBoundListener')\n\ninterface WebSocketClientEventMap {\n message: MessageEvent<WebSocketData>\n close: CloseEvent\n}\n\nexport interface WebSocketClientConnectionProtocol {\n id: string\n url: URL\n send(data: WebSocketData): void\n close(code?: number, reason?: string): void\n}\n\n/**\n * The WebSocket client instance represents an incoming\n * client connection. The user can control the connection,\n * send and receive events.\n */\nexport class WebSocketClientConnection\n implements WebSocketClientConnectionProtocol\n{\n public readonly id: string\n public readonly url: URL\n\n private [kEmitter]: EventTarget\n\n constructor(\n public readonly socket: WebSocket,\n private readonly transport: WebSocketTransport\n ) {\n this.id = createRequestId()\n this.url = new URL(socket.url)\n this[kEmitter] = new EventTarget()\n\n // Emit outgoing client data (\"ws.send()\") as \"message\"\n // events on the \"client\" connection.\n this.transport.addEventListener('outgoing', (event) => {\n const message = bindEvent(\n this.socket,\n new CancelableMessageEvent('message', {\n data: event.data,\n origin: event.origin,\n cancelable: true,\n })\n )\n\n this[kEmitter].dispatchEvent(message)\n\n // This is a bit silly but forward the cancellation state\n // of the \"client\" message event to the \"outgoing\" transport event.\n // This way, other agens (like \"server\" connection) can know\n // whether the client listener has pervented the default.\n if (message.defaultPrevented) {\n event.preventDefault()\n }\n })\n\n /**\n * Emit the \"close\" event on the \"client\" connection\n * whenever the underlying transport is closed.\n * @note \"client.close()\" does NOT dispatch the \"close\"\n * event on the WebSocket because it uses non-configurable\n * close status code. Thus, we listen to the transport\n * instead of the WebSocket's \"close\" event.\n */\n this.transport.addEventListener('close', (event) => {\n this[kEmitter].dispatchEvent(\n bindEvent(this.socket, new CloseEvent('close', event))\n )\n })\n }\n\n /**\n * Listen for the outgoing events from the connected WebSocket client.\n */\n public addEventListener<EventType extends keyof WebSocketClientEventMap>(\n type: EventType,\n listener: WebSocketEventListener<WebSocketClientEventMap[EventType]>,\n options?: AddEventListenerOptions | boolean\n ): void {\n if (!Reflect.has(listener, kBoundListener)) {\n const boundListener = listener.bind(this.socket)\n\n // Store the bound listener on the original listener\n // so the exact bound function can be accessed in \"removeEventListener()\".\n Object.defineProperty(listener, kBoundListener, {\n value: boundListener,\n enumerable: false,\n configurable: false,\n })\n }\n\n this[kEmitter].addEventListener(\n type,\n Reflect.get(listener, kBoundListener) as EventListener,\n options\n )\n }\n\n /**\n * Removes the listener for the given event.\n */\n public removeEventListener<EventType extends keyof WebSocketClientEventMap>(\n event: EventType,\n listener: WebSocketEventListener<WebSocketClientEventMap[EventType]>,\n options?: EventListenerOptions | boolean\n ): void {\n this[kEmitter].removeEventListener(\n event,\n Reflect.get(listener, kBoundListener) as EventListener,\n options\n )\n }\n\n /**\n * Send data to the connected client.\n */\n public send(data: WebSocketData): void {\n this.transport.send(data)\n }\n\n /**\n * Close the WebSocket connection.\n * @param {number} code A status code (see https://www.rfc-editor.org/rfc/rfc6455#section-7.4.1).\n * @param {string} reason A custom connection close reason.\n */\n public close(code?: number, reason?: string): void {\n this.transport.close(code, reason)\n }\n}\n","import { invariant } from 'outvariant'\nimport type { WebSocketData } from './WebSocketTransport'\nimport { bindEvent } from './utils/bindEvent'\nimport { CloseEvent } from './utils/events'\nimport { DeferredPromise } from '@open-draft/deferred-promise'\n\nexport type WebSocketEventListener<\n EventType extends WebSocketEventMap[keyof WebSocketEventMap] = Event\n> = (this: WebSocket, event: EventType) => void\n\nconst WEBSOCKET_CLOSE_CODE_RANGE_ERROR =\n 'InvalidAccessError: close code out of user configurable range'\n\nexport const kPassthroughPromise = Symbol('kPassthroughPromise')\nexport const kOnSend = Symbol('kOnSend')\nexport const kClose = Symbol('kClose')\n\nexport class WebSocketOverride extends EventTarget implements WebSocket {\n static readonly CONNECTING = 0\n static readonly OPEN = 1\n static readonly CLOSING = 2\n static readonly CLOSED = 3\n readonly CONNECTING = 0\n readonly OPEN = 1\n readonly CLOSING = 2\n readonly CLOSED = 3\n\n public url: string\n public protocol: string\n public extensions: string\n public binaryType: BinaryType\n public readyState: number\n public bufferedAmount: number\n\n private _onopen: WebSocketEventListener | null = null\n private _onmessage: WebSocketEventListener<\n MessageEvent<WebSocketData>\n > | null = null\n private _onerror: WebSocketEventListener | null = null\n private _onclose: WebSocketEventListener<CloseEvent> | null = null\n\n private [kPassthroughPromise]: DeferredPromise<boolean>\n private [kOnSend]?: (data: WebSocketData) => void\n\n constructor(url: string | URL, protocols?: string | Array<string>) {\n super()\n this.url = url.toString()\n this.protocol = ''\n this.extensions = ''\n this.binaryType = 'blob'\n this.readyState = this.CONNECTING\n this.bufferedAmount = 0\n\n this[kPassthroughPromise] = new DeferredPromise<boolean>()\n\n queueMicrotask(async () => {\n if (await this[kPassthroughPromise]) {\n return\n }\n\n this.protocol =\n typeof protocols === 'string'\n ? protocols\n : Array.isArray(protocols) && protocols.length > 0\n ? protocols[0]\n : ''\n\n /**\n * @note Check that nothing has prevented this connection\n * (e.g. called `client.close()` in the connection listener).\n * If the connection has been prevented, never dispatch the open event,.\n */\n if (this.readyState === this.CONNECTING) {\n this.readyState = this.OPEN\n this.dispatchEvent(bindEvent(this, new Event('open')))\n }\n })\n }\n\n set onopen(listener: WebSocketEventListener | null) {\n this.removeEventListener('open', this._onopen)\n this._onopen = listener\n if (listener !== null) {\n this.addEventListener('open', listener)\n }\n }\n get onopen(): WebSocketEventListener | null {\n return this._onopen\n }\n\n set onmessage(\n listener: WebSocketEventListener<MessageEvent<WebSocketData>> | null\n ) {\n this.removeEventListener(\n 'message',\n this._onmessage as WebSocketEventListener\n )\n this._onmessage = listener\n if (listener !== null) {\n this.addEventListener('message', listener)\n }\n }\n get onmessage(): WebSocketEventListener<MessageEvent<WebSocketData>> | null {\n return this._onmessage\n }\n\n set onerror(listener: WebSocketEventListener | null) {\n this.removeEventListener('error', this._onerror)\n this._onerror = listener\n if (listener !== null) {\n this.addEventListener('error', listener)\n }\n }\n get onerror(): WebSocketEventListener | null {\n return this._onerror\n }\n\n set onclose(listener: WebSocketEventListener<CloseEvent> | null) {\n this.removeEventListener('close', this._onclose as WebSocketEventListener)\n this._onclose = listener\n if (listener !== null) {\n this.addEventListener('close', listener)\n }\n }\n get onclose(): WebSocketEventListener<CloseEvent> | null {\n return this._onclose\n }\n\n /**\n * @see https://websockets.spec.whatwg.org/#ref-for-dom-websocket-send%E2%91%A0\n */\n public send(data: WebSocketData): void {\n if (this.readyState === this.CONNECTING) {\n this.close()\n throw new DOMException('InvalidStateError')\n }\n\n // Sending when the socket is about to close\n // discards the sent data.\n if (this.readyState === this.CLOSING || this.readyState === this.CLOSED) {\n return\n }\n\n // Buffer the data to send in this even loop\n // but send it in the next.\n this.bufferedAmount += getDataSize(data)\n\n queueMicrotask(() => {\n // This is a bit optimistic but since no actual data transfer\n // is involved, all the data will be \"sent\" on the next tick.\n this.bufferedAmount = 0\n\n /**\n * @note Notify the parent about outgoing data.\n * This notifies the transport and the connection\n * listens to the outgoing data to emit the \"message\" event.\n */\n this[kOnSend]?.(data)\n })\n }\n\n public close(code: number = 1000, reason?: string): void {\n invariant(code, WEBSOCKET_CLOSE_CODE_RANGE_ERROR)\n invariant(\n code === 1000 || (code >= 3000 && code <= 4999),\n WEBSOCKET_CLOSE_CODE_RANGE_ERROR\n )\n\n this[kClose](code, reason)\n }\n\n private [kClose](\n code: number = 1000,\n reason?: string,\n wasClean = true\n ): void {\n /**\n * @note Move this check here so that even internall closures,\n * like those triggered by the `server` connection, are not\n * performed twice.\n */\n if (this.readyState === this.CLOSING || this.readyState === this.CLOSED) {\n return\n }\n\n this.readyState = this.CLOSING\n\n queueMicrotask(() => {\n this.readyState = this.CLOSED\n\n this.dispatchEvent(\n bindEvent(\n this,\n new CloseEvent('close', {\n code,\n reason,\n wasClean,\n })\n )\n )\n\n // Remove all event listeners once the socket is closed.\n this._onopen = null\n this._onmessage = null\n this._onerror = null\n this._onclose = null\n })\n }\n\n public addEventListener<K extends keyof WebSocketEventMap>(\n type: K,\n listener: (this: WebSocket, event: WebSocketEventMap[K]) => void,\n options?: boolean | AddEventListenerOptions\n ): void\n public addEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions\n ): void\n public addEventListener(\n type: unknown,\n listener: unknown,\n options?: unknown\n ): void {\n return super.addEventListener(\n type as string,\n listener as EventListener,\n options as AddEventListenerOptions\n )\n }\n\n removeEventListener<K extends keyof WebSocketEventMap>(\n type: K,\n callback: EventListenerOrEventListenerObject | null,\n options?: boolean | EventListenerOptions\n ): void {\n return super.removeEventListener(type, callback, options)\n }\n}\n\nfunction getDataSize(data: WebSocketData): number {\n if (typeof data === 'string') {\n return data.length\n }\n\n if (data instanceof Blob) {\n return data.size\n }\n\n return data.byteLength\n}\n","import { invariant } from 'outvariant'\nimport {\n kClose,\n WebSocketEventListener,\n WebSocketOverride,\n} from './WebSocketOverride'\nimport type { WebSocketData } from './WebSocketTransport'\nimport type { WebSocketClassTransport } from './WebSocketClassTransport'\nimport { bindEvent } from './utils/bindEvent'\nimport {\n CancelableMessageEvent,\n CancelableCloseEvent,\n CloseEvent,\n} from './utils/events'\n\nconst kEmitter = Symbol('kEmitter')\nconst kBoundListener = Symbol('kBoundListener')\nconst kSend = Symbol('kSend')\n\ninterface WebSocketServerEventMap {\n open: Event\n message: MessageEvent<WebSocketData>\n error: Event\n close: CloseEvent\n}\n\n/**\n * The WebSocket server instance represents the actual production\n * WebSocket server connection. It's idle by default but you can\n * establish it by calling `server.connect()`.\n */\nexport class WebSocketServerConnection {\n /**\n * A WebSocket instance connected to the original server.\n */\n private realWebSocket?: WebSocket\n private mockCloseController: AbortController\n private realCloseController: AbortController\n private [kEmitter]: EventTarget\n\n constructor(\n private readonly client: WebSocketOverride,\n private readonly transport: WebSocketClassTransport,\n private readonly createConnection: () => WebSocket\n ) {\n this[kEmitter] = new EventTarget()\n this.mockCloseController = new AbortController()\n this.realCloseController = new AbortController()\n\n // Automatically forward outgoing client events\n // to the actual server unless the outgoing message event\n // has been prevented. The \"outgoing\" transport event it\n // dispatched by the \"client\" connection.\n this.transport.addEventListener('outgoing', (event) => {\n // Ignore client messages if the server connection\n // hasn't been established yet. Nowhere to forward.\n if (typeof this.realWebSocket === 'undefined') {\n return\n }\n\n // Every outgoing client message can prevent this forwarding\n // by preventing the default of the outgoing message event.\n // This listener will be added before user-defined listeners,\n // so execute the logic on the next tick.\n queueMicrotask(() => {\n if (!event.defaultPrevented) {\n /**\n * @note Use the internal send mechanism so consumers can tell\n * apart direct user calls to `server.send()` and internal calls.\n * E.g. MSW has to ignore this internal call to log out messages correctly.\n */\n this[kSend](event.data)\n }\n })\n })\n\n this.transport.addEventListener(\n 'incoming',\n this.handleIncomingMessage.bind(this)\n )\n }\n\n /**\n * The `WebSocket` instance connected to the original server.\n * Accessing this before calling `server.connect()` will throw.\n */\n public get socket(): WebSocket {\n invariant(\n this.realWebSocket,\n 'Cannot access \"socket\" on the original WebSocket server object: the connection is not open. Did you forget to call `server.connect()`?'\n )\n\n return this.realWebSocket\n }\n\n /**\n * Open connection to the original WebSocket server.\n */\n public connect(): void {\n invariant(\n !this.realWebSocket || this.realWebSocket.readyState !== WebSocket.OPEN,\n 'Failed to call \"connect()\" on the original WebSocket instance: the connection already open'\n )\n\n const realWebSocket = this.createConnection()\n\n // Inherit the binary type from the mock WebSocket client.\n realWebSocket.binaryType = this.client.binaryType\n\n // Allow the interceptor to listen to when the server connection\n // has been established. This isn't necessary to operate with the connection\n // but may be beneficial in some cases (like conditionally adding logging).\n realWebSocket.addEventListener(\n 'open',\n (event) => {\n this[kEmitter].dispatchEvent(\n bindEvent(this.realWebSocket!, new Event('open', event))\n )\n },\n { once: true }\n )\n\n realWebSocket.addEventListener('message', (event) => {\n // Dispatch the \"incoming\" transport event instead of\n // invoking the internal handler directly. This way,\n // anyone can listen to the \"incoming\" event but this\n // class is the one resulting in it.\n this.transport.dispatchEvent(\n bindEvent(\n this.realWebSocket!,\n new MessageEvent('incoming', {\n data: event.data,\n origin: event.origin,\n })\n )\n )\n })\n\n // Close the original connection when the mock client closes.\n // E.g. \"client.close()\" was called. This is never forwarded anywhere.\n this.client.addEventListener(\n 'close',\n (event) => {\n this.handleMockClose(event)\n },\n {\n signal: this.mockCloseController.signal,\n }\n )\n\n // Forward the \"close\" event to let the interceptor handle\n // closures initiated by the original server.\n realWebSocket.addEventListener(\n 'close',\n (event) => {\n this.handleRealClose(event)\n },\n {\n signal: this.realCloseController.signal,\n }\n )\n\n realWebSocket.addEventListener('error', () => {\n const errorEvent = bindEvent(\n realWebSocket,\n new Event('error', { cancelable: true })\n )\n\n // Emit the \"error\" event on the `server` connection\n // to let the interceptor react to original server errors.\n this[kEmitter].dispatchEvent(errorEvent)\n\n // If the error event from the original server hasn't been prevented,\n // forward it to the underlying client.\n if (!errorEvent.defaultPrevented) {\n this.client.dispatchEvent(bindEvent(this.client, new Event('error')))\n }\n })\n\n this.realWebSocket = realWebSocket\n }\n\n /**\n * Listen for the incoming events from the original WebSocket server.\n */\n public addEventListener<EventType extends keyof WebSocketServerEventMap>(\n event: EventType,\n listener: WebSocketEventListener<WebSocketServerEventMap[EventType]>,\n options?: AddEventListenerOptions | boolean\n ): void {\n if (!Reflect.has(listener, kBoundListener)) {\n const boundListener = listener.bind(this.client)\n\n // Store the bound listener on the original listener\n // so the exact bound function can be accessed in \"removeEventListener()\".\n Object.defineProperty(listener, kBoundListener, {\n value: boundListener,\n enumerable: false,\n })\n }\n\n this[kEmitter].addEventListener(\n event,\n Reflect.get(listener, kBoundListener) as EventListener,\n options\n )\n }\n\n /**\n * Remove the listener for the given event.\n */\n public removeEventListener<EventType extends keyof WebSocketServerEventMap>(\n event: EventType,\n listener: WebSocketEventListener<WebSocketServerEventMap[EventType]>,\n options?: EventListenerOptions | boolean\n ): void {\n this[kEmitter].removeEventListener(\n event,\n Reflect.get(listener, kBoundListener) as EventListener,\n options\n )\n }\n\n /**\n * Send data to the original WebSocket server.\n * @example\n * server.send('hello')\n * server.send(new Blob(['hello']))\n * server.send(new TextEncoder().encode('hello'))\n */\n public send(data: WebSocketData): void {\n this[kSend](data)\n }\n\n private [kSend](data: WebSocketData): void {\n const { realWebSocket } = this\n\n invariant(\n realWebSocket,\n 'Failed to call \"server.send()\" for \"%s\": the connection is not open. Did you forget to call \"server.connect()\"?',\n this.client.url\n )\n\n // Silently ignore writes on the closed original WebSocket.\n if (\n realWebSocket.readyState === WebSocket.CLOSING ||\n realWebSocket.readyState === WebSocket.CLOSED\n ) {\n return\n }\n\n // Delegate the send to when the original connection is open.\n // Unlike the mock, connecting to the original server may take time\n // so we cannot call this on the next tick.\n if (realWebSocket.readyState === WebSocket.CONNECTING) {\n realWebSocket.addEventListener(\n 'open',\n () => {\n realWebSocket.send(data)\n },\n { once: true }\n )\n return\n }\n\n // Send the data to the original WebSocket server.\n realWebSocket.send(data)\n }\n\n /**\n * Close the actual server connection.\n */\n public close(): void {\n const { realWebSocket } = this\n\n invariant(\n realWebSocket,\n 'Failed to close server connection for \"%s\": the connection is not open. Did you forget to call \"server.connect()\"?',\n this.client.url\n )\n\n // Remove the \"close\" event listener from the server\n // so it doesn't close the underlying WebSocket client\n // when you call \"server.close()\". This also prevents the\n // `close` event on the `server` connection from being dispatched twice.\n this.realCloseController.abort()\n\n if (\n realWebSocket.readyState === WebSocket.CLOSING ||\n realWebSocket.readyState === WebSocket.CLOSED\n ) {\n return\n }\n\n // Close the actual client connection.\n realWebSocket.close()\n\n // Dispatch the \"close\" event on the `server` connection.\n queueMicrotask(() => {\n this[kEmitter].dispatchEvent(\n bindEvent(\n this.realWebSocket,\n new CancelableCloseEvent('close', {\n /**\n * @note `server.close()` in the interceptor\n * always results in clean closures.\n */\n code: 1000,\n cancelable: true,\n })\n )\n )\n })\n }\n\n private handleIncomingMessage(event: MessageEvent<WebSocketData>): void {\n // Clone the event to dispatch it on this class\n // once again and prevent the \"already being dispatched\"\n // exception. Clone it here so we can observe this event\n // being prevented in the \"server.on()\" listeners.\n const messageEvent = bindEvent(\n event.target,\n new CancelableMessageEvent('message', {\n data: event.data,\n origin: event.origin,\n cancelable: true,\n })\n )\n\n /**\n * @note Emit \"message\" event on the server connection\n * instance to let the interceptor know about these\n * incoming events from the original server. In that listener,\n * the interceptor can modify or skip the event forwarding\n * to the mock WebSocket instance.\n */\n this[kEmitter].dispatchEvent(messageEvent)\n\n /**\n * @note Forward the incoming server events to the client.\n * Preventing the default on the message event stops this.\n */\n if (!messageEvent.defaultPrevented) {\n this.client.dispatchEvent(\n bindEvent(\n /**\n * @note Bind the forwarded original server events\n * to the mock WebSocket instance so it would\n * dispatch them straight away.\n */\n this.client,\n // Clone the message event again to prevent\n // the \"already being dispatched\" exception.\n new MessageEvent('message', {\n data: event.data,\n origin: event.origin,\n })\n )\n )\n }\n }\n\n private handleMockClose(_event: Event): void {\n // Close the original connection if the mock client closes.\n if (this.realWebSocket) {\n this.realWebSocket.close()\n }\n }\n\n private handleRealClose(event: CloseEvent): void {\n // For closures originating from the original server,\n // remove the \"close\" listener from the mock client.\n // original close -> (?) client[kClose]() --X--> \"close\" (again).\n this.mockCloseController.abort()\n\n const closeEvent = bindEvent(\n this.realWebSocket,\n new CancelableCloseEvent('close', {\n code: event.code,\n reason: event.reason,\n wasClean: event.wasClean,\n cancelable: true,\n })\n )\n\n this[kEmitter].dispatchEvent(closeEvent)\n\n // If the close event from the server hasn't been prevented,\n // forward the closure to the mock client.\n if (!closeEvent.defaultPrevented) {\n // Close the intercepted client forcefully to\n // allow non-configurable status codes from the server.\n // If the socket has been closed by now, no harm calling\n // this again—it will have no effect.\n this.client[kClose](event.code, event.reason)\n }\n }\n}\n","import { bindEvent } from './utils/bindEvent'\nimport {\n StrictEventListenerOrEventListenerObject,\n WebSocketData,\n WebSocketTransport,\n WebSocketTransportEventMap,\n} from './WebSocketTransport'\nimport { kOnSend, kClose, WebSocketOverride } from './WebSocketOverride'\nimport { CancelableMessageEvent, CloseEvent } from './utils/events'\n\n/**\n * Abstraction over the given mock `WebSocket` instance that allows\n * for controlling that instance (e.g. sending and receiving messages).\n */\nexport class WebSocketClassTransport\n extends EventTarget\n implements WebSocketTransport\n{\n constructor(protected readonly socket: WebSocketOverride) {\n super()\n\n // Emit the \"close\" event on the transport if the close\n // originates from the WebSocket client. E.g. the application\n // calls \"ws.close()\", not the interceptor.\n this.socket.addEventListener('close', (event) => {\n this.dispatchEvent(bindEvent(this.socket, new CloseEvent('close', event)))\n })\n\n /**\n * Emit the \"outgoing\" event on the transport\n * whenever the WebSocket client sends data (\"ws.send()\").\n */\n this.socket[kOnSend] = (data) => {\n this.dispatchEvent(\n bindEvent(\n this.socket,\n // Dispatch this as cancelable because \"client\" connection\n // re-creates this message event (cannot dispatch the same event).\n new CancelableMessageEvent('outgoing', {\n data,\n origin: this.socket.url,\n cancelable: true,\n })\n )\n )\n }\n }\n\n public addEventListener<EventType extends keyof WebSocketTransportEventMap>(\n type: EventType,\n callback: StrictEventListenerOrEventListenerObject<\n WebSocketTransportEventMap[EventType]\n > | null,\n options?: boolean | AddEventListenerOptions\n ): void {\n return super.addEventListener(type, callback as EventListener, options)\n }\n\n public dispatchEvent<EventType extends keyof WebSocketTransportEventMap>(\n event: WebSocketTransportEventMap[EventType]\n ): boolean {\n return super.dispatchEvent(event)\n }\n\n public send(data: WebSocketData): void {\n queueMicrotask(() => {\n if (\n this.socket.readyState === this.socket.CLOSING ||\n this.socket.readyState === this.socket.CLOSED\n ) {\n return\n }\n\n const dispatchEvent = () => {\n this.socket.dispatchEvent(\n bindEvent(\n /**\n * @note Setting this event's \"target\" to the\n * WebSocket override instance is important.\n * This way it can tell apart original incoming events\n * (must be forwarded to the transport) from the\n * mocked message events like the one below\n * (must be dispatched on the client instance).\n */\n this.socket,\n new MessageEvent('message', {\n data,\n origin: this.socket.url,\n })\n )\n )\n }\n\n if (this.socket.readyState === this.socket.CONNECTING) {\n this.socket.addEventListener(\n 'open',\n () => {\n dispatchEvent()\n },\n { once: true }\n )\n } else {\n dispatchEvent()\n }\n })\n }\n\n public close(code: number, reason?: string): void {\n /**\n * @note Call the internal close method directly\n * to allow closing the connection with the status codes\n * that are non-configurable by the user (> 1000 <= 1015).\n */\n this.socket[kClose](code, reason)\n }\n}\n","import { Interceptor } from '../../Interceptor'\nimport {\n type WebSocketClientConnectionProtocol,\n WebSocketClientConnection,\n} from './WebSocketClientConnection'\nimport { WebSocketServerConnection } from './WebSocketServerConnection'\nimport { WebSocketClassTransport } from './WebSocketClassTransport'\nimport {\n kClose,\n kPassthroughPromise,\n WebSocketOverride,\n} from './WebSocketOverride'\nimport { bindEvent } from './utils/bindEvent'\nimport { hasConfigurableGlobal } from '../../utils/hasConfigurableGlobal'\n\nexport { type WebSocketData, WebSocketTransport } from './WebSocketTransport'\nexport {\n WebSocketClientConnection,\n WebSocketClientConnectionProtocol,\n WebSocketServerConnection,\n}\n\nexport type WebSocketEventMap = {\n connection: [args: WebSocketConnectionData]\n}\n\nexport type WebSocketConnectionData = {\n /**\n * The incoming WebSocket client connection.\n */\n client: WebSocketClientConnection\n\n /**\n * The original WebSocket server connection.\n */\n server: WebSocketServerConnection\n\n /**\n * The connection information.\n */\n info: {\n /**\n * The protocols supported by the WebSocket client.\n */\n protocols: string | Array<string> | undefined\n }\n}\n\n/**\n * Intercept the outgoing WebSocket connections created using\n * the global `WebSocket` class.\n */\nexport class WebSocketInterceptor extends Interceptor<WebSocketEventMap> {\n static symbol = Symbol('websocket')\n\n constructor() {\n super(WebSocketInterceptor.symbol)\n }\n\n protected checkEnvironment(): boolean {\n return hasConfigurableGlobal('WebSocket')\n }\n\n protected setup(): void {\n const originalWebSocketDescriptor = Object.getOwnPropertyDescriptor(\n globalThis,\n 'WebSocket'\n )\n\n const WebSocketProxy = new Proxy(globalThis.WebSocket, {\n construct: (\n target,\n args: ConstructorParameters<typeof globalThis.WebSocket>,\n newTarget\n ) => {\n const [url, protocols] = args\n\n const createConnection = (): WebSocket => {\n return Reflect.construct(target, args, newTarget)\n }\n\n // All WebSocket instances are mocked and don't forward\n // any events to the original server (no connection established).\n // To forward the events, the user must use the \"server.send()\" API.\n const socket = new WebSocketOverride(url, protocols)\n const transport = new WebSocketClassTransport(socket)\n\n // Emit the \"connection\" event to the interceptor on the next tick\n // so the client can modify WebSocket options, like \"binaryType\"\n // while the connection is already pending.\n queueMicrotask(() => {\n try {\n const server = new WebSocketServerConnection(\n socket,\n transport,\n createConnection\n )\n\n // The \"globalThis.WebSocket\" class stands for\n // the client-side connection. Assume it's established\n // as soon as the WebSocket instance is constructed.\n const hasConnectionListeners = this.emitter.emit('connection', {\n client: new WebSocketClientConnection(socket, transport),\n server,\n info: {\n protocols,\n },\n })\n\n if (hasConnectionListeners) {\n socket[kPassthroughPromise].resolve(false)\n } else {\n socket[kPassthroughPromise].resolve(true)\n\n server.connect()\n\n // Forward the \"open\" event from the original server\n // to the mock WebSocket client in the case of a passthrough connection.\n server.addEventListener('open', () => {\n socket.dispatchEvent(bindEvent(socket, new Event('open')))\n\n // Forward the original connection protocol to the\n // mock WebSocket client.\n if (server['realWebSocket']) {\n socket.protocol = server['realWebSocket'].protocol\n }\n })\n }\n } catch (error) {\n /**\n * @note Translate unhandled exceptions during the connection\n * handling (i.e. interceptor exceptions) as WebSocket connection\n * closures with error. This prevents from the exceptions occurring\n * in `queueMicrotask` from being process-wide and uncatchable.\n */\n if (error instanceof Error) {\n socket.dispatchEvent(new Event('error'))\n\n // No need to close the connection if it's already being closed.\n // E.g. the interceptor called `client.close()` and then threw an error.\n if (\n socket.readyState !== WebSocket.CLOSING &&\n socket.readyState !== WebSocket.CLOSED\n ) {\n socket[kClose](1011, error.message, false)\n }\n\n console.error(error)\n }\n }\n })\n\n return socket\n },\n })\n\n Object.defineProperty(globalThis, 'WebSocket', {\n value: WebSocketProxy,\n configurable: true,\n })\n\n this.subscriptions.push(() => {\n Object.defineProperty(\n globalThis,\n 'WebSocket',\n originalWebSocketDescriptor!\n )\n })\n }\n}\n","import { WebSocketInterceptor } from '@mswjs/interceptors/WebSocket'\n\nexport const webSocketInterceptor = new WebSocketInterceptor()\n","import { AsyncLocalStorage } from 'node:async_hooks'\nimport { ClientRequestInterceptor } from '@mswjs/interceptors/ClientRequest'\nimport { XMLHttpRequestInterceptor } from '@mswjs/interceptors/XMLHttpRequest'\nimport { FetchInterceptor } from '@mswjs/interceptors/fetch'\nimport { HandlersController } from '~/core/SetupApi'\nimport type { RequestHandler } from '~/core/handlers/RequestHandler'\nimport type { WebSocketHandler } from '~/core/handlers/WebSocketHandler'\nimport type { SetupServer } from './glossary'\nimport { SetupServerCommonApi } from './SetupServerCommonApi'\n\nconst store = new AsyncLocalStorage<RequestHandlersContext>()\n\ntype RequestHandlersContext = {\n initialHandlers: Array<RequestHandler | WebSocketHandler>\n handlers: Array<RequestHandler | WebSocketHandler>\n}\n\n/**\n * A handlers controller that utilizes `AsyncLocalStorage` in Node.js\n * to prevent the request handlers list from being a shared state\n * across mutliple tests.\n */\nclass AsyncHandlersController implements HandlersController {\n private rootContext: RequestHandlersContext\n\n constructor(initialHandlers: Array<RequestHandler | WebSocketHandler>) {\n this.rootContext = { initialHandlers, handlers: [] }\n }\n\n get context(): RequestHandlersContext {\n return store.getStore() || this.rootContext\n }\n\n public prepend(runtimeHandlers: Array<RequestHandler | WebSocketHandler>) {\n this.context.handlers.unshift(...runtimeHandlers)\n }\n\n public reset(nextHandlers: Array<RequestHandler | WebSocketHandler>) {\n const context = this.context\n context.handlers = []\n context.initialHandlers =\n nextHandlers.length > 0 ? nextHandlers : context.initialHandlers\n }\n\n public currentHandlers(): Array<RequestHandler | WebSocketHandler> {\n const { initialHandlers, handlers } = this.context\n return handlers.concat(initialHandlers)\n }\n}\n\nexport class SetupServerApi\n extends SetupServerCommonApi\n implements SetupServer\n{\n constructor(handlers: Array<RequestHandler | WebSocketHandler>) {\n super(\n [ClientRequestInterceptor, XMLHttpRequestInterceptor, FetchInterceptor],\n handlers,\n )\n\n this.handlersController = new AsyncHandlersController(handlers)\n }\n\n public boundary<Args extends Array<any>, R>(\n callback: (...args: Args) => R,\n ): (...args: Args) => R {\n return (...args: Args): R => {\n return store.run<any, any>(\n {\n initialHandlers: this.handlersController.currentHandlers(),\n handlers: [],\n },\n callback,\n ...args,\n )\n }\n }\n\n public close(): void {\n super.close()\n store.disable()\n }\n}\n","export function notImplemented(): never {\n throw new Error('Not implemented');\n}\n","import { LanguageModelV1 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockLanguageModelV1 implements LanguageModelV1 {\n readonly specificationVersion = 'v1';\n\n readonly provider: LanguageModelV1['provider'];\n readonly modelId: LanguageModelV1['modelId'];\n\n supportsUrl: LanguageModelV1['supportsUrl'];\n doGenerate: LanguageModelV1['doGenerate'];\n doStream: LanguageModelV1['doStream'];\n\n readonly defaultObjectGenerationMode: LanguageModelV1['defaultObjectGenerationMode'];\n readonly supportsStructuredOutputs: LanguageModelV1['supportsStructuredOutputs'];\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n supportsUrl = undefined,\n doGenerate = notImplemented,\n doStream = notImplemented,\n defaultObjectGenerationMode = undefined,\n supportsStructuredOutputs = undefined,\n }: {\n provider?: LanguageModelV1['provider'];\n modelId?: LanguageModelV1['modelId'];\n supportsUrl?: LanguageModelV1['supportsUrl'];\n doGenerate?: LanguageModelV1['doGenerate'];\n doStream?: LanguageModelV1['doStream'];\n defaultObjectGenerationMode?: LanguageModelV1['defaultObjectGenerationMode'];\n supportsStructuredOutputs?: LanguageModelV1['supportsStructuredOutputs'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.doGenerate = doGenerate;\n this.doStream = doStream;\n this.supportsUrl = supportsUrl;\n\n this.defaultObjectGenerationMode = defaultObjectGenerationMode;\n this.supportsStructuredOutputs = supportsStructuredOutputs;\n }\n}\n","export function convertArrayToReadableStream<T>(\n values: T[],\n): ReadableStream<T> {\n return new ReadableStream({\n start(controller) {\n try {\n for (const value of values) {\n controller.enqueue(value);\n }\n } finally {\n controller.close();\n }\n },\n });\n}\n","export function notImplemented(): never {\n throw new Error('Not implemented');\n}\n","import { LanguageModelV2 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockLanguageModelV2 implements LanguageModelV2 {\n readonly specificationVersion = 'v2';\n\n private _supportedUrls: () => LanguageModelV2['supportedUrls'];\n\n readonly provider: LanguageModelV2['provider'];\n readonly modelId: LanguageModelV2['modelId'];\n\n doGenerate: LanguageModelV2['doGenerate'];\n doStream: LanguageModelV2['doStream'];\n\n doGenerateCalls: Parameters<LanguageModelV2['doGenerate']>[0][] = [];\n doStreamCalls: Parameters<LanguageModelV2['doStream']>[0][] = [];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n supportedUrls = {},\n doGenerate = notImplemented,\n doStream = notImplemented,\n }: {\n provider?: LanguageModelV2['provider'];\n modelId?: LanguageModelV2['modelId'];\n supportedUrls?:\n | LanguageModelV2['supportedUrls']\n | (() => LanguageModelV2['supportedUrls']);\n doGenerate?:\n | LanguageModelV2['doGenerate']\n | Awaited<ReturnType<LanguageModelV2['doGenerate']>>\n | Awaited<ReturnType<LanguageModelV2['doGenerate']>>[];\n doStream?:\n | LanguageModelV2['doStream']\n | Awaited<ReturnType<LanguageModelV2['doStream']>>\n | Awaited<ReturnType<LanguageModelV2['doStream']>>[];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.doGenerate = async options => {\n this.doGenerateCalls.push(options);\n\n if (typeof doGenerate === 'function') {\n return doGenerate(options);\n } else if (Array.isArray(doGenerate)) {\n return doGenerate[this.doGenerateCalls.length];\n } else {\n return doGenerate;\n }\n };\n this.doStream = async options => {\n this.doStreamCalls.push(options);\n\n if (typeof doStream === 'function') {\n return doStream(options);\n } else if (Array.isArray(doStream)) {\n return doStream[this.doStreamCalls.length];\n } else {\n return doStream;\n }\n };\n this._supportedUrls =\n typeof supportedUrls === 'function'\n ? supportedUrls\n : async () => supportedUrls;\n }\n\n get supportedUrls() {\n return this._supportedUrls();\n }\n}\n","import type { LanguageModelV2, LanguageModelV2CallOptions } from '@ai-sdk/provider-v5';\nimport { MockLanguageModelV2 } from '@internal/ai-sdk-v5/test';\nimport type { MastraLanguageModelV2 } from '../../llm/model/shared.types';\nimport { AISDKV5LanguageModel } from '../../llm/model/aisdk/v5/model';\n\nexport class MastraLanguageModelV2Mock implements MastraLanguageModelV2 {\n readonly specificationVersion = 'v2' as const;\n readonly provider: LanguageModelV2['provider'];\n readonly modelId: LanguageModelV2['modelId'];\n readonly supportedUrls: LanguageModelV2['supportedUrls'];\n #model: MockLanguageModelV2;\n\n constructor(config: {\n provider?: LanguageModelV2['provider'];\n modelId?: LanguageModelV2['modelId'];\n supportedUrls?: LanguageModelV2['supportedUrls'] | (() => LanguageModelV2['supportedUrls']);\n doGenerate?:\n | LanguageModelV2['doGenerate']\n | Awaited<ReturnType<LanguageModelV2['doGenerate']>>\n | Awaited<ReturnType<LanguageModelV2['doGenerate']>>[];\n doStream?:\n | LanguageModelV2['doStream']\n | Awaited<ReturnType<LanguageModelV2['doStream']>>\n | Awaited<ReturnType<LanguageModelV2['doStream']>>[];\n }) {\n this.#model = new MockLanguageModelV2(config);\n this.provider = this.#model.provider;\n this.modelId = this.#model.modelId;\n this.supportedUrls = this.#model.supportedUrls;\n }\n\n doGenerate(options: LanguageModelV2CallOptions) {\n const aiSDKModel = new AISDKV5LanguageModel(this.#model);\n return aiSDKModel.doGenerate(options);\n }\n\n doStream(options: LanguageModelV2CallOptions) {\n const aiSDKModel = new AISDKV5LanguageModel(this.#model);\n return aiSDKModel.doStream(options);\n }\n\n get doGenerateCalls(): LanguageModelV2CallOptions[] {\n return this.#model.doGenerateCalls;\n }\n get doStreamCalls(): LanguageModelV2CallOptions[] {\n return this.#model.doStreamCalls;\n }\n}\n","import { simulateReadableStream } from '@internal/ai-sdk-v4';\nimport { MockLanguageModelV1 } from '@internal/ai-sdk-v4/test';\nimport { convertArrayToReadableStream, MockLanguageModelV2 } from '@internal/ai-sdk-v5/test';\n\nimport { MastraLLMV1 } from '../llm/model/model';\nimport { MastraLanguageModelV2Mock } from '../loop/test-utils/MastraLanguageModelV2Mock';\n\n// Re-export for external use\nexport { simulateReadableStream, MastraLanguageModelV2Mock };\n\nexport function createMockModel({\n objectGenerationMode,\n mockText,\n spyGenerate,\n spyStream,\n version = 'v2',\n}: {\n objectGenerationMode?: 'json';\n mockText: string | Record<string, any>;\n spyGenerate?: (props: any) => void;\n spyStream?: (props: any) => void;\n version?: 'v1' | 'v2';\n}) {\n const text = typeof mockText === 'string' ? mockText : JSON.stringify(mockText);\n const finalText = objectGenerationMode === 'json' ? JSON.stringify(mockText) : text;\n\n if (version === 'v1') {\n // Return a v1 model\n const mockModel = new MockLanguageModelV1({\n defaultObjectGenerationMode: objectGenerationMode,\n doGenerate: async props => {\n if (spyGenerate) {\n spyGenerate(props);\n }\n\n return {\n rawCall: { rawPrompt: null, rawSettings: {} },\n finishReason: 'stop',\n usage: { promptTokens: 10, completionTokens: 20 },\n text: finalText,\n };\n },\n doStream: async props => {\n if (spyStream) {\n spyStream(props);\n }\n\n // Split the mock text into chunks for streaming\n const chunks = finalText.split(' ').map(word => ({\n type: 'text-delta' as const,\n textDelta: word + ' ',\n }));\n\n return {\n stream: simulateReadableStream({\n chunks: [\n ...chunks,\n {\n type: 'finish',\n finishReason: 'stop',\n logprobs: undefined,\n usage: { completionTokens: 10, promptTokens: 3 },\n },\n ],\n }),\n rawCall: { rawPrompt: null, rawSettings: {} },\n };\n },\n });\n\n return mockModel;\n }\n\n // Return a v2 model (default)\n const mockModel = new MockLanguageModelV2({\n doGenerate: async props => {\n if (spyGenerate) {\n spyGenerate(props);\n }\n\n return {\n rawCall: { rawPrompt: null, rawSettings: {} },\n finishReason: 'stop',\n usage: { inputTokens: 10, outputTokens: 20, totalTokens: 30 },\n content: [\n {\n type: 'text',\n text: finalText,\n },\n ],\n warnings: [],\n };\n },\n doStream: async props => {\n if (spyStream) {\n spyStream(props);\n }\n\n return {\n rawCall: { rawPrompt: null, rawSettings: {} },\n warnings: [],\n stream: convertArrayToReadableStream([\n { type: 'stream-start', warnings: [] },\n { type: 'response-metadata', id: 'id-0', modelId: 'mock-model-id', timestamp: new Date(0) },\n { type: 'text-start', id: 'text-1' },\n { type: 'text-delta', id: 'text-1', delta: finalText },\n { type: 'text-end', id: 'text-1' },\n {\n type: 'finish',\n finishReason: 'stop',\n usage: { inputTokens: 10, outputTokens: 20, totalTokens: 30 },\n },\n ]),\n };\n },\n });\n\n return mockModel;\n}\n\nexport class MockProvider extends MastraLLMV1 {\n constructor({\n spyGenerate,\n spyStream,\n objectGenerationMode,\n mockText = 'Hello, world!',\n }: {\n spyGenerate?: (props: any) => void;\n spyStream?: (props: any) => void;\n objectGenerationMode?: 'json';\n mockText?: string | Record<string, any>;\n }) {\n const mockModel = new MockLanguageModelV1({\n defaultObjectGenerationMode: objectGenerationMode,\n doGenerate: async props => {\n if (spyGenerate) {\n spyGenerate(props);\n }\n\n if (objectGenerationMode === 'json') {\n return {\n rawCall: { rawPrompt: null, rawSettings: {} },\n finishReason: 'stop',\n usage: { promptTokens: 10, completionTokens: 20 },\n text: JSON.stringify(mockText),\n };\n }\n\n return {\n rawCall: { rawPrompt: null, rawSettings: {} },\n finishReason: 'stop',\n usage: { promptTokens: 10, completionTokens: 20 },\n text: typeof mockText === 'string' ? mockText : JSON.stringify(mockText),\n };\n },\n doStream: async props => {\n if (spyStream) {\n spyStream(props);\n }\n\n const text = typeof mockText === 'string' ? mockText : JSON.stringify(mockText);\n // Split the mock text into chunks for streaming\n const chunks = text.split(' ').map(word => ({\n type: 'text-delta' as const,\n textDelta: word + ' ',\n }));\n\n return {\n stream: simulateReadableStream({\n chunks: [\n ...chunks,\n {\n type: 'finish',\n finishReason: 'stop',\n logprobs: undefined,\n usage: { completionTokens: 10, promptTokens: 3 },\n },\n ],\n }),\n rawCall: { rawPrompt: null, rawSettings: {} },\n };\n },\n });\n\n super({ model: mockModel });\n }\n\n // @ts-ignore\n stream(...args: any): PromiseLike<StreamReturn<any, any, any>> {\n // @ts-ignore\n const result = super.stream(...args);\n\n return {\n ...result,\n // @ts-ignore on await read the stream\n then: (onfulfilled, onrejected) => {\n // @ts-ignore\n return result.baseStream.pipeTo(new WritableStream()).then(onfulfilled, onrejected);\n },\n };\n }\n\n // @ts-ignore\n __streamObject(...args): PromiseLike<StreamObjectResult<any>> {\n // @ts-ignore\n const result = super.__streamObject(...args);\n\n return {\n ...result,\n // @ts-ignore on await read the stream\n then: (onfulfilled, onrejected) => {\n // @ts-ignore\n return result.baseStream.pipeTo(new WritableStream()).then(onfulfilled, onrejected);\n },\n };\n }\n}\n"]}
|