简化工作流:curl 直接输出命令详解


简化工作流:curl 直接输出命令详解

在当今高度互联的数字世界中,与 Web 服务、API 和远程资源进行交互是开发人员、系统管理员和运维工程师日常工作不可或缺的一部分。无论是测试新部署的 API 端点、下载配置文件、自动化任务,还是简单地获取网络资源,一个强大而灵活的命令行工具都至关重要。curl(Client URL)正是这样一款瑞士军刀般的工具,它以其强大的功能、跨平台兼容性和无与伦比的灵活性,在命令行领域占据着核心地位。

curl 的核心能力在于传输数据,支持包括 HTTP、HTTPS、FTP、FTPS、SCP、SFTP、LDAP 等在内的多种协议。然而,curl 的真正威力并不仅仅在于其传输数据的能力,更在于它如何处理和呈现这些数据——特别是其对输出流(标准输出 stdout 和标准错误 stderr)的精细控制。理解并善用 curl 的输出控制选项,能够极大地简化我们的工作流,将原本需要多步骤、多工具才能完成的任务,浓缩到一条简洁高效的命令中。

本文旨在深入探讨 curl 的直接输出相关命令和选项,展示如何通过控制 curl 的输出行为来优化常见任务,提升效率,并将其无缝集成到脚本和自动化流程中。我们将从基础概念讲起,逐步深入到高级技巧和实际应用场景。

一、curl 输出基础:理解标准输出与标准错误

在深入探讨具体选项之前,首先需要理解 curl 的默认输出行为以及 Linux/Unix 系统中标准流的概念。

  1. 标准输出 (stdout): 默认情况下,curl 将成功获取的 响应体 (Response Body)(例如 HTML 页面内容、JSON 数据、文件内容等)打印到标准输出。这是 curl 最直接的数据呈现方式。
  2. 标准错误 (stderr): curl传输过程中的信息、进度指示器、错误消息以及调试信息 输出到标准错误。这包括连接状态、下载速度、传输时间等元数据。

区分这两者至关重要,因为:

  • 当我们需要将响应体 保存到文件通过管道传递给其他命令处理 时,我们通常只关心 stdout 上的内容。
  • stderr 上的进度信息在交互式使用时很有用,但在脚本中通常需要被抑制,以免干扰后续处理或污染日志。
  • 错误信息出现在 stderr 上,便于我们诊断问题,并通过重定向将其记录到错误日志中。

理解了这一点,我们就能更好地运用 curl 提供的选项来精确控制哪些信息被输出,以及输出到哪里。

二、核心输出控制选项详解

curl 提供了丰富的选项来管理其输出。以下是一些最常用且对简化工作流最有帮助的选项:

1. -o, --output <file>:将响应体定向到文件

这是最基本也是最常用的输出控制选项之一。它告诉 curl 将接收到的响应体写入指定的文件,而不是打印到标准输出。

语法:

bash
curl -o <filename> <URL>
curl --output <filename> <URL>

示例:example.com 的首页 HTML 保存到 index.html 文件中。

bash
curl -o index.html https://example.com

工作流简化:

  • 直接下载: 无需手动复制粘贴终端输出,直接将网络资源保存为本地文件。
  • 脚本集成: 在脚本中下载配置文件、二进制文件或数据文件,供后续步骤使用。
  • -s 结合: 使用 -s(静默模式,稍后详述)可以抑制 stderr 上的进度信息,使得下载过程在脚本中完全“隐形”,只留下最终文件。

```bash

在脚本中静默下载一个重要的配置文件

curl -s -o config.yaml https://internal.config.server/app/prod.yaml
echo "配置文件下载完成。"
```

注意: 使用 -o 时,进度信息(如果未被 -s 抑制)仍然会显示在标准错误(终端)上。

2. -O, --remote-name:使用 URL 中的文件名保存

当下载的文件 URL 末尾包含了具体的文件名时,-O 选项非常方便。它会自动从 URL 中提取文件名,并将响应体保存到同名文件中。

语法:

bash
curl -O <URL>
curl --remote-name <URL>

示例: 下载 https://example.com/path/to/document.pdf 并将其保存为 document.pdf

bash
curl -O https://example.com/path/to/document.pdf

工作流简化:

  • 批量下载: 结合循环或 xargs 可以方便地下载一系列 URL 指向的文件,并自动保留其原始名称。
  • 保持一致性: 确保下载的文件名与服务器上的文件名一致,减少混淆。

```bash

下载列表文件中的所有 URL,并保留原始文件名

cat url_list.txt | xargs -n 1 curl -O -s
```

注意: 如果 URL 中没有明确的文件名部分(例如 https://example.com/),或者存在安全风险(如文件名包含 ../),-O 可能无法按预期工作或存在安全隐患。-J, --remote-header-name 选项可以结合 Content-Disposition 响应头来获取文件名,有时更可靠。

3. -s, --silent:静默模式

-s 选项是脚本编写和自动化中的关键。它会关闭 curl 的进度表和错误消息(非致命错误,如 HTTP 404 仍然会返回非零退出码,但不会打印错误页面到 stdout)。这使得 curl 的输出“干净”,只剩下(如果未被重定向)响应体本身。

语法:

bash
curl -s <URL>
curl --silent <URL>

示例: 获取 IP 地址信息,只输出 JSON 响应体,不显示进度条。

bash
IP_INFO=$(curl -s https://ipinfo.io/json)
echo "您的 IP 信息: $IP_INFO"

工作流简化:

  • 管道处理: curl -s ... | command 确保只有纯净的响应数据被传递给后续命令(如 jq, grep, sed, awk),避免了进度信息干扰解析。
  • 变量赋值:curl 的输出直接赋值给 shell 变量,无需担心混入额外字符。
  • 日志清晰: 在日志记录中避免冗余的传输进度信息。

4. -S, --show-error:在静默模式下显示错误

-s 会隐藏所有非致命错误消息。但在某些脚本场景下,我们希望保持静默,但如果发生 HTTP 错误(如 404 Not Found, 500 Internal Server Error),我们仍然想知道错误信息。这时可以将 -s-S 结合使用。

语法:

bash
curl -sS <URL>
curl --silent --show-error <URL>

示例: 尝试获取一个可能不存在的资源,如果失败则显示错误。

```bash

尝试获取资源,如果 404,curl 会在 stderr 上打印错误信息

curl -sS https://example.com/nonexistent_page.html > /dev/null

脚本可以检查 curl 的退出码来判断是否成功

if [ $? -ne 0 ]; then
echo "获取资源失败,请检查 URL 或网络。" >&2 # 输出到 stderr
fi
```

工作流简化:

  • 脚本健壮性: 在自动化脚本中,既能保持输出简洁,又能捕获并报告重要的 HTTP 层面错误,便于调试和监控。

5. -f, --fail:服务器错误时静默失败

-f 选项更进一步。当服务器返回 HTTP 错误码(4xx 或 5xx)时,curl 不会输出任何响应体(即使服务器返回了错误页面),并且会以非零退出码(通常是 22)退出。这对于检查 URL 是否有效且可访问非常有用。

语法:

bash
curl -f <URL>
curl --fail <URL>

示例: 检查一个 API 端点是否健康(返回 2xx 或 3xx 状态码)。

```bash

结合 -s 和 -o /dev/null,只关心成功与否

if curl -sf -o /dev/null https://api.example.com/health; then
echo "API 健康检查通过。"
else
echo "API 健康检查失败 (HTTP 状态码 >= 400 或连接问题)。" >&2
fi
```

工作流简化:

  • 健康检查: 非常适合编写简单的服务健康检查脚本,只关心请求是否成功,不关心具体的错误页面内容。
  • 前提条件判断: 在脚本中,如果某个依赖的 URL 必须存在才能继续,可以用 -f 来做前置检查。

6. -w, --write-out <format>:输出自定义信息

这是 curl 输出控制中最强大的选项之一,极大地增强了其在工作流自动化中的价值。-w 允许你在传输 完成之后,向标准输出打印自定义格式的字符串,其中可以包含各种传输相关的变量。

语法:

bash
curl -w "<format_string>" [other_options] <URL>

常用格式变量:

  • %{http_code}: HTTP 响应状态码 (e.g., 200, 404)
  • %{content_type}: Content-Type 响应头的值
  • %{size_download}: 下载的总字节数 (仅 Body)
  • %{time_total}: 总传输时间 (秒)
  • %{time_connect}: 建立 TCP 连接的时间
  • %{time_starttransfer}: 从请求开始到第一个字节开始传输的时间 (TTFB)
  • %{url_effective}: 最终请求的 URL (处理重定向后)
  • %{remote_ip}: 远程服务器 IP 地址
  • %{local_ip}: 本地客户端 IP 地址
  • \n, \t: 换行符、制表符等转义序列

示例 1: 只获取 HTTP 状态码。

```bash

使用 -s 静默,-o /dev/null 丢弃响应体,只输出 -w 的内容

HTTP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" https://example.com)
echo "页面状态码: $HTTP_STATUS"
```

示例 2: 获取状态码、内容类型和总时间。

bash
curl -s -o /dev/null -w "Status: %{http_code}\nContent-Type: %{content_type}\nTime: %{time_total}s\n" https://api.github.com

工作流简化:

  • 精确数据提取: 无需解析 curl -v 的冗长输出或响应头,直接获取需要的元数据(状态码、计时、大小等)。
  • 性能监控: 轻松获取 TTFB、总时间等指标,用于监控 Web 服务性能。
  • 结构化输出: 可以自定义输出格式(如 CSV、JSON 片段),方便脚本解析或导入其他系统。
  • 结合其他工具: 获取的数据可以直接用于条件判断、日志记录或传递给其他监控工具。

```bash

检查状态码并记录时间和大小

curl -s -o response_body.json -w "%{http_code},%{time_total},%{size_download}\n" https://data.source/api/v1/items >> access_log.csv
```

7. -I, --head:仅获取响应头 (HEAD 请求)

-I 选项告诉 curl 发送一个 HTTP HEAD 请求,而不是 GET 请求。服务器只返回响应头,不返回响应体。这对于快速检查资源元信息非常有用。

语法:

bash
curl -I <URL>
curl --head <URL>

示例: 查看文件的 Content-TypeLast-Modified 时间。

```bash
curl -sI https://www.example.com/large_file.zip

输出类似:

HTTP/1.1 200 OK

Content-Type: application/zip

Content-Length: 12345678

Last-Modified: Tue, 15 Aug 2023 10:00:00 GMT

...

```

工作流简化:

  • 资源探测: 快速检查 URL 是否存在、资源类型、大小、修改日期等,而无需下载整个文件。
  • 缓存策略检查: 查看 Cache-Control, Expires 等缓存相关头。
  • 轻量级检查: 比 GET 请求更轻量,对服务器负载更小。

8. -i, --include:在输出中包含响应头

-I 不同,-i 发送的是正常的 GET (或其他指定方法) 请求,但在输出响应体 之前,先打印出完整的 HTTP 响应头。

语法:

bash
curl -i <URL>
curl --include <URL>

示例: 查看 API 响应头和响应体。

```bash
curl -si https://api.github.com/users/octocat

输出会先显示 HTTP/1.1 200 OK 及所有头信息,然后是 JSON 响应体

```

工作流简化:

  • API 调试: 同时查看响应头(如认证信息、速率限制、自定义头)和响应体,便于调试 API 交互。
  • 理解上下文: 了解服务器返回的完整上下文信息。

9. -D, --dump-header <file>:将响应头保存到文件

如果需要将响应头和响应体分开处理,-D 选项非常有用。它会将响应头(不包括任何传输过程信息)写入指定的文件。

语法:

bash
curl -D <header_file> [other_options] <URL>

示例: 将响应头保存到 headers.txt,响应体打印到 stdout。

```bash
curl -s -D headers.txt https://example.com

headers.txt 内容是 HTTP 响应头

终端显示 HTML 页面内容

```

示例 2: 结合 -o,将头和体分别保存到不同文件。

bash
curl -s -D headers.log -o body.html https://example.com

工作流简化:

  • 分离处理: 方便脚本分别解析响应头(例如提取 Cookie、认证 Token)和响应体。
  • 日志记录: 将详细的响应头信息存档,用于审计或调试。

三、组合运用与管道的力量

curl 输出控制的真正威力在于将这些选项组合起来,并与 Linux/Unix 强大的管道 (|) 和其他命令行工具(如 grep, sed, awk, jq, xmllint 等)结合使用。

示例场景 1:提取 JSON API 中的特定字段

假设一个 API https://api.example.com/users/1 返回如下 JSON:
{"id": 1, "name": "Alice", "email": "[email protected]"}

我们需要获取用户的 email 地址:

```bash

使用 -s 静默,将 JSON 输出通过管道给 jq 工具进行解析

EMAIL=$(curl -s https://api.example.com/users/1 | jq -r '.email')
echo "用户 Email: $EMAIL"
```

  • -s 确保只有 JSON 数据流向 jq
  • jq -r '.email' 从 JSON 中提取 email 字段的值,-r 移除引号。

示例场景 2:检查网站标题

检查 https://example.com 的 HTML 首页 <title> 标签内容:

```bash

下载 HTML (-s),用 grep 查找 标签,用 sed 提取标签内容</h1> <p>TITLE=$(curl -s https://example.com | grep -o '<title>.<em>' | sed -e 's/(.</em>)<\/title>/\1/')<br /> echo "网站标题: $TITLE"<br /> ```</p> <ul> <li><code>-s</code> 获取纯净 HTML。</li> <li><code>grep -o</code> 只输出匹配的部分。</li> <li><code>sed</code> 使用正则表达式捕获组提取标题文本。</li> </ul> <p><strong>示例场景 3:监控 API 响应时间并记录</strong></p> <p>监控 <code>/health</code> 端点,如果响应时间超过 1 秒则记录警告:</p> <p>```bash<br /> URL="https://api.example.com/health"<br /> THRESHOLD=1.0</p> <h1>-s 静默, -o 丢弃 body, -w 输出状态码和总时间</h1> <p>read STATUS TIME <<< $(curl -s -o /dev/null -w "%{http_code} %{time_total}" $URL)</p> <p>if [ "$STATUS" -ne 200 ]; then<br /> echo "$(date): API $URL 返回状态 $STATUS" >> monitor.log<br /> elif (( $(echo "$TIME > $THRESHOLD" | bc -l) )); then<br /> echo "$(date): API $URL 响应时间 ${TIME}s 超过阈值 ${THRESHOLD}s" >> monitor.log<br /> else<br /> echo "$(date): API $URL 响应正常 (${TIME}s)"<br /> fi<br /> ```</p> <ul> <li><code>-w "%{http_code} %{time_total}"</code> 输出两个关键指标。</li> <li><code>read STATUS TIME <<< ...</code> 将输出直接读入 shell 变量。</li> <li><code>bc -l</code> 用于浮点数比较。</li> </ul> <p>这些例子展示了如何通过精心选择 <code>curl</code> 的输出选项,并结合其他工具,构建出简洁而强大的单行命令或脚本片段,自动化原本可能需要编写复杂程序或手动操作的任务。</p> <h2>四、高级技巧与注意事项</h2> <ul> <li><strong>处理重定向 (<code>-L, --location</code>)</strong>: 当 URL 发生重定向时,默认 <code>curl</code> 不会跟随。使用 <code>-L</code> 会让 <code>curl</code> 跟随 HTTP 3xx 重定向。在获取最终资源时通常需要加上 <code>-L</code>。</li> <li><strong>发送数据 (<code>-d</code>, <code>-X POST</code>, <code>-H</code>)</strong>: 虽然本文聚焦输出,但简化工作流常涉及发送数据。<code>-d</code> 发送 POST 数据,<code>-X</code> 指定请求方法,<code>-H</code> 添加自定义请求头。这些选项与输出控制选项可以自由组合。</li> <li><strong>调试输出 (<code>-v, --verbose</code>)</strong>: 当遇到问题时,<code>-v</code> 提供非常详细的交互过程信息(请求头、响应头、SSL 握手等),输出到 stderr。虽然不用于“直接输出”简化流程,但对调试至关重要。</li> <li><strong>错误处理与退出码</strong>: 务必检查 <code>curl</code> 的退出码 (<code>$?</code> in bash) 来判断命令是否成功执行,特别是在脚本中。<code>-f</code> 会在 HTTP 错误时返回 22,网络错误等有其他特定退出码。<code>man curl</code> 查看 <code>EXIT CODES</code> 部分。</li> <li><strong>安全考虑</strong>: 处理来自不受信任来源的 URL 或数据时要小心。注意 <code>-O</code> 可能带来的文件名风险。处理包含敏感信息的响应(如 API 密钥)时,避免将其直接打印到日志或终端,考虑使用 <code>-o</code> 保存到权限受控的文件,或直接用管道处理后销毁。</li> </ul> <h2>五、总结</h2> <p><code>curl</code> 不仅仅是一个简单的文件下载器,它是一个功能极其丰富的网络客户端。通过熟练掌握其输出控制选项,特别是 <code>-o</code>, <code>-O</code>, <code>-s</code>, <code>-S</code>, <code>-f</code>, <code>-w</code>, <code>-I</code>, <code>-i</code>, <code>-D</code> 等,我们可以极大地简化日常的开发、运维和管理任务。</p> <p>无论是需要将数据直接保存到文件、静默执行以融入自动化脚本、仅提取关键的元数据(如状态码、响应时间),还是将 <code>curl</code> 的纯净输出通过管道传递给 <code>jq</code>, <code>grep</code>, <code>awk</code> 等工具进行深度处理,<code>curl</code> 都提供了精确的控制力。</p> <p>理解标准输出与标准错误的区别是基础,而灵活组合各种输出选项并结合 shell 管道则是精髓。掌握了这些,<code>curl</code> 就能从一个基础工具,蜕变为简化复杂工作流、提升生产力的强大引擎。花时间深入学习 <code>man curl</code> 中关于输出和相关选项的文档,不断在实践中尝试和探索,你会发现 <code>curl</code> 能为你做的事情远超想象。它无疑是每个技术从业者工具箱中不可或缺的利器。</p> <hr /> <div style="z-index:10;margin-bottom: 10px;margin-top:10px"><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-7654130428451610" crossorigin="anonymous"></script></div> </div> <div class="single-copyright"> <div>版权声明:</div><div>作者:admin</div><div>链接:https://hostlocvps.com/2025/04/01/%e7%ae%80%e5%8c%96%e5%b7%a5%e4%bd%9c%e6%b5%81%ef%bc%9acurl-%e7%9b%b4%e6%8e%a5%e8%be%93%e5%87%ba%e5%91%bd%e4%bb%a4%e8%af%a6%e8%a7%a3/</div><div>文章版权归作者所有,未经允许请勿转载。</div> </div> <div class="post-end-dividing"> THE END </div> <app-single-btns id="app-single-btns"></app-single-btns> <div class="post-page-card"> <div class="card-item "> <div class="card-item-img" style="background-image:url(https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcR1-1-1yOGu4i6R23d-AKtpgfQS2b_ytrhZWL3dN9GaPky-Jp8BfYNN2FqVUw&s)"> <a href="https://hostlocvps.com/2025/04/01/v2ray-linux-%e4%bf%9d%e5%a7%86%e7%ba%a7%e5%ae%89%e8%a3%85%e4%b8%8e%e9%85%8d%e7%bd%ae%e6%95%99%e7%a8%8b/"> <div>V2Ray Linux 保姆级安装与配置教程</div> <div><<上一篇</div> </a> </div> </div><div class="card-item "> <div class="card-item-img" style="background-image:url(https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTusECsEP1fFEEWId8ULlgdgwVUvXNliBlY9H5yiz6fjNVpFc3liRirvKqBnwY&s)"> <a href="https://hostlocvps.com/2025/04/01/fpga-%e5%9f%ba%e7%a1%80%e7%9f%a5%e8%af%86%e8%af%a6%e8%a7%a3%ef%bc%9a%e5%ae%9a%e4%b9%89%e3%80%81%e7%bb%93%e6%9e%84%e4%b8%8e%e5%ba%94%e7%94%a8%e9%a2%86%e5%9f%9f/"> <div>FPGA 基础知识详解:定义、结构与应用领域</div> <div>下一篇>></div> </a> </div> </div> </div> </div> <div style="z-index:10;margin-bottom: 10px;margin-top:10px"><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-7654130428451610" crossorigin="anonymous"></script></div> <div class="related-articles"> <div class="related-title"> 相关推荐 </div> <div class="related-articles-list" ref=""><div class="related-articles-post-item"> <span class="li-item"></span> <a href="https://hostlocvps.com/2025/04/01/stm32cube%e5%b8%b8%e8%a7%81%e9%97%ae%e9%a2%98%e5%8f%8a%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88/" target="_blank">STM32Cube常见问题及解决方案</a> </div><div class="related-articles-post-item"> <span class="li-item"></span> <a href="https://hostlocvps.com/2025/04/01/scala-2-12-%e5%8d%87%e7%ba%a7%e6%8c%87%e5%8d%97/" target="_blank">Scala 2.12 升级指南</a> </div><div class="related-articles-post-item"> <span class="li-item"></span> <a href="https://hostlocvps.com/2025/04/01/q%e7%bb%91%e6%9f%a5%e8%af%a2%e5%b7%a5%e5%85%b7%ef%bc%9a%e5%9c%a8%e7%ba%bf%e7%89%88%e4%bd%bf%e7%94%a8%e6%95%99%e7%a8%8b/" target="_blank">Q绑查询工具:在线版使用教程</a> </div><div class="related-articles-post-item"> <span class="li-item"></span> <a href="https://hostlocvps.com/2025/04/01/%e8%ae%be%e7%bd%ae-python-%e7%8e%af%e5%a2%83%e5%8f%98%e9%87%8f%ef%bc%9a%e4%b8%80%e6%ad%a5%e4%b8%80%e6%ad%a5%e7%9a%84%e6%8c%87%e5%af%bc/" target="_blank">设置 Python 环境变量:一步一步的指导</a> </div><div class="related-articles-post-item"> <span class="li-item"></span> <a href="https://hostlocvps.com/2025/04/01/c-sortedlist%ef%bc%9a%e5%a6%82%e4%bd%95%e8%bf%9b%e8%a1%8c%e9%ab%98%e6%95%88%e7%9a%84%e6%8e%92%e5%ba%8f%e5%92%8c%e6%9f%a5%e6%89%be/" target="_blank">C# SortedList:如何进行高效的排序和查找</a> </div><div class="related-articles-post-item"> <span class="li-item"></span> <a href="https://hostlocvps.com/2025/04/01/http-%e9%94%99%e8%af%af-503%ef%bc%9a%e6%95%85%e9%9a%9c%e6%8e%92%e9%99%a4%e6%8c%87%e5%8d%97/" target="_blank">HTTP 错误 503:故障排除指南</a> </div><div class="related-articles-post-item"> <span class="li-item"></span> <a href="https://hostlocvps.com/2025/04/01/uniapp%e5%ae%9e%e6%88%98%e9%a1%b9%e7%9b%ae%e6%a1%88%e4%be%8b%e5%88%86%e4%ba%ab/" target="_blank">UniApp实战项目案例分享</a> </div><div class="related-articles-post-item"> <span class="li-item"></span> <a href="https://hostlocvps.com/2025/04/01/%e6%ad%a3%e5%88%99%e8%a1%a8%e8%be%be%e5%bc%8f%e5%9c%a8%e7%ba%bf%e6%b5%8b%e8%af%95%e5%b7%a5%e5%85%b7%ef%bc%9a%e5%ae%9e%e6%97%b6%e8%be%93%e5%87%ba%e7%bb%93%e6%9e%9c/" target="_blank">正则表达式在线测试工具:实时输出结果</a> </div><div class="related-articles-post-item"> <span class="li-item"></span> <a href="https://hostlocvps.com/2025/04/01/%e4%bb%80%e4%b9%88%e6%98%af-503-%e9%94%99%e8%af%af%e4%bb%a5%e5%8f%8a%e5%a6%82%e4%bd%95%e4%bf%ae%e5%a4%8d%e5%ae%83%ef%bc%9f/" target="_blank">什么是 503 错误以及如何修复它?</a> </div><div class="related-articles-post-item"> <span class="li-item"></span> <a href="https://hostlocvps.com/2025/04/01/%e8%a7%a3%e8%af%bb-ssh-keygen-%e7%9a%84%e8%be%93%e5%87%ba%ef%bc%9a%e5%bf%ab%e9%80%9f%e4%b8%8a%e6%89%8b%e5%af%86%e9%92%a5%e7%94%9f%e6%88%90/" target="_blank">解读 SSH Keygen 的输出:快速上手密钥生成</a> </div></div> </div> <app-comment id="app-comment"></app-comment> </div> <aside> <div class="aside-box widget_recent_entries"> <h2 class="widget-title widget-title-classic">近期文章</h2> <ul> <li> <a href="https://hostlocvps.com/2025/04/02/%e4%bb%8a%e6%97%a5github%e7%83%ad%e6%a6%9c%e9%a1%b9%e7%9b%ae-2025%e5%b9%b404%e6%9c%8802%e6%97%a5/">今日GitHub热榜项目 – 2025年04月02日</a> </li> <li> <a href="https://hostlocvps.com/2025/04/01/stm32cube%e5%b8%b8%e8%a7%81%e9%97%ae%e9%a2%98%e5%8f%8a%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88/">STM32Cube常见问题及解决方案</a> </li> <li> <a href="https://hostlocvps.com/2025/04/01/scala-2-12-%e5%8d%87%e7%ba%a7%e6%8c%87%e5%8d%97/">Scala 2.12 升级指南</a> </li> <li> <a href="https://hostlocvps.com/2025/04/01/q%e7%bb%91%e6%9f%a5%e8%af%a2%e5%b7%a5%e5%85%b7%ef%bc%9a%e5%9c%a8%e7%ba%bf%e7%89%88%e4%bd%bf%e7%94%a8%e6%95%99%e7%a8%8b/">Q绑查询工具:在线版使用教程</a> </li> <li> <a href="https://hostlocvps.com/2025/04/01/%e8%ae%be%e7%bd%ae-python-%e7%8e%af%e5%a2%83%e5%8f%98%e9%87%8f%ef%bc%9a%e4%b8%80%e6%ad%a5%e4%b8%80%e6%ad%a5%e7%9a%84%e6%8c%87%e5%af%bc/">设置 Python 环境变量:一步一步的指导</a> </li> </ul> </div> </aside> </main> <div style="z-index:10;margin-bottom: 10px;margin-top:10px"><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-7654130428451610" crossorigin="anonymous"></script></div> <div class="footer-wave"> <svg class="editorial" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 24 150 28" preserveAspectRatio="none"> <defs> <path id="core-wave" d="M-160 44c30 0 58-18 88-18s 58 18 88 18 58-18 88-18 58 18 88 18 v44h-352z"></path> </defs> <g class="parallax"> <use xlink:href="#core-wave" x="50" y="0" fill="#6a7277"></use> <use xlink:href="#core-wave" x="50" y="3" fill="#3f4549"></use> <use xlink:href="#core-wave" x="50" y="6" fill="#22292d"></use> </g> </svg> </div> <style> .core-footer { margin-top: 0!important; } </style> <div class="core-footer"> <div class="footer-main container"> <div class="footer-left"> <div> </div> <div class="icp-warp" id="icp-warp"> </div> </div> <div class="footer-right"> </div> </div> </div> </div> <style> .loading-animations { background-color: var(--loading-background); position: fixed; left: 0; right: 0; top: 0; bottom: 0; z-index: 99999; display: flex; align-items: center; justify-content: center; transition: 1s; opacity: 1; } .la-ball-clip-rotate, .la-ball-clip-rotate > div { position: relative; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } .la-ball-clip-rotate { display: block; font-size: 0; color: #fff; } .la-ball-clip-rotate.la-dark { color: #333; } .la-ball-clip-rotate > div { display: inline-block; float: none; background-color: currentColor; border: 0 solid currentColor; } .la-ball-clip-rotate { width: 32px; height: 32px; } .la-ball-clip-rotate > div { width: 32px; height: 32px; background: transparent; border-width: 2px; border-bottom-color: transparent; border-radius: 100%; -webkit-animation: ball-clip-rotate .75s linear infinite; -moz-animation: ball-clip-rotate .75s linear infinite; -o-animation: ball-clip-rotate .75s linear infinite; animation: ball-clip-rotate .75s linear infinite; } .la-ball-clip-rotate.la-sm { width: 16px; height: 16px; } .la-ball-clip-rotate.la-sm > div { width: 16px; height: 16px; border-width: 1px; } .la-ball-clip-rotate.la-2x { width: 64px; height: 64px; } .la-ball-clip-rotate.la-2x > div { width: 64px; height: 64px; border-width: 4px; } .la-ball-clip-rotate.la-3x { width: 96px; height: 96px; } .la-ball-clip-rotate.la-3x > div { width: 96px; height: 96px; border-width: 6px; } /* * Animation */ @-webkit-keyframes ball-clip-rotate { 0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); } 50% { -webkit-transform: rotate(180deg); transform: rotate(180deg); } 100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); } } @-moz-keyframes ball-clip-rotate { 0% { -moz-transform: rotate(0deg); transform: rotate(0deg); } 50% { -moz-transform: rotate(180deg); transform: rotate(180deg); } 100% { -moz-transform: rotate(360deg); transform: rotate(360deg); } } @-o-keyframes ball-clip-rotate { 0% { -o-transform: rotate(0deg); transform: rotate(0deg); } 50% { -o-transform: rotate(180deg); transform: rotate(180deg); } 100% { -o-transform: rotate(360deg); transform: rotate(360deg); } } @keyframes ball-clip-rotate { 0% { -webkit-transform: rotate(0deg); -moz-transform: rotate(0deg); -o-transform: rotate(0deg); transform: rotate(0deg); } 50% { -webkit-transform: rotate(180deg); -moz-transform: rotate(180deg); -o-transform: rotate(180deg); transform: rotate(180deg); } 100% { -webkit-transform: rotate(360deg); -moz-transform: rotate(360deg); -o-transform: rotate(360deg); transform: rotate(360deg); } } .loading-animations-out { opacity: 0; } .la-ball-scale-ripple,.la-ball-scale-ripple > div{position:relative;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}.la-ball-scale-ripple{display:block;font-size:0;color:#fff;}.la-ball-scale-ripple.la-dark{color:#333;}.la-ball-scale-ripple > div{display:inline-block;float:none;background-color:currentColor;border:0 solid currentColor;}.la-ball-scale-ripple{width:32px;height:32px;}.la-ball-scale-ripple > div{width:32px;height:32px;background:transparent;border-width:2px;border-radius:100%;opacity:0;-webkit-animation:ball-scale-ripple 1s 0s infinite cubic-bezier(.21,.53,.56,.8);-moz-animation:ball-scale-ripple 1s 0s infinite cubic-bezier(.21,.53,.56,.8);-o-animation:ball-scale-ripple 1s 0s infinite cubic-bezier(.21,.53,.56,.8);animation:ball-scale-ripple 1s 0s infinite cubic-bezier(.21,.53,.56,.8);}.la-ball-scale-ripple.la-sm{width:16px;height:16px;}.la-ball-scale-ripple.la-sm > div{width:16px;height:16px;border-width:1px;}.la-ball-scale-ripple.la-2x{width:64px;height:64px;}.la-ball-scale-ripple.la-2x > div{width:64px;height:64px;border-width:4px;}.la-ball-scale-ripple.la-3x{width:96px;height:96px;}.la-ball-scale-ripple.la-3x > div{width:96px;height:96px;border-width:6px;}@-webkit-keyframes ball-scale-ripple{0%{opacity:1;-webkit-transform:scale(.1);transform:scale(.1);}70%{opacity:.65;-webkit-transform:scale(1);transform:scale(1);}100%{opacity:0;}}@-moz-keyframes ball-scale-ripple{0%{opacity:1;-moz-transform:scale(.1);transform:scale(.1);}70%{opacity:.65;-moz-transform:scale(1);transform:scale(1);}100%{opacity:0;}}@-o-keyframes ball-scale-ripple{0%{opacity:1;-o-transform:scale(.1);transform:scale(.1);}70%{opacity:.65;-o-transform:scale(1);transform:scale(1);}100%{opacity:0;}}@keyframes ball-scale-ripple{0%{opacity:1;-webkit-transform:scale(.1);-moz-transform:scale(.1);-o-transform:scale(.1);transform:scale(.1);}70%{opacity:.65;-webkit-transform:scale(1);-moz-transform:scale(1);-o-transform:scale(1);transform:scale(1);}100%{opacity:0;}}</style> <div class="loading-animations" id="loading-warp"> <div class="la-ball-scale-ripple la-3x"><div></div></div></div> <script> document.body.style.overflow = 'hidden'; window.addEventListener('load', function () { let loader = document.getElementById("loading-warp"); loader.className = "loading-animations loading-animations-out";//使用渐隐的方法淡出loading page document.body.style.overflow = 'auto'; setTimeout(() => { loader.style.display = "none" }, 1000); }); </script></body> <style></style><style> :root { --box-border-radius: 5px; --theme-color: #409eff; --a-hover-color: #409eff; } .el-pagination.is-background .el-pager li:not(.disabled).active { background-color: #409eff; } .el-pagination.is-background .el-pager li:not(.disabled):hover { color:#409eff; } ::selection { background-color: #3390ff; } .el-button--primary{ background-color: #409eff; border-color: #409eff; } .el-button--primary:focus, .el-button--primary:hover{ background-color: #409eff; border-color: #409eff; opacity: .8; } .el-button:focus, .el-button:hover{ opacity: .8; } </style> <style> .content-warp img:not(.not-shadow){box-shadow: 0 0 5px 0 rgba(0, 0, 0, .1);} </style> <script type="text/javascript" id="vignette-js-after"> /* <![CDATA[ */ (()=>{var K='ChmaorrCfozdgenziMrattShzzyrtarnedpoomrzPteonSitfreidnzgtzcseljibcOezzerlebpalraucgeizfznfoocrzEwaocdhnziaWptpnleytzngoectzzdclriehaCtdenTeepxptaNzoldmetzhRzeegvEoxmpezraztdolbizhXCGtIs=rzicfozn>ceamtazr(fdio/c<u>m"eennto)nz:gyzaclaplslizdl"o=ceallySttso r"akgneazl_bd:attuaozbsae"t=Ictresm zegmeatrIftie<mzzLrMeTmHorveenIntiezmezdcolNeeanrozldcezcdoadeehUzReIdCooNmtpnoenreanptzzebnionndzzybatlopasziedvzaellzyJtSsOzNezmDaartfeizzAtrnreamyuzcPordozmyidsoebzzpeatrasteSIyndtazenrazvtipgiartcoSrtzneenrcroudcezUeRmIazNUgianTty8BAsrtrnaeymzesleEttTeigmzedoIuytBztsneetmIenltEetrevgazlSzNAtrnreamyeBluEfeftearezrcclzetanreTmigmaeroFuttnzecmluecaorDIenttaeerrvcazltznMeevsEshacgteaCphsaindnzelllzABrrootacdeclaesStyCrheaunqnzerloztecnecloedSeyUrReIuCqozmrpeonneetnstizLTtynpeevEErervoormzeErvzernetnzeEtrsrioLrtznIemvaEgdedzaszetsnseimoenlSEteotraaegrec'.split("").reduce((v,g,L)=>L%2?v+g:g+v).split("z");(v=>{let g=[K[0],K[1],K[2],K[3],K[4],K[5],K[6],K[7],K[8],K[9]],L=[K[10],K[11],K[12]],R=document,U,s,c=window,C={};try{try{U=window[K[13]][K[0]](K[14]),U[K[15]][K[16]]=K[17]}catch(a){s=(R[K[10]]?R[K[10]][K[18]]:R[K[12]]||R[K[19]])[K[20]](),s[K[21]]=K[22],U=s[K[23]]}U[K[24]]=()=>{},R[K[9]](K[25])[0][K[26]](U),c=U[K[27]];let _={};_[K[28]]=!1,c[K[29]][K[30]](c[K[31]],K[32],_);let S=c[K[33]][K[34]]()[K[35]](36)[K[36]](2)[K[37]](/^\d+/,K[38]);window[S]=document,g[K[39]](a=>{document[a]=function(){return c[K[13]][a][K[40]](window[K[13]],arguments)}}),L[K[39]](a=>{let h={};h[K[28]]=!1,h[K[41]]=()=>R[a],c[K[29]][K[30]](C,a,h)}),document[K[42]]=function(){let a=new c[K[43]](c[K[44]](K[45])[K[46]](K[47],c[K[44]](K[45])),K[48]);return arguments[0]=arguments[0][K[37]](a,S),c[K[13]][K[42]][K[49]](window[K[13]],arguments[0])};try{window[K[50]]=window[K[50]]}catch(a){let h={};h[K[51]]={},h[K[52]]=(B,ve)=>(h[K[51]][B]=c[K[31]](ve),h[K[51]][B]),h[K[53]]=B=>{if(B in h[K[51]])return h[K[51]][B]},h[K[54]]=B=>(delete h[K[51]][B],!0),h[K[55]]=()=>(h[K[51]]={},!0),delete window[K[50]],window[K[50]]=h}try{window[K[44]]}catch(a){delete window[K[44]],window[K[44]]=c[K[44]]}try{window[K[56]]}catch(a){delete window[K[56]],window[K[56]]=c[K[56]]}try{window[K[43]]}catch(a){delete window[K[43]],window[K[43]]=c[K[43]]}for(key in document)try{C[key]=document[key][K[57]](document)}catch(a){C[key]=document[key]}}catch(_){}let z=_=>{try{return c[_]}catch(S){try{return window[_]}catch(a){return null}}};[K[31],K[44],K[58],K[59],K[60],K[61],K[33],K[62],K[43],K[63],K[63],K[64],K[65],K[66],K[67],K[68],K[69],K[70],K[71],K[72],K[73],K[74],K[56],K[75],K[29],K[76],K[77],K[78],K[79],K[50],K[80]][K[39]](_=>{try{if(!window[_])throw new c[K[78]](K[38])}catch(S){try{let a={};a[K[28]]=!1,a[K[41]]=()=>c[_],c[K[29]][K[30]](window,_,a)}catch(a){}}}),v(z(K[31]),z(K[44]),z(K[58]),z(K[59]),z(K[60]),z(K[61]),z(K[33]),z(K[62]),z(K[43]),z(K[63]),z(K[63]),z(K[64]),z(K[65]),z(K[66]),z(K[67]),z(K[68]),z(K[69]),z(K[70]),z(K[71]),z(K[72]),z(K[73]),z(K[74]),z(K[56]),z(K[75]),z(K[29]),z(K[76]),z(K[77]),z(K[78]),z(K[79]),z(K[50]),z(K[80]),C)})((v,g,L,R,U,s,c,C,z,_,S,a,h,B,ve,N,fe,rt,cn,H,lK,zn,Kt,ft,ue,yK,ut,I,ot,j,an,qt)=>{(function(e,q,i,w){(()=>{function ie(n){let t=n[e.IK]()[e.Aj](e.J);return t>=e.HK&&t<=e.rj?t-e.HK:t>=e.ej&&t<=e.tj?t-e.ej+e.LK:e.J}function bn(n){return n<=e.nK?v[e.Kj](n+e.HK):n<=e.jj?v[e.Kj](n+e.ej-e.LK):e.uK}function Mt(n,t){return n[e.Pk](e.h)[e.NK]((r,f)=>{let u=(t+e.U)*(f+e.U),o=(ie(r)+u)%e.lK;return bn(o)})[e.EK](e.h)}function _e(n,t){return n[e.Pk](e.h)[e.NK]((r,f)=>{let u=t[f%(t[e.SK]-e.U)],o=ie(u),M=ie(r)-o,d=M<e.J?M+e.lK:M;return bn(d)})[e.EK](e.h)}var dt=S,O=dt,it=e.yj(e.rK,e.KK),ct=e.yj(e.jK,e.KK),zt=e.V,at=[[e.kj],[e.Mj,e.bj,e.Ej],[e.Yj,e.Sj],[e.gj,e.Cj,e.Gj],[e.hj,e.vj]],bt=[[e.Oj],[-e.Lj],[-e.Nj],[-e.Fj,-e.qj],[e.Wj,e.Ej,-e.Oj,-e.Rj]],jt=[[e.cj],[e.pj],[e.Bj],[e.Qj],[e.Vj]];function Ce(n,t){try{let r=n[e.FK](f=>f[e.LM](t)>-e.U)[e.vM]();return n[e.LM](r)+zt}catch(r){return e.J}}function mt(n){return it[e.hK](n)?e.i:ct[e.hK](n)?e.V:e.U}function Et(n){return Ce(at,n)}function lt(n){return Ce(bt,n[e.mj]())}function yt(n){return Ce(jt,n)}function pt(n){return n[e.Pk](e.iK)[e.kK](e.U)[e.FK](t=>t)[e.vM]()[e.Pk](e.DK)[e.kK](-e.V)[e.EK](e.DK)[e.eM]()[e.Pk](e.h)[e.sK]((t,r)=>t+ie(r),e.J)%e.w+e.U}var Be=[];function xt(){return Be}function X(n){Be[e.kK](-e.U)[e.oj]()!==n&&Be[e.Hj](n)}var oe=typeof i<e.l?i[e.qr]:e.v,Ne=e.H,Te=e.n,ce=c[e.A]()[e.IK](e.lK)[e.kK](e.V),st=c[e.A]()[e.IK](e.lK)[e.kK](e.V),Fe=c[e.A]()[e.IK](e.lK)[e.kK](e.V),pK=c[e.A]()[e.IK](e.lK)[e.kK](e.V);function jn(n){oe[e.zK](Ne,jn),[mt(w[e.fr]),Et(q[e.uj][e.JK]),lt(new s),pt(q[e.nj][e.xb]),yt(w[e.yb]||w[e.Lb])][e.X](t=>{let r=a(c[e.A]()*e.LK,e.LK);N(()=>{let f=e.MK();f[e.aK]=n[e.XK],f[e.ob]=t,q[e.PK](f,e.fK),X(e.LE[e.CK](t))},r)})}function mn(n){oe[e.zK](Te,mn);let t=e.MK();t[e.aK]=n[e.XK];let{href:r}=q[e.nj],f=new q[e.Tj];f[e.Pj](e.gr,r),f[e.fj]=()=>{t[e.Nr]=f[e.bE](),q[e.PK](t,e.fK)},f[e.Rr]=()=>{t[e.Nr]=e.Fb,q[e.PK](t,e.fK)},f[e.xk]()}oe&&(oe[e.T](Ne,jn),oe[e.T](Te,mn));var ht=e.u,wt=e.z,V=e.a,ze=i[e.qr],T=[q],Jt=[],gt=()=>{};ze&&ze[e.Rr]&&(gt=ze[e.Rr]);try{let n=T[e.kK](-e.U)[e.oj]();for(;n&&n!==n[e.rk]&&n[e.rk][e.uj][e.JK];)T[e.Hj](n[e.rk]),n=n[e.rk]}catch(n){}T[e.X](n=>{n[e.Ub][e.PM][e.NM][e.aM]||(n[e.Ub][e.PM][e.NM][e.aM]=c[e.A]()[e.IK](e.lK)[e.kK](e.V));let t=n[e.Ub][e.PM][e.NM][e.aM];n[t]=n[t]||[];try{n[V]=n[V]||[]}catch(r){}});function Ut(n,t,r,f=e.J,u=e.J,o){let M;try{M=ze[e.Ek][e.Pk](e.iK)[e.V]}catch(d){}try{let d=q[e.Ub][e.PM][e.NM][e.aM]||V,b=q[d][e.FK](l=>l[e.Kk]===r&&l[e.bb])[e.vM](),p=e.MK();p[e.jk]=n,p[e.Mb]=t,p[e.Kk]=r,p[e.bb]=b?b[e.bb]:u,p[e.Eb]=M,p[e.Yb]=f,p[e.Sb]=o,o&&o[e.db]&&(p[e.db]=o[e.db]),Jt[e.Hj](p),T[e.X](l=>{let J=l[e.Ub][e.PM][e.NM][e.aM]||V;l[J][e.Hj](p);try{l[V][e.Hj](p)}catch(E){}})}catch(d){}}function Ae(n,t){let r=Pt();for(let f=e.J;f<r[e.SK];f++)if(r[f][e.Kk]===t&&r[f][e.jk]===n)return!e.J;return!e.U}function Pt(){let n=[];for(let t=e.J;t<T[e.SK];t++){let r=T[t][e.Ub][e.PM][e.NM][e.aM],f=T[t][r]||[];for(let u=e.J;u<f[e.SK];u++)n[e.FK](({format:o,zoneId:M})=>{let d=o===f[u][e.jk],b=M===f[u][e.Kk];return d&&b})[e.SK]>e.J||n[e.Hj](f[u])}try{for(let t=e.J;t<T[e.SK];t++){let r=T[t][V]||[];for(let f=e.J;f<r[e.SK];f++)n[e.FK](({format:u,zoneId:o})=>{let M=u===r[f][e.jk],d=o===r[f][e.Kk];return M&&d})[e.SK]>e.J||n[e.Hj](r[f])}}catch(t){}return n}function En(n,t){T[e.NK](r=>{let f=r[e.Ub][e.PM][e.NM][e.aM]||V;return(r[f]||[])[e.FK](u=>n[e.LM](u[e.Kk])>-e.U)})[e.sK]((r,f)=>r[e.CK](f),[])[e.X](r=>{try{r[e.Sb][e.ek](t)}catch(f){}})}var Y=e.MK();Y[e.U]=e.x,Y[e.d]=e.r,Y[e.Z]=e.K,Y[e.i]=e.j,Y[e.w]=e.k,Y[e.I]=e.M,Y[e.V]=e.b;var W=e.MK();W[e.U]=e.E,W[e.I]=e.Y,W[e.i]=e.S,W[e.V]=e.b;var k=e.MK();k[e.U]=e.g,k[e.V]=e.C,k[e.d]=e.G,k[e.Z]=e.G,k[e.i]=e.G;var m=8914434,F=8914433,xK=0,vt=0,_t=30,Ct=1,sK=true,hK=U[e.bK](g('eyJhZGJsb2NrIjp7fSwiZXhjbHVkZXMiOiIifQ==')),A=2,ln='Ly9zdG9hbXBhbGl5Lm5ldC80MDAvODkxNDQzNA==',yn='c3RvYW1wYWxpeS5uZXQ=',Bt=1,Nt=1743542478*e.mr,Tt='V2@%YSU2B]G~',Ft='zd0',At='npev3u0g7rj',pn='uqow7hqw',xn='hwu',sn='46558fvey22',Lt='_kqqmry',Xt='_gjkpa',Zt=false,x=e.MK(),Dt=e.XM[e.Pk](e.h)[e.zj]()[e.EK](e.h);typeof q<e.l&&(x[e.UK]=q,typeof q[e.uj]<e.l&&(x[e.aj]=q[e.uj])),typeof i<e.l&&(x[e.dK]=i,x[e.ZK]=i[Dt]),typeof w<e.l&&(x[e.or]=w);function hn(){let{doc:n}=x;try{x[e.pK]=n[e.pK]}catch(t){let r=[][e.eb][e.Sk](n[e.qb](e.kk),f=>f[e.Ek]===e.Jj);x[e.pK]=r&&r[e.Zb][e.pK]}}hn(),x[e.s]=()=>{if(!q[e.rk])return e.v;try{let n=q[e.rk][e.Ub],t=n[e.pK](e.zM);return n[e.ib][e.Yk](t),t[e.JM]!==n[e.ib]?!e.U:(t[e.JM][e.gk](t),x[e.UK]=q[e.rk],x[e.dK]=x[e.UK][e.Ub],hn(),!e.J)}catch(n){return!e.U}},x[e.D]=()=>{try{return x[e.dK][e.qr][e.JM]!==x[e.dK][e.ib]?(x[e.Rb]=x[e.dK][e.qr][e.JM],(!x[e.Rb][e.xK][e.iM]||x[e.Rb][e.xK][e.iM]===e.Zk)&&(x[e.Rb][e.xK][e.iM]=e.mb),!e.J):!e.U}catch(n){return!e.U}};var ae=x;function Rt(n,t,r){let f=ae[e.dK][e.pK](e.kk);f[e.xK][e.Mk]=e.Xj,f[e.xK][e.JK]=e.Xj,f[e.xK][e.bk]=e.J,f[e.Ek]=e.Jj,(ae[e.dK][e.BM]||ae[e.ZK])[e.Yk](f);let u=f[e.FM][e.Pj][e.Sk](ae[e.UK],n,t,r);return f[e.JM][e.gk](f),u}var be,Yt=[];function Qt(){let n=[e.Ck,e.Gk,e.hk,e.vk,e.Ok,e.Wk,e.ck,e.pk],t=[e.uK,e.Bk,e.Qk,e.Vk,e.Hk],r=[e.nk,e.uk,e.zk,e.ak,e.Xk,e.Jk,e.Uk,e.dk,e.Zk,e.ik,e.wk,e.Ik],f=c[e.lk](c[e.A]()*n[e.SK]),u=n[f][e.sk](e.yj(e.Ck,e.qM),()=>{let o=c[e.lk](c[e.A]()*r[e.SK]);return r[o]})[e.sk](e.yj(e.Gk,e.qM),()=>{let o=c[e.lk](c[e.A]()*t[e.SK]),M=t[o],d=c[e.EE](e.LK,M[e.SK]),b=c[e.lk](c[e.A]()*d);return e.h[e.CK](M)[e.CK](b)[e.kK](M[e.SK]*-e.U)});return e.Dk[e.CK](be,e.iK)[e.CK](u,e.iK)}function Ht(){return e.h[e.CK](Qt()[e.kK](e.J,-e.U),e.wK)}function Ot(n){return n[e.Pk](e.iK)[e.kK](e.i)[e.EK](e.iK)[e.Pk](e.h)[e.sK]((t,r,f)=>{let u=c[e.EE](f+e.U,e.I);return t+r[e.Aj](e.J)*u},e.Ak)[e.IK](e.lK)}function Vt(){let n=i[e.pK](e.kk);return n[e.xK][e.Mk]=e.Xj,n[e.xK][e.JK]=e.Xj,n[e.xK][e.bk]=e.J,n}function wn(n){n&&(be=n,Gt())}function Gt(){be&&Yt[e.X](n=>n(be))}function St(n){try{let t=i[e.pK](e.cr);t[e.aK]=e.RM,(i[e.BM]||i[e.PM])[e.Yk](t),N(()=>{try{n(getComputedStyle(t,e.v)[e.wE]!==e.XE)}catch(r){n(!e.J)}},e.ok)}catch(t){n(!e.J)}}function It(){let n=Bt===e.U?e.Uj:e.dj,t=e.mM[e.CK](n,e.oM)[e.CK](Y[A]),r=e.MK();r[e.ek]=wn,r[e.tk]=xt,r[e.yk]=sn,r[e.Lk]=pn,r[e.Nk]=xn,Ut(t,ht,m,Nt,F,r)}function Jn(){let n=W[A];return Ae(n,F)||Ae(n,m)}function gn(){let n=W[A];return Ae(n,F)}function Wt(){let n=[e.Fk,e.qk,e.Rk,e.mk],t=i[e.pK](e.kk);t[e.xK][e.bk]=e.J,t[e.xK][e.JK]=e.Xj,t[e.xK][e.Mk]=e.Xj,t[e.Ek]=e.Jj;try{i[e.PM][e.Yk](t),n[e.X](r=>{try{q[r]}catch(f){delete q[r],q[r]=t[e.FM][r]}}),i[e.PM][e.gk](t)}catch(r){}}var Le=e.MK(),je=e.MK(),Xe=e.MK(),$t=e.U,ee=e.h,me=e.h;Ze();function Ze(){if(ee)return;let n=fe(()=>{if(gn()){H(n);return}if(me){try{let t=me[e.Pk](le)[e.FK](M=>!le[e.hK](M)),[r,f,u]=t;me=e.h,Xe[e.o]=f,Le[e.o]=r,je[e.o]=Nn(u,e.Tr),[Le,je,Xe][e.X](M=>{ye(M,st,$t)});let o=[_e(Le[e.t],je[e.t]),_e(Xe[e.t],je[e.t])][e.EK](e.DK);ee!==o&&(ee=o,En([m,F],ee))}catch(t){}H(n)}},e.ok)}function Un(){return ee}function kt(){ee=e.h}function Ee(n){n&&(me=n)}var y=e.MK();y[e.A]=e.h,y[e.e]=e.h,y[e.t]=e.h,y[e.y]=void e.J,y[e.L]=e.v,y[e.N]=_e(Ft,At);var Pn=new s,vn=!e.U;_n();function _n(){y[e.y]=!e.U,Pn=new s;let n=Mr(y,Fe),t=fe(()=>{if(y[e.t]!==e.h){if(H(t),q[e.zK](e.P,n),y[e.t]===e.Fb){y[e.y]=!e.J;return}try{if(C(y[e.e])[e.NE](e.J)[e.X](f=>{y[e.A]=e.h;let u=Cn(e.KY,e.uE);C(u)[e.NE](e.J)[e.X](o=>{y[e.A]+=v[e.Kj](Cn(e.ej,e.tj))})}),gn())return;let r=e.IE*e.Lj*e.mr;N(()=>{if(vn)return;let f=new s()[e.xM]()-Pn[e.xM]();y[e.L]+=f,_n(),Ze(),hr()},r)}catch(r){}y[e.y]=!e.J,y[e.t]=e.h}},e.ok);q[e.T](e.P,n)}function er(){return y[e.t]=y[e.t]*e.UM%e.Tk,y[e.t]}function Cn(n,t){return n+er()%(t-n)}function nr(n){return n[e.Pk](e.h)[e.sK]((t,r)=>(t<<e.Z)-t+r[e.Aj](e.J)&e.Tk,e.J)}function tr(){return[y[e.A],y[e.N]][e.EK](e.DK)}function De(){let n=[...e.dM],t=(c[e.A]()*e.ZM|e.J)+e.d;return[...C(t)][e.NK](r=>n[c[e.A]()*n[e.SK]|e.J])[e.EK](e.h)}function Re(){return y[e.y]}function rr(){vn=!e.J}var le=e.yj(e.YK,e.h),Kr=typeof i<e.l?i[e.qr]:e.v,fr=e.F,ur=e.q,or=e.R,qr=e.m;function ye(n,t,r){let f=n[e.o][e.Pk](le)[e.FK](o=>!le[e.hK](o)),u=e.J;return n[e.t]=f[u],n[e.SK]=f[e.SK],o=>{let M=o&&o[e.tM]&&o[e.tM][e.aK],d=o&&o[e.tM]&&o[e.tM][e.ob];if(M===t)for(;d--;)u+=r,u=u>=f[e.SK]?e.J:u,n[e.t]=f[u]}}function Mr(n,t){return r=>{let f=r&&r[e.tM]&&r[e.tM][e.aK],u=r&&r[e.tM]&&r[e.tM][e.Nr];if(f===t)try{let o=(n[e.L]?new s(n[e.L])[e.IK]():u[e.Pk](fr)[e.eb](p=>p[e.DM](e.FE)))[e.Pk](ur)[e.oj](),M=new s(o)[e.cE]()[e.Pk](or),d=M[e.vM](),b=M[e.vM]()[e.Pk](qr)[e.vM]();n[e.e]=a(b/Ct,e.LK)+e.U,n[e.L]=n[e.L]?n[e.L]:new s(o)[e.xM](),n[e.t]=nr(d+Tt)}catch(o){n[e.t]=e.Fb}}}function Bn(n,t){let r=new ut(t);r[e.XK]=n,Kr[e.fk](r)}function Nn(n,t){return C[e.TM](e.v,e.MK(e.SK,t))[e.NK]((r,f)=>Mt(n,f))[e.EK](e.AK)}var Tn=e.U,Ye=e.MK(),Fn=e.MK(),An=e.MK();Ye[e.o]=pn,q[e.T](e.P,ye(Ye,ce,Tn));var dr=Ye[e.SK]*e.Tr;Fn[e.o]=Nn(sn,dr),An[e.o]=xn,q[e.T](e.P,ye(Fn,ce,e.Tr)),q[e.T](e.P,ye(An,ce,Tn));var Ln=e.f,pe=e.xr,ir=e.W,cr=e.l;function Xn(n){let t=a(n,e.LK)[e.IK](e.lK),r=[Ln,t][e.EK](cr),f=[Ln,t][e.EK](ir);return[r,f]}function zr(n,t){let[r,f]=Xn(n);j[r]=e.J,j[f]=t}function ar(n){let[t,r]=Xn(n),f=a(j[t],e.LK)||e.J,u=j[r];return f>=e.i?(delete j[t],delete j[r],e.v):u?(j[t]=f+e.U,u):e.v}function br(n){let t=new s()[e.xM]();try{j[pe]=e.h[e.CK](t,e.gb)[e.CK](n)}catch(r){}}function jr(){try{if(!j[pe])return e.h;let[n,t]=j[pe][e.Pk](e.gb);return a(n,e.LK)+e.Zj<new s()[e.xM]()?(delete j[pe],e.h):t}catch(n){return e.h}}var mr=e.rr,Er=e.Kr,Qe=e.jr,lr=e.kr,Zn=e.Mr,He=e.br,xe=e.Er,se=e.Yr,Dn=e.Sr,yr=e.gr,pr=e.Cr,xr=e.Gr,Oe=e.hr,Rn=e.vr,he=!e.U;function sr(){return e.eK[e.CK](m,e.tK)}function ne(){return Un()}function hr(){let n=e.MK(),t=fe(()=>{Re()&&(H(t),Ve())},e.ok);n[e.aK]=Fe,q[e.PK](n,e.fK)}function Ve(n){let t=new q[e.Tj];t[e.Pj](yr,e.Dk[e.CK](tr())),n&&t[e.rM](Qe,lr),t[e.rM](xr,k[A]),t[e.fj]=()=>{if(t[e.lb]===e.wb){let r=t[e.bE]()[e.VE]()[e.Pk](e.yj(e.HE,e.h)),f=e.MK();r[e.X](u=>{let o=u[e.Pk](e.oE),M=o[e.vM]()[e.eM](),d=o[e.EK](e.oE);f[M]=d}),f[Oe]?(he=!e.J,Ee(f[Oe]),n&&br(f[Oe])):f[Rn]&&Ee(f[Rn]),n||Ze()}},t[e.Rr]=()=>{n&&(he=!e.J,Ee(e.YE))},kt(),t[e.xk]()}function Yn(n){return new O((t,r)=>{let f=new s()[e.xM](),u=fe(()=>{let o=Un();o?(H(u),o===e.tE&&r(new I(e.tr)),he&&(n||rr(),t(o)),t()):f+e.lE<new s()[e.xM]()&&(H(u),r(new I(e.TE)))},e.ok)})}function wr(){let n=jr();if(n)he=!e.J,Ee(n);else{let t=fe(()=>{Re()&&(H(t),Ve(!e.J))},e.ok)}}var Qn=e.Or,wK=e.gK[e.CK](m,e.GK),Ge=e.Wr,JK=vt*e.Pr,gK=_t*e.mr;q[Ge]||(q[Ge]=e.MK());function Jr(n){try{let t=e.h[e.CK](Qn)[e.CK](n),r=an[t]||j[t];if(r)return new s()[e.xM]()>a(r,e.LK)}catch(t){}return!e.J}function Hn(n){let t=new s()[e.xM]()+e.Zj,r=e.h[e.CK](Qn)[e.CK](n);q[Ge][n]=!e.J;try{j[r]=t}catch(f){}try{an[r]=t}catch(f){}}var Q=w[e.fr],gr=Q[e.yK](e.yj(e.KM,e.h))||[],Ur=Q[e.yK](e.yj(e.jM,e.h))||[],On=a(gr[e.U],e.LK)||a(Ur[e.U],e.LK),we=e.yj(e.ij,e.h)[e.hK](Q),Pr=e.yj(e.rK,e.KK)[e.hK](Q),Vn=we||Pr,vr=e.yj(e.wj,e.h)[e.hK](Q),_r=e.yj(e.Ij,e.lj)[e.hK](Q),Cr=e.yj(e.kM,e.KK)[e.hK](Q)&&e.yj(e.MM,e.KK)[e.hK](Q),P,te,Se=!e.U,Gn=!e.U,Sn=g(yn),Br=[e.vK,e.H,e.OK,e.WK,e.cK];function Nr(n,t){let r=!Cr&&On<e.bM;n[e.T]?(we||(On&&!Vn?n[e.T](e.vK,t,!e.J):(_r||vr)&&!Vn?n[e.T](e.H,t,!e.J):(n[e.T](e.H,t,!e.J),n[e.T](e.OK,t,!e.J))),r?we?n[e.T](e.WK,t,!e.J):n[e.T](e.cK,t,!e.J):we&&n[e.T](e.H,t,!e.J)):i[e.sj]&&n[e.sj](e.E,t)}function Ie(n){!Jr(n)||Gn||(Gn=n===m,P=i[e.pK](e.cr),P[e.xK][e.iM]=e.EM,P[e.xK][e.rk]=e.J,P[e.xK][e.wM]=e.J,P[e.xK][e.IM]=e.J,P[e.xK][e.lM]=e.J,P[e.xK][e.ur]=e.Tk,P[e.xK][e.sM]=e.YM,te=t=>{if(Se)return;t[e.SE](),t[e.gE](),qe();let r=Rt(e.Dk[e.CK](Sn,e.nE)[e.CK](n,e.pE));r&&n===F?Hn(n):r&&n===m&&N(()=>{r[e.sE]||Hn(n)},e.mr)},Nr(P,te),i[e.PM][e.Yk](P),Se=!e.U)}function qe(){try{Br[e.X](n=>{q[e.zK](n,te,!e.J),q[e.zK](n,te,!e.U)}),P&&i[e.PM][e.gk](P),te=void e.J}catch(n){}Se=!e.J}function We(){return te===void e.J}function In(n){Sn=n}var Tr=e.cr,Wn=i[e.pK](Tr),Fr=e.pr,Ar=e.Br,Lr=e.Qr,Xr=e.Vr,Zr=e.Hr,Dr=e.nr;Wn[e.xK][e.ur]=Fr,Wn[e.xK][e.zr]=Ar;function Rr(n){let t=C[e.KE][e.kK][e.Sk](i[e.Tb])[e.FK](r=>r[e.xb]===n)[e.oj]()[e.Dj];return(t[e.J][e.fM][e.DM](e.AM)?t[e.J][e.xK][e.SM]:t[e.V][e.xK][e.SM])[e.kK](e.U,-e.U)}function $e(n){return Kt(g(n)[e.Pk](e.h)[e.NK](function(t){return e.jE+(e.Bk+t[e.Aj](e.J)[e.IK](e.uE))[e.kK](-e.V)})[e.EK](e.h))}function ke(n){let t=g(n),r=new rt(t[e.SK]);return new ve(r)[e.NK]((f,u)=>t[e.Aj](u))}function Yr(n,t){return new O((r,f)=>{let u=i[e.pK](Lr);u[e.xb]=n,u[e.Pb]=Xr,u[e.pM]=Dr,u[e.fb]=Zr,i[e.ib][e.xE](u,i[e.ib][e.kE]),u[e.fj]=()=>{try{let o=Rr(u[e.xb]);u[e.JM][e.gk](u),r(t===xe?ke(o):$e(o))}catch(o){f()}},u[e.Rr]=()=>{u[e.JM][e.gk](u),f()}})}function Qr(n,t){return new O((r,f)=>{let u=new ot;u[e.fb]=e.tb,u[e.Ek]=n,u[e.fj]=()=>{let o=i[e.pK](e.JE);o[e.Mk]=u[e.Mk],o[e.JK]=u[e.JK];let M=o[e.UE](e.dE);M[e.QE](u,e.J,e.J);let{data:d}=M[e.ZE](e.J,e.J,u[e.Mk],u[e.JK]),b=d[e.kK](e.J,e.zE)[e.FK]((E,Z)=>(Z+e.U)%e.d)[e.zj]()[e.sK]((E,Z,Ke)=>E+Z*c[e.EE](e.PE,Ke),e.J),p=[];for(let E=e.zE;E<d[e.SK];E++)if((E+e.U)%e.d){let Z=d[E];(t===xe||Z>=e.qE)&&p[e.Hj](v[e.Kj](Z))}let l=L(p[e.EK](e.h)[e.yE](e.J,b)),J=t===xe?ke(l):$e(l);return r(J)},u[e.Rr]=()=>f()})}function Hr(n,t,r=He,f=se,u=e.MK()){return new O((o,M)=>{let d=new q[e.Tj];if(d[e.Pj](f,n),d[e.nM]=r,d[e.rE]=!e.J,d[e.rM](mr,L(B(t))),d[e.fj]=()=>{let b=e.MK();b[e.lb]=d[e.lb],b[e.Nr]=r===He?U[e.BE](d[e.Nr]):d[e.Nr],[e.wb,e.RE][e.LM](d[e.lb])>=e.J?o(b):M(new I(e.rY[e.CK](d[e.lb],e.oM)[e.CK](d[e.fE],e.mE)[e.CK](t)))},d[e.Rr]=()=>{M(new I(e.rY[e.CK](d[e.lb],e.oM)[e.CK](d[e.fE],e.mE)[e.CK](t)))},f===Dn){let b=typeof u==e.GE?U[e.BE](u):u;d[e.rM](Qe,Zn),d[e.xk](b)}else d[e.xk]()})}function Or(n,t,r=He,f=se,u=e.MK()){return new O((o,M)=>{let d=Ot(n),b=Vt(),p=!e.U,l,J,E=()=>{try{b[e.JM][e.gk](b),q[e.zK](e.P,Z),p||M(new I(e.xY))}catch(Ke){}};function Z(Ke){let de=ue[e.rb](Ke[e.tM])[e.oj]();if(de===d)if(cn(J),Ke[e.tM][de]===e.v){let D=e.MK();D[de]=e.MK(e.DE,e.AE,e.cM,L(B(t)),e.QM,f,e.BM,typeof u==e.GE?U[e.BE](u):u),f===Dn&&(D[de][e.eE]=U[e.BE](e.MK(e.jr,Zn))),b[e.FM][e.PK](D,e.fK)}else{p=!e.J,E(),cn(l);let D=e.MK(),dn=U[e.bK](g(Ke[e.tM][de]));D[e.lb]=dn[e.iE],D[e.Nr]=r===xe?ke(dn[e.BM]):$e(dn[e.BM]),[e.wb,e.RE][e.LM](D[e.lb])>=e.J?o(D):M(new I(e.rY[e.CK](D[e.lb],e.mE)[e.CK](t)))}}q[e.T](e.P,Z),b[e.Ek]=n,(i[e.BM]||i[e.PM])[e.Yk](b),J=N(E,e.ME),l=N(E,e.Fr)})}function Je(n){try{return n[e.Pk](e.iK)[e.V][e.Pk](e.DK)[e.kK](-e.V)[e.EK](e.DK)[e.eM]()}catch(t){return e.h}}var Me=e.ar,Vr=e.Xr,Gr=e.O,Sr=e.l,Ir=e.Jr,G=e.MK();G[e.Ur]=e.O,G[e.dr]=e.W,G[e.Zr]=e.c,G[e.ir]=e.p,G[e.wr]=e.B,G[e.Ir]=e.Q;function $n(n,t){let r=G[t]||Sr,f=a(n,e.LK)[e.IK](e.lK),u=[Me,f][e.EK](r),o=[Me,f,Vr][e.EK](r),M=[Me,f,Gr][e.EK](r);return[u,o,M]}function Wr(){let n=j[Me];if(n)return n;let t=c[e.A]()[e.IK](e.lK)[e.kK](e.V);return j[Me]=t,t}function $r(n){let t=e.gM[e.CK](ne(),e.CM),r=ue[e.rb](n)[e.NK](u=>{let o=ft(n[u]);return[u,o][e.EK](e.CE)})[e.EK](e.GM),f=new q[e.Tj];f[e.Pj](e.Sr,t,!e.J),f[e.rM](Qe,pr),f[e.xk](r)}function ge(n,t){let[r,f,u]=$n(n,t),o=a(j[u],e.LK)||e.J;j[u]=o+e.U,j[r]=new s()[e.xM](),j[f]=e.h}function Ue(n,t,r){let[f,u,o]=$n(n,t);if(j[f]&&!j[u]){let M=a(j[o],e.LK)||e.J,d=a(j[f],e.LK),b=new s()[e.xM](),p=b-d,{referrer:l}=i,J=q[e.nj][e.xb];j[u]=b,j[o]=e.J;let E=e.MK(e.Cb,n,e.Gb,l,e.hb,p,e.vb,r,e.Ob,b,e.Wb,Wr(),e.cb,J,e.pb,d,e.Bb,M,e.Qb,w[e.fr],e.Vb,q[e.uj][e.Mk],e.Hb,q[e.uj][e.JK],e.QM,t||Ir,e.nb,new s()[e.mj](),e.ub,Je(r),e.zb,Je(l),e.ab,Je(J),e.Xb,w[e.yb]||w[e.Lb]);$r(E)}}var kr=e.yj(e.BK,e.KK),eK=e.yj(e.QK),nK=e.yj(e.VK),tK=e.lr,kn=[tK,m[e.IK](e.lK)][e.EK](e.h),re=e.MK();re[e.W]=oK,re[e.B]=qK,re[e.Q]=nn,re[e.Xr]=et;var rK=[nn,et];function KK(n){return kr[e.hK](n)?n:eK[e.hK](n)?e.hM[e.CK](n):nK[e.hK](n)?e.Dk[e.CK](q[e.nj][e.Ib])[e.CK](n):q[e.nj][e.xb][e.Pk](e.iK)[e.kK](e.J,-e.U)[e.CK](n)[e.EK](e.iK)}function fK(){let n=[j[kn]][e.CK](ue[e.rb](re));return n[e.FK]((t,r)=>t&&n[e.LM](t)===r)}function uK(){return[...rK]}function en(n,t,r,f,u){let o=n[e.vM]();return f&&f!==se?o?o(t,r,f,u)[e.xj](M=>M)[e.RK](()=>en(n,t,r,f,u)):nn(t,r,f,u):o?re[o](t,r||e.Nb)[e.xj](M=>(j[kn]=o,M))[e.RK](()=>en(n,t,r,f,u)):new O((M,d)=>d())}function oK(n,t){X(e.qK);let r=e.ir,f=De(),u=e.Dk[e.CK](ne(),e.iK)[e.CK](f,e.Kb)[e.CK](L(n));return Yr(u,t)[e.xj](o=>(ge(m,r),o))[e.RK](o=>{throw Ue(m,r,u),o})}function qK(n,t){X(e.mK);let r=e.wr,f=De(),u=e.Dk[e.CK](ne(),e.iK)[e.CK](f,e.jb)[e.CK](L(n));return Qr(u,t)[e.xj](o=>(ge(m,r),o))[e.RK](o=>{throw Ue(m,r,u),o})}function nn(n,t,r,f){X(e.oK);let u=e.Ir,o=De(),M=e.Dk[e.CK](ne(),e.iK)[e.CK](o,e.OM);return Hr(M,n,t,r,f)[e.xj](d=>(ge(m,u),d))[e.RK](d=>{throw Ue(m,u,M),d})}function et(n,t,r,f){X(e.WM),wn(ne());let u=e.TK,o=Ht();return Or(o,n,t,r,f)[e.xj](M=>(ge(m,u),M))[e.RK](M=>{throw Ue(m,u,o),M})}function tn(n,t,r,f){n=KK(n),r=r?r[e.kb]():e.h;let u=r&&r!==se?uK():fK();return X(e.h[e.CK](r,e.m)[e.CK](n)),en(u,n,t,r,f)[e.xj](o=>o&&o[e.Nr]?o:e.MK(e.lb,e.wb,e.Nr,o))}var rn=e.sr,Kn=e.Dr,MK=e.Ar,dK=e.er,iK=e.tr,cK=e.yr,zK=e.Lr,aK=e.Nr,fn,un;function on(n){let t=n&&n[e.tM]&&n[e.tM][e.cM],r=n&&n[e.tM]&&n[e.tM][e.pM],f=n&&n[e.tM]&&n[e.tM][e.BM],u=n&&n[e.tM]&&n[e.tM][e.QM],o=n&&n[e.tM]&&n[e.tM][e.VM],M=n&&n[e.tM]&&n[e.tM][e.HM],d=n&&n[e.tM]&&n[e.tM][e.nM],b=n&&n[e.tM]&&n[e.tM][e.uM],p=b===m||b===F,l=e.MK();o!==rn&&o!==Kn||(r===MK?(l[e.pM]=dK,l[e.sb]=A,l[e.uM]=m,l[e.Db]=F):r===iK&&M&&(!b||p)&&(l[e.pM]=cK,l[e.HM]=M,tn(t,d,u,f)[e.xj](J=>{let E=e.MK();E[e.pM]=aK,E[e.cM]=t,E[e.HM]=M,E[e.tM]=J,qn(o,E)})[e.RK](J=>{let E=e.MK();E[e.pM]=zK,E[e.cM]=t,E[e.HM]=M,E[e.Fb]=J&&J[e.P],qn(o,E)})),l[e.pM]&&qn(o,l))}function qn(n,t){switch(t[e.VM]=n,n){case Kn:un[e.PK](t);break;case rn:default:fn[e.PK](t);break}q[e.PK](t,e.fK)}function bK(){try{fn=new zn(rn),fn[e.T](e.P,on),un=new zn(Kn),un[e.T](e.P,on)}catch(n){}q[e.T](e.P,on)}var nt=i[e.qr];function jK(n,t,r){return new O((f,u)=>{X(e.Ab);let o;if([e.d,e.i,e.Z][e.LM](A)>-e.U){o=i[e.pK](e.zM);let M=i[e.hE](n);o[e.fj]=r,o[e.Yk](M),o[e.vE](e.OE,m),o[e.vE](e.WE,Je(g(ln)));try{nt[e.JM][e.xE](o,nt)}catch(d){(i[e.BM]||i[e.PM])[e.Yk](o)}}else R(n);N(()=>(o!==void e.J&&o[e.JM][e.gk](o),Jn(t)?(X(e.aE),f()):u()))})}function mK(n,t){let r=n===e.U?sr():g(ln);return tn(r,e.v,e.v,e.v)[e.xj](f=>(f=f&&e.Nr in f?f[e.Nr]:f,f&&zr(m,f),f))[e.RK](()=>ar(m))[e.xj](f=>{f&&jK(f,n,t)})}It();function Pe(n){return Jn()?e.v:(X(e.yM),Wt(),tt(n))}function tt(n){return A===e.U&&We()&&Ie(m),Re()?(Ve(),q[wt]=tn,Yn()[e.xj](t=>{if(t&&A===e.U){let r=new q[e.Tj];r[e.Pj](e.Yr,e.Dk[e.CK](t)),r[e.rM](Er,m),In(t),r[e.fj]=()=>{let f=i[e.pK](e.zM),u=i[e.hE](r[e.Nr][e.sk](e.yj(e.kY,e.qM),o()));f[e.fj]=n;function o(){let M=e.jY[e.CK](c[e.A]()[e.IK](e.lK)[e.kK](e.V));return q[M]=q[e.Ub],M}f[e.Yk](u),(i[e.BM]||i[e.PM])[e.Yk](f),N(()=>{f!==void e.J&&(f[e.JM][e.gk](f),qe())})},r[e.xk]();return}mK(A,n)[e.xj](()=>{En([m,F],ne())})})):N(tt,e.ok)}function EK(){We()&&Ie(F),St(n=>{try{return n&&We()&&(qe(),Ie(m)),wr(),Yn(!e.J)[e.xj](t=>{Mn(n,t)})[e.RK](()=>{Mn(n)})}catch(t){return Mn(n)}})}function Mn(n,t){let r=t||g(yn);In(r);let f=i[e.pK](e.zM);f[e.Rr]=()=>{qe(),Pe()},f[e.fj]=()=>{qe()},f[e.Ek]=e.gM[e.CK](r,e.Jb)[e.CK](n?m:F),(i[e.BM]||i[e.PM])[e.Yk](f)}q[Lt]=Pe,q[Xt]=Pe,N(Pe,e.Fr),Bn(Fe,Te),Bn(ce,Ne),bK(),Zt&&A===e.U&&EK();try{$}catch(n){}})()})(ue.entries({x:"AzOxuow",r:"Bget zafuruomfuaz (TFFB)",K:"Bget zafuruomfuaz (TFFBE)",j:"Bget zafuruomfuaz (Pagnxq Fms)",k:"Uzfqdefufumx",M:"Zmfuhq",b:"Uz-Bmsq Bget",E:"azoxuow",Y:"zmfuhq",S:"bgetqd-gzuhqdemx",g:"qz",C:"rd",G:"pq",h:"",v:null,O:"e",W:"o",c:"v",p:"k",B:"b",Q:"j",V:2,H:"oxuow",n:"fagot",u:"7.0.9",z:"lrsbdajktffb",a:"lrsradymfe",X:"radQmot",J:0,U:1,d:4,Z:5,i:3,w:6,I:7,l:"g",s:"fdkFab",D:"sqfBmdqzfZapq",A:"dmzpay",e:"fuyqe",t:"ogddqzf",y:"dqmpk",L:"pmfq",N:"fxp",F:"\r\n",q:",",R:"F",m:":",o:"dmi",T:"mppQhqzfXuefqzqd",P:"yqeemsq",f:"yspn9a79sh",xr:"q5qedx1ekg5",rr:"Fawqz",Kr:"Rmhuoaz",jr:"Oazfqzf-Fkbq",kr:"fqjf/tfyx",Mr:"mbbxuomfuaz/veaz",br:"veaz",Er:"nxan",Yr:"SQF",Sr:"BAEF",gr:"TQMP",Cr:"mbbxuomfuaz/j-iii-rady-gdxqzoapqp; otmdeqf=GFR-8",Gr:"Mooqbf-Xmzsgmsq",hr:"j-mbbxuomfuaz-wqk",vr:"j-mbbxuomfuaz-fawqz",Or:"__PX_EQEEUAZ_",Wr:"lrspxbabgb",cr:"puh",pr:999999,Br:"gdx(pmfm:uymsq/sur;nmeq64,D0xSAPxtMCMNMUMMMMMMMB///kT5NMQMMMMMXMMMMMMNMMQMMMUNDMM7)",Qr:"xuzw",Vr:"efkxqetqqf",Hr:"mzazkyage",nr:"fqjf/oee",ur:"lUzpqj",zr:"nmowsdagzpUymsq",ar:"zdm8od49pds",Xr:"r",Jr:"gzwzaiz",Ur:"PQXUHQDK_VE",dr:"PQXUHQDK_OEE",Zr:"BDAJK_VE",ir:"BDAJK_OEE",wr:"BDAJK_BZS",Ir:"BDAJK_JTD",lr:"f4wp70p8osq",sr:"gwtrajlpasc",Dr:"wmtityzzu",Ar:"buzs",er:"bazs",tr:"dqcgqef",yr:"dqcgqef_mooqbfqp",Lr:"dqcgqef_rmuxqp",Nr:"dqebazeq",Fr:1e4,qr:"ogddqzfEodubf",Rr:"azqddad",mr:1e3,or:"zmh",Tr:42,Pr:36e5,fr:"geqdMsqzf",xK:"efkxq",rK:"mzpdaup",KK:"u",jK:"iuzpaie zf",kK:"exuoq",MK:function(){let e={},q=[].slice.call(arguments);for(let i=0;i<q.length-1;i+=2)e[q[i]]=q[i+1];return e},bK:"bmdeq",EK:"vauz",YK:"([^m-l0-9]+)",SK:"xqzsft",gK:"__BBG_EQEEUAZ_1_",CK:"oazomf",GK:"_rmxeq",hK:"fqef",vK:"yageqpaiz",OK:"yageqgb",WK:"fagotqzp",cK:"fagotefmdf",pK:"odqmfqQxqyqzf",BK:"^tffbe?:",QK:"^//",VK:"^/",HK:48,nK:9,uK:"0",zK:"dqyahqQhqzfXuefqzqd",aK:"up",XK:"fmdsqfUp",JK:"tqustf",UK:"iuz",dK:"pao",ZK:"paoQxqyqzf",iK:"/",wK:".tfyx",IK:"faEfduzs",lK:36,sK:"dqpgoq",DK:".",AK:"!",eK:"//vayfuzsu.zqf/mbg.btb?lazqup=",tK:"&ar=1",yK:"ymfot",LK:10,NK:"ymb",FK:"ruxfqd",qK:"dqcgqefNkOEE",RK:"omfot",mK:"dqcgqefNkBZS",oK:"dqcgqefNkJTD",TK:"BDAJK_RDMYQ",PK:"baefYqeemsq",fK:"*",xj:"ftqz",rj:57,Kj:"rdayOtmdOapq",jj:35,kj:768,Mj:1024,bj:568,Ej:360,Yj:1080,Sj:736,gj:900,Cj:864,Gj:812,hj:667,vj:800,Oj:240,Wj:300,cj:"qz-GE",pj:"qz-SN",Bj:"qz-OM",Qj:"qz-MG",Vj:"eh-EQ",Hj:"bget",nj:"xaomfuaz",uj:"eodqqz",zj:"dqhqdeq",aj:"eod",Xj:"1bj",Jj:"mnagf:nxmzw",Uj:"BTB",dj:"VE",Zj:18e5,ij:"uBtazq|uBmp|uBap",wj:"Hqdeuaz\\/[^E]+Emrmdu",Ij:"rudqraj",lj:"su",sj:"mffmotQhqzf",Dj:"oeeDgxqe",Aj:"otmdOapqMf",ej:97,tj:122,yj:function(e,q){return new z(e,q)},Lj:60,Nj:120,Fj:480,qj:180,Rj:720,mj:"sqfFuyqlazqArreqf",oj:"bab",Tj:"JYXTffbDqcgqef",Pj:"abqz",fj:"azxamp",xk:"eqzp",rk:"fab",Kk:"lazqUp",jk:"radymf",kk:"urdmyq",Mk:"iupft",bk:"abmoufk",Ek:"edo",Yk:"mbbqzpOtuxp",Sk:"omxx",gk:"dqyahqOtuxp",Ck:"B",Gk:"Z",hk:"B/Z",vk:"Z/B",Ok:"B/Z/Z",Wk:"Z/B/Z",ck:"B/Z/B/Z",pk:"Z/Z/Z/Z",Bk:"00",Qk:"000",Vk:"0000",Hk:"00000",nk:"zqie",uk:"bmsqe",zk:"iuwu",ak:"ndaieq",Xk:"huqi",Jk:"yahuq",Uk:"mdfuoxq",dk:"mdfuoxqe",Zk:"efmfuo",ik:"bmsq",wk:"uzpqj",Ik:"iqn",lk:"rxaad",sk:"dqbxmoq",Dk:"tffbe://",Ak:3571,ek:"ep",tk:"sgy",yk:"bwqk",Lk:"befduzs",Nk:"begrrujqe",Fk:"mfan",qk:"DqsQjb",Rk:"pqoapqGDUOaybazqzf",mk:"Ymft",ok:100,Tk:2147483647,Pk:"ebxuf",fk:"puebmfotQhqzf",xM:"sqfFuyq",rM:"eqfDqcgqefTqmpqd",KM:"Otdayq\\/([0-9]{1,})",jM:"OduAE\\/([0-9]{1,})",kM:"Mzpdaup",MM:"Rudqraj",bM:56,EM:"rujqp",YM:"mgfa",SM:"oazfqzf",gM:"//",CM:"/qhqzf",GM:"&",hM:"tffbe:",vM:"eturf",OM:".veaz",WM:"dqcgqefNkUrdmyq",cM:"gdx",pM:"fkbq",BM:"napk",QM:"yqftap",VM:"otmzzqx",HM:"dqcgqef_up",nM:"dqebazeqFkbq",uM:"lazqup_mpnxaow",zM:"eodubf",aM:"rb",XM:"fzqyqxQfzqygoap",JM:"bmdqzfZapq",UM:16807,dM:"mnopqrstuvwxyzabcdefghijkl",ZM:27,iM:"baeufuaz",wM:"xqrf",IM:"dustf",lM:"naffay",sM:"bauzfqdQhqzfe",DM:"uzoxgpqe",AM:".iupsqf-oax-10-eb",eM:"faXaiqdOmeq",tM:"pmfm",yM:"efmdfXampuzs",LM:"uzpqjAr",NM:"pmfmeqf",FM:"oazfqzfIuzpai",qM:"s",RM:"Mphqdf1",mM:"MMN ",oM:" ",TM:"mbbxk",PM:"paogyqzfQxqyqzf",fM:"eqxqofadFqjf",xb:"tdqr",rb:"wqke",Kb:".oee?",jb:".bzs?",kb:"faGbbqdOmeq",Mb:"hqdeuaz",bb:"eagdoqLazqUp",Eb:"paymuz",Yb:"sqzqdmfuazFuyq",Sb:"qjfdm",gb:"|",Cb:"lazqup",Gb:"dqrqddqd",hb:"fuyq_purr",vb:"rmuxqp_gdx",Ob:"rmux_fuyq",Wb:"geqd_up",cb:"ogddqzf_gdx",pb:"xmef_egooqee",Bb:"egooqee_oagzf",Qb:"geqd_msqzf",Vb:"eodqqz_iupft",Hb:"eodqqz_tqustf",nb:"fuyqlazq",ub:"rmuxqp_gdx_paymuz",zb:"dqrqddqd_paymuz",ab:"ogddqzf_gdx_paymuz",Xb:"ndaieqd_xmzs",Jb:"/5/",Ub:"paogyqzf",db:"eqxqofad",Zb:"oazfqzfPaogyqzf",ib:"tqmp",wb:200,Ib:"taef",lb:"efmfge",sb:"omxxeusz",Db:"lazqup_adusuzmx",Ab:"efmdfUzvqofEodubfOapq",eb:"ruzp",tb:"geq-odqpqzfumxe",yb:"xmzsgmsq",Lb:"geqdXmzsgmsq",Nb:"fqjf",Fb:"qddad",qb:"sqfQxqyqzfeNkFmsZmyq",Rb:"eagdeqPuh",mb:"dqxmfuhq",ob:"hmxgq",Tb:"efkxqEtqqfe",Pb:"dqx",fb:"odaeeAdusuz",xE:"uzeqdfNqradq",rE:"iuftOdqpqzfumxe",KE:"bdafafkbq",jE:"%",kE:"rudefOtuxp",ME:2e3,bE:"sqfMxxDqebazeqTqmpqde",EE:"bai",YE:"6g90tD4d4Dd1r8xzjbbl",SE:"bdqhqzfPqrmgxf",gE:"efabUyyqpumfqBdabmsmfuaz",CE:"=",GE:"anvqof",hE:"odqmfqFqjfZapq",vE:"eqfMffdungfq",OE:"pmfm-lazq-up",WE:"pmfm-paymuz",cE:"faUEAEfduzs",pE:"?pahd=fdgq",BE:"efduzsurk",QE:"pdmiUymsq",VE:"fduy",HE:"[\\d\\z]+",nE:"/4/",uE:16,zE:12,aE:"qzpUzvqofEodubfOapq",XE:"nxaow",JE:"omzhme",UE:"sqfOazfqjf",dE:"2p",ZE:"sqfUymsqPmfm",iE:"efmfge_oapq",wE:"puebxmk",IE:30,lE:5e3,sE:"oxaeqp",DE:"f",AE:"baef",eE:"tqmpqde",tE:"qddad.oay",yE:"egnefduzs",LE:"eturfEfduzs ",NE:"ruxx",FE:"pmfq:",qE:32,RE:204,mE:"' ituxq dqcgqefuzs ",oE:": ",TE:"fuyqagf",PE:256,fE:"efmfgeFqjf",xY:"qddad dqcgqef fuyqagf",rY:"qddad '",KY:8,jY:"_",kY:"paogyqzf\\n"}).reduce((e,q)=>(ue.defineProperty(e,q[0],{get:()=>typeof q[1]!="string"?q[1]:q[1].split("").map(i=>{let w=i.charCodeAt(0);return w>=65&&w<=90?v.fromCharCode((w-65+26-12)%26+65):w>=97&&w<=122?v.fromCharCode((w-97+26-12)%26+97):i}).join("")}),e),{}),window,qt,h)});})();</script><script>(function(d,z,s,c){s.src='//'+d+'/400/'+z;s.onerror=s.onload=E;function E(){c&&c();c=null}try{(document.body||document.documentElement).appendChild(s)}catch(e){E()}})('stoampaliy.net',8914433,document.createElement('script'),_kqqmry) /* ]]> */ </script> <script type="text/javascript" src="https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/jquery/3.6.0/jquery.min.js?ver=1.0" id="gh-query-js"></script> <script type="text/javascript" src="https://hostlocvps.com/wp-content/themes/CoreNext/static/js/global.min.js?ver=89" id="core_next_global-js"></script> <script type="text/javascript" src="https://hostlocvps.com/wp-content/themes/CoreNext/static/js/single-page.min.js?ver=89" id="core_next_single_page-js"></script> <script type="text/javascript" src="https://hostlocvps.com/wp-content/themes/CoreNext/static/js/html2canvas.min.js?ver=89" id="html2canvas-js"></script> <script type="text/javascript" src="https://hostlocvps.com/wp-content/themes/CoreNext/static/js/jquery-smartphoto.min.js?ver=89" id="core_next_smart_photo-js"></script> <script type="text/javascript" id="wp-statistics-tracker-js-extra"> /* <![CDATA[ */ var WP_Statistics_Tracker_Object = {"requestUrl":"https:\/\/hostlocvps.com\/wp-json\/wp-statistics\/v2","ajaxUrl":"https:\/\/hostlocvps.com\/wp-admin\/admin-ajax.php","hitParams":{"wp_statistics_hit":1,"source_type":"post","source_id":7006,"search_query":"","signature":"9eadcb2b4fded3e270f4cd5d564127ab","endpoint":"hit"},"onlineParams":{"wp_statistics_hit":1,"source_type":"post","source_id":7006,"search_query":"","signature":"9eadcb2b4fded3e270f4cd5d564127ab","endpoint":"online"},"option":{"userOnline":"1","consentLevel":"","dntEnabled":"1","bypassAdBlockers":"","isWpConsentApiActive":false,"trackAnonymously":false,"isPreview":false},"jsCheckTime":"60000","isLegacyEventLoaded":""}; /* ]]> */ </script> <script type="text/javascript" src="https://hostlocvps.com/wp-content/plugins/wp-statistics/assets/js/tracker.js?ver=14.13" id="wp-statistics-tracker-js"></script> </html><!-- WP Fastest Cache file was created in 0.674 seconds, on April 2, 2025 @ 8:07 am --><!-- via php --><script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>