openc3-cosmos-tool-docs 6.8.1 → 6.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (309) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +5 -5
  3. data/Rakefile +1 -1
  4. data/tools/staticdocs/404.html +2 -2
  5. data/tools/staticdocs/assets/css/styles.946be27d.css +1 -0
  6. data/tools/staticdocs/assets/images/activity-35dc5e3ab907ff79a599ab728b7a4ace155d86835a09f0c6fa8ceebf184b7984.png +0 -0
  7. data/tools/staticdocs/assets/images/blank_calendar-e02977fafde5379efc62fbaf82686898bfc4745dd081d62e52e3ee94c46bff69.png +0 -0
  8. data/tools/staticdocs/assets/images/cmd_packets-e7906db3691ccd29600e09cf005f6f53be9d9332ba4c319a1e81e1c8c6b665ed.png +0 -0
  9. data/tools/staticdocs/assets/images/cmd_tlm_server-117772d4be1adbf89805f5b530da301b3dcc0d5085a552d779c9bc692bac4c44.png +0 -0
  10. data/tools/staticdocs/assets/images/create_activity1-5e5a8cee97e818c21e3447d96797b950fe25eb5d0e153ffc899183d28b7fd1be.png +0 -0
  11. data/tools/staticdocs/assets/images/create_activity2-12024f05a06874c9e7b544bac4bec1a263de1715dcb9fa2dc1aea054682e8269.png +0 -0
  12. data/tools/staticdocs/assets/images/create_metadata1-70387fe6ea1aafaee24b4192e76000b31ed60d3a54f957d761cefb5d21498814.png +0 -0
  13. data/tools/staticdocs/assets/images/create_metadata2-ebb8f148142b387c81df70f8a565b27942ff5f6cd5bc098a6d58a27a9b36c09e.png +0 -0
  14. data/tools/staticdocs/assets/images/create_note1-28feb5cf0ad0899db78059dc4ea2567dc9cb03c8c776f1c65dd959f2910481f4.png +0 -0
  15. data/tools/staticdocs/assets/images/create_note2-c0929ea9194606f256465cd6a6c97c60c175cf2ecbf56e6597d4886b4249fe1f.png +0 -0
  16. data/tools/staticdocs/assets/images/data_flows-6796d95b379f3f69e3fcf9629c68aae389f3d9a287db5b4d0bbc385d478134b4.png +0 -0
  17. data/tools/staticdocs/assets/images/gantt_view-3fe75622572f4a5bab2f73311127b71db5bf5aed475b90a2938c9ae61810ea54.png +0 -0
  18. data/tools/staticdocs/assets/images/interface_details-b71797d470007be1e0520bb5b859b4da9cd3411303388be9e6db914a99628dff.png +0 -0
  19. data/tools/staticdocs/assets/images/interfaces-05db0ed276077b796b54a3bca76bd0841bfb0d700456258c878359d332ff9f8f.png +0 -0
  20. data/tools/staticdocs/assets/images/list_view-edfc7b6fa90e43b85dd862f06c3662dee33b3c79be923a955706001d2f07eca4.png +0 -0
  21. data/tools/staticdocs/assets/images/options-4cb5e315138437db9f25c87feb4be2c61738c03bc3344d46977f44a94b0af738.png +0 -0
  22. data/tools/staticdocs/assets/images/protocol_details-408f871b0bd8440091ac95ca76cac353bb06d0b3a6c3f756dd11e7e746d7c20c.png +0 -0
  23. data/tools/staticdocs/assets/images/status-9b7ac4d919d196a2bf3379d0cb262c6609fb98074c744533bb9132097cb52155.png +0 -0
  24. data/tools/staticdocs/assets/images/targets-b07f7cd9f19a4ca02d2838a4de58c25168f01ee256e692878e3b27b833632aca.png +0 -0
  25. data/tools/staticdocs/assets/images/timeline-78e3ab74af1b600eb6640831133f0240a9c20047956b18b729263988a66b8e00.png +0 -0
  26. data/tools/staticdocs/assets/images/tlm_packets-18345c00fd6cc01a9f7a1e363fdf8375769ba5afa4ccf22c45925184eefc57ca.png +0 -0
  27. data/tools/staticdocs/assets/js/019369f3.64763f3d.js +1 -0
  28. data/tools/staticdocs/assets/js/058ffc22.4be515f5.js +1 -0
  29. data/tools/staticdocs/assets/js/0686a885.3d58085e.js +1 -0
  30. data/tools/staticdocs/assets/js/078dbab0.f2cbcc66.js +1 -0
  31. data/tools/staticdocs/assets/js/{0f5d161c.0727eb1b.js → 0f5d161c.978b9fee.js} +1 -1
  32. data/tools/staticdocs/assets/js/0ff569c9.27128023.js +1 -0
  33. data/tools/staticdocs/assets/js/10209fc9.669ef887.js +1 -0
  34. data/tools/staticdocs/assets/js/103cc3be.1a538098.js +1 -0
  35. data/tools/staticdocs/assets/js/13196248.e93bfd65.js +1 -0
  36. data/tools/staticdocs/assets/js/{13c1b4e4.6446ccbc.js → 13c1b4e4.9735bb59.js} +1 -1
  37. data/tools/staticdocs/assets/js/1c0a0c05.427f2699.js +1 -0
  38. data/tools/staticdocs/assets/js/{1e02e6a3.a89f2446.js → 1e02e6a3.da7b7250.js} +1 -1
  39. data/tools/staticdocs/assets/js/{2047b354.0955283c.js → 2047b354.c86efa5f.js} +1 -1
  40. data/tools/staticdocs/assets/js/22b3ac48.1932e5a5.js +1 -0
  41. data/tools/staticdocs/assets/js/26b8abb2.858cb22d.js +1 -0
  42. data/tools/staticdocs/assets/js/2bb7bf90.78594fbb.js +1 -0
  43. data/tools/staticdocs/assets/js/2c15ad40.1b2d4730.js +1 -0
  44. data/tools/staticdocs/assets/js/3326.2db66e1b.js +4 -0
  45. data/tools/staticdocs/assets/js/3402.80344ef5.js +1 -0
  46. data/tools/staticdocs/assets/js/35398c5c.8a74eece.js +1 -0
  47. data/tools/staticdocs/assets/js/{3dd7ef3b.f43cd057.js → 3dd7ef3b.ceb26a04.js} +1 -1
  48. data/tools/staticdocs/assets/js/40365d27.f6769d57.js +1 -0
  49. data/tools/staticdocs/assets/js/4071.821f3b2b.js +1 -0
  50. data/tools/staticdocs/assets/js/{411898ad.28293824.js → 411898ad.8ed3452c.js} +1 -1
  51. data/tools/staticdocs/assets/js/42170351.7ff72adc.js +1 -0
  52. data/tools/staticdocs/assets/js/43652efd.ec6bb7e9.js +1 -0
  53. data/tools/staticdocs/assets/js/5072.9a0a2752.js +1 -0
  54. data/tools/staticdocs/assets/js/{53ca7c5b.9468b8ed.js → 53ca7c5b.3ae5bb0f.js} +1 -1
  55. data/tools/staticdocs/assets/js/54d0d530.2f7aa091.js +1 -0
  56. data/tools/staticdocs/assets/js/5525.dd1645b0.js +101 -0
  57. data/tools/staticdocs/assets/js/59ed27a4.695b2435.js +1 -0
  58. data/tools/staticdocs/assets/js/5b233ba7.b0d1a8b1.js +1 -0
  59. data/tools/staticdocs/assets/js/5bc719f6.c731b998.js +1 -0
  60. data/tools/staticdocs/assets/js/5c6ce5ec.211ced47.js +1 -0
  61. data/tools/staticdocs/assets/js/5e3ed378.821e5ed4.js +1 -0
  62. data/tools/staticdocs/assets/js/5fe211ef.9d68057c.js +1 -0
  63. data/tools/staticdocs/assets/js/6246.60dfff30.js +1 -0
  64. data/tools/staticdocs/assets/js/6831b732.dc5bae56.js +1 -0
  65. data/tools/staticdocs/assets/js/696b4199.d197d085.js +1 -0
  66. data/tools/staticdocs/assets/js/6b210247.d400f853.js +1 -0
  67. data/tools/staticdocs/assets/js/6b65133b.3550bdf0.js +1 -0
  68. data/tools/staticdocs/assets/js/6f92e431.0bc45585.js +1 -0
  69. data/tools/staticdocs/assets/js/72c6d8a8.1bbde831.js +1 -0
  70. data/tools/staticdocs/assets/js/75e64983.338d2338.js +1 -0
  71. data/tools/staticdocs/assets/js/867640d5.555ba5ca.js +1 -0
  72. data/tools/staticdocs/assets/js/89e76475.a301b5e3.js +1 -0
  73. data/tools/staticdocs/assets/js/8b939c74.0ebaed2a.js +1 -0
  74. data/tools/staticdocs/assets/js/8f7843ee.e33ef7db.js +1 -0
  75. data/tools/staticdocs/assets/js/9424f0b3.4b6f004e.js +1 -0
  76. data/tools/staticdocs/assets/js/{8434.a3e5442b.js → 9623.44668503.js} +1 -1
  77. data/tools/staticdocs/assets/js/{964eb012.4253acd5.js → 964eb012.c7f626c5.js} +1 -1
  78. data/tools/staticdocs/assets/js/97535711.a6342866.js +1 -0
  79. data/tools/staticdocs/assets/js/99581c43.2bd0766d.js +1 -0
  80. data/tools/staticdocs/assets/js/{9d6e81d0.b9f15524.js → 9d6e81d0.879c9e9e.js} +1 -1
  81. data/tools/staticdocs/assets/js/9fb6059a.ce4de002.js +1 -0
  82. data/tools/staticdocs/assets/js/a677c089.758701f0.js +1 -0
  83. data/tools/staticdocs/assets/js/a9987364.e29e8a93.js +1 -0
  84. data/tools/staticdocs/assets/js/a9b2dc27.b7e66efd.js +1 -0
  85. data/tools/staticdocs/assets/js/aa6b6c1b.b566ee29.js +1 -0
  86. data/tools/staticdocs/assets/js/b062d239.2cebb42b.js +1 -0
  87. data/tools/staticdocs/assets/js/b38a6d74.bb58fcec.js +1 -0
  88. data/tools/staticdocs/assets/js/b4596165.9e7f0be7.js +1 -0
  89. data/tools/staticdocs/assets/js/b6d70f94.5e40680e.js +1 -0
  90. data/tools/staticdocs/assets/js/{b9f60ba6.2c4823f0.js → b9f60ba6.63638354.js} +1 -1
  91. data/tools/staticdocs/assets/js/bd0034eb.9f460215.js +1 -0
  92. data/tools/staticdocs/assets/js/c24eae19.2ef0c706.js +1 -0
  93. data/tools/staticdocs/assets/js/cb8c3f08.28d962a4.js +1 -0
  94. data/tools/staticdocs/assets/js/cd879be4.782edb7f.js +1 -0
  95. data/tools/staticdocs/assets/js/cf1c01b8.7d5b6d66.js +1 -0
  96. data/tools/staticdocs/assets/js/d1b923aa.c012712f.js +1 -0
  97. data/tools/staticdocs/assets/js/d1bfc316.13a64896.js +1 -0
  98. data/tools/staticdocs/assets/js/d24bf9b6.bb93853a.js +1 -0
  99. data/tools/staticdocs/assets/js/d57a4b5d.e9712631.js +1 -0
  100. data/tools/staticdocs/assets/js/d59d8a14.79f4b29e.js +1 -0
  101. data/tools/staticdocs/assets/js/d5d77c37.e29ff552.js +1 -0
  102. data/tools/staticdocs/assets/js/d66bf9c0.ca34a583.js +1 -0
  103. data/tools/staticdocs/assets/js/d8ca4191.599a241b.js +1 -0
  104. data/tools/staticdocs/assets/js/d9b92eba.44fde84d.js +1 -0
  105. data/tools/staticdocs/assets/js/db8fa1d0.39b9fdb6.js +1 -0
  106. data/tools/staticdocs/assets/js/dbe31111.4e811739.js +1 -0
  107. data/tools/staticdocs/assets/js/{dc5f7beb.15b70d4b.js → dc5f7beb.c703e464.js} +1 -1
  108. data/tools/staticdocs/assets/js/e501b0d1.c00adfa4.js +1 -0
  109. data/tools/staticdocs/assets/js/f15615f1.8591b830.js +1 -0
  110. data/tools/staticdocs/assets/js/f75a5f33.f16b6dd5.js +1 -0
  111. data/tools/staticdocs/assets/js/{fd886806.f7bfd80c.js → fd886806.fb8a587e.js} +1 -1
  112. data/tools/staticdocs/assets/js/main.2bcd58cc.js +38 -0
  113. data/tools/staticdocs/assets/js/runtime~main.0b4f5e9a.js +1 -0
  114. data/tools/staticdocs/docs/configuration/accessors.html +46 -46
  115. data/tools/staticdocs/docs/configuration/command.html +97 -97
  116. data/tools/staticdocs/docs/configuration/conversions.html +53 -53
  117. data/tools/staticdocs/docs/configuration/format.html +22 -22
  118. data/tools/staticdocs/docs/configuration/interfaces.html +55 -55
  119. data/tools/staticdocs/docs/configuration/limits-response.html +10 -10
  120. data/tools/staticdocs/docs/configuration/plugins.html +127 -127
  121. data/tools/staticdocs/docs/configuration/processors.html +17 -17
  122. data/tools/staticdocs/docs/configuration/protocols.html +66 -66
  123. data/tools/staticdocs/docs/configuration/ssl-tls.html +15 -15
  124. data/tools/staticdocs/docs/configuration/table.html +53 -53
  125. data/tools/staticdocs/docs/configuration/target.html +21 -21
  126. data/tools/staticdocs/docs/configuration/telemetry-screens.html +289 -289
  127. data/tools/staticdocs/docs/configuration/telemetry.html +86 -86
  128. data/tools/staticdocs/docs/configuration.html +2 -2
  129. data/tools/staticdocs/docs/development/curl.html +14 -14
  130. data/tools/staticdocs/docs/development/developing.html +27 -27
  131. data/tools/staticdocs/docs/development/json-api.html +15 -15
  132. data/tools/staticdocs/docs/development/log-structure.html +13 -13
  133. data/tools/staticdocs/docs/development/roadmap.html +4 -4
  134. data/tools/staticdocs/docs/development/streaming-api.html +24 -24
  135. data/tools/staticdocs/docs/development/testing.html +20 -20
  136. data/tools/staticdocs/docs/development.html +2 -2
  137. data/tools/staticdocs/docs/getting-started/cli.html +39 -39
  138. data/tools/staticdocs/docs/getting-started/generators.html +25 -25
  139. data/tools/staticdocs/docs/getting-started/gettingstarted.html +19 -19
  140. data/tools/staticdocs/docs/getting-started/installation.html +23 -21
  141. data/tools/staticdocs/docs/getting-started/key-concepts.html +20 -20
  142. data/tools/staticdocs/docs/getting-started/podman.html +23 -23
  143. data/tools/staticdocs/docs/getting-started/requirements.html +19 -19
  144. data/tools/staticdocs/docs/getting-started/upgrading.html +47 -47
  145. data/tools/staticdocs/docs/getting-started.html +2 -2
  146. data/tools/staticdocs/docs/guides/bridges.html +19 -12
  147. data/tools/staticdocs/docs/guides/cfs.html +32 -32
  148. data/tools/staticdocs/docs/guides/custom-widgets.html +36 -36
  149. data/tools/staticdocs/docs/guides/dynamic-packets.html +8 -8
  150. data/tools/staticdocs/docs/guides/exposing-microservices.html +11 -11
  151. data/tools/staticdocs/docs/guides/little-endian-bitfields.html +4 -4
  152. data/tools/staticdocs/docs/guides/local-mode.html +13 -13
  153. data/tools/staticdocs/docs/guides/logging.html +9 -9
  154. data/tools/staticdocs/docs/guides/monitoring.html +18 -18
  155. data/tools/staticdocs/docs/guides/performance.html +10 -10
  156. data/tools/staticdocs/docs/guides/raspberrypi.html +4 -4
  157. data/tools/staticdocs/docs/guides/reference-architectures.html +6 -6
  158. data/tools/staticdocs/docs/guides/script-writing.html +80 -80
  159. data/tools/staticdocs/docs/guides/scripting-api.html +715 -635
  160. data/tools/staticdocs/docs/guides/troubleshooting.html +8 -7
  161. data/tools/staticdocs/docs/guides.html +2 -2
  162. data/tools/staticdocs/docs/meta/contributing.html +12 -12
  163. data/tools/staticdocs/docs/meta/licenses.html +9 -9
  164. data/tools/staticdocs/docs/meta/philosophy.html +3 -3
  165. data/tools/staticdocs/docs/meta/xtce.html +12 -12
  166. data/tools/staticdocs/docs/meta.html +2 -2
  167. data/tools/staticdocs/docs/privacy.html +17 -17
  168. data/tools/staticdocs/docs/tools/admin.html +24 -24
  169. data/tools/staticdocs/docs/tools/autonomic.html +19 -19
  170. data/tools/staticdocs/docs/tools/bucket-explorer.html +9 -9
  171. data/tools/staticdocs/docs/tools/calendar.html +34 -21
  172. data/tools/staticdocs/docs/tools/cmd-sender.html +14 -14
  173. data/tools/staticdocs/docs/tools/cmd-tlm-server.html +31 -22
  174. data/tools/staticdocs/docs/tools/command-history.html +6 -6
  175. data/tools/staticdocs/docs/tools/command-queue.html +8 -8
  176. data/tools/staticdocs/docs/tools/data-extractor.html +25 -25
  177. data/tools/staticdocs/docs/tools/data-viewer.html +11 -11
  178. data/tools/staticdocs/docs/tools/handbooks.html +4 -4
  179. data/tools/staticdocs/docs/tools/limits-monitor.html +16 -16
  180. data/tools/staticdocs/docs/tools/log-explorer.html +9 -9
  181. data/tools/staticdocs/docs/tools/packet-viewer.html +12 -12
  182. data/tools/staticdocs/docs/tools/script-runner.html +43 -43
  183. data/tools/staticdocs/docs/tools/systemhealth.html +21 -21
  184. data/tools/staticdocs/docs/tools/table-manager.html +11 -11
  185. data/tools/staticdocs/docs/tools/tlm-grapher.html +22 -22
  186. data/tools/staticdocs/docs/tools/tlm-viewer.html +16 -16
  187. data/tools/staticdocs/docs/tools.html +2 -2
  188. data/tools/staticdocs/docs.html +11 -11
  189. data/tools/staticdocs/img/calendar/activity.png +0 -0
  190. data/tools/staticdocs/img/calendar/blank_calendar.png +0 -0
  191. data/tools/staticdocs/img/calendar/create_activity1.png +0 -0
  192. data/tools/staticdocs/img/calendar/create_activity2.png +0 -0
  193. data/tools/staticdocs/img/calendar/create_metadata1.png +0 -0
  194. data/tools/staticdocs/img/calendar/create_metadata2.png +0 -0
  195. data/tools/staticdocs/img/calendar/create_note1.png +0 -0
  196. data/tools/staticdocs/img/calendar/create_note2.png +0 -0
  197. data/tools/staticdocs/img/calendar/gantt_view.png +0 -0
  198. data/tools/staticdocs/img/calendar/list_view.png +0 -0
  199. data/tools/staticdocs/img/calendar/options.png +0 -0
  200. data/tools/staticdocs/img/calendar/timeline.png +0 -0
  201. data/tools/staticdocs/img/cmd_tlm_server/cmd_packets.png +0 -0
  202. data/tools/staticdocs/img/cmd_tlm_server/cmd_tlm_server.png +0 -0
  203. data/tools/staticdocs/img/cmd_tlm_server/data_flows.png +0 -0
  204. data/tools/staticdocs/img/cmd_tlm_server/interface_details.png +0 -0
  205. data/tools/staticdocs/img/cmd_tlm_server/interfaces.png +0 -0
  206. data/tools/staticdocs/img/cmd_tlm_server/protocol_details.png +0 -0
  207. data/tools/staticdocs/img/cmd_tlm_server/routers.png +0 -0
  208. data/tools/staticdocs/img/cmd_tlm_server/status.png +0 -0
  209. data/tools/staticdocs/img/cmd_tlm_server/targets.png +0 -0
  210. data/tools/staticdocs/img/cmd_tlm_server/tlm_packets.png +0 -0
  211. data/tools/staticdocs/index.html +2 -2
  212. data/tools/staticdocs/lunr-index-1759687174225.json +1 -0
  213. data/tools/staticdocs/lunr-index.json +1 -1
  214. data/tools/staticdocs/markdown-page.html +3 -3
  215. data/tools/staticdocs/search-doc-1759687174225.json +1 -0
  216. data/tools/staticdocs/search-doc.json +1 -1
  217. metadata +120 -107
  218. data/tools/staticdocs/assets/css/styles.0edf3032.css +0 -1
  219. data/tools/staticdocs/assets/images/blank_calendar-70e605942120937b862bd7039348229bab9af1f9c93d356ddbf401a3e8543c74.png +0 -0
  220. data/tools/staticdocs/assets/images/calendar-dacbcbb05175c76f3406b4aaade0465444c20b72e93366c79fed1f6eec018c42.png +0 -0
  221. data/tools/staticdocs/assets/images/cmd_packets-160c7b28230a14f05433d063cdccc63958bb5d90f4e6b80492cd9568b0761a75.png +0 -0
  222. data/tools/staticdocs/assets/images/cmd_tlm_server-dbc02e99c1c837efabeba52831d1d2a3445904fb06b758aaa747496725423fe5.png +0 -0
  223. data/tools/staticdocs/assets/images/create_activity1-c05ffc03af2df852aeb3ad246f53f259af504e0e6c64cdac21f9126947c49f95.png +0 -0
  224. data/tools/staticdocs/assets/images/create_activity2-58c7da6f79dd510701148c0c54fae02c830b9ca4af662a7b132987ed3410a8f7.png +0 -0
  225. data/tools/staticdocs/assets/images/create_metadata1-a331ba8f0bd19bf5f8d7f2e083c3c7164e9b7b9936f5a7f83c4141c62a6c46f6.png +0 -0
  226. data/tools/staticdocs/assets/images/create_metadata2-c57b5420d5469b48289030ed7c64758539c2319dc742159caa0d4c8fe35050a8.png +0 -0
  227. data/tools/staticdocs/assets/images/create_note1-472b93e8e0e3e66a2e6198e0d4573cdc38cc356df87be66163f990f18137f6c0.png +0 -0
  228. data/tools/staticdocs/assets/images/create_note2-770501a149ef4aabae24d0b636f46ed61fbdcfda9537c61637c07c60257e9228.png +0 -0
  229. data/tools/staticdocs/assets/images/interfaces-0fe2a4a02d9b8a16bbf178f0d4ee393a79ca606e8cf27ff7d8508bd2cb9b0643.png +0 -0
  230. data/tools/staticdocs/assets/images/list_view-2f36ce06962e67d5a4f1f060956e5089b3f13c8ab57f33103c3781687611e7a9.png +0 -0
  231. data/tools/staticdocs/assets/images/status-8ba274306305afaa5642162904c234b69086870b56e1048b1fdffa481aa0e96b.png +0 -0
  232. data/tools/staticdocs/assets/images/targets-6b17daf175185b13bea9eddafd4773e5f41d1ef4e953134f30bee0799c1e5c31.png +0 -0
  233. data/tools/staticdocs/assets/images/tlm_packets-0b02f1f3799948a8278e90f11e7d7f283d9686d3dac18c68b41d25ef49568d22.png +0 -0
  234. data/tools/staticdocs/assets/js/019369f3.5366d64b.js +0 -1
  235. data/tools/staticdocs/assets/js/058ffc22.31b5fa22.js +0 -1
  236. data/tools/staticdocs/assets/js/0686a885.eb311155.js +0 -1
  237. data/tools/staticdocs/assets/js/078dbab0.974abc47.js +0 -1
  238. data/tools/staticdocs/assets/js/0ff569c9.c8815d72.js +0 -1
  239. data/tools/staticdocs/assets/js/10209fc9.ae369363.js +0 -1
  240. data/tools/staticdocs/assets/js/103cc3be.32c30401.js +0 -1
  241. data/tools/staticdocs/assets/js/1085.d1eba438.js +0 -1
  242. data/tools/staticdocs/assets/js/1319.d9ec0592.js +0 -101
  243. data/tools/staticdocs/assets/js/13196248.9e1ebaa5.js +0 -1
  244. data/tools/staticdocs/assets/js/1c0a0c05.a24e9a5c.js +0 -1
  245. data/tools/staticdocs/assets/js/22b3ac48.81906212.js +0 -1
  246. data/tools/staticdocs/assets/js/26b8abb2.9d3cbdeb.js +0 -1
  247. data/tools/staticdocs/assets/js/2bb7bf90.a04c2a3c.js +0 -1
  248. data/tools/staticdocs/assets/js/2c15ad40.38a25aed.js +0 -1
  249. data/tools/staticdocs/assets/js/35398c5c.d3ee7838.js +0 -1
  250. data/tools/staticdocs/assets/js/40365d27.db29df30.js +0 -1
  251. data/tools/staticdocs/assets/js/42170351.c5a07a3b.js +0 -1
  252. data/tools/staticdocs/assets/js/43652efd.35825078.js +0 -1
  253. data/tools/staticdocs/assets/js/5074.653f3924.js +0 -1
  254. data/tools/staticdocs/assets/js/5410.60ab1dba.js +0 -1
  255. data/tools/staticdocs/assets/js/54d0d530.dfcfecc5.js +0 -1
  256. data/tools/staticdocs/assets/js/59ed27a4.8eb3444b.js +0 -1
  257. data/tools/staticdocs/assets/js/5b233ba7.814a9779.js +0 -1
  258. data/tools/staticdocs/assets/js/5bc719f6.ea5fa091.js +0 -1
  259. data/tools/staticdocs/assets/js/5c6ce5ec.dde1bfbc.js +0 -1
  260. data/tools/staticdocs/assets/js/5e3ed378.6deb22ed.js +0 -1
  261. data/tools/staticdocs/assets/js/5fe211ef.622c8b76.js +0 -1
  262. data/tools/staticdocs/assets/js/6242.bdac32c1.js +0 -4
  263. data/tools/staticdocs/assets/js/6831b732.7cf97282.js +0 -1
  264. data/tools/staticdocs/assets/js/696b4199.b96d263c.js +0 -1
  265. data/tools/staticdocs/assets/js/6b210247.75ed74f4.js +0 -1
  266. data/tools/staticdocs/assets/js/6b65133b.8ceb772d.js +0 -1
  267. data/tools/staticdocs/assets/js/6f92e431.11fea7a0.js +0 -1
  268. data/tools/staticdocs/assets/js/72c6d8a8.241ba59b.js +0 -1
  269. data/tools/staticdocs/assets/js/75e64983.c8cb1f1a.js +0 -1
  270. data/tools/staticdocs/assets/js/867640d5.a02df5f7.js +0 -1
  271. data/tools/staticdocs/assets/js/8851.4837d29a.js +0 -1
  272. data/tools/staticdocs/assets/js/89e76475.cdd88da3.js +0 -1
  273. data/tools/staticdocs/assets/js/8b939c74.c9ac09c3.js +0 -1
  274. data/tools/staticdocs/assets/js/8f7843ee.676b5d36.js +0 -1
  275. data/tools/staticdocs/assets/js/9424f0b3.a3b9746a.js +0 -1
  276. data/tools/staticdocs/assets/js/97535711.2a29c3e7.js +0 -1
  277. data/tools/staticdocs/assets/js/99581c43.791cdc39.js +0 -1
  278. data/tools/staticdocs/assets/js/9fb6059a.5f39bd90.js +0 -1
  279. data/tools/staticdocs/assets/js/a677c089.2695e35a.js +0 -1
  280. data/tools/staticdocs/assets/js/a9987364.71b17b00.js +0 -1
  281. data/tools/staticdocs/assets/js/a9b2dc27.c8eb51b6.js +0 -1
  282. data/tools/staticdocs/assets/js/aa6b6c1b.2d0fadd1.js +0 -1
  283. data/tools/staticdocs/assets/js/b062d239.e240f32e.js +0 -1
  284. data/tools/staticdocs/assets/js/b38a6d74.7363be85.js +0 -1
  285. data/tools/staticdocs/assets/js/b4596165.2a473696.js +0 -1
  286. data/tools/staticdocs/assets/js/b6d70f94.dda7b69f.js +0 -1
  287. data/tools/staticdocs/assets/js/bd0034eb.7282117c.js +0 -1
  288. data/tools/staticdocs/assets/js/c24eae19.60c8e0c8.js +0 -1
  289. data/tools/staticdocs/assets/js/cb8c3f08.2466362b.js +0 -1
  290. data/tools/staticdocs/assets/js/cd879be4.6a299bce.js +0 -1
  291. data/tools/staticdocs/assets/js/cf1c01b8.1913e9f8.js +0 -1
  292. data/tools/staticdocs/assets/js/d1b923aa.482b8f7b.js +0 -1
  293. data/tools/staticdocs/assets/js/d1bfc316.ada87033.js +0 -1
  294. data/tools/staticdocs/assets/js/d24bf9b6.2b9e8d63.js +0 -1
  295. data/tools/staticdocs/assets/js/d57a4b5d.bf08c8f5.js +0 -1
  296. data/tools/staticdocs/assets/js/d59d8a14.479869f6.js +0 -1
  297. data/tools/staticdocs/assets/js/d5d77c37.199e159b.js +0 -1
  298. data/tools/staticdocs/assets/js/d66bf9c0.210077a2.js +0 -1
  299. data/tools/staticdocs/assets/js/d8ca4191.57f74139.js +0 -1
  300. data/tools/staticdocs/assets/js/d9b92eba.015f5324.js +0 -1
  301. data/tools/staticdocs/assets/js/db8fa1d0.1c778ff1.js +0 -1
  302. data/tools/staticdocs/assets/js/dbe31111.37d6f071.js +0 -1
  303. data/tools/staticdocs/assets/js/e501b0d1.c42aad75.js +0 -1
  304. data/tools/staticdocs/assets/js/f15615f1.a8a415cb.js +0 -1
  305. data/tools/staticdocs/assets/js/f75a5f33.4d2501bc.js +0 -1
  306. data/tools/staticdocs/assets/js/main.994f9f74.js +0 -38
  307. data/tools/staticdocs/assets/js/runtime~main.44311138.js +0 -1
  308. data/tools/staticdocs/lunr-index-1757781681330.json +0 -1
  309. data/tools/staticdocs/search-doc-1757781681330.json +0 -1
@@ -1 +0,0 @@
1
- @layer docusaurus.infima{:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-500:var(--ifm-color-gray-500);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:transparent;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:.2s;--ifm-transition-slow:.4s;--ifm-transition-timing-default:cubic-bezier(.08,.52,.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:.1rem;--ifm-code-padding-vertical:.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:.875rem;--ifm-h6-font-size:.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:.75rem;--ifm-table-background:transparent;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:.8rem;--ifm-breadcrumb-padding-vertical:.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" x=\"0px\" y=\"0px\" viewBox=\"0 0 256 256\"><g><g><polygon points=\"79.093,0 48.907,30.187 146.72,128 48.907,225.813 79.093,256 207.093,128\"/></g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g></svg>");--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-color:var(--ifm-font-color-base-inverse);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:.5rem;--ifm-toc-padding-horizontal:.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:.75rem;--ifm-menu-link-padding-vertical:.375rem;--ifm-menu-link-sublist-icon:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16px\" height=\"16px\" viewBox=\"0 0 24 24\"><path fill=\"rgba(0,0,0,0.5)\" d=\"M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z\"></path></svg>");--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:.75rem;--ifm-navbar-item-padding-vertical:.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-hover-color:var(--ifm-color-primary);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url("data:image/svg+xml;utf8,<svg fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" height=\"16px\" width=\"16px\"><path d=\"M6.02945,10.20327a4.17382,4.17382,0,1,1,4.17382-4.17382A4.15609,4.15609,0,0,1,6.02945,10.20327Zm9.69195,4.2199L10.8989,9.59979A5.88021,5.88021,0,0,0,12.058,6.02856,6.00467,6.00467,0,1,0,9.59979,10.8989l4.82338,4.82338a.89729.89729,0,0,0,1.29912,0,.89749.89749,0,0,0-.00087-1.29909Z\" /></svg>");--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem}*{box-sizing:border-box}html{background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base)var(--ifm-font-family-base);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;text-rendering:optimizelegibility;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{word-wrap:break-word;margin:0}iframe{color-scheme:normal;border:0}.container{max-width:var(--ifm-container-width);padding:0 var(--ifm-spacing-horizontal);width:100%;margin:0 auto}.container--fluid{max-width:inherit}.row{margin:0 calc(var(--ifm-spacing-horizontal)*-1);flex-wrap:wrap;display:flex}.row--no-gutters{margin-left:0;margin-right:0}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;max-width:var(--ifm-col-width);padding:0 var(--ifm-spacing-horizontal);flex:1 0;width:100%;margin-left:0}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:calc(1/12*100%)}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:calc(2/12*100%)}.col--offset-2{margin-left:16.6667%}.col--3{--ifm-col-width:calc(3/12*100%)}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:calc(4/12*100%)}.col--offset-4{margin-left:33.3333%}.col--5{--ifm-col-width:calc(5/12*100%)}.col--offset-5{margin-left:41.6667%}.col--6{--ifm-col-width:calc(6/12*100%)}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:calc(7/12*100%)}.col--offset-7{margin-left:58.3333%}.col--8{--ifm-col-width:calc(8/12*100%)}.col--offset-8{margin-left:66.6667%}.col--9{--ifm-col-width:calc(9/12*100%)}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:calc(10/12*100%)}.col--offset-10{margin-left:83.3333%}.col--11{--ifm-col-width:calc(11/12*100%)}.col--offset-11{margin-left:91.6667%}.col--12{--ifm-col-width:calc(12/12*100%)}.col--offset-12{margin-left:100%}.margin--none{margin:0!important}.margin-top--none{margin-top:0!important}.margin-left--none{margin-left:0!important}.margin-bottom--none{margin-bottom:0!important}.margin-right--none{margin-right:0!important}.margin-vert--none{margin-top:0!important;margin-bottom:0!important}.margin-horiz--none{margin-left:0!important;margin-right:0!important}.margin--xs{margin:.25rem!important}.margin-top--xs{margin-top:.25rem!important}.margin-left--xs{margin-left:.25rem!important}.margin-bottom--xs{margin-bottom:.25rem!important}.margin-right--xs{margin-right:.25rem!important}.margin-vert--xs{margin-top:.25rem!important;margin-bottom:.25rem!important}.margin-horiz--xs{margin-left:.25rem!important;margin-right:.25rem!important}.margin--sm{margin:.5rem!important}.margin-top--sm{margin-top:.5rem!important}.margin-left--sm{margin-left:.5rem!important}.margin-bottom--sm{margin-bottom:.5rem!important}.margin-right--sm{margin-right:.5rem!important}.margin-vert--sm{margin-top:.5rem!important;margin-bottom:.5rem!important}.margin-horiz--sm{margin-left:.5rem!important;margin-right:.5rem!important}.margin--md{margin:1rem!important}.margin-top--md{margin-top:1rem!important}.margin-left--md{margin-left:1rem!important}.margin-bottom--md{margin-bottom:1rem!important}.margin-right--md{margin-right:1rem!important}.margin-vert--md{margin-top:1rem!important;margin-bottom:1rem!important}.margin-horiz--md{margin-left:1rem!important;margin-right:1rem!important}.margin--lg{margin:2rem!important}.margin-top--lg{margin-top:2rem!important}.margin-left--lg{margin-left:2rem!important}.margin-bottom--lg{margin-bottom:2rem!important}.margin-right--lg{margin-right:2rem!important}.margin-vert--lg{margin-top:2rem!important;margin-bottom:2rem!important}.margin-horiz--lg{margin-left:2rem!important;margin-right:2rem!important}.margin--xl{margin:5rem!important}.margin-top--xl{margin-top:5rem!important}.margin-left--xl{margin-left:5rem!important}.margin-bottom--xl{margin-bottom:5rem!important}.margin-right--xl{margin-right:5rem!important}.margin-vert--xl{margin-top:5rem!important;margin-bottom:5rem!important}.margin-horiz--xl{margin-left:5rem!important;margin-right:5rem!important}.padding--none{padding:0!important}.padding-top--none{padding-top:0!important}.padding-left--none{padding-left:0!important}.padding-bottom--none{padding-bottom:0!important}.padding-right--none{padding-right:0!important}.padding-vert--none{padding-top:0!important;padding-bottom:0!important}.padding-horiz--none{padding-left:0!important;padding-right:0!important}.padding--xs{padding:.25rem!important}.padding-top--xs{padding-top:.25rem!important}.padding-left--xs{padding-left:.25rem!important}.padding-bottom--xs{padding-bottom:.25rem!important}.padding-right--xs{padding-right:.25rem!important}.padding-vert--xs{padding-top:.25rem!important;padding-bottom:.25rem!important}.padding-horiz--xs{padding-left:.25rem!important;padding-right:.25rem!important}.padding--sm{padding:.5rem!important}.padding-top--sm{padding-top:.5rem!important}.padding-left--sm{padding-left:.5rem!important}.padding-bottom--sm{padding-bottom:.5rem!important}.padding-right--sm{padding-right:.5rem!important}.padding-vert--sm{padding-top:.5rem!important;padding-bottom:.5rem!important}.padding-horiz--sm{padding-left:.5rem!important;padding-right:.5rem!important}.padding--md{padding:1rem!important}.padding-top--md{padding-top:1rem!important}.padding-left--md{padding-left:1rem!important}.padding-bottom--md{padding-bottom:1rem!important}.padding-right--md{padding-right:1rem!important}.padding-vert--md{padding-top:1rem!important;padding-bottom:1rem!important}.padding-horiz--md{padding-left:1rem!important;padding-right:1rem!important}.padding--lg{padding:2rem!important}.padding-top--lg{padding-top:2rem!important}.padding-left--lg{padding-left:2rem!important}.padding-bottom--lg{padding-bottom:2rem!important}.padding-right--lg{padding-right:2rem!important}.padding-vert--lg{padding-top:2rem!important;padding-bottom:2rem!important}.padding-horiz--lg{padding-left:2rem!important;padding-right:2rem!important}.padding--xl{padding:5rem!important}.padding-top--xl{padding-top:5rem!important}.padding-left--xl{padding-left:5rem!important}.padding-bottom--xl{padding-bottom:5rem!important}.padding-right--xl{padding-right:5rem!important}.padding-vert--xl{padding-top:5rem!important;padding-bottom:5rem!important}.padding-horiz--xl{padding-left:5rem!important;padding-right:5rem!important}code{background-color:var(--ifm-code-background);border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical)var(--ifm-code-padding-horizontal);vertical-align:middle;border:.1rem solid #0000001a}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height)var(--ifm-font-family-monospace);margin:0 0 var(--ifm-spacing-vertical);padding:var(--ifm-pre-padding);overflow:auto}pre code{font-size:100%;line-height:inherit;background-color:#0000;border:none;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);border-radius:.2rem;padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top)0 var(--ifm-heading-margin-bottom)0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:before{content:"";display:table}.markdown:after{clear:both;content:"";display:table}.markdown>:last-child{margin-bottom:0!important}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading));margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading));margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading));margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>pre,.markdown>ul,.markdown>p{margin-bottom:var(--ifm-leading)}.markdown li{word-wrap:break-word}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ul,ol{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ul ul,ul ol,ol ol,ol ul{margin:0}ul ul ol,ul ol ol,ol ul ol,ol ol ol{list-style-type:lower-alpha}table{border-collapse:collapse;margin-bottom:var(--ifm-spacing-vertical);display:block;overflow:auto}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead{background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width)solid var(--ifm-table-border-color)}table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table th,table td{border:var(--ifm-table-border-width)solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);-webkit-text-decoration:var(--ifm-link-decoration);text-decoration:var(--ifm-link-decoration);transition:color var(--ifm-transition-fast)var(--ifm-transition-timing-default)}a:hover{color:var(--ifm-link-hover-color);-webkit-text-decoration:var(--ifm-link-hover-decoration);text-decoration:var(--ifm-link-hover-decoration)}a:not([href]){-webkit-text-decoration:none;text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width)solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);margin:0 0 var(--ifm-spacing-vertical);padding:var(--ifm-blockquote-padding-vertical)var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical)0;border:0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.text--break{word-wrap:break-word!important;word-break:break-word!important}.text--no-decoration,.text--no-decoration:hover{-webkit-text-decoration:none;text-decoration:none}.clean-btn{color:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit}.clean-list{padding-left:0;list-style:none}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width)solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);color:var(--ifm-alert-foreground-color);padding:var(--ifm-alert-padding-vertical)var(--ifm-alert-padding-horizontal)}.alert__heading{font:bold var(--ifm-h5-font-size)/var(--ifm-heading-line-height)var(--ifm-heading-font-family);text-transform:uppercase;align-items:center;margin-bottom:.5rem;display:flex}.alert__icon{margin-right:.4em;display:inline-flex}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{color:var(--ifm-alert-foreground-color);margin:calc(var(--ifm-alert-padding-vertical)*-1)calc(var(--ifm-alert-padding-horizontal)*-1)0 0;opacity:.75}.alert .close:hover,.alert .close:focus{opacity:1}.alert a{-webkit-text-decoration-color:var(--ifm-alert-border-color);text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{-moz-column-gap:var(--ifm-avatar-intro-margin);column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{height:var(--ifm-avatar-photo-size);width:var(--ifm-avatar-photo-size);border-radius:50%;display:block;overflow:hidden}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{text-align:var(--ifm-avatar-intro-alignment);flex-direction:column;flex:1;justify-content:center;display:flex}.avatar__name{font:bold var(--ifm-h4-font-size)/var(--ifm-heading-line-height)var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:.5rem;flex-direction:column;align-items:center}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width)solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);padding:var(--ifm-badge-padding-vertical)var(--ifm-badge-padding-horizontal);line-height:1;display:inline-block}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary);--ifm-badge-border-color:var(--ifm-badge-background-color)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);--ifm-badge-border-color:var(--ifm-badge-background-color);color:var(--ifm-color-black)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success);--ifm-badge-border-color:var(--ifm-badge-background-color)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info);--ifm-badge-border-color:var(--ifm-badge-background-color)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning);--ifm-badge-border-color:var(--ifm-badge-background-color)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger);--ifm-badge-border-color:var(--ifm-badge-background-color)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item{display:inline-block}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator)center;content:" ";filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));display:inline-block}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);color:var(--ifm-font-color-base);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier))calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-property:background,color;transition-duration:var(--ifm-transition-fast);transition-timing-function:var(--ifm-transition-timing-default);display:inline-block}.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);-webkit-text-decoration:none;text-decoration:none}.breadcrumbs__link:any-link:hover{background:var(--ifm-breadcrumb-item-background-active);-webkit-text-decoration:none;text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width)solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);color:var(--ifm-button-color);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier))calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;-webkit-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap;transition-property:color,background,border-color;transition-duration:var(--ifm-button-transition-duration);transition-timing-function:var(--ifm-transition-timing-default);line-height:1.5;display:inline-block}.button:hover{color:var(--ifm-button-color);-webkit-text-decoration:none;text-decoration:none}.button--outline{--ifm-button-background-color:transparent;--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--outline:hover,.button--outline:active,.button--outline.button--active{--ifm-button-color:var(--ifm-font-color-base-inverse)}.button--link{--ifm-button-background-color:transparent;--ifm-button-border-color:transparent;color:var(--ifm-link-color);-webkit-text-decoration:var(--ifm-link-decoration);text-decoration:var(--ifm-link-decoration)}.button--link:hover,.button--link:active,.button--link.button--active{color:var(--ifm-link-hover-color);-webkit-text-decoration:var(--ifm-link-hover-decoration);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{width:100%;display:block}.button.button--secondary{color:var(--ifm-color-gray-900)}.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary:active,.button--primary.button--active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary:active,.button--secondary.button--active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success:active,.button--success.button--active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info:active,.button--info.button--active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning:active,.button--warning.button--active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger:active,.button--danger.button--active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{gap:var(--ifm-button-group-spacing);display:inline-flex}.button-group>.button:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.button-group>.button:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.button-group--block{justify-content:stretch;display:flex}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);flex-direction:column;display:flex;overflow:hidden}.card--full-height{height:100%}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__header,.card__body,.card__footer{padding:var(--ifm-card-vertical-spacing)var(--ifm-card-horizontal-spacing)}.card__header:not(:last-child),.card__body:not(:last-child),.card__footer:not(:last-child){padding-bottom:0}.card__header>:last-child,.card__body>:last-child,.card__footer>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{padding:var(--ifm-toc-padding-vertical)0;margin-bottom:0;font-size:.8rem}.table-of-contents,.table-of-contents ul{padding-left:var(--ifm-toc-padding-horizontal);list-style:none}.table-of-contents li{margin:var(--ifm-toc-padding-vertical)var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link:hover,.table-of-contents__link:hover code,.table-of-contents__link--active,.table-of-contents__link--active code{color:var(--ifm-color-primary);-webkit-text-decoration:none;text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);opacity:.5;transition:opacity var(--ifm-transition-fast)var(--ifm-transition-timing-default);padding:1rem;line-height:1}.close:hover{opacity:.7}.close:focus{opacity:.8}.dropdown{font-weight:var(--ifm-dropdown-font-weight);vertical-align:top;display:inline-flex;position:relative}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;visibility:visible;transform:translateY(-1px)}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);opacity:0;pointer-events:none;min-width:10rem;max-height:80vh;left:0;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);visibility:hidden;z-index:var(--ifm-z-index-dropdown);transition-property:opacity,transform,visibility;transition-duration:var(--ifm-transition-fast);transition-timing-function:var(--ifm-transition-timing-default);padding:.5rem;list-style:none;position:absolute;overflow-y:auto;transform:translateY(-.625rem)}.dropdown__link{color:var(--ifm-dropdown-link-color);white-space:nowrap;border-radius:.25rem;margin-top:.2rem;padding:.25rem .5rem;font-size:.875rem;display:block}.dropdown__link:hover,.dropdown__link--active{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);-webkit-text-decoration:none;text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{content:"";border:.4em solid #0000;border-top-color:currentColor;border-bottom:0 solid;margin-left:.3em;display:inline-block;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical)var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{max-width:var(--ifm-footer-logo-max-width);margin-top:1rem}.footer__title{color:var(--ifm-footer-title-color);font:bold var(--ifm-h4-font-size)/var(--ifm-heading-line-height)var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.footer__item{margin-top:0}.footer__items{margin-bottom:0}[type=checkbox]{padding:0}.hero{background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);align-items:center;padding:4rem 2rem;display:flex}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu{font-weight:var(--ifm-font-weight-semibold);overflow-x:hidden}.menu__list{margin:0;padding-left:0;list-style:none}.menu__list .menu__list{padding-left:var(--ifm-menu-link-padding-horizontal);flex:0 0 100%;margin-top:.25rem}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.menu__list-item--collapsed .menu__link--sublist:after,.menu__list-item--collapsed .menu__caret:before{transform:rotate(90deg)}.menu__list-item-collapsible{transition:background var(--ifm-transition-fast)var(--ifm-transition-timing-default);border-radius:.25rem;flex-wrap:wrap;display:flex;position:relative}.menu__list-item-collapsible:hover,.menu__list-item-collapsible--active{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link:hover,.menu__list-item-collapsible .menu__link--active{background:0 0!important}.menu__link,.menu__caret{transition:background var(--ifm-transition-fast)var(--ifm-transition-timing-default);border-radius:.25rem;align-items:center;display:flex}.menu__link:hover,.menu__caret:hover{background:var(--ifm-menu-color-background-hover)}.menu__link{color:var(--ifm-menu-color);padding:var(--ifm-menu-link-padding-vertical)var(--ifm-menu-link-padding-horizontal);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);transition:color var(--ifm-transition-fast)var(--ifm-transition-timing-default);-webkit-text-decoration:none;text-decoration:none}.menu__link--sublist-caret:after{content:"";background:var(--ifm-menu-link-sublist-icon)50%/2rem 2rem;min-width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter);width:1.25rem;height:1.25rem;transition:transform var(--ifm-transition-fast)linear;margin-left:auto;transform:rotate(180deg)}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret{padding:var(--ifm-menu-link-padding-vertical)var(--ifm-menu-link-padding-horizontal)}.menu__caret:before{content:"";background:var(--ifm-menu-link-sublist-icon)50%/2rem 2rem;filter:var(--ifm-menu-link-sublist-icon-filter);width:1.25rem;height:1.25rem;transition:transform var(--ifm-transition-fast)linear;transform:rotate(180deg)}html[data-theme=dark],.navbar--dark{--ifm-menu-link-sublist-icon-filter:invert(100%)sepia(94%)saturate(17%)hue-rotate(223deg)brightness(104%)contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical)var(--ifm-navbar-padding-horizontal);display:flex}.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{z-index:var(--ifm-z-index-fixed);position:sticky;top:0}.navbar__inner{flex-wrap:wrap;justify-content:space-between;width:100%;display:flex}.navbar__brand{color:var(--ifm-navbar-link-color);align-items:center;min-width:0;margin-right:1rem;display:flex}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);-webkit-text-decoration:none;text-decoration:none}.navbar__title{flex:auto}.navbar__toggle{margin-right:.5rem;display:none}.navbar__logo{flex:none;height:2rem;margin-right:.5rem}.navbar__logo img{height:100%}.navbar__items{flex:1;align-items:center;min-width:0;display:flex}.navbar__items--center{flex:none}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:none;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{padding:var(--ifm-navbar-item-padding-vertical)var(--ifm-navbar-item-padding-horizontal);display:inline-block}.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.navbar__link{color:var(--ifm-navbar-link-color);font-weight:var(--ifm-font-weight-semibold)}.navbar__link:hover,.navbar__link--active{color:var(--ifm-navbar-link-hover-color);-webkit-text-decoration:none;text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-navbar-link-hover-color:var(--ifm-color-primary);--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{appearance:none;background:var(--ifm-navbar-search-input-background-color)var(--ifm-navbar-search-input-icon)no-repeat .75rem center/1rem 1rem;color:var(--ifm-navbar-search-input-color);cursor:text;border:none;border-radius:2rem;width:12.5rem;height:2rem;padding:0 .5rem 0 2.25rem;font-size:1rem;display:inline-block}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);opacity:0;visibility:hidden;width:var(--ifm-navbar-sidebar-width);transition-property:opacity,visibility,transform;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;position:fixed;top:0;bottom:0;left:0;overflow-x:hidden;transform:translate(-100%)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar--show .navbar-sidebar{transform:translate(0,0)}.navbar-sidebar__backdrop{opacity:0;visibility:hidden;transition-property:opacity,visibility;transition-duration:var(--ifm-transition-fast);background-color:#0009;transition-timing-function:ease-in-out;position:fixed;inset:0}.navbar-sidebar__brand{box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical)var(--ifm-navbar-padding-horizontal);flex:1;align-items:center;display:flex}.navbar-sidebar__items{height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast)ease-in-out;display:flex;transform:translateZ(0)}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{width:calc(var(--ifm-navbar-sidebar-width));flex-shrink:0;padding:.5rem}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);text-align:left;width:calc(100% + 1rem);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;top:-.5rem}.navbar-sidebar__close{margin-left:auto;display:flex}.pagination{-moz-column-gap:var(--ifm-pagination-page-spacing);column-gap:var(--ifm-pagination-page-spacing);font-size:var(--ifm-pagination-font-size);padding-left:0;display:flex}.pagination--sm{--ifm-pagination-font-size:.8rem;--ifm-pagination-padding-horizontal:.8rem;--ifm-pagination-padding-vertical:.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{background:var(--ifm-pagination-item-active-background);color:var(--ifm-pagination-color-active)}.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);padding:var(--ifm-pagination-padding-vertical)var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast)var(--ifm-transition-timing-default);display:inline-block}.pagination__link:hover{-webkit-text-decoration:none;text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr);display:grid}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast)var(--ifm-transition-timing-default);display:block}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);-webkit-text-decoration:none;text-decoration:none}.pagination-nav__link--next{text-align:right;grid-column:2/3}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills{gap:var(--ifm-pills-spacing);padding-left:0;display:flex}.pills__item{cursor:pointer;font-weight:var(--ifm-font-weight-bold);transition:background var(--ifm-transition-fast)var(--ifm-transition-timing-default);border-radius:.5rem;padding:.25rem 1rem;display:inline-block}.pills__item--active{background:var(--ifm-pills-color-background-active);color:var(--ifm-pills-color-active)}.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{text-align:center;flex-grow:1}.tabs{color:var(--ifm-tabs-color);font-weight:var(--ifm-font-weight-bold);margin-bottom:0;padding-left:0;display:flex;overflow-x:auto}.tabs__item{border-radius:var(--ifm-global-radius);cursor:pointer;padding:var(--ifm-tabs-padding-vertical)var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast)var(--ifm-transition-timing-default);border-bottom:3px solid #0000;display:inline-flex}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);color:var(--ifm-tabs-color-active);border-bottom-right-radius:0;border-bottom-left-radius:0}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-500:var(--ifm-color-gray-500);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%)sepia(11%)saturate(0%)hue-rotate(149deg)brightness(99%)contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec}@media (width>=1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (width<=996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.footer__link-separator{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{width:max-content;display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__item{display:none}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}}@media (width<=576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0s;--ifm-transition-slow:0s}}@media print{.table-of-contents,.footer,.menu,.navbar,.pagination-nav{display:none}.tabs{page-break-inside:avoid}}}@layer docusaurus.theme-common{body:not(.navigation-with-keyboard) :not(input):focus{outline:none}.themedComponent_DHUr{display:none}[data-theme=light] .themedComponent--light_DIHH,[data-theme=dark] .themedComponent--dark_Bv2M,html:not([data-theme]) .themedComponent--light_DIHH{display:initial}.errorBoundaryError_FiLL{white-space:pre-wrap;color:red}.errorBoundaryFallback_lv4I{color:red;padding:.55rem}.details_B4FW{--docusaurus-details-summary-arrow-size:.38rem;--docusaurus-details-transition:transform .2s ease;--docusaurus-details-decoration-color:grey}.details_B4FW>summary{cursor:pointer;padding-left:1rem;list-style:none;position:relative}.details_B4FW>summary::-webkit-details-marker{display:none}.details_B4FW>summary:before{content:"";border-width:var(--docusaurus-details-summary-arrow-size);border-style:solid;border-color:transparent transparent transparent var(--docusaurus-details-decoration-color);transition:var(--docusaurus-details-transition);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2)50%;position:absolute;top:.45rem;left:0;transform:rotate(0)}.details_B4FW[open]:not(.isBrowser_Cof9)>summary:before,.details_B4FW[data-collapsed=false].isBrowser_Cof9>summary:before{transform:rotate(90deg)}.collapsibleContent_VYua{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.collapsibleContent_VYua p:last-child,.details_B4FW>summary>p:last-child{margin-bottom:0}}@layer docusaurus.theme-classic{:root{--docusaurus-progress-bar-color:var(--ifm-color-primary)}#nprogress{pointer-events:none}#nprogress .bar{background:var(--docusaurus-progress-bar-color);z-index:1031;width:100%;height:2px;position:fixed;top:0;left:0}#nprogress .peg{width:100px;height:100%;box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);opacity:1;position:absolute;right:0;transform:rotate(3deg)translateY(-4px)}.skipToContent_G6ar{z-index:calc(var(--ifm-z-index-fixed) + 1);padding:calc(var(--ifm-global-spacing)/2)var(--ifm-global-spacing);color:var(--ifm-color-emphasis-900);background-color:var(--ifm-background-surface-color);position:fixed;top:1rem;left:100%}.skipToContent_G6ar:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_rfix{padding:0;line-height:0}.content_L1uV{text-align:center;padding:5px 0;font-size:85%}.content_L1uV a{color:inherit;-webkit-text-decoration:underline;text-decoration:underline}:root{--docusaurus-announcement-bar-height:auto}.announcementBar_ncOr{height:var(--docusaurus-announcement-bar-height);background-color:var(--ifm-color-white);color:var(--ifm-color-black);border-bottom:1px solid var(--ifm-color-emphasis-100);align-items:center;display:flex}html[data-announcement-bar-initially-dismissed=true] .announcementBar_ncOr{display:none}.announcementBarPlaceholder_ajMw{flex:0 0 10px}.announcementBarClose_c9u4{flex:0 0 30px;align-self:stretch}.announcementBarContent__57G{flex:auto}@media print{.announcementBar_ncOr{display:none}}@media (width>=997px){:root{--docusaurus-announcement-bar-height:30px}.announcementBarPlaceholder_ajMw,.announcementBarClose_c9u4{flex-basis:50px}}.toggle_OLSw{width:2rem;height:2rem}.toggleButton_wYmb{-webkit-tap-highlight-color:transparent;width:100%;height:100%;transition:background var(--ifm-transition-fast);border-radius:50%;justify-content:center;align-items:center;display:flex}.toggleButton_wYmb:hover{background:var(--ifm-color-emphasis-200)}.toggleIcon_KEbZ{display:none}[data-theme-choice=system] .systemToggleIcon_txm5,[data-theme-choice=light] .lightToggleIcon_Sxwe,[data-theme-choice=dark] .darkToggleIcon_Yem1{display:initial}.toggleButtonDisabled_vaDU{cursor:not-allowed}.darkNavbarColorModeToggle_wZ1H:hover{background:var(--ifm-color-gray-800)}.iconExternalLink_awgD{margin-left:.3rem}.dropdownNavbarItemMobile_r878{cursor:pointer}.iconLanguage_xrmG{vertical-align:text-bottom;margin-right:5px}.navbarSearchContainer_bmvg:empty{display:none}@media (width<=996px){.navbarSearchContainer_bmvg{right:var(--ifm-navbar-padding-horizontal);position:absolute}}@media (width>=997px){.navbarSearchContainer_bmvg{padding:var(--ifm-navbar-item-padding-vertical)var(--ifm-navbar-item-padding-horizontal)}}.navbarHideable_bChn{transition:transform var(--ifm-transition-fast)ease}.navbarHidden_zsXl{transform:translateY(calc(-100% - 2px))}@media (width<=996px){.colorModeToggle_Hg9V{display:none}}.navbar__items--right>:last-child{padding-right:0}.footerLogoLink_zxYv{opacity:.5;transition:opacity var(--ifm-transition-fast)var(--ifm-transition-timing-default)}.footerLogoLink_zxYv:hover{opacity:1}.anchorWithStickyNavbar_fF9Z{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_Yh18{scroll-margin-top:.5rem}.hash-link{opacity:0;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none;padding-left:.5rem}.hash-link:before{content:"#"}.hash-link:focus,:hover>.hash-link{opacity:1}html,body{height:100%}.mainWrapper_UyTV{flex-direction:column;flex:1 0 auto;display:flex}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{flex-direction:column;min-height:100%;display:flex}.backToTopButton_z1FD{background-color:var(--ifm-color-emphasis-200);width:3rem;height:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1);box-shadow:var(--ifm-global-shadow-lw);transition:all var(--ifm-transition-fast)var(--ifm-transition-timing-default);opacity:0;visibility:hidden;border-radius:50%;position:fixed;bottom:1.3rem;right:1.3rem;transform:scale(0)}.backToTopButton_z1FD:after{content:" ";-webkit-mask:var(--ifm-menu-link-sublist-icon)50%/2rem 2rem no-repeat;-webkit-mask:var(--ifm-menu-link-sublist-icon)50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon)50%/2rem 2rem no-repeat;background-color:var(--ifm-color-emphasis-1000);width:100%;height:100%;display:inline-block}@media (hover:hover){.backToTopButton_z1FD:hover{background-color:var(--ifm-color-emphasis-300)}}.backToTopButtonShow_w1wE{opacity:1;visibility:visible;transform:scale(1)}:root{--docusaurus-collapse-button-bg:transparent;--docusaurus-collapse-button-bg-hover:#0000001a}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}@media (width>=997px){.collapseSidebarButton_Ftvb{background-color:var(--docusaurus-collapse-button-bg);border:1px solid var(--ifm-toc-border-color);border-radius:0;height:40px;position:sticky;bottom:0;display:block!important}.collapseSidebarButtonIcon_c4WT{margin-top:4px;transform:rotate(180deg)}[dir=rtl] .collapseSidebarButtonIcon_c4WT{transform:rotate(0)}.collapseSidebarButton_Ftvb:hover,.collapseSidebarButton_Ftvb:focus{background-color:var(--docusaurus-collapse-button-bg-hover)}}.collapseSidebarButton_Ftvb{margin:0;display:none}.menuExternalLink_xK2O{align-items:center}@media (width>=997px){.menuHtmlItem_anEq{padding:var(--ifm-menu-link-padding-vertical)var(--ifm-menu-link-padding-horizontal)}.menu_qiME{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_qiME{scrollbar-gutter:stable;padding:.5rem 0 .5rem .5rem}}.menuWithAnnouncementBar_hRfJ{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_vJCc{height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width);flex-direction:column;display:flex}.sidebarWithHideableNavbar_Fo4g{padding-top:0}.sidebarHidden_vBKa{opacity:0;visibility:hidden}.sidebarLogo_nlll{margin:0 var(--ifm-navbar-padding-horizontal);min-height:var(--ifm-navbar-height);max-height:var(--ifm-navbar-height);align-items:center;color:inherit!important;-webkit-text-decoration:none!important;text-decoration:none!important;display:flex!important}.sidebarLogo_nlll img{height:2rem;margin-right:.5rem}}.sidebarLogo_nlll{display:none}@media (width>=997px){.expandButton_SZY_{width:100%;height:100%;transition:background-color var(--ifm-transition-fast)ease;background-color:var(--docusaurus-collapse-button-bg);justify-content:center;align-items:center;display:flex;position:absolute;top:0;right:0}.expandButton_SZY_:hover,.expandButton_SZY_:focus{background-color:var(--docusaurus-collapse-button-bg-hover)}.expandButtonIcon_CMLm{transform:rotate(0)}[dir=rtl] .expandButtonIcon_CMLm{transform:rotate(180deg)}}:root{--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px}.docSidebarContainer_e5ai{display:none}@media (width>=997px){.docSidebarContainer_e5ai{width:var(--doc-sidebar-width);margin-top:calc(-1*var(--ifm-navbar-height));border-right:1px solid var(--ifm-toc-border-color);will-change:width;transition:width var(--ifm-transition-fast)ease;clip-path:inset(0);display:block}.docSidebarContainerHidden_vqQo{width:var(--doc-sidebar-hidden-width);cursor:pointer}.sidebarViewport_N8x0{height:100%;max-height:100vh;position:sticky;top:0}}.docMainContainer_namt{width:100%;display:flex}@media (width>=997px){.docMainContainer_namt{max-width:calc(100% - var(--doc-sidebar-width));flex-grow:1}.docMainContainerEnhanced_sRjM{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_TX_6{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}}.docRoot_HciC{width:100%;display:flex}.docsWrapper_XLvK{flex:1 0 auto;display:flex}:root{--docusaurus-tag-list-border:var(--ifm-color-emphasis-300)}.tag_qE9H{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_qE9H:hover{--docusaurus-tag-list-border:var(--ifm-link-color);-webkit-text-decoration:none;text-decoration:none}.tagRegular_aHXt{border-radius:var(--ifm-global-radius);padding:.2rem .5rem .3rem;font-size:90%}.tagWithCount_UC8q{border-left:0;align-items:center;padding:0 .5rem 0 1rem;display:flex;position:relative}.tagWithCount_UC8q:before,.tagWithCount_UC8q:after{content:"";border:1px solid var(--docusaurus-tag-list-border);transition:inherit;position:absolute;top:50%}.tagWithCount_UC8q:before{border-bottom:0;border-right:0;width:1.18rem;height:1.18rem;right:100%;transform:translate(50%,-50%)rotate(-45deg)}.tagWithCount_UC8q:after{border-radius:50%;width:.5rem;height:.5rem;left:0;transform:translateY(-50%)}.tagWithCount_UC8q span{background:var(--ifm-color-secondary);color:var(--ifm-color-black);border-radius:var(--ifm-global-radius);margin-left:.3rem;padding:.1rem .4rem;font-size:.7rem;line-height:1.2}.tags_q74f{display:inline}.tag_lSC7{margin:0 .4rem .5rem 0;display:inline-block}.docCardListItem_h8oi{margin-bottom:2rem}.docCardListItem_h8oi>*{height:100%}.codeBlockContainer_ZGJx{background:var(--prism-background-color);color:var(--prism-color);margin-bottom:var(--ifm-leading);box-shadow:var(--ifm-global-shadow-lw);border-radius:var(--ifm-code-border-radius)}.codeBlock_TAPP{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockStandalone_K9VJ{padding:0}.codeBlockLines_AdAo{font:inherit;float:left;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_p5De{padding:var(--ifm-pre-padding)0;display:table}@media print{.codeBlockLines_AdAo{white-space:pre-wrap}}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);margin:0 calc(-1*var(--ifm-pre-padding));padding:0 var(--ifm-pre-padding);display:block}.codeLine_DPDv{counter-increment:line-count;display:table-row}.codeLineNumber_YxQB{text-align:right;width:1%;padding:0 var(--ifm-pre-padding);background:var(--ifm-pre-background);overflow-wrap:normal;display:table-cell;position:sticky;left:0}.codeLineNumber_YxQB:before{content:counter(line-count);opacity:.4}.theme-code-block-highlighted-line .codeLineNumber_YxQB:before{opacity:.8}.codeLineContent_SOIp{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_TFXo{opacity:1!important}.copyButtonIcons_akOg{width:1.125rem;height:1.125rem;position:relative}.copyButtonIcon_a21a,.copyButtonSuccessIcon_v2Tw{fill:currentColor;opacity:inherit;width:inherit;height:inherit;transition:all var(--ifm-transition-fast)ease;position:absolute;top:0;left:0}.copyButtonSuccessIcon_v2Tw{opacity:0;color:#00d600;top:50%;left:50%;transform:translate(-50%,-50%)scale(.33)}.copyButtonCopied_TFXo .copyButtonIcon_a21a{opacity:0;transform:scale(.33)}.copyButtonCopied_TFXo .copyButtonSuccessIcon_v2Tw{opacity:1;transition-delay:75ms;transform:translate(-50%,-50%)scale(1)}.wordWrapButtonIcon_fUEG{width:1.2rem;height:1.2rem}.wordWrapButtonEnabled_wDKE .wordWrapButtonIcon_fUEG{color:var(--ifm-color-primary)}.buttonGroup_dke2{-moz-column-gap:.2rem;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2);column-gap:.2rem;display:flex;position:absolute}.buttonGroup_dke2 button{background:var(--prism-background-color);color:var(--prism-color);border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);transition:opacity var(--ifm-transition-fast)ease-in-out;opacity:0;align-items:center;padding:.4rem;line-height:0;display:flex}.buttonGroup_dke2 button:focus-visible,.buttonGroup_dke2 button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup_dke2 button{opacity:.4}.codeBlockContent_kX1v{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_L5qy{border-bottom:1px solid var(--ifm-color-emphasis-300);font-size:var(--ifm-code-font-size);padding:.75rem var(--ifm-pre-padding);border-top-left-radius:inherit;border-top-right-radius:inherit;font-weight:500}.codeBlockTitle_L5qy+.codeBlockContent_kX1v .codeBlock_pF8g{border-top-left-radius:0;border-top-right-radius:0}.details_SZgV{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast)ease;margin:0 0 var(--ifm-spacing-vertical);border:1px solid var(--ifm-alert-border-color)}.containsTaskList__YnT{list-style:none}:not(.containsTaskList__YnT>li)>.containsTaskList__YnT{padding-left:0}.iconEdit_UohW{vertical-align:sub;margin-right:.3em}.img__Ss2{height:auto}.lastUpdated_g62E{margin-top:.2rem;font-size:smaller;font-style:italic}@media (width>=997px){.lastUpdated_g62E{text-align:right}}.tocCollapsibleButton_htYj{font-size:inherit;justify-content:space-between;align-items:center;width:100%;padding:.4rem .8rem;display:flex}.tocCollapsibleButton_htYj:after{content:"";background:var(--ifm-menu-link-sublist-icon)50% 50%/2rem 2rem no-repeat;filter:var(--ifm-menu-link-sublist-icon-filter);width:1.25rem;height:1.25rem;transition:transform var(--ifm-transition-fast);transform:rotate(180deg)}.tocCollapsibleButtonExpanded_pAh7:after{transform:none}.tocCollapsible_O_Qc{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_SlnY>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);padding:.2rem 0;font-size:15px}.tocCollapsibleContent_SlnY ul li{margin:.4rem .8rem}.tocCollapsibleContent_SlnY a{display:block}.tocCollapsibleExpanded_klrc{transform:none}@media (width>=997px){.tocMobile_tjDr{display:none}}@media print{.tocMobile_tjDr{display:none}}.admonition_IZjC{margin-bottom:1em}.admonitionHeading_uVvU{font:var(--ifm-heading-font-weight)var(--ifm-h5-font-size)/var(--ifm-heading-line-height)var(--ifm-heading-font-family);text-transform:uppercase}.admonitionHeading_uVvU:not(:last-child){margin-bottom:.3rem}.admonitionHeading_uVvU code{text-transform:none}.admonitionIcon_HiR3{vertical-align:middle;margin-right:.4em;display:inline-block}.admonitionIcon_HiR3 svg{width:1.6em;height:1.6em;fill:var(--ifm-alert-foreground-color);display:inline-block}.admonitionContent_bl22>:last-child{margin-bottom:0}.tabList_M0Dn{margin-bottom:var(--ifm-leading)}.tabItem_ysIP{margin-top:0!important}.tabItem_OMyP>:last-child{margin-bottom:0}.tableOfContents_TN1Q{max-height:calc(100vh - (var(--ifm-navbar-height) + 2rem));top:calc(var(--ifm-navbar-height) + 1rem);position:sticky;overflow-y:auto}@media (width<=996px){.tableOfContents_TN1Q{display:none}.docItemContainer_JtJJ{padding:0 .3rem}}.mdxPageWrapper_SLvB{justify-content:center}.breadcrumbHomeIcon_JFrk{vertical-align:top;width:1.1rem;height:1.1rem;position:relative;top:1px}.breadcrumbsContainer_zCmv{--ifm-breadcrumb-size-multiplier:.8;margin-bottom:.8rem}.docItemContainer_Rv5Z header+*,.docItemContainer_Rv5Z article>:first-child{margin-top:0}@media (width>=997px){.docItemCol_YAwJ,.generatedIndexPage_ak01{max-width:75%!important}}.title_AulG{--ifm-h1-font-size:3rem;margin-bottom:calc(1.25*var(--ifm-leading))}}@layer docusaurus.core{#__docusaurus-base-url-issue-banner-container{display:none}}@layer docusaurus.plugin-debug,docusaurus.theme-mermaid,docusaurus.theme-live-codeblock,docusaurus.theme-search-algolia.docsearch,docusaurus.theme-search-algolia;:root{--ifm-color-primary:#4dacff;--ifm-color-primary-dark:#4dacff;--ifm-color-primary-darker:#4dacff;--ifm-color-primary-darkest:#4dacff;--ifm-color-primary-light:#4dacff;--ifm-color-primary-lighter:#4dacff;--ifm-color-primary-lightest:#4dacff;--ifm-code-font-size:95%;--docusaurus-highlighted-code-line-bg:#0000001a}[data-theme=dark]{--ifm-color-primary:#4dacff;--ifm-color-primary-dark:#4dacff;--ifm-color-primary-darker:#4dacff;--ifm-color-primary-darkest:#4dacff;--ifm-color-primary-light:#4dacff;--ifm-color-primary-lighter:#4dacff;--ifm-color-primary-lightest:#4dacff;--docusaurus-highlighted-code-line-bg:#0000004d}img{width:auto;height:auto}img[alt=WIDTH]{width:260px}img[alt=HEIGHT]{width:200px}img[alt=MARGIN]{width:180px}img[alt=PADDING],img[alt=BACKCOLOR],img[alt=TEXTCOLOR],img[alt=BORDERCOLOR]{width:200px}img[alt=RAW]{width:180px}img[alt=SUBSETTING]{width:360px}img[alt=NAMED_WIDGET],img[alt=VERTICAL],img[alt=VERTICALBOX]{width:200px}img[alt=HORIZONTAL]{width:500px}img[alt=HORIZONTALBOX]{width:200px}img[alt=MATRIXBYCOLUMNS]{width:220px}img[alt=SCROLLWINDOW]{width:180px}img[alt=TABITEM]{width:200px}img[alt=IFRAME]{width:800px}img[alt=LABEL]{width:220px}img[alt=HORIZONTALLINE],img[alt=TITLE],img[alt=SPACER]{width:180px}img[alt=ARRAYPLOT]{width:600px}img[alt=ARRAY]{width:220px}img[alt=BLOCK]{width:500px}img[alt=FORMATVALUE]{width:200px}img[alt=LABELLED]{width:180px}img[alt=LABELPROGRESSBAR]{width:320px}img[alt=LABELVALUE],img[alt=LABELVALUEDESC]{width:300px}img[alt=LABELVALUELIMITSCOLUMN]{width:180px}img[alt=LABELVALUERANGEBAR]{width:500px}img[alt=LED],img[alt=LIMITSBAR],img[alt=LIMITSCOLUMN]{width:200px}img[alt=LIMITSCOLOR]{width:220px}img[alt=VALUELIMITSBAR]{width:300px}img[alt=VALUELIMITSCOLUMN]{width:180px}img[alt=VALUERANGEBAR]{width:220px}img[alt=LINEGRAPH],img[alt=SPARKLINE]{width:400px}img[alt=LABELSPARKLINE],img[alt=IMAGEVIEWER],img[alt=PROGRESSBAR],img[alt=RANGEBAR],img[alt=ROLLUP],img[alt=SIGNAL],img[alt=TEXTBOX],img[alt=VALUE],img[alt=BUTTON],img[alt=CHECKBUTTON],img[alt=COMBOBOX],img[alt=DATE],img[alt=RADIOBUTTON],img[alt=TEXTFIELD],img[alt=TIME],img[alt=CANVASLABEL]{width:200px}img[alt=CANVASLABELVALUE],img[alt=CANVASIMAGE],img[alt=CANVASIMAGEVALUE]{width:220px}img[alt=CANVASLINE],img[alt=CANVASLINEVALUE],img[alt=CANVASDOT]{width:200px}.ds-dropdown-menu{max-height:80vh;overflow-y:auto}.features_t9lD{align-items:center;width:100%;padding:2rem 0;display:flex}.featureSvg_GfXr{width:200px;height:200px}.heroBanner_qdFl{text-align:center;padding:4rem 0;position:relative;overflow:hidden}@media screen and (width<=996px){.heroBanner_qdFl{padding:2rem}}.buttons_AeoN{justify-content:center;align-items:center;display:flex}.cardContainer_S8oU{--ifm-link-color:var(--ifm-color-emphasis-800);--ifm-link-hover-color:var(--ifm-color-emphasis-700);--ifm-link-hover-decoration:none;border:1px solid var(--ifm-color-emphasis-200);transition:all var(--ifm-transition-fast)ease;transition-property:border,box-shadow;box-shadow:0 1.5px 3px #00000026}.cardContainer_S8oU:hover{border-color:var(--ifm-color-primary);box-shadow:0 3px 6px #0003}.cardContainer_S8oU :last-child{margin-bottom:0}.cardTitle_HoSo{font-size:1.2rem}.cardDescription_c27F{font-size:.8rem}.algolia-docsearch-suggestion{border-bottom-color:#3a3dd1}.algolia-docsearch-suggestion--category-header{background-color:#4b54de}.algolia-docsearch-suggestion--highlight{color:#3a33d1}.algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--highlight{background-color:#4d47d5}.aa-cursor .algolia-docsearch-suggestion--content{color:#272296}.aa-cursor .algolia-docsearch-suggestion{background:#ebebfb}@media (width>=768px){.algolia-docsearch-suggestion{border-bottom-color:#7671df}.algolia-docsearch-suggestion--subcategory-column{color:#4e4726;border-right-color:#7671df}}.searchbox{white-space:nowrap;box-sizing:border-box;width:200px;display:inline-block;position:relative;visibility:visible!important;height:32px!important}.searchbox .algolia-autocomplete{width:100%;height:100%;display:block}.searchbox__wrapper{z-index:999;width:100%;height:100%;position:relative}.searchbox__input{box-sizing:border-box;vertical-align:middle;white-space:normal;appearance:none;border:0;border-radius:16px;width:100%;height:100%;padding:0 26px 0 32px;font-size:12px;transition:box-shadow .4s,background .4s;display:inline-block;box-shadow:inset 0 0 0 1px #ccc;background:#fff!important}.searchbox__input::-webkit-search-decoration{display:none}.searchbox__input::-webkit-search-cancel-button{display:none}.searchbox__input::-webkit-search-results-button{display:none}.searchbox__input::-webkit-search-results-decoration{display:none}.searchbox__input:hover{box-shadow:inset 0 0 0 1px #b3b3b3}.searchbox__input:focus,.searchbox__input:active{background:#fff;outline:0;box-shadow:inset 0 0 0 1px #aaa}.searchbox__input::placeholder{color:#aaa}.searchbox__submit{vertical-align:middle;text-align:center;width:32px;height:100%;font-size:inherit;-webkit-user-select:none;user-select:none;top:0;right:inherit;background-color:#458ee100;border:0;border-radius:16px 0 0 16px;margin:0;padding:0;position:absolute;left:0}.searchbox__submit:before{vertical-align:middle;content:"";height:100%;margin-right:-4px;display:inline-block}.searchbox__submit:hover,.searchbox__submit:active{cursor:pointer}.searchbox__submit:focus{outline:0}.searchbox__submit svg{vertical-align:middle;fill:#6d7e96;width:14px;height:14px}.searchbox__reset{cursor:pointer;font-size:inherit;-webkit-user-select:none;user-select:none;fill:#00000080;background:0 0;border:0;margin:0;padding:0;display:block;position:absolute;top:8px;right:8px}.searchbox__reset.hide{display:none}.searchbox__reset:focus{outline:0}.searchbox__reset svg{width:8px;height:8px;margin:4px;display:block}.searchbox__input:valid~.searchbox__reset{animation-name:sbx-reset-in;animation-duration:.15s;display:block}@keyframes sbx-reset-in{0%{opacity:0;transform:translate(-20%)}to{opacity:1;transform:none}}.algolia-autocomplete .ds-dropdown-menu:before{content:"";z-index:1000;background:#373940;border-top:1px solid #373940;border-right:1px solid #373940;border-radius:2px;width:14px;height:14px;display:block;position:absolute;top:-7px;transform:rotate(-45deg)}.algolia-autocomplete .ds-dropdown-menu{box-shadow:0 1px #0003,0 2px 3px #0000001a}@media (width>=601px){.algolia-autocomplete.algolia-autocomplete-right .ds-dropdown-menu{right:0!important;left:inherit!important}.algolia-autocomplete.algolia-autocomplete-right .ds-dropdown-menu:before{right:48px}.algolia-autocomplete .ds-dropdown-menu{text-align:left;z-index:999;background:0 0;border:none;border-radius:4px;min-width:500px;max-width:600px;height:auto;margin:6px 0 0;padding:0;position:relative;top:-6px}}@media (width<=600px){.algolia-autocomplete .ds-dropdown-menu{z-index:100;width:600px;max-width:calc(100% - 2rem);max-height:calc(100% - 5rem);display:block;position:fixed!important;top:50px!important;left:auto!important;right:1rem!important}.algolia-autocomplete .ds-dropdown-menu:before{right:6rem}}.algolia-autocomplete .ds-dropdown-menu .ds-suggestions{z-index:1000;position:relative}.algolia-autocomplete .ds-dropdown-menu .ds-suggestion{cursor:pointer}.algolia-autocomplete .ds-dropdown-menu [class^=ds-dataset-]{background:#fff;border-radius:4px;padding:0;position:relative;overflow:auto}.algolia-autocomplete .ds-dropdown-menu *{box-sizing:border-box}.algolia-autocomplete .algolia-docsearch-suggestion{padding:0;-webkit-text-decoration:none;text-decoration:none;display:block;position:relative;overflow:hidden}.algolia-autocomplete .ds-cursor .algolia-docsearch-suggestion--wrapper{background:#f1f1f1;box-shadow:inset -2px 0 #61dafb}.algolia-autocomplete .algolia-docsearch-suggestion--highlight{background:#ffe564;padding:.1em .05em}.algolia-autocomplete .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl0 .algolia-docsearch-suggestion--highlight,.algolia-autocomplete .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl1 .algolia-docsearch-suggestion--highlight{color:inherit;background:inherit}.algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight{background:inherit;color:inherit;padding:0 0 1px;box-shadow:inset 0 -2px #458ee1cc}.algolia-autocomplete .algolia-docsearch-suggestion--content{float:right;cursor:pointer;width:70%;padding:5.33333px 0 5.33333px 10.6667px;display:block;position:relative}.algolia-autocomplete .algolia-docsearch-suggestion--content:before{content:"";background:#ececec;width:1px;height:100%;display:block;position:absolute;top:0;left:-1px}.algolia-autocomplete .algolia-docsearch-suggestion--category-header{letter-spacing:.08em;text-transform:uppercase;color:#fff;background-color:#373940;margin:0;padding:5px 8px;font-size:14px;font-weight:700;display:none;position:relative}.algolia-autocomplete .algolia-docsearch-suggestion--wrapper{float:left;background-color:#fff;width:100%;padding:8px 0 0}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column{float:left;text-align:right;color:#777;word-wrap:break-word;width:30%;padding:5.33333px 10.6667px;font-size:.9em;display:none;position:relative}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column:before{content:"";background:#ececec;width:1px;height:100%;display:block;position:absolute;top:0;right:0}.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__main .algolia-docsearch-suggestion--category-header,.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__secondary{display:block}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column .algolia-docsearch-suggestion--highlight{background-color:inherit;color:inherit}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-inline{display:none}.algolia-autocomplete .algolia-docsearch-suggestion--title{color:#02060c;margin-bottom:4px;font-size:.9em;font-weight:700}.algolia-autocomplete .algolia-docsearch-suggestion--text{color:#63676d;padding-right:2px;font-size:.85em;line-height:1.2em;display:block}.algolia-autocomplete .algolia-docsearch-suggestion--version{color:#a6aab1;padding-top:2px;padding-right:2px;font-size:.65em;display:block}.algolia-autocomplete .algolia-docsearch-suggestion--no-results{text-align:center;background-color:#373940;width:100%;margin-top:-8px;padding:8px 0;font-size:1.2em}.algolia-autocomplete .algolia-docsearch-suggestion--no-results .algolia-docsearch-suggestion--text{color:#fff;margin-top:4px}.algolia-autocomplete .algolia-docsearch-suggestion--no-results:before{display:none}.algolia-autocomplete .algolia-docsearch-suggestion code{color:#222;background-color:#ebebeb;border:none;border-radius:3px;padding:1px 5px;font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace;font-size:90%}.algolia-autocomplete .algolia-docsearch-suggestion code .algolia-docsearch-suggestion--highlight{background:0 0}.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__main .algolia-docsearch-suggestion--category-header{color:#fff;display:block}.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__secondary .algolia-docsearch-suggestion--subcategory-column{display:block}.algolia-autocomplete .algolia-docsearch-footer{z-index:2000;float:right;background-color:#fff;width:100%;height:30px;font-size:0;line-height:0}.algolia-autocomplete .algolia-docsearch-footer--logo{text-indent:-9000px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 130 18'%3E%3Cdefs%3E%3ClinearGradient id='a' x1='-36.87%25' x2='129.43%25' y1='134.94%25' y2='-27.7%25'%3E%3Cstop stop-color='%252300AEFF' offset='0%25'/%3E%3Cstop stop-color='%25233369E7' offset='100%25'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath fill='url(%2523a)' d='M59.4.02h13.3a2.37 2.37 0 0 1 2.38 2.37V15.6a2.37 2.37 0 0 1-2.38 2.36H59.4a2.37 2.37 0 0 1-2.38-2.36V2.38A2.37 2.37 0 0 1 59.4.02z'/%3E%3Cpath fill='%2523FFF' d='M66.26 4.56c-2.82 0-5.1 2.27-5.1 5.08 0 2.8 2.28 5.07 5.1 5.07 2.8 0 5.1-2.26 5.1-5.07 0-2.8-2.28-5.07-5.1-5.07zm0 8.65c-2 0-3.6-1.6-3.6-3.56 0-1.97 1.6-3.58 3.6-3.58 1.98 0 3.6 1.6 3.6 3.58a3.58 3.58 0 0 1-3.6 3.57zm0-6.4v2.66c0 .07.08.13.15.1l2.4-1.24c.04-.02.06-.1.03-.14a2.96 2.96 0 0 0-2.46-1.5c-.06 0-.1.05-.1.1zm-3.33-1.96l-.3-.3a.78.78 0 0 0-1.12 0l-.36.36a.77.77 0 0 0 0 1.1l.3.3c.05.05.13.04.17 0 .2-.25.4-.5.6-.7.23-.23.46-.43.7-.6.07-.04.07-.1.03-.16zm5-.8V3.4a.78.78 0 0 0-.78-.78h-1.83a.78.78 0 0 0-.78.78v.63c0 .07.06.12.14.1a5.74 5.74 0 0 1 1.58-.22c.52 0 1.04.07 1.54.2a.1.1 0 0 0 .13-.1z'/%3E%3Cpath fill='%2523182359' d='M102.16 13.76c0 1.46-.37 2.52-1.12 3.2-.75.67-1.9 1-3.44 1-.56 0-1.74-.1-2.67-.3l.34-1.7c.78.17 1.82.2 2.36.2.86 0 1.48-.16 1.84-.5.37-.36.55-.88.55-1.57v-.35a6.37 6.37 0 0 1-.84.3 4.15 4.15 0 0 1-1.2.17 4.5 4.5 0 0 1-1.6-.28 3.38 3.38 0 0 1-1.26-.82 3.74 3.74 0 0 1-.8-1.35c-.2-.54-.3-1.5-.3-2.2 0-.67.1-1.5.3-2.06a3.92 3.92 0 0 1 .9-1.43 4.12 4.12 0 0 1 1.45-.92 5.3 5.3 0 0 1 1.94-.37c.7 0 1.35.1 1.97.2a15.86 15.86 0 0 1 1.6.33v8.46zm-5.95-4.2c0 .9.2 1.88.6 2.3.4.4.9.62 1.53.62.34 0 .66-.05.96-.15a2.75 2.75 0 0 0 .73-.33V6.7a8.53 8.53 0 0 0-1.42-.17c-.76-.02-1.36.3-1.77.8-.4.5-.62 1.4-.62 2.23zm16.13 0c0 .72-.1 1.26-.32 1.85a4.4 4.4 0 0 1-.9 1.53c-.38.42-.85.75-1.4.98-.54.24-1.4.37-1.8.37-.43 0-1.27-.13-1.8-.36a4.1 4.1 0 0 1-1.4-.97 4.5 4.5 0 0 1-.92-1.52 5.04 5.04 0 0 1-.33-1.84c0-.72.1-1.4.32-2 .22-.6.53-1.1.92-1.5.4-.43.86-.75 1.4-.98a4.55 4.55 0 0 1 1.78-.34 4.7 4.7 0 0 1 1.8.34c.54.23 1 .55 1.4.97.38.42.68.92.9 1.5.23.6.35 1.3.35 2zm-2.2 0c0-.92-.2-1.7-.6-2.22-.38-.54-.94-.8-1.64-.8-.72 0-1.27.26-1.67.8-.4.54-.58 1.3-.58 2.22 0 .93.2 1.56.6 2.1.38.54.94.8 1.64.8s1.25-.26 1.65-.8c.4-.55.6-1.17.6-2.1zm6.97 4.7c-3.5.02-3.5-2.8-3.5-3.27L113.57.92l2.15-.34v10c0 .25 0 1.87 1.37 1.88v1.8zm3.77 0h-2.15v-9.2l2.15-.33v9.54zM119.8 3.74c.7 0 1.3-.58 1.3-1.3 0-.7-.58-1.3-1.3-1.3-.73 0-1.3.6-1.3 1.3 0 .72.58 1.3 1.3 1.3zm6.43 1c.7 0 1.3.1 1.78.27.5.18.88.42 1.17.73.28.3.5.74.6 1.18.13.46.2.95.2 1.5v5.47a25.24 25.24 0 0 1-1.5.25c-.67.1-1.42.15-2.25.15a6.83 6.83 0 0 1-1.52-.16 3.2 3.2 0 0 1-1.18-.5 2.46 2.46 0 0 1-.76-.9c-.18-.37-.27-.9-.27-1.44 0-.52.1-.85.3-1.2.2-.37.48-.67.83-.9a3.6 3.6 0 0 1 1.23-.5 7.07 7.07 0 0 1 2.2-.1l.83.16v-.35c0-.25-.03-.48-.1-.7a1.5 1.5 0 0 0-.3-.58c-.15-.18-.34-.3-.58-.4a2.54 2.54 0 0 0-.92-.17c-.5 0-.94.06-1.35.13-.4.08-.75.16-1 .25l-.27-1.74c.27-.1.67-.18 1.2-.28a9.34 9.34 0 0 1 1.65-.14zm.18 7.74c.66 0 1.15-.04 1.5-.1V10.2a5.1 5.1 0 0 0-2-.1c-.23.03-.45.1-.64.2a1.17 1.17 0 0 0-.47.38c-.13.17-.18.26-.18.52 0 .5.17.8.5.98.32.2.74.3 1.3.3zM84.1 4.8c.72 0 1.3.08 1.8.26.48.17.87.42 1.15.73.3.3.5.72.6 1.17.14.45.2.94.2 1.47v5.48a25.24 25.24 0 0 1-1.5.26c-.67.1-1.42.14-2.25.14a6.83 6.83 0 0 1-1.52-.16 3.2 3.2 0 0 1-1.18-.5 2.46 2.46 0 0 1-.76-.9c-.18-.38-.27-.9-.27-1.44 0-.53.1-.86.3-1.22.2-.36.5-.65.84-.88a3.6 3.6 0 0 1 1.24-.5 7.07 7.07 0 0 1 2.2-.1c.26.03.54.08.84.15v-.35c0-.24-.03-.48-.1-.7a1.5 1.5 0 0 0-.3-.58c-.15-.17-.34-.3-.58-.4a2.54 2.54 0 0 0-.9-.15c-.5 0-.96.05-1.37.12-.4.07-.75.15-1 .24l-.26-1.75c.27-.08.67-.17 1.18-.26a8.9 8.9 0 0 1 1.66-.15zm.2 7.73c.65 0 1.14-.04 1.48-.1v-2.17a5.1 5.1 0 0 0-1.98-.1c-.24.03-.46.1-.65.18a1.17 1.17 0 0 0-.47.4c-.12.17-.17.26-.17.52 0 .5.18.8.5.98.32.2.75.3 1.3.3zm8.68 1.74c-3.5 0-3.5-2.82-3.5-3.28L89.45.92 91.6.6v10c0 .25 0 1.87 1.38 1.88v1.8z'/%3E%3Cpath fill='%25231D3657' d='M5.03 11.03c0 .7-.26 1.24-.76 1.64-.5.4-1.2.6-2.1.6-.88 0-1.6-.14-2.17-.42v-1.2c.36.16.74.3 1.14.38.4.1.78.15 1.13.15.5 0 .88-.1 1.12-.3a.94.94 0 0 0 .35-.77.98.98 0 0 0-.33-.74c-.22-.2-.68-.44-1.37-.72-.72-.3-1.22-.62-1.52-1C.23 8.27.1 7.82.1 7.3c0-.65.22-1.17.7-1.55.46-.37 1.08-.56 1.86-.56.76 0 1.5.16 2.25.48l-.4 1.05c-.7-.3-1.32-.44-1.87-.44-.4 0-.73.08-.94.26a.9.9 0 0 0-.33.72c0 .2.04.38.12.52.08.15.22.3.42.4.2.14.55.3 1.06.52.58.24 1 .47 1.27.67.27.2.47.44.6.7.12.26.18.57.18.92zM9 13.27c-.92 0-1.64-.27-2.16-.8-.52-.55-.78-1.3-.78-2.24 0-.97.24-1.73.72-2.3.5-.54 1.15-.82 2-.82.78 0 1.4.25 1.85.72.46.48.7 1.14.7 1.97v.67H7.35c0 .58.17 1.02.46 1.33.3.3.7.47 1.24.47.36 0 .68-.04.98-.1a5.1 5.1 0 0 0 .98-.33v1.02a3.87 3.87 0 0 1-.94.32 5.72 5.72 0 0 1-1.08.1zm-.22-5.2c-.4 0-.73.12-.97.38s-.37.62-.42 1.1h2.7c0-.48-.13-.85-.36-1.1-.23-.26-.54-.38-.94-.38zm7.7 5.1l-.26-.84h-.05c-.28.36-.57.6-.86.74-.28.13-.65.2-1.1.2-.6 0-1.05-.16-1.38-.48-.32-.32-.5-.77-.5-1.34 0-.62.24-1.08.7-1.4.45-.3 1.14-.47 2.07-.5l1.02-.03V9.2c0-.37-.1-.65-.27-.84-.17-.2-.45-.28-.82-.28-.3 0-.6.04-.88.13a6.68 6.68 0 0 0-.8.33l-.4-.9a4.4 4.4 0 0 1 1.05-.4 4.86 4.86 0 0 1 1.08-.12c.76 0 1.33.18 1.7.5.4.33.6.85.6 1.56v4h-.9zm-1.9-.87c.47 0 .83-.13 1.1-.38.3-.26.43-.62.43-1.08v-.52l-.76.03c-.6.03-1.02.13-1.3.3s-.4.45-.4.82c0 .26.08.47.24.6.16.16.4.23.7.23zm7.57-5.2c.25 0 .46.03.62.06l-.12 1.18a2.38 2.38 0 0 0-.56-.06c-.5 0-.92.16-1.24.5-.3.32-.47.75-.47 1.27v3.1h-1.27V7.23h1l.16 1.05h.05c.2-.36.45-.64.77-.85a1.83 1.83 0 0 1 1.02-.3zm4.12 6.17c-.9 0-1.58-.27-2.05-.8-.47-.52-.7-1.27-.7-2.25 0-1 .24-1.77.73-2.3.5-.54 1.2-.8 2.12-.8.63 0 1.2.1 1.7.34l-.4 1c-.52-.2-.96-.3-1.3-.3-1.04 0-1.55.68-1.55 2.05 0 .67.13 1.17.38 1.5.26.34.64.5 1.13.5a3.23 3.23 0 0 0 1.6-.4v1.1a2.53 2.53 0 0 1-.73.28 4.36 4.36 0 0 1-.93.08zm8.28-.1h-1.27V9.5c0-.45-.1-.8-.28-1.02-.18-.23-.47-.34-.88-.34-.53 0-.9.16-1.16.48-.25.3-.38.85-.38 1.6v2.94h-1.26V4.8h1.26v2.12c0 .34-.02.7-.06 1.1h.08a1.76 1.76 0 0 1 .72-.67c.3-.16.66-.24 1.07-.24 1.43 0 2.15.74 2.15 2.2v3.86zM42.2 7.1c.74 0 1.32.28 1.73.82.4.53.62 1.3.62 2.26 0 .97-.2 1.73-.63 2.27-.42.54-1 .82-1.75.82s-1.33-.27-1.75-.8h-.08l-.23.7h-.94V4.8h1.26v2l-.02.64-.03.56h.05c.4-.6 1-.9 1.78-.9zm-.33 1.04c-.5 0-.88.15-1.1.45-.22.3-.34.8-.35 1.5v.08c0 .72.12 1.24.35 1.57.23.32.6.48 1.12.48.44 0 .78-.17 1-.53.24-.35.36-.87.36-1.53 0-1.35-.47-2.03-1.4-2.03zm3.24-.92h1.4l1.2 3.37c.18.47.3.92.36 1.34h.04l.18-.72 1.37-4H51l-2.53 6.73c-.46 1.23-1.23 1.85-2.3 1.85-.3 0-.56-.03-.83-.1v-1c.2.05.4.08.65.08.6 0 1.03-.36 1.28-1.06l.22-.56-2.4-5.94z'/%3E%3C/g%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:100%;width:110px;height:100%;margin-left:auto;margin-right:5px;display:block;overflow:hidden}html[data-theme=dark] .algolia-docsearch-suggestion--category-header,html[data-theme=dark] .algolia-docsearch-suggestion--wrapper,html[data-theme=dark] .algolia-docsearch-footer{background:var(--ifm-background-color)!important;color:var(--ifm-font-color-base)!important}html[data-theme=dark] .algolia-docsearch-suggestion--title{color:var(--ifm-font-color-base)!important}html[data-theme=dark] .ds-cursor .algolia-docsearch-suggestion--wrapper{background:var(--ifm-background-surface-color)!important}mark{background-color:#add8e6}
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunkdocs_openc3_com=self.webpackChunkdocs_openc3_com||[]).push([["9165"],{5061:function(e,n,t){t.r(n),t.d(n,{frontMatter:()=>i,toc:()=>l,default:()=>h,metadata:()=>o,assets:()=>c,contentTitle:()=>a});var o=JSON.parse('{"id":"guides/monitoring","title":"Monitoring","description":"Various ways to monitor COSMOS internals","source":"@site/docs/guides/monitoring.md","sourceDirName":"guides","slug":"/guides/monitoring","permalink":"/tools/staticdocs/docs/guides/monitoring","draft":false,"unlisted":false,"editUrl":"https://github.com/OpenC3/cosmos/tree/main/docs.openc3.com/docs/guides/monitoring.md","tags":[],"version":"current","frontMatter":{"title":"Monitoring","description":"Various ways to monitor COSMOS internals","sidebar_custom_props":{"myEmoji":"\u{1F5A5}\uFE0F"}},"sidebar":"defaultSidebar","previous":{"title":"Logging","permalink":"/tools/staticdocs/docs/guides/logging"},"next":{"title":"Performance","permalink":"/tools/staticdocs/docs/guides/performance"}}'),s=t(1085),r=t(2600);let i={title:"Monitoring",description:"Various ways to monitor COSMOS internals",sidebar_custom_props:{myEmoji:"\u{1F5A5}\uFE0F"}},a,c={},l=[{value:"Monitoring and observability",id:"monitoring-and-observability",level:3},{value:"Fluent/Fluentd",id:"fluentfluentd",level:3},{value:"Notes",id:"notes",level:4},{value:"OpenDistro",id:"opendistro",level:3},{value:"Notes",id:"notes-1",level:4},{value:"Prometheus",id:"prometheus",level:3},{value:"Notes",id:"notes-2",level:4},{value:"Grafana",id:"grafana",level:3},{value:"Notes",id:"notes-3",level:4}];function d(e){let n={a:"a",admonition:"admonition",blockquote:"blockquote",code:"code",h3:"h3",h4:"h4",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h3,{id:"monitoring-and-observability",children:"Monitoring and observability"}),"\n",(0,s.jsx)(n.admonition,{title:"Example Only",type:"warning",children:(0,s.jsx)(n.p,{children:"Monitoring with Fluentd is not officially supported by OpenC3 and the documentation here is simply an example of how this could be performed."})}),"\n",(0,s.jsxs)(n.p,{children:["With moving COSMOS to container based service, we needed a better way to monitor the internals of COSMOS. So here is some information on external services that you can use to monitor COSMOS. If you want to read more about ",(0,s.jsx)(n.a,{href:"https://sre.google/sre-book/monitoring-distributed-systems/",children:"Monitoring Distributed Systems"})]}),"\n",(0,s.jsx)(n.h3,{id:"fluentfluentd",children:(0,s.jsx)(n.a,{href:"https://www.fluentd.org/guides/recipes/docker-logging",children:"Fluent/Fluentd"})}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:"Fluentd is an open source data collector, which lets you unify the data collection and consumption for a better use and understanding of data."}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"notes",children:"Notes"}),"\n",(0,s.jsx)(n.p,{children:"in_docker.conf"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"<source>\n @type forward\n port 24224\n bind 0.0.0.0\n</source>\n<match *.metric>\n @type copy\n <store>\n @type elasticsearch\n host openc3-elasticsearch\n port 9200\n logstash_format true\n logstash_prefix metric\n logstash_dateformat %Y%m%d\n include_tag_key true\n type_name access_log\n tag_key @log_name\n flush_interval 1s\n </store>\n <store>\n @type stdout\n </store>\n</match>\n<match *__openc3.log>\n @type copy\n <store>\n @type elasticsearch\n host openc3-elasticsearch\n port 9200\n logstash_format true\n logstash_prefix openc3\n logstash_dateformat %Y%m%d\n include_tag_key true\n type_name access_log\n tag_key @log_name\n flush_interval 1s\n </store>\n <store>\n @type stdout\n </store>\n</match>\n<match *.**>\n @type copy\n <store>\n @type elasticsearch\n host openc3-elasticsearch\n port 9200\n logstash_format true\n logstash_prefix fluentd\n logstash_dateformat %Y%m%d\n include_tag_key true\n type_name access_log\n tag_key @log_name\n flush_interval 1s\n </store>\n <store>\n @type stdout\n </store>\n</match>\n"})}),"\n",(0,s.jsx)(n.p,{children:"Dockerfile"}),"\n",(0,s.jsxs)(n.p,{children:["NOTE: If building on a Macbook (for example) you should use the architecture specific build in the FROM line, e.g. ",(0,s.jsx)(n.code,{children:"FROM arm64v8/fluentd:v1.18-1"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"FROM fluent/fluentd:v1.18-1\n\nCOPY ./in_docker.conf /fluentd/etc/fluent.conf\nUSER root\nRUN gem install fluent-plugin-elasticsearch --no-document --version 5.4.3 \\\n && gem install fluent-plugin-prometheus --no-document --version 2.2.0\nUSER fluent\n"})}),"\n",(0,s.jsx)(n.h3,{id:"opendistro",children:(0,s.jsx)(n.a,{href:"https://opendistro.github.io/for-elasticsearch-docs/",children:"OpenDistro"})}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:"Open Distro for Elasticsearch provides a powerful, easy-to-use event monitoring and alerting system, enabling you to monitor your data and send notifications automatically to your stakeholders. With an intuitive Kibana interface and powerful API, it is easy to set up and manage alerts."}),"\n"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://opendistro.github.io/for-elasticsearch-docs/docs/install/docker/",children:"Docker"})}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"notes-1",children:"Notes"}),"\n",(0,s.jsx)(n.p,{children:"When testing this I found that depending on how you ingest your logs into the opendistro I found I had to disable security. Here is an example of the docker file."}),"\n",(0,s.jsx)(n.p,{children:"Dockerfile"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"FROM amazon/opendistro-for-elasticsearch:1.12.0\n\nRUN /usr/share/elasticsearch/bin/elasticsearch-plugin remove opendistro_security\n"})}),"\n",(0,s.jsx)(n.h3,{id:"prometheus",children:(0,s.jsx)(n.a,{href:"https://prometheus.io/",children:"Prometheus"})}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:"Prometheus scrapes metrics from instrumented jobs, either directly or via an intermediary push gateway for short-lived jobs. It stores all scraped samples locally and runs rules over this data to either aggregate and record new time series from existing data or generate alerts. Grafana or other API consumers can be used to visualize the collected data."}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"notes-2",children:"Notes"}),"\n",(0,s.jsx)(n.p,{children:"prometheus.yaml"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:'global:\n scrape_interval: 15s\n evaluation_interval: 15s\n\nrule_files:\n # - "first.rules"\n # - "second.rules"\n\nscrape_configs:\n - job_name: prometheus\n static_configs:\n - targets: ["localhost:9090"]\n\n - job_name: openc3-internal-metrics\n metrics_path: "/openc3-api/internal/metrics"\n static_configs:\n - targets: ["openc3-cmd-tlm-api:2901"]\n\n - job_name: openc3-cmd-tlm-api\n metrics_path: "/openc3-api/metrics"\n static_configs:\n - targets: ["openc3-cmd-tlm-api:2901"]\n\n - job_name: openc3-script-runner-api\n metrics_path: "/script-api/metrics"\n static_configs:\n - targets: ["openc3-script-runner-api:2902"]\n\n - job_name: minio-job\n metrics_path: /minio/v2/metrics/cluster\n scheme: http\n static_configs:\n - targets: [\'openc3-minio:9000\']\n'})}),"\n",(0,s.jsx)(n.p,{children:"Dockerfile"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"FROM prom/prometheus:v3.2.1\nADD prometheus.yaml /etc/prometheus/\n"})}),"\n",(0,s.jsx)(n.h3,{id:"grafana",children:(0,s.jsx)(n.a,{href:"https://grafana.com/",children:"Grafana"})}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:"Grafana is a multi-platform open source analytics and interactive visualization web application. It provides charts, graphs, and alerts for the web when connected to supported data sources."}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"notes-3",children:"Notes"}),"\n",(0,s.jsx)(n.p,{children:"datasource.yaml"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"apiVersion: 1\n\ndatasources:\n - name: Prometheus\n type: prometheus\n # Access mode - proxy (server in the UI) or direct (browser in the UI).\n access: proxy\n url: http://openc3-prometheus:9090\n"})}),"\n",(0,s.jsx)(n.p,{children:"Dockerfile"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"FROM grafana/grafana\n\nCOPY datasource.yaml /etc/grafana/provisioning/datasources/\n"})})]})}function h(e={}){let{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},2600:function(e,n,t){t.d(n,{R:()=>i,x:()=>a});var o=t(4041);let s={},r=o.createContext(s);function i(e){let n=o.useContext(r);return o.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),o.createElement(r.Provider,{value:n},e.children)}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunkdocs_openc3_com=self.webpackChunkdocs_openc3_com||[]).push([["3430"],{45:function(e,n,i){i.r(n),i.d(n,{frontMatter:()=>o,toc:()=>d,default:()=>m,metadata:()=>t,assets:()=>a,contentTitle:()=>s});var t=JSON.parse('{"id":"meta/xtce","title":"XTCE Support","description":"XTCE Command and Telemetry Definition Standard","source":"@site/docs/meta/xtce.md","sourceDirName":"meta","slug":"/meta/xtce","permalink":"/tools/staticdocs/docs/meta/xtce","draft":false,"unlisted":false,"editUrl":"https://github.com/OpenC3/cosmos/tree/main/docs.openc3.com/docs/meta/xtce.md","tags":[],"version":"current","frontMatter":{"title":"XTCE Support","description":"XTCE Command and Telemetry Definition Standard","sidebar_custom_props":{"myEmoji":"\u{1F635}"}},"sidebar":"defaultSidebar","previous":{"title":"Philosophy","permalink":"/tools/staticdocs/docs/meta/philosophy"},"next":{"title":"OpenC3, Inc. Privacy Policy","permalink":"/tools/staticdocs/docs/privacy"}}'),r=i(1085),l=i(2600);let o={title:"XTCE Support",description:"XTCE Command and Telemetry Definition Standard",sidebar_custom_props:{myEmoji:"\u{1F635}"}},s,a={},d=[{value:"Running COSMOS using an .xtce definition file",id:"running-cosmos-using-an-xtce-definition-file",level:2},{value:"Converting a .xtce file into a COSMOS configuration",id:"converting-a-xtce-file-into-a-cosmos-configuration",level:2},{value:"Converting a COSMOS Configuration to XTCE",id:"converting-a-cosmos-configuration-to-xtce",level:2},{value:"High-level Overview of Current Support",id:"high-level-overview-of-current-support",level:2},{value:"Supported Elements and Attributes",id:"supported-elements-and-attributes",level:2},{value:"Ignored Elements",id:"ignored-elements",level:2},{value:"Unsupported Elements",id:"unsupported-elements",level:2}];function c(e){let n={a:"a",code:"code",h2:"h2",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,l.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.p,{children:["COSMOS now has support for the ",(0,r.jsx)(n.a,{href:"https://www.omg.org/xtce/index.htm",children:"XTCE Command and Telemetry Definition Standard"}),". This is an open standard designed to allow command and telemetry definitions to be transferred between different ground systems. COSMOS can run directly using the .xtce files, or can convert them into the COSMOS configuration file format."]}),"\n",(0,r.jsx)(n.h2,{id:"running-cosmos-using-an-xtce-definition-file",children:"Running COSMOS using an .xtce definition file"}),"\n",(0,r.jsx)(n.p,{children:"A single .xtce file containing the command and telemetry definitions for a target can be used in place of the normal COSMOS command and telemetry definition files. Simply place the target's .xtce file in the target's cmd_tlm folder and COSMOS will use it for the command and telemetry definitions."}),"\n",(0,r.jsx)(n.h2,{id:"converting-a-xtce-file-into-a-cosmos-configuration",children:"Converting a .xtce file into a COSMOS configuration"}),"\n",(0,r.jsx)(n.p,{children:"Use the following command to convert a .xtce file into COSMOS configuration files. The converted configuration files will be placed into a target folder in the given output directory."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"openc3.bat cli xtce_converter --import <xtce_filename> --output <output_dir>\n"})}),"\n",(0,r.jsx)(n.h2,{id:"converting-a-cosmos-configuration-to-xtce",children:"Converting a COSMOS Configuration to XTCE"}),"\n",(0,r.jsx)(n.p,{children:"Use the following command to convert your openc3 plugin into .xtce files, one per target. The converted .xtce files will be placed into a target folder in the given output directory."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"openc3.bat cli xtce_converter --plugin <plugin.gem> --output <output_dir>\n"})}),"\n",(0,r.jsx)(n.h2,{id:"high-level-overview-of-current-support",children:"High-level Overview of Current Support"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsx)(n.li,{children:"Integer, Float, Enumerated, String, and Binary Parameter/Argument Types are Supported"}),"\n",(0,r.jsx)(n.li,{children:"All DataEncodings are supported"}),"\n",(0,r.jsx)(n.li,{children:"Telemetry and Commands are Supported"}),"\n",(0,r.jsx)(n.li,{children:"Packet Identification is supported"}),"\n",(0,r.jsx)(n.li,{children:"States are supported"}),"\n",(0,r.jsx)(n.li,{children:"Units are supported"}),"\n",(0,r.jsx)(n.li,{children:"PolynomialCalibrators are supported"}),"\n",(0,r.jsx)(n.li,{children:"Only one SpaceSystem per .xtce file"}),"\n",(0,r.jsx)(n.li,{children:"Packets should not have gaps between items"}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"supported-elements-and-attributes",children:"Supported Elements and Attributes"}),"\n",(0,r.jsx)(n.p,{children:"The following elements and associated attributes are currently supported."}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"SpaceSystem"}),"\n",(0,r.jsx)(n.li,{children:"TelemetryMetaData"}),"\n",(0,r.jsx)(n.li,{children:"CommandMetaData"}),"\n",(0,r.jsx)(n.li,{children:"ParameterTypeSet"}),"\n",(0,r.jsx)(n.li,{children:"EnumerationList"}),"\n",(0,r.jsx)(n.li,{children:"ParameterSet"}),"\n",(0,r.jsx)(n.li,{children:"ContainerSet"}),"\n",(0,r.jsx)(n.li,{children:"EntryList"}),"\n",(0,r.jsx)(n.li,{children:"DefaultCalibrator"}),"\n",(0,r.jsx)(n.li,{children:"DefaultAlarm"}),"\n",(0,r.jsx)(n.li,{children:"RestrictionCriteria"}),"\n",(0,r.jsx)(n.li,{children:"ComparisonList"}),"\n",(0,r.jsx)(n.li,{children:"MetaCommandSet"}),"\n",(0,r.jsx)(n.li,{children:"DefaultCalibrator"}),"\n",(0,r.jsx)(n.li,{children:"ArgumentTypeSet"}),"\n",(0,r.jsx)(n.li,{children:"ArgumentList"}),"\n",(0,r.jsx)(n.li,{children:"ArgumentAssignmentList"}),"\n",(0,r.jsx)(n.li,{children:"EnumeratedParameterType"}),"\n",(0,r.jsx)(n.li,{children:"EnumeratedArgumentType"}),"\n",(0,r.jsx)(n.li,{children:"IntegerParameterType"}),"\n",(0,r.jsx)(n.li,{children:"IntegerArgumentType"}),"\n",(0,r.jsx)(n.li,{children:"FloatParameterType"}),"\n",(0,r.jsx)(n.li,{children:"FloatArgumentType"}),"\n",(0,r.jsx)(n.li,{children:"StringParameterType"}),"\n",(0,r.jsx)(n.li,{children:"StringArgumentType"}),"\n",(0,r.jsx)(n.li,{children:"BinaryParameterType"}),"\n",(0,r.jsx)(n.li,{children:"BinaryArgumentType"}),"\n",(0,r.jsx)(n.li,{children:"IntegerDataEncoding"}),"\n",(0,r.jsx)(n.li,{children:"FloatDataEncoding"}),"\n",(0,r.jsx)(n.li,{children:"StringDataEncoding"}),"\n",(0,r.jsx)(n.li,{children:"BinaryDataEncoding'"}),"\n",(0,r.jsx)(n.li,{children:"SizeInBits"}),"\n",(0,r.jsx)(n.li,{children:"FixedValue"}),"\n",(0,r.jsx)(n.li,{children:"UnitSet"}),"\n",(0,r.jsx)(n.li,{children:"Unit"}),"\n",(0,r.jsx)(n.li,{children:"PolynomialCalibrator"}),"\n",(0,r.jsx)(n.li,{children:"Term"}),"\n",(0,r.jsx)(n.li,{children:"StaticAlarmRanges"}),"\n",(0,r.jsx)(n.li,{children:"WarningRange"}),"\n",(0,r.jsx)(n.li,{children:"CriticalRange"}),"\n",(0,r.jsx)(n.li,{children:"ValidRange"}),"\n",(0,r.jsx)(n.li,{children:"Enumeration"}),"\n",(0,r.jsx)(n.li,{children:"Parameter"}),"\n",(0,r.jsx)(n.li,{children:"Argument"}),"\n",(0,r.jsx)(n.li,{children:"ParameterProperties"}),"\n",(0,r.jsx)(n.li,{children:"SequenceContainer"}),"\n",(0,r.jsx)(n.li,{children:"BaseContainer"}),"\n",(0,r.jsx)(n.li,{children:"LongDescription"}),"\n",(0,r.jsx)(n.li,{children:"ParameterRefEntry"}),"\n",(0,r.jsx)(n.li,{children:"ArgumentRefEntry"}),"\n",(0,r.jsx)(n.li,{children:"BaseMetaCommand"}),"\n",(0,r.jsx)(n.li,{children:"Comparison"}),"\n",(0,r.jsx)(n.li,{children:"MetaCommand"}),"\n",(0,r.jsx)(n.li,{children:"BaseMetaCommand"}),"\n",(0,r.jsx)(n.li,{children:"CommandContainer"}),"\n",(0,r.jsx)(n.li,{children:"ArgumentAssignment"}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"ignored-elements",children:"Ignored Elements"}),"\n",(0,r.jsx)(n.p,{children:"The following elements are simply ignored by COSMOS:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Header"}),"\n",(0,r.jsx)(n.li,{children:"AliasSet"}),"\n",(0,r.jsx)(n.li,{children:"Alias"}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"unsupported-elements",children:"Unsupported Elements"}),"\n",(0,r.jsx)(n.p,{children:"Any elements not listed above are currently unsupported. Near term support for the following elements and features are planned and priority will be determined by user requests."}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"SplineCalibrator"}),"\n",(0,r.jsx)(n.li,{children:"Alternate methods of specifying offsets into containers"}),"\n",(0,r.jsx)(n.li,{children:"Output to the XUSP standard"}),"\n",(0,r.jsx)(n.li,{children:"Additional Data Types"}),"\n",(0,r.jsx)(n.li,{children:"Container References"}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"If there is a particular element or feature you need supported please submit a ticket on Github."})]})}function m(e={}){let{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},2600:function(e,n,i){i.d(n,{R:()=>o,x:()=>s});var t=i(4041);let r={},l=t.createContext(r);function o(e){let n=t.useContext(l);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),t.createElement(l.Provider,{value:n},e.children)}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunkdocs_openc3_com=self.webpackChunkdocs_openc3_com||[]).push([["9650"],{5104:function(e,t,n){n.r(t),n.d(t,{frontMatter:()=>d,toc:()=>l,default:()=>o,metadata:()=>r,assets:()=>c,contentTitle:()=>a});var r=JSON.parse('{"id":"development/log-structure","title":"Log Structure","description":"Structure of the COSMOS log file","source":"@site/docs/development/log-structure.md","sourceDirName":"development","slug":"/development/log-structure","permalink":"/tools/staticdocs/docs/development/log-structure","draft":false,"unlisted":false,"editUrl":"https://github.com/OpenC3/cosmos/tree/main/docs.openc3.com/docs/development/log-structure.md","tags":[],"version":"current","frontMatter":{"title":"Log Structure","description":"Structure of the COSMOS log file","sidebar_custom_props":{"myEmoji":"\u{1FAB5}"}},"sidebar":"defaultSidebar","previous":{"title":"JSON API","permalink":"/tools/staticdocs/docs/development/json-api"},"next":{"title":"Roadmap","permalink":"/tools/staticdocs/docs/development/roadmap"}}'),i=n(1085),s=n(2600);let d={title:"Log Structure",description:"Structure of the COSMOS log file",sidebar_custom_props:{myEmoji:"\u{1FAB5}"}},a,c={},l=[{value:"Packet Log File Format",id:"packet-log-file-format",level:2},{value:"File Header",id:"file-header",level:3},{value:"Entry Types",id:"entry-types",level:3},{value:"Common Entry Format",id:"common-entry-format",level:4},{value:"Target Declaration Entry",id:"target-declaration-entry",level:4},{value:"Packet Declaration Entry",id:"packet-declaration-entry",level:4},{value:"Raw Packet and JSON Packet Entries",id:"raw-packet-and-json-packet-entries",level:4},{value:"Offset Marker Entry",id:"offset-marker-entry",level:4},{value:"Key Map Entry",id:"key-map-entry",level:4}];function h(e){let t={h2:"h2",h3:"h3",h4:"h4",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.p,{children:"Updated: 8-21-2023 to the format as of OpenC3 COSMOS 5.11.0"}),"\n",(0,i.jsx)(t.h2,{id:"packet-log-file-format",children:"Packet Log File Format"}),"\n",(0,i.jsx)(t.p,{children:"Packet logs in OpenC3 COSMOS 5 are used to store raw binary packets as received from various targets, as\nwell as decommutated packets stored as JSON structures."}),"\n",(0,i.jsx)(t.h3,{id:"file-header",children:"File Header"}),"\n",(0,i.jsx)(t.p,{children:'COSMOS 5 Packet log files start with the 8-character sequence "COSMOS5_". This can be used to identify the type of file independent of filename and differentiate them from newer and older versions.'}),"\n",(0,i.jsx)(t.h3,{id:"entry-types",children:"Entry Types"}),"\n",(0,i.jsx)(t.p,{children:"Packet log files have 6 different entry types with room for future expansion. All entry headers are big endian binary data."}),"\n",(0,i.jsx)(t.h4,{id:"common-entry-format",children:"Common Entry Format"}),"\n",(0,i.jsx)(t.p,{children:"This common format is used for all packet log entries:"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Field"}),(0,i.jsx)(t.th,{children:"Data Type"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"Length"}),(0,i.jsx)(t.td,{children:"32-bit Unsigned Integer"}),(0,i.jsx)(t.td,{children:"Total length of the entry in bytes not including the length field. Max entry size is therefore 4GiB."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"Entry Type"}),(0,i.jsx)(t.td,{children:"4-bit Unsigned Integer"}),(0,i.jsxs)(t.td,{children:["Entry Type:",(0,i.jsx)("br",{}),"1 = Target Declaration",(0,i.jsx)("br",{}),"2 = Packet Declaraction",(0,i.jsx)("br",{}),"3 = Raw Packet",(0,i.jsx)("br",{}),"4 = JSON/CBOR Packet",(0,i.jsx)("br",{}),"5 = Offset Marker",(0,i.jsx)("br",{}),"6 = Key Map"]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"Cmd/Tlm Flag"}),(0,i.jsx)(t.td,{children:"1-bit Unsigned Integer"}),(0,i.jsxs)(t.td,{children:["1 = Command",(0,i.jsx)("br",{}),"0 = Telemetry"]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"Stored Flag"}),(0,i.jsx)(t.td,{children:"1-bit Unsigned Integer"}),(0,i.jsxs)(t.td,{children:["1 = Stored Data",(0,i.jsx)("br",{}),"0 = Realtime Data"]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"Id Flag"}),(0,i.jsx)(t.td,{children:"1-bit Unsigned Integer"}),(0,i.jsxs)(t.td,{children:["1 = ID present",(0,i.jsx)("br",{}),"0 = ID not present"]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"CBOR Flag"}),(0,i.jsx)(t.td,{children:"1-bit Unsigned Integer"}),(0,i.jsxs)(t.td,{children:['Only Valid for "JSON/CBOR Packets"',(0,i.jsx)("br",{}),"1 = CBOR Data",(0,i.jsx)("br",{}),"0 = JSON Data"]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"Extra Flag"}),(0,i.jsx)(t.td,{children:"1-bit Unsigned Integer"}),(0,i.jsxs)(t.td,{children:["1 = Extra present",(0,i.jsx)("br",{}),"0 = Extra Not Present (Added COSMOS 5.11)"]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"Received Time Flag"}),(0,i.jsx)(t.td,{children:"1-bit Unsigned Integer"}),(0,i.jsxs)(t.td,{children:["1 = Received Time Present",(0,i.jsx)("br",{}),"0 = No Received Time (Added COSMOS 5.11.0)"]})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"Reserved"}),(0,i.jsx)(t.td,{children:"6-bit Unsigned Integer"}),(0,i.jsx)(t.td,{children:"Reserved for Future expansion. Should be set to 0 if unused."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"Entry Data"}),(0,i.jsx)(t.td,{children:"Variable"}),(0,i.jsx)(t.td,{children:"Unique data based on entry type. See Entry Types Below"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"Id (Optional)"}),(0,i.jsx)(t.td,{children:"32-byte Binary Hash"}),(0,i.jsx)(t.td,{children:"If the ID field is set, this is a binary 256-bit SHA-256 hash uniquely identifying a target configuration or packet configuration"})]})]})]}),"\n",(0,i.jsx)(t.h4,{id:"target-declaration-entry",children:"Target Declaration Entry"}),"\n",(0,i.jsx)(t.p,{children:"Declares the name of a target the first time it is seen when writing the log file."}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Field"}),(0,i.jsx)(t.th,{children:"Data Type"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsx)(t.tbody,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"Target Name"}),(0,i.jsx)(t.td,{children:"Variable-Length ASCII String"}),(0,i.jsx)(t.td,{children:"Target Name"})]})})]}),"\n",(0,i.jsx)(t.h4,{id:"packet-declaration-entry",children:"Packet Declaration Entry"}),"\n",(0,i.jsx)(t.p,{children:"Declares the name of a packet the first time it is seen when writing the log file. References the associated target name by index."}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Field"}),(0,i.jsx)(t.th,{children:"Data Type"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"Target Index"}),(0,i.jsx)(t.td,{children:"16-bit Unsigned Integer"}),(0,i.jsx)(t.td,{children:"Index into a dynamically built table of target names, generated from the order of the target declarations in the file. The first target declaration gets index 0, the second target declaration gets index 1, etc."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"Packet Name"}),(0,i.jsx)(t.td,{children:"Variable-Length ASCII String"}),(0,i.jsx)(t.td,{children:"Packet Name"})]})]})]}),"\n",(0,i.jsx)(t.h4,{id:"raw-packet-and-json-packet-entries",children:"Raw Packet and JSON Packet Entries"}),"\n",(0,i.jsx)(t.p,{children:'Holds the main data for a packet. Raw packets are the data before the COSMOS decommutation phase. "JSON" packets are the data after decommutation. Note that "JSON" packets are now generally stored as CBOR rather than JSON to reduce storage size.'}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Field"}),(0,i.jsx)(t.th,{children:"Data Type"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"Packet Index"}),(0,i.jsx)(t.td,{children:"16-bit Unsigned Integer"}),(0,i.jsx)(t.td,{children:"Index into a dynamically built table of cmd_or_tlm/target name/packet name tuples, generated from the order of the packet declarations in the file. The first packet declaration gets index 0, the second packet declaration gets index 1, etc. This limits the max number of unique packet types in a single file to 65536."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"Packet Timestamp"}),(0,i.jsx)(t.td,{children:"64-bit Unsigned Integer"}),(0,i.jsx)(t.td,{children:"Packet timestamp in nanoseconds from the unix epoch (Jan 1st, 1970, midnight). This field contains the \u201Cpacket time\u201D for both Raw and JSON packet entries (which are used to store decommutated date). For JSON packet entries, the packet received time can also be extracted from the JSON data if needed."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"Received Timestamp (Optional)"}),(0,i.jsx)(t.td,{children:"64-bit Unsigned Integer"}),(0,i.jsx)(t.td,{children:"Only present if Received Time Flag is Set (Only currently in Raw log files). Received timestamp in nanoseconds from the unix epoch (Jan 1st, 1970, midnight). This field contains the received time\u201D for both Raw packet entries (which are used to store decommutated date). For JSON packet entries, the packet received time can be extracted from the JSON data if needed."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"Extra Length (Optional)"}),(0,i.jsx)(t.td,{children:"32-bit Unsigned Integer"}),(0,i.jsx)(t.td,{children:"Only Present if Extra Flag is Set. Length of extra data in bytes not including itself."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"Extra Data (Optional)"}),(0,i.jsx)(t.td,{children:"Variable-Length Block Data"}),(0,i.jsx)(t.td,{children:"Only Present if Extra Flag is Set. CBOR or JSON encoded object of extra data."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"Packet Data"}),(0,i.jsx)(t.td,{children:"Variable-Length Block Data"}),(0,i.jsx)(t.td,{children:"The Raw binary packet data for Raw Packet entries, and ASCII JSON data (or CBOR if flag set) for JSON packet entries. Note the Common Entry Format Id field is not supported with either type of packet entry."})]})]})]}),"\n",(0,i.jsx)(t.h4,{id:"offset-marker-entry",children:"Offset Marker Entry"}),"\n",(0,i.jsx)(t.p,{children:"This contains the Redis stream offset for the last packet stored in this log file. This entry allows for a seamless transition from log files to Redis streams holding the most recent data received by COSMOS."}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Field"}),(0,i.jsx)(t.th,{children:"Data Type"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsx)(t.tbody,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"Offset Marker"}),(0,i.jsx)(t.td,{children:"Variable-Length ASCII String"}),(0,i.jsx)(t.td,{children:"Redis Offset Marker"})]})})]}),"\n",(0,i.jsx)(t.h4,{id:"key-map-entry",children:"Key Map Entry"}),"\n",(0,i.jsx)(t.p,{children:"The key map entry is used to further reduce log file sizes by reducing the size of the names of the decommutated values. Each value is given a numeric name counting up from 0 which drastically reduces decommutated data size. Note: This could be further enhanced in the future by changing to a denser encoding similar to base64. The key map is generated on the first reception of a packet. If future packets have different keys, then the names are used as-is and no reduction is gained. Typically packet keys don't change within a file."}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:"Field"}),(0,i.jsx)(t.th,{children:"Data Type"}),(0,i.jsx)(t.th,{children:"Description"})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"Packet Index"}),(0,i.jsx)(t.td,{children:"16-bit Unsigned Integer"}),(0,i.jsx)(t.td,{children:"Index into a dynamically built table of packet names, generated from the order of the packet declarations in the file. The first packet declaration gets index 0, the second packet declaration gets index 1, etc."})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:"Key Map"}),(0,i.jsx)(t.td,{children:"Variable-Length ASCII String"}),(0,i.jsx)(t.td,{children:"Key Map Data with Mapping from numeric key to actual packet item name"})]})]})]})]})}function o(e={}){let{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},2600:function(e,t,n){n.d(t,{R:()=>d,x:()=>a});var r=n(4041);let i={},s=r.createContext(i);function d(e){let t=r.useContext(s);return r.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:d(e.components),r.createElement(s.Provider,{value:t},e.children)}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunkdocs_openc3_com=self.webpackChunkdocs_openc3_com||[]).push([["5962"],{2635:function(e,t,n){n.r(t),n.d(t,{frontMatter:()=>s,toc:()=>d,default:()=>i,metadata:()=>o,assets:()=>p,contentTitle:()=>c});var o=JSON.parse('{"type":"mdx","permalink":"/tools/staticdocs/markdown-page","source":"@site/src/pages/markdown-page.md","title":"Markdown page example","description":"You don\'t need React to write simple standalone pages.","frontMatter":{"title":"Markdown page example"},"unlisted":false}'),a=n(1085),r=n(2600);let s={title:"Markdown page example"},c="Markdown page example",p={},d=[];function l(e){let t={h1:"h1",header:"header",p:"p",...(0,r.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.header,{children:(0,a.jsx)(t.h1,{id:"markdown-page-example",children:"Markdown page example"})}),"\n",(0,a.jsx)(t.p,{children:"You don't need React to write simple standalone pages."})]})}function i(e={}){let{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(l,{...e})}):l(e)}},2600:function(e,t,n){n.d(t,{R:()=>s,x:()=>c});var o=n(4041);let a={},r=o.createContext(a);function s(e){let t=o.useContext(r);return o.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),o.createElement(r.Provider,{value:t},e.children)}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunkdocs_openc3_com=self.webpackChunkdocs_openc3_com||[]).push([["594"],{3412:function(e,t,n){n.r(t),n.d(t,{frontMatter:()=>a,toc:()=>d,default:()=>h,metadata:()=>i,assets:()=>c,contentTitle:()=>r});var i=JSON.parse('{"id":"introduction","title":"Introduction","description":"This site aims to be a comprehensive guide to OpenC3 COSMOS. We\'ll cover topics such as getting your configuration up and running, developing test and operations scripts, building custom telemetry screens, and give you some advice on participating in the future development of COSMOS itself.","source":"@site/docs/introduction.md","sourceDirName":".","slug":"/","permalink":"/tools/staticdocs/docs/","draft":false,"unlisted":false,"editUrl":"https://github.com/OpenC3/cosmos/tree/main/docs.openc3.com/docs/introduction.md","tags":[],"version":"current","sidebarPosition":0,"frontMatter":{"title":"Introduction","sidebar_position":0,"slug":"/"},"sidebar":"defaultSidebar","next":{"title":"Getting Started","permalink":"/tools/staticdocs/docs/getting-started"}}'),s=n(1085),o=n(2600);let a={title:"Introduction",sidebar_position:0,slug:"/"},r,c={},d=[{value:"So what is COSMOS, exactly?",id:"so-what-is-cosmos-exactly",level:2},{value:"COSMOS Architecture",id:"cosmos-architecture",level:3},{value:"Helpful Hints",id:"helpful-hints",level:2}];function l(e){let t={a:"a",admonition:"admonition",h2:"h2",h3:"h3",img:"img",p:"p",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.p,{children:"This site aims to be a comprehensive guide to OpenC3 COSMOS. We'll cover topics such as getting your configuration up and running, developing test and operations scripts, building custom telemetry screens, and give you some advice on participating in the future development of COSMOS itself."}),"\n",(0,s.jsx)(t.h2,{id:"so-what-is-cosmos-exactly",children:"So what is COSMOS, exactly?"}),"\n",(0,s.jsx)(t.p,{children:"COSMOS is a suite of applications that can be used to control a set of embedded systems. These systems can be anything from test equipment (power supplies, oscilloscopes, switched power strips, UPS devices, etc), to development boards (Arduinos, Raspberry Pi, Beaglebone, etc), to satellites."}),"\n",(0,s.jsx)(t.h3,{id:"cosmos-architecture",children:"COSMOS Architecture"}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"COSMOS Architecture",src:n(5727).A+"",width:"1155",height:"538"})}),"\n",(0,s.jsx)(t.p,{children:"COSMOS 5 is a cloud native, containerized, microservice oriented command and control system. All the COSMOS microservices are docker containers which is why Docker is shown containing the entire COSMOS system. The green boxes on the left represent external embedded systems (Targets) which COSMOS connects to. The Redis data store contains the configuration for all the microservices, the current value table, as well as data streams containing decommutated data. The Minio data store contains plugins, targets, configuration data, text logs as well as binary logs of all the raw, decommutated, and reduced data. Users interact with COSMOS from a web browser which routes through the internal Traefik load balancer."}),"\n",(0,s.jsx)(t.p,{children:"Keep reading for an in-depth discussion of each of the COSMOS Tools."}),"\n",(0,s.jsx)(t.h2,{id:"helpful-hints",children:"Helpful Hints"}),"\n",(0,s.jsx)(t.p,{children:"Throughout this guide there are a number of small-but-handy pieces of\ninformation that can make using COSMOS easier, more interesting, and less\nhazardous. Here's what to look out for."}),"\n",(0,s.jsx)(t.admonition,{title:"ProTips\u2122 help you get more from COSMOS",type:"note",children:(0,s.jsx)(t.p,{children:"These are tips and tricks that will help you be a COSMOS wizard!"})}),"\n",(0,s.jsx)(t.admonition,{title:"Notes are handy pieces of information",type:"info",children:(0,s.jsx)(t.p,{children:"These are for the extra tidbits sometimes necessary to understand COSMOS."})}),"\n",(0,s.jsx)(t.admonition,{title:"Warnings help you not blow things up",type:"warning",children:(0,s.jsx)(t.p,{children:"Be aware of these messages if you wish to avoid certain death."})}),"\n",(0,s.jsx)(t.admonition,{title:"Find a problem in the documentation or in COSMOS itself?",type:"note",children:(0,s.jsxs)(t.p,{children:["Both using and hacking on COSMOS should be fun, simple, and easy, so if for\nsome reason you find it's a pain, please ",(0,s.jsx)(t.a,{href:"https://github.com/OpenC3/cosmos/issues/new/choose",children:"create an issue"})," on\nGitHub describing your experience so we can make it better."]})})]})}function h(e={}){let{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},5727:function(e,t,n){n.d(t,{A:()=>i});let i=n.p+"assets/images/architecture-b78f12eba076a0c07af7abdd9dd4187c59aa6b4f5c51b47ad03f73e9f98a6ed6.png"},2600:function(e,t,n){n.d(t,{R:()=>a,x:()=>r});var i=n(4041);let s={},o=i.createContext(s);function a(e){let t=i.useContext(o);return i.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),i.createElement(o.Provider,{value:t},e.children)}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunkdocs_openc3_com=self.webpackChunkdocs_openc3_com||[]).push([["7564"],{9950:function(e,t,o){o.r(t),o.d(t,{frontMatter:()=>i,toc:()=>d,default:()=>l,metadata:()=>s,assets:()=>r,contentTitle:()=>c});var s=JSON.parse('{"id":"tools/command-history","title":"Command History (Enterprise)","description":"See all the commands sent, by whom, and if successful","source":"@site/docs/tools/command-history.md","sourceDirName":"tools","slug":"/tools/command-history","permalink":"/tools/staticdocs/docs/tools/command-history","draft":false,"unlisted":false,"editUrl":"https://github.com/OpenC3/cosmos/tree/main/docs.openc3.com/docs/tools/command-history.md","tags":[],"version":"current","frontMatter":{"title":"Command History (Enterprise)","description":"See all the commands sent, by whom, and if successful","sidebar_custom_props":{"myEmoji":"\u{1F4CB}"}},"sidebar":"defaultSidebar","previous":{"title":"Command and Telemetry Server","permalink":"/tools/staticdocs/docs/tools/cmd-tlm-server"},"next":{"title":"Command Queue (Enterprise)","permalink":"/tools/staticdocs/docs/tools/command-queue"}}'),n=o(1085),a=o(2600);let i={title:"Command History (Enterprise)",description:"See all the commands sent, by whom, and if successful",sidebar_custom_props:{myEmoji:"\u{1F4CB}"}},c,r={},d=[{value:"Introduction",id:"introduction",level:2},{value:"Selecting Time",id:"selecting-time",level:3},{value:"Commands Table",id:"commands-table",level:2}];function m(e){let t={a:"a",h2:"h2",h3:"h3",img:"img",p:"p",...(0,a.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h2,{id:"introduction",children:"Introduction"}),"\n",(0,n.jsx)(t.p,{children:"Command History provides the ability to see all the commands sent in COSMOS. Commands are listed in time execution order and include who sent the command and whether they were successful (if validated)."}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Command History",src:o(2209).A+"",width:"2878",height:"1660"})}),"\n",(0,n.jsx)(t.h3,{id:"selecting-time",children:"Selecting Time"}),"\n",(0,n.jsx)(t.p,{children:"By default, Command History displays the last hour of commands and then continues streaming commands as they are sent. You can select a different time range using the start date / time and end date / time choosers."}),"\n",(0,n.jsx)(t.h2,{id:"commands-table",children:"Commands Table"}),"\n",(0,n.jsx)(t.p,{children:"The commands table is sorted by Time and list the User (or process), the Command, the Result and an optional Description."}),"\n",(0,n.jsx)(t.p,{children:"As shown above, the User can be an actual user in the system (admin, operator) or a background process (DEFAULT__MULTI__INST, DEFAULT__DECOM__INST2)."}),"\n",(0,n.jsxs)(t.p,{children:["The Result field is the result of executing Command Validators established by the ",(0,n.jsx)(t.a,{href:"../configuration/command#validator",children:"VALIDATOR"})," keyword. Command Validators are either a Ruby or Python class which is used to validate the command success or failure with both a pre_check and post_check method. Usually when a command fails, a description is given as in the example above."]}),"\n",(0,n.jsxs)(t.p,{children:["For more information read the ",(0,n.jsx)(t.a,{href:"../configuration/command#validator",children:"VALIDATOR"})," documentation and also see the ",(0,n.jsx)(t.a,{href:"https://github.com/OpenC3/cosmos/blob/main/openc3-cosmos-init/plugins/packages/openc3-cosmos-demo/targets/INST/lib/inst_cmd_validator.rb",children:"Ruby Example"})," and the ",(0,n.jsx)(t.a,{href:"https://github.com/OpenC3/cosmos/blob/main/openc3-cosmos-init/plugins/packages/openc3-cosmos-demo/targets/INST2/lib/inst2_cmd_validator.py",children:"Python Example"})," in the ",(0,n.jsx)(t.a,{href:"https://github.com/OpenC3/cosmos/tree/main/openc3-cosmos-init/plugins/packages/openc3-cosmos-demo",children:"COSMOS Demo"}),"."]})]})}function l(e={}){let{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(m,{...e})}):m(e)}},2209:function(e,t,o){o.d(t,{A:()=>s});let s=o.p+"assets/images/command_history-ecc9b618661ad0aefa0700047a8ab3b094372f2aa427e9fcd270dcd352a30408.png"},2600:function(e,t,o){o.d(t,{R:()=>i,x:()=>c});var s=o(4041);let n={},a=s.createContext(n);function i(e){let t=s.useContext(a);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),s.createElement(a.Provider,{value:t},e.children)}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunkdocs_openc3_com=self.webpackChunkdocs_openc3_com||[]).push([["3320"],{8654:function(e,t,i){i.r(t),i.d(t,{frontMatter:()=>o,toc:()=>d,default:()=>g,metadata:()=>n,assets:()=>c,contentTitle:()=>s});var n=JSON.parse('{"id":"tools/autonomic","title":"Autonomic (Enterprise)","description":"Automated execution of commands and scripts","source":"@site/docs/tools/autonomic.md","sourceDirName":"tools","slug":"/tools/autonomic","permalink":"/tools/staticdocs/docs/tools/autonomic","draft":false,"unlisted":false,"editUrl":"https://github.com/OpenC3/cosmos/tree/main/docs.openc3.com/docs/tools/autonomic.md","tags":[],"version":"current","frontMatter":{"title":"Autonomic (Enterprise)","description":"Automated execution of commands and scripts","sidebar_custom_props":{"myEmoji":"\u{1F916}"}},"sidebar":"defaultSidebar","previous":{"title":"Admin","permalink":"/tools/staticdocs/docs/tools/admin"},"next":{"title":"Bucket Explorer","permalink":"/tools/staticdocs/docs/tools/bucket-explorer"}}'),r=i(1085),a=i(2600);let o={title:"Autonomic (Enterprise)",description:"Automated execution of commands and scripts",sidebar_custom_props:{myEmoji:"\u{1F916}"}},s,c={},d=[{value:"Introduction",id:"introduction",level:2},{value:"Overview",id:"overview",level:3},{value:"TriggerGroups",id:"triggergroups",level:3},{value:"Triggers",id:"triggers",level:3},{value:"Reactions",id:"reactions",level:3}];function l(e){let t={admonition:"admonition",h2:"h2",h3:"h3",img:"img",p:"p",...(0,a.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.h2,{id:"introduction",children:"Introduction"}),"\n",(0,r.jsx)(t.p,{children:"Autonomic allows for the automated execution of commands and scripts based on user-defined rules."}),"\n",(0,r.jsx)(t.h3,{id:"overview",children:"Overview"}),"\n",(0,r.jsx)(t.p,{children:"Autonomic operates with some basic building blocks: Trigger Groups, Triggers, and Reactions. Triggers are simply logical blocks which evaluate true or false. Reactions can be linked to one or many Triggers and specify an action to perform. Together they allow for an action to be taken based on anything going on in your system."}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Autonomic",src:i(9477).A+"",width:"1266",height:"599"})}),"\n",(0,r.jsx)(t.h3,{id:"triggergroups",children:"TriggerGroups"}),"\n",(0,r.jsx)(t.p,{children:"Triggers are organized into groups, these groups are both for organization and to ensure that we can scale. It also allows triggers to be evaluated independently and simultaneously and can be useful for overlapping or high priority triggers. However, each trigger group spawns system resources so they should only be created as needed."}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"TriggerGroups",src:i(3081).A+"",width:"349",height:"99"})}),"\n",(0,r.jsx)(t.h3,{id:"triggers",children:"Triggers"}),"\n",(0,r.jsx)(t.p,{children:'Triggers are logical components that are evaluated to true or false. Creating a trigger is like specifying an equation to evaluate. The trigger creation dialog specifies the Trigger Group which owns the trigger and the "left operand". This can be a telemetry item or an existing trigger.'}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"CreateTrigger1",src:i(3853).A+"",width:"648",height:"779"})}),"\n",(0,r.jsx)(t.p,{children:'Once you\'ve chosen the "left operand" you need to choose the operator.'}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"CreateTrigger2",src:i(2481).A+"",width:"648",height:"653"})}),"\n",(0,r.jsx)(t.p,{children:'Finally you choose the "right operand" which in this case is a simple value.'}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"CreateTrigger3",src:i(4088).A+"",width:"648",height:"715"})}),"\n",(0,r.jsx)(t.p,{children:"After the trigger is created it is displayed in Autonomic and waits to be activated by the given logic. Active triggers are highlighted in the list."}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"CreateTrigger3",src:i(578).A+"",width:"1268",height:"607"})}),"\n",(0,r.jsx)(t.p,{children:"Triggers can also be manually disabled and enabled by clicking the plug icon."}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"CreateTrigger3",src:i(1337).A+"",width:"1268",height:"715"})}),"\n",(0,r.jsx)(t.p,{children:"Note in the above screenshot the Events which track everything about the trigger."}),"\n",(0,r.jsx)(t.h3,{id:"reactions",children:"Reactions"}),"\n",(0,r.jsx)(t.p,{children:"Reactions wait for triggers to be evaluated to true and perform actions such as sending a command or running a script. Reactions can not exist without a corresponding trigger. The reaction creation dialog specifies whether to treat the trigger as an Edge or Level. It then allows you to select which trigger(s) the reaction will react to. Selecting multiple triggers allows any of the triggers to trigger the reaction (Note: Creating a reaction which responds to Trigger A AND Trigger B is done by creating additional triggers)."}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"CreateReaction1",src:i(2021).A+"",width:"602",height:"574"})}),"\n",(0,r.jsx)(t.p,{children:"After the triggers are specified, the dialog prompts for the actions to take. You can either send a command, run a script, or simply push a notification. Commands and scripts can also optionally push a notification. In this example a script is specified with a notification at the WARN level."}),"\n",(0,r.jsx)(t.admonition,{title:"Spawning Scripts",type:"warning",children:(0,r.jsx)(t.p,{children:"Be aware of how and when you spawn scripts and whether they are running to completion. Spawning a faulty script can lead to many unfinished scripts consuming resources."})}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"CreateReaction2",src:i(222).A+"",width:"602",height:"634"})}),"\n",(0,r.jsx)(t.p,{children:"Finally the snooze setting is specified. Snooze is the number of seconds after the reaction runs before the reaction will be allowed to run again. This is especially important in Level triggers where if the trigger remains active the reaction can run continuously."}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"CreateReaction3",src:i(3239).A+"",width:"602",height:"391"})}),"\n",(0,r.jsx)(t.p,{children:"Once the reaction is created it is listed in the interface."}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"InitialReaction",src:i(2828).A+"",width:"1271",height:"617"})}),"\n",(0,r.jsx)(t.p,{children:'When the reaction runs the "State" changes to the snooze icon and the "Snooze Until" is updated to indicate the reaction is waiting before being allowed to run again.'}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"SnoozedReaction",src:i(5394).A+"",width:"1271",height:"742"})})]})}function g(e={}){let{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},9477:function(e,t,i){i.d(t,{A:()=>n});let n=i.p+"assets/images/autonomic-a2118149a079f587f8f373d61f65d4d6d5e4b3df41ec5446362a449a3b51a1b3.png"},2021:function(e,t,i){i.d(t,{A:()=>n});let n=i.p+"assets/images/create_reaction1-a07e04677c269cb3eb5edd13bc7504ed6ba4c94f6a60d2b14a33680470d376fe.png"},222:function(e,t,i){i.d(t,{A:()=>n});let n=i.p+"assets/images/create_reaction2-63e4e9ddf06a2e8bc9911395162b5a05772f0756e8b0998bcecae64cf86c398e.png"},3239:function(e,t,i){i.d(t,{A:()=>n});let n=i.p+"assets/images/create_reaction3-bae25e33640193d3dbbfbbfce6691479ccde16f73dbb3f0dc3023b7006259baa.png"},3853:function(e,t,i){i.d(t,{A:()=>n});let n=i.p+"assets/images/create_trigger1-5e2f7ecf9ec2b7590aaa65503f48cd73549fea64f52e6c103370a408528538f6.png"},2481:function(e,t,i){i.d(t,{A:()=>n});let n=i.p+"assets/images/create_trigger2-edf2c2e6aa78a2e317e07e1cdec560dfcbbd147934630459507695c71d539f3b.png"},4088:function(e,t,i){i.d(t,{A:()=>n});let n=i.p+"assets/images/create_trigger3-e63629173ae73bbfd78b53062061336db8ea92ba4542b9a93412d8ac6ed19e7a.png"},1337:function(e,t,i){i.d(t,{A:()=>n});let n=i.p+"assets/images/disable_trigger-f5bb46fbc488bd4afcb27b21888de16816485d3e4fdbd4106b874ff06042f85b.png"},578:function(e,t,i){i.d(t,{A:()=>n});let n=i.p+"assets/images/enabled_trigger-86ce16c7294d4b954ec8b68ff344694093ed5f451fc5974f855f438557148518.png"},2828:function(e,t,i){i.d(t,{A:()=>n});let n=i.p+"assets/images/initial_reaction-ce5d498a90cdd5a11e24471d277ed7fcb4eecc5dcaaf05220102a3178db0805e.png"},5394:function(e,t,i){i.d(t,{A:()=>n});let n=i.p+"assets/images/snoozed_reaction-75ef2acab11a71f5827fbc0a1be95cf0fd6bd5b24b76f9ae6ebaf43fb293ba81.png"},3081:function(e,t,i){i.d(t,{A:()=>n});let n=i.p+"assets/images/trigger_groups-6d9ccc6962029baa456f2d12de0fd3d03e1dbafdbf069cea65886296d2b2bde0.png"},2600:function(e,t,i){i.d(t,{R:()=>o,x:()=>s});var n=i(4041);let r={},a=n.createContext(r);function o(e){let t=n.useContext(a);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),n.createElement(a.Provider,{value:t},e.children)}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunkdocs_openc3_com=self.webpackChunkdocs_openc3_com||[]).push([["1085"],{1804:function(c,e,o){o.r(e)}}]);