@stlite/desktop 0.21.2 → 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/README.md +11 -2
  2. package/build/asset-manifest.json +93 -93
  3. package/build/electron/main.js +60 -10
  4. package/build/index.html +1 -1
  5. package/build/static/css/{6.03f87ee7.chunk.css → 6.69790b96.chunk.css} +1 -1
  6. package/build/static/css/{main.b6e9910c.chunk.css → main.7bc75681.chunk.css} +1 -1
  7. package/build/static/js/{0.db2b8db1.chunk.js → 0.14aa4233.chunk.js} +1 -1
  8. package/build/static/js/{1.d8a95919.chunk.js → 1.176aded5.chunk.js} +1 -1
  9. package/build/static/js/{10.dae52f04.chunk.js → 10.e5ea6d64.chunk.js} +1 -1
  10. package/build/static/js/{11.9fe45850.chunk.js → 11.5e15526e.chunk.js} +2 -2
  11. package/build/static/js/{11.9fe45850.chunk.js.LICENSE.txt → 11.5e15526e.chunk.js.LICENSE.txt} +0 -0
  12. package/build/static/js/{12.209a1965.chunk.js → 12.8105987b.chunk.js} +2 -2
  13. package/build/static/js/{12.209a1965.chunk.js.LICENSE.txt → 12.8105987b.chunk.js.LICENSE.txt} +0 -0
  14. package/build/static/js/{13.a3dda2ea.chunk.js → 13.6f270c1f.chunk.js} +2 -2
  15. package/build/static/js/{13.a3dda2ea.chunk.js.LICENSE.txt → 13.6f270c1f.chunk.js.LICENSE.txt} +0 -0
  16. package/build/static/js/{14.86cd17bd.chunk.js → 14.3da5e7a9.chunk.js} +1 -1
  17. package/build/static/js/{15.1bdac30d.chunk.js → 15.91a85aa0.chunk.js} +2 -2
  18. package/build/static/js/{15.1bdac30d.chunk.js.LICENSE.txt → 15.91a85aa0.chunk.js.LICENSE.txt} +0 -0
  19. package/build/static/js/{16.be849095.chunk.js → 16.650490ee.chunk.js} +2 -2
  20. package/build/static/js/{16.be849095.chunk.js.LICENSE.txt → 16.650490ee.chunk.js.LICENSE.txt} +0 -0
  21. package/build/static/js/{17.cc750fa1.chunk.js → 17.4c6481b3.chunk.js} +1 -1
  22. package/build/static/js/{18.5007c118.chunk.js → 18.e3d4364d.chunk.js} +2 -2
  23. package/build/static/js/{18.5007c118.chunk.js.LICENSE.txt → 18.e3d4364d.chunk.js.LICENSE.txt} +0 -0
  24. package/build/static/js/{19.1d97adb1.chunk.js → 19.9004a138.chunk.js} +3 -3
  25. package/build/static/js/{19.1d97adb1.chunk.js.LICENSE.txt → 19.9004a138.chunk.js.LICENSE.txt} +0 -0
  26. package/build/static/js/{2.42f468c9.chunk.js → 2.26deed5e.chunk.js} +2 -2
  27. package/build/static/js/{2.42f468c9.chunk.js.LICENSE.txt → 2.26deed5e.chunk.js.LICENSE.txt} +0 -0
  28. package/build/static/js/{20.d86738b4.chunk.js → 20.1e287e6d.chunk.js} +1 -1
  29. package/build/static/js/{21.8fca1019.chunk.js → 21.cc58bd99.chunk.js} +1 -1
  30. package/build/static/js/{22.d22eb326.chunk.js → 22.fe58abe1.chunk.js} +2 -2
  31. package/build/static/js/{22.d22eb326.chunk.js.LICENSE.txt → 22.fe58abe1.chunk.js.LICENSE.txt} +0 -0
  32. package/build/static/js/{23.703a0005.chunk.js → 23.ee721415.chunk.js} +3 -3
  33. package/build/static/js/{23.703a0005.chunk.js.LICENSE.txt → 23.ee721415.chunk.js.LICENSE.txt} +0 -0
  34. package/build/static/js/{24.bbdd8ad5.chunk.js → 24.36b10d26.chunk.js} +2 -2
  35. package/build/static/js/{24.bbdd8ad5.chunk.js.LICENSE.txt → 24.36b10d26.chunk.js.LICENSE.txt} +0 -0
  36. package/build/static/js/{25.7a13965c.chunk.js → 25.edf85627.chunk.js} +2 -2
  37. package/build/static/js/{25.7a13965c.chunk.js.LICENSE.txt → 25.edf85627.chunk.js.LICENSE.txt} +0 -0
  38. package/build/static/js/{26.5d02767c.chunk.js → 26.99f3cc19.chunk.js} +2 -2
  39. package/build/static/js/{26.5d02767c.chunk.js.LICENSE.txt → 26.99f3cc19.chunk.js.LICENSE.txt} +0 -0
  40. package/build/static/js/{27.a1975825.chunk.js → 27.d7aacc94.chunk.js} +2 -2
  41. package/build/static/js/{27.a1975825.chunk.js.LICENSE.txt → 27.d7aacc94.chunk.js.LICENSE.txt} +0 -0
  42. package/build/static/js/{28.8fe6cf95.chunk.js → 28.d24eb9cf.chunk.js} +3 -3
  43. package/build/static/js/{28.8fe6cf95.chunk.js.LICENSE.txt → 28.d24eb9cf.chunk.js.LICENSE.txt} +0 -0
  44. package/build/static/js/{29.2a3ece9e.chunk.js → 29.fbb528d8.chunk.js} +2 -2
  45. package/build/static/js/{29.2a3ece9e.chunk.js.LICENSE.txt → 29.fbb528d8.chunk.js.LICENSE.txt} +0 -0
  46. package/build/static/js/{3.82223a8f.chunk.js → 3.f4fb8871.chunk.js} +1 -1
  47. package/build/static/js/{30.99b51097.chunk.js → 30.32ab2cb4.chunk.js} +2 -2
  48. package/build/static/js/{30.99b51097.chunk.js.LICENSE.txt → 30.32ab2cb4.chunk.js.LICENSE.txt} +0 -0
  49. package/build/static/js/{31.ff33aa2d.chunk.js → 31.9c06312e.chunk.js} +2 -2
  50. package/build/static/js/{31.ff33aa2d.chunk.js.LICENSE.txt → 31.9c06312e.chunk.js.LICENSE.txt} +0 -0
  51. package/build/static/js/{32.a0448bd6.chunk.js → 32.a1f2009d.chunk.js} +2 -2
  52. package/build/static/js/{32.a0448bd6.chunk.js.LICENSE.txt → 32.a1f2009d.chunk.js.LICENSE.txt} +0 -0
  53. package/build/static/js/{33.4e785a88.chunk.js → 33.1d5fce1c.chunk.js} +2 -2
  54. package/build/static/js/{33.4e785a88.chunk.js.LICENSE.txt → 33.1d5fce1c.chunk.js.LICENSE.txt} +0 -0
  55. package/build/static/js/{34.a91bbe12.chunk.js → 34.edb9c338.chunk.js} +2 -2
  56. package/build/static/js/{34.a91bbe12.chunk.js.LICENSE.txt → 34.edb9c338.chunk.js.LICENSE.txt} +0 -0
  57. package/build/static/js/{35.d2720d0c.chunk.js → 35.6bd7c1ed.chunk.js} +2 -2
  58. package/build/static/js/{35.d2720d0c.chunk.js.LICENSE.txt → 35.6bd7c1ed.chunk.js.LICENSE.txt} +0 -0
  59. package/build/static/js/{36.19b6ded6.chunk.js → 36.be12d12e.chunk.js} +2 -2
  60. package/build/static/js/{36.19b6ded6.chunk.js.LICENSE.txt → 36.be12d12e.chunk.js.LICENSE.txt} +0 -0
  61. package/build/static/js/{37.c8ade714.chunk.js → 37.b845d4ba.chunk.js} +2 -2
  62. package/build/static/js/{37.c8ade714.chunk.js.LICENSE.txt → 37.b845d4ba.chunk.js.LICENSE.txt} +0 -0
  63. package/build/static/js/{38.a8e76ebd.chunk.js → 38.0e8cfb78.chunk.js} +2 -2
  64. package/build/static/js/{38.a8e76ebd.chunk.js.LICENSE.txt → 38.0e8cfb78.chunk.js.LICENSE.txt} +0 -0
  65. package/build/static/js/{39.815183b5.chunk.js → 39.73c851be.chunk.js} +2 -2
  66. package/build/static/js/{39.815183b5.chunk.js.LICENSE.txt → 39.73c851be.chunk.js.LICENSE.txt} +0 -0
  67. package/build/static/js/{40.5e639584.chunk.js → 40.1fc38a50.chunk.js} +2 -2
  68. package/build/static/js/{40.5e639584.chunk.js.LICENSE.txt → 40.1fc38a50.chunk.js.LICENSE.txt} +0 -0
  69. package/build/static/js/{41.1811bda2.chunk.js → 41.4ddf36bc.chunk.js} +2 -2
  70. package/build/static/js/{41.1811bda2.chunk.js.LICENSE.txt → 41.4ddf36bc.chunk.js.LICENSE.txt} +0 -0
  71. package/build/static/js/{42.ccc87d41.chunk.js → 42.e5620440.chunk.js} +2 -2
  72. package/build/static/js/{42.ccc87d41.chunk.js.LICENSE.txt → 42.e5620440.chunk.js.LICENSE.txt} +0 -0
  73. package/build/static/js/{43.dd888752.chunk.js → 43.44eb58de.chunk.js} +2 -2
  74. package/build/static/js/{43.dd888752.chunk.js.LICENSE.txt → 43.44eb58de.chunk.js.LICENSE.txt} +0 -0
  75. package/build/static/js/{44.14f2e50d.chunk.js → 44.35b43369.chunk.js} +2 -2
  76. package/build/static/js/{44.14f2e50d.chunk.js.LICENSE.txt → 44.35b43369.chunk.js.LICENSE.txt} +0 -0
  77. package/build/static/js/{45.61ea1afe.chunk.js → 45.91664b3c.chunk.js} +2 -2
  78. package/build/static/js/{45.61ea1afe.chunk.js.LICENSE.txt → 45.91664b3c.chunk.js.LICENSE.txt} +0 -0
  79. package/build/static/js/{46.3201e0ba.chunk.js → 46.e9639103.chunk.js} +2 -2
  80. package/build/static/js/{46.3201e0ba.chunk.js.LICENSE.txt → 46.e9639103.chunk.js.LICENSE.txt} +0 -0
  81. package/build/static/js/{47.f6442eb9.chunk.js → 47.77b33a34.chunk.js} +2 -2
  82. package/build/static/js/{47.f6442eb9.chunk.js.LICENSE.txt → 47.77b33a34.chunk.js.LICENSE.txt} +0 -0
  83. package/build/static/js/6.8496e815.chunk.js +2 -0
  84. package/build/static/js/{6.cfeb0558.chunk.js.LICENSE.txt → 6.8496e815.chunk.js.LICENSE.txt} +0 -0
  85. package/build/static/js/{7.e179a232.chunk.js → 7.54bbd037.chunk.js} +2 -2
  86. package/build/static/js/{7.e179a232.chunk.js.LICENSE.txt → 7.54bbd037.chunk.js.LICENSE.txt} +0 -0
  87. package/build/static/js/{8.89ddb52f.chunk.js → 8.934b1bbd.chunk.js} +2 -2
  88. package/build/static/js/{8.89ddb52f.chunk.js.LICENSE.txt → 8.934b1bbd.chunk.js.LICENSE.txt} +0 -0
  89. package/build/static/js/{9.ea63c205.chunk.js → 9.8ff376a2.chunk.js} +1 -1
  90. package/build/static/js/main.118127a6.chunk.js +28 -0
  91. package/build/static/js/{main.984ac8f5.chunk.js.LICENSE.txt → main.118127a6.chunk.js.LICENSE.txt} +0 -0
  92. package/build/static/js/runtime-main.fe933feb.js +1 -0
  93. package/package.json +7 -5
  94. package/build/static/js/6.cfeb0558.chunk.js +0 -2
  95. package/build/static/js/main.984ac8f5.chunk.js +0 -28
  96. package/build/static/js/runtime-main.bae92e60.js +0 -1
package/README.md CHANGED
@@ -25,8 +25,8 @@ Convert your [Streamlit](https://streamlit.io/) application into a desktop app w
25
25
  },
26
26
  "devDependencies": {
27
27
  "@stlite/desktop": "^0.21.0",
28
- "electron": "20.2.0",
29
- "electron-builder": "^23.3.3"
28
+ "electron": "^22.0.0",
29
+ "electron-builder": "^23.6.0"
30
30
  }
31
31
  }
32
32
  ```
@@ -49,3 +49,12 @@ Convert your [Streamlit](https://streamlit.io/) application into a desktop app w
49
49
  - This command is just a wrapper of `electron` command as you can see at the `"scripts"` field in the `package.json`. It launches Electron and starts the app with `./build/electron/main.js`, which is specified at the `"main"` field in the `package.json`.
50
50
  9. Run `npm run dist` or `yarn dist` for packaging.
51
51
  - This command bundles the `./build` directory created in the step above into application files (`.app`, `.exe`, `.dmg` etc.) in the `./dist` directory. To customize the built app, e.g. setting the icon, follow the [`electron-builder`](https://www.electron.build/) instructions.
52
+
53
+ ## Use the latest version of Electron
54
+
55
+ To make your app secure, be sure to use the latest version of Electron.
56
+ This is [announced](https://www.electronjs.org/docs/latest/tutorial/security#16-use-a-current-version-of-electron) as one of the security best practices in the Electron document too.
57
+
58
+ ## Limitations
59
+
60
+ - Navigation to external resources like `st.markdown("[link](https://streamlit.io/)")` does not work for security. See https://github.com/whitphx/stlite/pull/445 and let us know if you have use cases where you have to use such external links.
@@ -1,99 +1,99 @@
1
1
  {
2
2
  "files": {
3
- "static/js/0.db2b8db1.chunk.js": "/static/js/0.db2b8db1.chunk.js",
4
- "static/js/1.d8a95919.chunk.js": "/static/js/1.d8a95919.chunk.js",
5
- "static/js/2.42f468c9.chunk.js": "/static/js/2.42f468c9.chunk.js",
6
- "static/js/3.82223a8f.chunk.js": "/static/js/3.82223a8f.chunk.js",
7
- "main.css": "/static/css/main.b6e9910c.chunk.css",
8
- "main.js": "/static/js/main.984ac8f5.chunk.js",
9
- "runtime-main.js": "/static/js/runtime-main.bae92e60.js",
10
- "static/css/6.03f87ee7.chunk.css": "/static/css/6.03f87ee7.chunk.css",
11
- "static/js/6.cfeb0558.chunk.js": "/static/js/6.cfeb0558.chunk.js",
3
+ "static/js/0.14aa4233.chunk.js": "/static/js/0.14aa4233.chunk.js",
4
+ "static/js/1.176aded5.chunk.js": "/static/js/1.176aded5.chunk.js",
5
+ "static/js/2.26deed5e.chunk.js": "/static/js/2.26deed5e.chunk.js",
6
+ "static/js/3.f4fb8871.chunk.js": "/static/js/3.f4fb8871.chunk.js",
7
+ "main.css": "/static/css/main.7bc75681.chunk.css",
8
+ "main.js": "/static/js/main.118127a6.chunk.js",
9
+ "runtime-main.js": "/static/js/runtime-main.fe933feb.js",
10
+ "static/css/6.69790b96.chunk.css": "/static/css/6.69790b96.chunk.css",
11
+ "static/js/6.8496e815.chunk.js": "/static/js/6.8496e815.chunk.js",
12
12
  "static/css/7.3d0f8b8b.chunk.css": "/static/css/7.3d0f8b8b.chunk.css",
13
- "static/js/7.e179a232.chunk.js": "/static/js/7.e179a232.chunk.js",
14
- "static/js/8.89ddb52f.chunk.js": "/static/js/8.89ddb52f.chunk.js",
15
- "static/js/9.ea63c205.chunk.js": "/static/js/9.ea63c205.chunk.js",
13
+ "static/js/7.54bbd037.chunk.js": "/static/js/7.54bbd037.chunk.js",
14
+ "static/js/8.934b1bbd.chunk.js": "/static/js/8.934b1bbd.chunk.js",
15
+ "static/js/9.8ff376a2.chunk.js": "/static/js/9.8ff376a2.chunk.js",
16
16
  "static/css/10.fd9811dd.chunk.css": "/static/css/10.fd9811dd.chunk.css",
17
- "static/js/10.dae52f04.chunk.js": "/static/js/10.dae52f04.chunk.js",
18
- "static/js/11.9fe45850.chunk.js": "/static/js/11.9fe45850.chunk.js",
19
- "static/js/12.209a1965.chunk.js": "/static/js/12.209a1965.chunk.js",
20
- "static/js/13.a3dda2ea.chunk.js": "/static/js/13.a3dda2ea.chunk.js",
21
- "static/js/14.86cd17bd.chunk.js": "/static/js/14.86cd17bd.chunk.js",
22
- "static/js/15.1bdac30d.chunk.js": "/static/js/15.1bdac30d.chunk.js",
23
- "static/js/16.be849095.chunk.js": "/static/js/16.be849095.chunk.js",
24
- "static/js/17.cc750fa1.chunk.js": "/static/js/17.cc750fa1.chunk.js",
25
- "static/js/18.5007c118.chunk.js": "/static/js/18.5007c118.chunk.js",
26
- "static/js/19.1d97adb1.chunk.js": "/static/js/19.1d97adb1.chunk.js",
27
- "static/js/20.d86738b4.chunk.js": "/static/js/20.d86738b4.chunk.js",
28
- "static/js/21.8fca1019.chunk.js": "/static/js/21.8fca1019.chunk.js",
29
- "static/js/22.d22eb326.chunk.js": "/static/js/22.d22eb326.chunk.js",
30
- "static/js/23.703a0005.chunk.js": "/static/js/23.703a0005.chunk.js",
31
- "static/js/24.bbdd8ad5.chunk.js": "/static/js/24.bbdd8ad5.chunk.js",
32
- "static/js/25.7a13965c.chunk.js": "/static/js/25.7a13965c.chunk.js",
33
- "static/js/26.5d02767c.chunk.js": "/static/js/26.5d02767c.chunk.js",
34
- "static/js/27.a1975825.chunk.js": "/static/js/27.a1975825.chunk.js",
35
- "static/js/28.8fe6cf95.chunk.js": "/static/js/28.8fe6cf95.chunk.js",
36
- "static/js/29.2a3ece9e.chunk.js": "/static/js/29.2a3ece9e.chunk.js",
37
- "static/js/30.99b51097.chunk.js": "/static/js/30.99b51097.chunk.js",
38
- "static/js/31.ff33aa2d.chunk.js": "/static/js/31.ff33aa2d.chunk.js",
39
- "static/js/32.a0448bd6.chunk.js": "/static/js/32.a0448bd6.chunk.js",
40
- "static/js/33.4e785a88.chunk.js": "/static/js/33.4e785a88.chunk.js",
41
- "static/js/34.a91bbe12.chunk.js": "/static/js/34.a91bbe12.chunk.js",
42
- "static/js/35.d2720d0c.chunk.js": "/static/js/35.d2720d0c.chunk.js",
43
- "static/js/36.19b6ded6.chunk.js": "/static/js/36.19b6ded6.chunk.js",
44
- "static/js/37.c8ade714.chunk.js": "/static/js/37.c8ade714.chunk.js",
45
- "static/js/38.a8e76ebd.chunk.js": "/static/js/38.a8e76ebd.chunk.js",
46
- "static/js/39.815183b5.chunk.js": "/static/js/39.815183b5.chunk.js",
47
- "static/js/40.5e639584.chunk.js": "/static/js/40.5e639584.chunk.js",
48
- "static/js/41.1811bda2.chunk.js": "/static/js/41.1811bda2.chunk.js",
49
- "static/js/42.ccc87d41.chunk.js": "/static/js/42.ccc87d41.chunk.js",
50
- "static/js/43.dd888752.chunk.js": "/static/js/43.dd888752.chunk.js",
51
- "static/js/44.14f2e50d.chunk.js": "/static/js/44.14f2e50d.chunk.js",
52
- "static/js/45.61ea1afe.chunk.js": "/static/js/45.61ea1afe.chunk.js",
53
- "static/js/46.3201e0ba.chunk.js": "/static/js/46.3201e0ba.chunk.js",
54
- "static/js/47.f6442eb9.chunk.js": "/static/js/47.f6442eb9.chunk.js",
17
+ "static/js/10.e5ea6d64.chunk.js": "/static/js/10.e5ea6d64.chunk.js",
18
+ "static/js/11.5e15526e.chunk.js": "/static/js/11.5e15526e.chunk.js",
19
+ "static/js/12.8105987b.chunk.js": "/static/js/12.8105987b.chunk.js",
20
+ "static/js/13.6f270c1f.chunk.js": "/static/js/13.6f270c1f.chunk.js",
21
+ "static/js/14.3da5e7a9.chunk.js": "/static/js/14.3da5e7a9.chunk.js",
22
+ "static/js/15.91a85aa0.chunk.js": "/static/js/15.91a85aa0.chunk.js",
23
+ "static/js/16.650490ee.chunk.js": "/static/js/16.650490ee.chunk.js",
24
+ "static/js/17.4c6481b3.chunk.js": "/static/js/17.4c6481b3.chunk.js",
25
+ "static/js/18.e3d4364d.chunk.js": "/static/js/18.e3d4364d.chunk.js",
26
+ "static/js/19.9004a138.chunk.js": "/static/js/19.9004a138.chunk.js",
27
+ "static/js/20.1e287e6d.chunk.js": "/static/js/20.1e287e6d.chunk.js",
28
+ "static/js/21.cc58bd99.chunk.js": "/static/js/21.cc58bd99.chunk.js",
29
+ "static/js/22.fe58abe1.chunk.js": "/static/js/22.fe58abe1.chunk.js",
30
+ "static/js/23.ee721415.chunk.js": "/static/js/23.ee721415.chunk.js",
31
+ "static/js/24.36b10d26.chunk.js": "/static/js/24.36b10d26.chunk.js",
32
+ "static/js/25.edf85627.chunk.js": "/static/js/25.edf85627.chunk.js",
33
+ "static/js/26.99f3cc19.chunk.js": "/static/js/26.99f3cc19.chunk.js",
34
+ "static/js/27.d7aacc94.chunk.js": "/static/js/27.d7aacc94.chunk.js",
35
+ "static/js/28.d24eb9cf.chunk.js": "/static/js/28.d24eb9cf.chunk.js",
36
+ "static/js/29.fbb528d8.chunk.js": "/static/js/29.fbb528d8.chunk.js",
37
+ "static/js/30.32ab2cb4.chunk.js": "/static/js/30.32ab2cb4.chunk.js",
38
+ "static/js/31.9c06312e.chunk.js": "/static/js/31.9c06312e.chunk.js",
39
+ "static/js/32.a1f2009d.chunk.js": "/static/js/32.a1f2009d.chunk.js",
40
+ "static/js/33.1d5fce1c.chunk.js": "/static/js/33.1d5fce1c.chunk.js",
41
+ "static/js/34.edb9c338.chunk.js": "/static/js/34.edb9c338.chunk.js",
42
+ "static/js/35.6bd7c1ed.chunk.js": "/static/js/35.6bd7c1ed.chunk.js",
43
+ "static/js/36.be12d12e.chunk.js": "/static/js/36.be12d12e.chunk.js",
44
+ "static/js/37.b845d4ba.chunk.js": "/static/js/37.b845d4ba.chunk.js",
45
+ "static/js/38.0e8cfb78.chunk.js": "/static/js/38.0e8cfb78.chunk.js",
46
+ "static/js/39.73c851be.chunk.js": "/static/js/39.73c851be.chunk.js",
47
+ "static/js/40.1fc38a50.chunk.js": "/static/js/40.1fc38a50.chunk.js",
48
+ "static/js/41.4ddf36bc.chunk.js": "/static/js/41.4ddf36bc.chunk.js",
49
+ "static/js/42.e5620440.chunk.js": "/static/js/42.e5620440.chunk.js",
50
+ "static/js/43.44eb58de.chunk.js": "/static/js/43.44eb58de.chunk.js",
51
+ "static/js/44.35b43369.chunk.js": "/static/js/44.35b43369.chunk.js",
52
+ "static/js/45.91664b3c.chunk.js": "/static/js/45.91664b3c.chunk.js",
53
+ "static/js/46.e9639103.chunk.js": "/static/js/46.e9639103.chunk.js",
54
+ "static/js/47.77b33a34.chunk.js": "/static/js/47.77b33a34.chunk.js",
55
55
  "index.html": "/index.html",
56
56
  "pypi/stlite_pyarrow-0.1.0-py3-none-any.whl": "/pypi/stlite_pyarrow-0.1.0-py3-none-any.whl",
57
57
  "pypi/streamlit-1.13.0-py2.py3-none-any.whl": "/pypi/streamlit-1.13.0-py2.py3-none-any.whl",
58
58
  "pypi/tornado-6.2-py3-none-any.whl": "/pypi/tornado-6.2-py3-none-any.whl",
59
- "static/js/11.9fe45850.chunk.js.LICENSE.txt": "/static/js/11.9fe45850.chunk.js.LICENSE.txt",
60
- "static/js/12.209a1965.chunk.js.LICENSE.txt": "/static/js/12.209a1965.chunk.js.LICENSE.txt",
61
- "static/js/13.a3dda2ea.chunk.js.LICENSE.txt": "/static/js/13.a3dda2ea.chunk.js.LICENSE.txt",
62
- "static/js/15.1bdac30d.chunk.js.LICENSE.txt": "/static/js/15.1bdac30d.chunk.js.LICENSE.txt",
63
- "static/js/16.be849095.chunk.js.LICENSE.txt": "/static/js/16.be849095.chunk.js.LICENSE.txt",
64
- "static/js/18.5007c118.chunk.js.LICENSE.txt": "/static/js/18.5007c118.chunk.js.LICENSE.txt",
65
- "static/js/19.1d97adb1.chunk.js.LICENSE.txt": "/static/js/19.1d97adb1.chunk.js.LICENSE.txt",
66
- "static/js/2.42f468c9.chunk.js.LICENSE.txt": "/static/js/2.42f468c9.chunk.js.LICENSE.txt",
67
- "static/js/22.d22eb326.chunk.js.LICENSE.txt": "/static/js/22.d22eb326.chunk.js.LICENSE.txt",
68
- "static/js/23.703a0005.chunk.js.LICENSE.txt": "/static/js/23.703a0005.chunk.js.LICENSE.txt",
69
- "static/js/24.bbdd8ad5.chunk.js.LICENSE.txt": "/static/js/24.bbdd8ad5.chunk.js.LICENSE.txt",
70
- "static/js/25.7a13965c.chunk.js.LICENSE.txt": "/static/js/25.7a13965c.chunk.js.LICENSE.txt",
71
- "static/js/26.5d02767c.chunk.js.LICENSE.txt": "/static/js/26.5d02767c.chunk.js.LICENSE.txt",
72
- "static/js/27.a1975825.chunk.js.LICENSE.txt": "/static/js/27.a1975825.chunk.js.LICENSE.txt",
73
- "static/js/28.8fe6cf95.chunk.js.LICENSE.txt": "/static/js/28.8fe6cf95.chunk.js.LICENSE.txt",
74
- "static/js/29.2a3ece9e.chunk.js.LICENSE.txt": "/static/js/29.2a3ece9e.chunk.js.LICENSE.txt",
75
- "static/js/30.99b51097.chunk.js.LICENSE.txt": "/static/js/30.99b51097.chunk.js.LICENSE.txt",
76
- "static/js/31.ff33aa2d.chunk.js.LICENSE.txt": "/static/js/31.ff33aa2d.chunk.js.LICENSE.txt",
77
- "static/js/32.a0448bd6.chunk.js.LICENSE.txt": "/static/js/32.a0448bd6.chunk.js.LICENSE.txt",
78
- "static/js/33.4e785a88.chunk.js.LICENSE.txt": "/static/js/33.4e785a88.chunk.js.LICENSE.txt",
79
- "static/js/34.a91bbe12.chunk.js.LICENSE.txt": "/static/js/34.a91bbe12.chunk.js.LICENSE.txt",
80
- "static/js/35.d2720d0c.chunk.js.LICENSE.txt": "/static/js/35.d2720d0c.chunk.js.LICENSE.txt",
81
- "static/js/36.19b6ded6.chunk.js.LICENSE.txt": "/static/js/36.19b6ded6.chunk.js.LICENSE.txt",
82
- "static/js/37.c8ade714.chunk.js.LICENSE.txt": "/static/js/37.c8ade714.chunk.js.LICENSE.txt",
83
- "static/js/38.a8e76ebd.chunk.js.LICENSE.txt": "/static/js/38.a8e76ebd.chunk.js.LICENSE.txt",
84
- "static/js/39.815183b5.chunk.js.LICENSE.txt": "/static/js/39.815183b5.chunk.js.LICENSE.txt",
85
- "static/js/40.5e639584.chunk.js.LICENSE.txt": "/static/js/40.5e639584.chunk.js.LICENSE.txt",
86
- "static/js/41.1811bda2.chunk.js.LICENSE.txt": "/static/js/41.1811bda2.chunk.js.LICENSE.txt",
87
- "static/js/42.ccc87d41.chunk.js.LICENSE.txt": "/static/js/42.ccc87d41.chunk.js.LICENSE.txt",
88
- "static/js/43.dd888752.chunk.js.LICENSE.txt": "/static/js/43.dd888752.chunk.js.LICENSE.txt",
89
- "static/js/44.14f2e50d.chunk.js.LICENSE.txt": "/static/js/44.14f2e50d.chunk.js.LICENSE.txt",
90
- "static/js/45.61ea1afe.chunk.js.LICENSE.txt": "/static/js/45.61ea1afe.chunk.js.LICENSE.txt",
91
- "static/js/46.3201e0ba.chunk.js.LICENSE.txt": "/static/js/46.3201e0ba.chunk.js.LICENSE.txt",
92
- "static/js/47.f6442eb9.chunk.js.LICENSE.txt": "/static/js/47.f6442eb9.chunk.js.LICENSE.txt",
93
- "static/js/6.cfeb0558.chunk.js.LICENSE.txt": "/static/js/6.cfeb0558.chunk.js.LICENSE.txt",
94
- "static/js/7.e179a232.chunk.js.LICENSE.txt": "/static/js/7.e179a232.chunk.js.LICENSE.txt",
95
- "static/js/8.89ddb52f.chunk.js.LICENSE.txt": "/static/js/8.89ddb52f.chunk.js.LICENSE.txt",
96
- "static/js/main.984ac8f5.chunk.js.LICENSE.txt": "/static/js/main.984ac8f5.chunk.js.LICENSE.txt",
59
+ "static/js/11.5e15526e.chunk.js.LICENSE.txt": "/static/js/11.5e15526e.chunk.js.LICENSE.txt",
60
+ "static/js/12.8105987b.chunk.js.LICENSE.txt": "/static/js/12.8105987b.chunk.js.LICENSE.txt",
61
+ "static/js/13.6f270c1f.chunk.js.LICENSE.txt": "/static/js/13.6f270c1f.chunk.js.LICENSE.txt",
62
+ "static/js/15.91a85aa0.chunk.js.LICENSE.txt": "/static/js/15.91a85aa0.chunk.js.LICENSE.txt",
63
+ "static/js/16.650490ee.chunk.js.LICENSE.txt": "/static/js/16.650490ee.chunk.js.LICENSE.txt",
64
+ "static/js/18.e3d4364d.chunk.js.LICENSE.txt": "/static/js/18.e3d4364d.chunk.js.LICENSE.txt",
65
+ "static/js/19.9004a138.chunk.js.LICENSE.txt": "/static/js/19.9004a138.chunk.js.LICENSE.txt",
66
+ "static/js/2.26deed5e.chunk.js.LICENSE.txt": "/static/js/2.26deed5e.chunk.js.LICENSE.txt",
67
+ "static/js/22.fe58abe1.chunk.js.LICENSE.txt": "/static/js/22.fe58abe1.chunk.js.LICENSE.txt",
68
+ "static/js/23.ee721415.chunk.js.LICENSE.txt": "/static/js/23.ee721415.chunk.js.LICENSE.txt",
69
+ "static/js/24.36b10d26.chunk.js.LICENSE.txt": "/static/js/24.36b10d26.chunk.js.LICENSE.txt",
70
+ "static/js/25.edf85627.chunk.js.LICENSE.txt": "/static/js/25.edf85627.chunk.js.LICENSE.txt",
71
+ "static/js/26.99f3cc19.chunk.js.LICENSE.txt": "/static/js/26.99f3cc19.chunk.js.LICENSE.txt",
72
+ "static/js/27.d7aacc94.chunk.js.LICENSE.txt": "/static/js/27.d7aacc94.chunk.js.LICENSE.txt",
73
+ "static/js/28.d24eb9cf.chunk.js.LICENSE.txt": "/static/js/28.d24eb9cf.chunk.js.LICENSE.txt",
74
+ "static/js/29.fbb528d8.chunk.js.LICENSE.txt": "/static/js/29.fbb528d8.chunk.js.LICENSE.txt",
75
+ "static/js/30.32ab2cb4.chunk.js.LICENSE.txt": "/static/js/30.32ab2cb4.chunk.js.LICENSE.txt",
76
+ "static/js/31.9c06312e.chunk.js.LICENSE.txt": "/static/js/31.9c06312e.chunk.js.LICENSE.txt",
77
+ "static/js/32.a1f2009d.chunk.js.LICENSE.txt": "/static/js/32.a1f2009d.chunk.js.LICENSE.txt",
78
+ "static/js/33.1d5fce1c.chunk.js.LICENSE.txt": "/static/js/33.1d5fce1c.chunk.js.LICENSE.txt",
79
+ "static/js/34.edb9c338.chunk.js.LICENSE.txt": "/static/js/34.edb9c338.chunk.js.LICENSE.txt",
80
+ "static/js/35.6bd7c1ed.chunk.js.LICENSE.txt": "/static/js/35.6bd7c1ed.chunk.js.LICENSE.txt",
81
+ "static/js/36.be12d12e.chunk.js.LICENSE.txt": "/static/js/36.be12d12e.chunk.js.LICENSE.txt",
82
+ "static/js/37.b845d4ba.chunk.js.LICENSE.txt": "/static/js/37.b845d4ba.chunk.js.LICENSE.txt",
83
+ "static/js/38.0e8cfb78.chunk.js.LICENSE.txt": "/static/js/38.0e8cfb78.chunk.js.LICENSE.txt",
84
+ "static/js/39.73c851be.chunk.js.LICENSE.txt": "/static/js/39.73c851be.chunk.js.LICENSE.txt",
85
+ "static/js/40.1fc38a50.chunk.js.LICENSE.txt": "/static/js/40.1fc38a50.chunk.js.LICENSE.txt",
86
+ "static/js/41.4ddf36bc.chunk.js.LICENSE.txt": "/static/js/41.4ddf36bc.chunk.js.LICENSE.txt",
87
+ "static/js/42.e5620440.chunk.js.LICENSE.txt": "/static/js/42.e5620440.chunk.js.LICENSE.txt",
88
+ "static/js/43.44eb58de.chunk.js.LICENSE.txt": "/static/js/43.44eb58de.chunk.js.LICENSE.txt",
89
+ "static/js/44.35b43369.chunk.js.LICENSE.txt": "/static/js/44.35b43369.chunk.js.LICENSE.txt",
90
+ "static/js/45.91664b3c.chunk.js.LICENSE.txt": "/static/js/45.91664b3c.chunk.js.LICENSE.txt",
91
+ "static/js/46.e9639103.chunk.js.LICENSE.txt": "/static/js/46.e9639103.chunk.js.LICENSE.txt",
92
+ "static/js/47.77b33a34.chunk.js.LICENSE.txt": "/static/js/47.77b33a34.chunk.js.LICENSE.txt",
93
+ "static/js/6.8496e815.chunk.js.LICENSE.txt": "/static/js/6.8496e815.chunk.js.LICENSE.txt",
94
+ "static/js/7.54bbd037.chunk.js.LICENSE.txt": "/static/js/7.54bbd037.chunk.js.LICENSE.txt",
95
+ "static/js/8.934b1bbd.chunk.js.LICENSE.txt": "/static/js/8.934b1bbd.chunk.js.LICENSE.txt",
96
+ "static/js/main.118127a6.chunk.js.LICENSE.txt": "/static/js/main.118127a6.chunk.js.LICENSE.txt",
97
97
  "static/media/katex.min.css": "/static/media/KaTeX_Typewriter-Regular.c5c02d76.ttf",
98
98
  "static/media/theme.scss": "/static/media/SourceSerifPro-SemiBoldItalic.1266f2c1.ttf",
99
99
  "static/media/balloon-0.0e6e96ec.png": "/static/media/balloon-0.0e6e96ec.png",
@@ -108,10 +108,10 @@
108
108
  "static/media/icon_running.de1119da.gif": "/static/media/icon_running.de1119da.gif"
109
109
  },
110
110
  "entrypoints": [
111
- "static/js/runtime-main.bae92e60.js",
112
- "static/css/6.03f87ee7.chunk.css",
113
- "static/js/6.cfeb0558.chunk.js",
114
- "static/css/main.b6e9910c.chunk.css",
115
- "static/js/main.984ac8f5.chunk.js"
111
+ "static/js/runtime-main.fe933feb.js",
112
+ "static/css/6.69790b96.chunk.css",
113
+ "static/js/6.8496e815.chunk.js",
114
+ "static/css/main.7bc75681.chunk.css",
115
+ "static/js/main.118127a6.chunk.js"
116
116
  ]
117
117
  }
@@ -18,31 +18,48 @@ const createWindow = () => {
18
18
  height: 720,
19
19
  webPreferences: {
20
20
  preload: path.join(__dirname, "preload.js"),
21
+ sandbox: true, // https://www.electronjs.org/docs/latest/tutorial/security#4-enable-process-sandboxing
21
22
  },
22
23
  });
24
+ const indexUrl = electron_1.app.isPackaged || process.env.NODE_ENV === "production"
25
+ ? "file:///index.html"
26
+ : "http://localhost:3000/";
27
+ // Check the IPC sender in every callback below,
28
+ // following the security best practice, "17. Validate the sender of all IPC messages."
29
+ // https://www.electronjs.org/docs/latest/tutorial/security#17-validate-the-sender-of-all-ipc-messages
30
+ const isValidIpcSender = (frame) => {
31
+ return frame.url === indexUrl;
32
+ };
23
33
  electron_1.ipcMain.handle("readSitePackagesSnapshot", (ev) => {
34
+ if (!isValidIpcSender(ev.senderFrame)) {
35
+ throw new Error("Invalid IPC sender");
36
+ }
24
37
  // This archive file has to be created by ./bin/dump_snapshot.ts
25
38
  const archiveFilePath = path.resolve(__dirname, "../site-packages-snapshot.tar.gz");
26
39
  return fsPromises.readFile(archiveFilePath);
27
40
  });
28
41
  electron_1.ipcMain.handle("readStreamlitAppDirectory", async (ev) => {
42
+ if (!isValidIpcSender(ev.senderFrame)) {
43
+ throw new Error("Invalid IPC sender");
44
+ }
29
45
  const streamlitAppDir = path.resolve(__dirname, "../streamlit_app");
30
46
  return (0, file_1.walkRead)(streamlitAppDir);
31
47
  });
32
- if (electron_1.app.isPackaged || process.env.NODE_ENV === "production") {
33
- // Use .loadURL() with an absolute URL based on "/" instead of .loadFile()
34
- // because absolute URLs with the file:// scheme will be resolved
35
- // to absolute file paths based on the special handler
36
- // registered through `interceptFileProtocol` below.
37
- mainWindow.loadURL("file:///index.html");
38
- }
39
- else {
40
- mainWindow.loadURL("http://localhost:3000");
41
- }
48
+ // Even when the entrypoint is a local file like the production build,
49
+ // we use .loadURL() with an absolute URL with the `file://` schema
50
+ // instead of passing a file path to .loadFile()
51
+ // because absolute URLs with the file:// scheme will be resolved
52
+ // to absolute file paths based on the special handler
53
+ // registered through `interceptFileProtocol` below.
54
+ mainWindow.loadURL(indexUrl);
42
55
  if (!electron_1.app.isPackaged) {
43
56
  mainWindow.webContents.openDevTools();
44
57
  }
45
58
  };
59
+ // Enable process sandboxing globally (https://www.electronjs.org/docs/latest/tutorial/sandbox#enabling-the-sandbox-globally),
60
+ // following the security best practice, "4. Enable process sandboxing."
61
+ // https://www.electronjs.org/docs/latest/tutorial/security#4-enable-process-sandboxing
62
+ electron_1.app.enableSandbox();
46
63
  // This method will be called when Electron has finished
47
64
  // initialization and is ready to create browser windows.
48
65
  // Some APIs can only be used after this event occurs.
@@ -77,3 +94,36 @@ electron_1.app.on("window-all-closed", () => {
77
94
  if (process.platform !== "darwin")
78
95
  electron_1.app.quit();
79
96
  });
97
+ electron_1.app.on("web-contents-created", (event, contents) => {
98
+ // Intercepts webView creation events and forbid all,
99
+ // following the security best practice, "12. Verify WebView options before creation."
100
+ // https://www.electronjs.org/docs/latest/tutorial/security#12-verify-webview-options-before-creation
101
+ contents.on("will-attach-webview", (event, webPreferences, params) => {
102
+ // Cancels all webView creation request
103
+ event.preventDefault();
104
+ });
105
+ // Intercepts navigation and forbid all,
106
+ // following the security best practice, "13. Disable or limit navigation."
107
+ // https://www.electronjs.org/docs/latest/tutorial/security#13-disable-or-limit-navigation
108
+ contents.on("will-navigate", (event, navigationUrl) => {
109
+ console.debug("will-navigate", navigationUrl);
110
+ event.preventDefault();
111
+ });
112
+ // Limit new windows creation,
113
+ // following the security best practice, "14. Disable or limit creation of new windows."
114
+ // https://www.electronjs.org/docs/latest/tutorial/security#14-disable-or-limit-creation-of-new-windows
115
+ contents.setWindowOpenHandler(({ url }) => {
116
+ console.error("Opening a new window is not allowed.");
117
+ // TODO: Implement `isSafeForExternalOpen()` below with a configurable allowed list.
118
+ // We'll ask the operating system
119
+ // to open this event's url in the default browser.
120
+ // DON'T pass an arbitrary URL to `shell.openExternal()` here
121
+ // as advised at "15. Do not use shell.openExternal with untrusted content."
122
+ // if (isSafeForExternalOpen(url)) {
123
+ // setImmediate(() => {
124
+ // shell.openExternal(url)
125
+ // })
126
+ // }
127
+ return { action: "deny" };
128
+ });
129
+ });
package/build/index.html CHANGED
@@ -1 +1 @@
1
- <!doctype html><html lang="en"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/><title>stlite</title><meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'wasm-unsafe-eval' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; worker-src blob:; script-src-elem 'self' 'unsafe-inline' https:; style-src-elem 'self' 'unsafe-inline' https:; font-src 'self' data: https:; connect-src https://data.streamlit.io/ https://*.mapbox.com/ 'self' https:; img-src https: blob: data: file:; media-src https: blob:; frame-src https:"><link href="/static/css/6.03f87ee7.chunk.css" rel="stylesheet"><link href="/static/css/main.b6e9910c.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script src="/static/js/runtime-main.bae92e60.js"></script><script src="/static/js/6.cfeb0558.chunk.js"></script><script src="/static/js/main.984ac8f5.chunk.js"></script></body></html>
1
+ <!doctype html><html lang="en"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/><title>stlite</title><meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'wasm-unsafe-eval' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; worker-src blob:; script-src-elem 'self' 'unsafe-inline' https:; style-src-elem 'self' 'unsafe-inline' https:; font-src 'self' data: https:; connect-src https://data.streamlit.io/ https://*.mapbox.com/ 'self' https:; img-src https: blob: data: file:; media-src https: blob:; frame-src https:"><link href="/static/css/6.69790b96.chunk.css" rel="stylesheet"><link href="/static/css/main.7bc75681.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script src="/static/js/runtime-main.fe933feb.js"></script><script src="/static/js/6.8496e815.chunk.js"></script><script src="/static/js/main.118127a6.chunk.js"></script></body></html>
@@ -1 +1 @@
1
- @font-face{font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_AMS-Regular.73ea273a.woff2) format("woff2"),url(/static/media/KaTeX_AMS-Regular.d562e886.woff) format("woff"),url(/static/media/KaTeX_AMS-Regular.853be924.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/static/media/KaTeX_Caligraphic-Bold.a1abf90d.woff2) format("woff2"),url(/static/media/KaTeX_Caligraphic-Bold.d757c535.woff) format("woff"),url(/static/media/KaTeX_Caligraphic-Bold.7489a2fb.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Caligraphic-Regular.d6484fce.woff2) format("woff2"),url(/static/media/KaTeX_Caligraphic-Regular.db074fa2.woff) format("woff"),url(/static/media/KaTeX_Caligraphic-Regular.7e873d38.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/static/media/KaTeX_Fraktur-Bold.931d67ea.woff2) format("woff2"),url(/static/media/KaTeX_Fraktur-Bold.354501ba.woff) format("woff"),url(/static/media/KaTeX_Fraktur-Bold.4c761b37.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Fraktur-Regular.172d3529.woff2) format("woff2"),url(/static/media/KaTeX_Fraktur-Regular.6fdf0ac5.woff) format("woff"),url(/static/media/KaTeX_Fraktur-Regular.ed305b54.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/static/media/KaTeX_Main-Bold.39890742.woff2) format("woff2"),url(/static/media/KaTeX_Main-Bold.0c3b8929.woff) format("woff"),url(/static/media/KaTeX_Main-Bold.8169508b.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/static/media/KaTeX_Main-BoldItalic.20f389c4.woff2) format("woff2"),url(/static/media/KaTeX_Main-BoldItalic.428978dc.woff) format("woff"),url(/static/media/KaTeX_Main-BoldItalic.828abcb2.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/static/media/KaTeX_Main-Italic.fe2176f7.woff2) format("woff2"),url(/static/media/KaTeX_Main-Italic.fd947498.woff) format("woff"),url(/static/media/KaTeX_Main-Italic.fa675e5e.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Main-Regular.f650f111.woff2) format("woff2"),url(/static/media/KaTeX_Main-Regular.4f35fbcc.woff) format("woff"),url(/static/media/KaTeX_Main-Regular.9eba1d77.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/static/media/KaTeX_Math-BoldItalic.dcbcbd93.woff2) format("woff2"),url(/static/media/KaTeX_Math-BoldItalic.3f07ed67.woff) format("woff"),url(/static/media/KaTeX_Math-BoldItalic.bf2d440b.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/static/media/KaTeX_Math-Italic.6d3d25f4.woff2) format("woff2"),url(/static/media/KaTeX_Math-Italic.96759856.woff) format("woff"),url(/static/media/KaTeX_Math-Italic.8a5f9363.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:normal;font-weight:700;src:url(/static/media/KaTeX_SansSerif-Bold.95591a92.woff2) format("woff2"),url(/static/media/KaTeX_SansSerif-Bold.b9cd458a.woff) format("woff"),url(/static/media/KaTeX_SansSerif-Bold.5b49f499.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:italic;font-weight:400;src:url(/static/media/KaTeX_SansSerif-Italic.7d393d38.woff2) format("woff2"),url(/static/media/KaTeX_SansSerif-Italic.8d593cfa.woff) format("woff"),url(/static/media/KaTeX_SansSerif-Italic.b257a18c.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:normal;font-weight:400;src:url(/static/media/KaTeX_SansSerif-Regular.cd5e231e.woff2) format("woff2"),url(/static/media/KaTeX_SansSerif-Regular.02271ec5.woff) format("woff"),url(/static/media/KaTeX_SansSerif-Regular.2f7bc363.ttf) format("truetype")}@font-face{font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Script-Regular.c81d1b2a.woff2) format("woff2"),url(/static/media/KaTeX_Script-Regular.073b3402.woff) format("woff"),url(/static/media/KaTeX_Script-Regular.fc9ba524.ttf) format("truetype")}@font-face{font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Size1-Regular.6eec866c.woff2) format("woff2"),url(/static/media/KaTeX_Size1-Regular.0108e89c.woff) format("woff"),url(/static/media/KaTeX_Size1-Regular.6de7d4b5.ttf) format("truetype")}@font-face{font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Size2-Regular.2960900c.woff2) format("woff2"),url(/static/media/KaTeX_Size2-Regular.3a99e70a.woff) format("woff"),url(/static/media/KaTeX_Size2-Regular.57f5c183.ttf) format("truetype")}@font-face{font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Size3-Regular.e1951519.woff2) format("woff2"),url(/static/media/KaTeX_Size3-Regular.7947224e.woff) format("woff"),url(/static/media/KaTeX_Size3-Regular.8d6b6822.ttf) format("truetype")}@font-face{font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Size4-Regular.e418bf25.woff2) format("woff2"),url(/static/media/KaTeX_Size4-Regular.aeffd802.woff) format("woff"),url(/static/media/KaTeX_Size4-Regular.4ad7c7e8.ttf) format("truetype")}@font-face{font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Typewriter-Regular.c295e7f7.woff2) format("woff2"),url(/static/media/KaTeX_Typewriter-Regular.4c6b94fd.woff) format("woff"),url(/static/media/KaTeX_Typewriter-Regular.c5c02d76.ttf) format("truetype")}.katex{text-rendering:auto;font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.13.24"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.27777778em;margin-right:-.55555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.83333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.16666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.66666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.45666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.14666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.71428571em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.85714286em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.14285714em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.28571429em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.42857143em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.71428571em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.05714286em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.46857143em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.96285714em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.55428571em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.55555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.66666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.77777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.88888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.11111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.30444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.76444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.41666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.58333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.66666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.83333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72833333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.07333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.34722222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.41666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.48611111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.55555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.69444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.83333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.44027778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.72777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.28935185em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.34722222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.40509259em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.46296296em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.52083333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.69444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.83333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20023148em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.43981481em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.24108004em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.28929605em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.33751205em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.38572806em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.43394407em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48216008em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.57859209em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.69431051em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.83317261em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.19961427em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.20096463em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.24115756em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.28135048em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.32154341em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.36173633em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.40192926em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.48231511em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.57877814em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.69453376em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.83360129em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}
1
+ @font-face{font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_AMS-Regular.73ea273a.woff2) format("woff2"),url(/static/media/KaTeX_AMS-Regular.d562e886.woff) format("woff"),url(/static/media/KaTeX_AMS-Regular.853be924.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/static/media/KaTeX_Caligraphic-Bold.a1abf90d.woff2) format("woff2"),url(/static/media/KaTeX_Caligraphic-Bold.d757c535.woff) format("woff"),url(/static/media/KaTeX_Caligraphic-Bold.7489a2fb.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Caligraphic-Regular.d6484fce.woff2) format("woff2"),url(/static/media/KaTeX_Caligraphic-Regular.db074fa2.woff) format("woff"),url(/static/media/KaTeX_Caligraphic-Regular.7e873d38.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/static/media/KaTeX_Fraktur-Bold.931d67ea.woff2) format("woff2"),url(/static/media/KaTeX_Fraktur-Bold.354501ba.woff) format("woff"),url(/static/media/KaTeX_Fraktur-Bold.4c761b37.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Fraktur-Regular.172d3529.woff2) format("woff2"),url(/static/media/KaTeX_Fraktur-Regular.6fdf0ac5.woff) format("woff"),url(/static/media/KaTeX_Fraktur-Regular.ed305b54.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/static/media/KaTeX_Main-Bold.39890742.woff2) format("woff2"),url(/static/media/KaTeX_Main-Bold.0c3b8929.woff) format("woff"),url(/static/media/KaTeX_Main-Bold.8169508b.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/static/media/KaTeX_Main-BoldItalic.20f389c4.woff2) format("woff2"),url(/static/media/KaTeX_Main-BoldItalic.428978dc.woff) format("woff"),url(/static/media/KaTeX_Main-BoldItalic.828abcb2.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/static/media/KaTeX_Main-Italic.fe2176f7.woff2) format("woff2"),url(/static/media/KaTeX_Main-Italic.fd947498.woff) format("woff"),url(/static/media/KaTeX_Main-Italic.fa675e5e.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Main-Regular.f650f111.woff2) format("woff2"),url(/static/media/KaTeX_Main-Regular.4f35fbcc.woff) format("woff"),url(/static/media/KaTeX_Main-Regular.9eba1d77.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/static/media/KaTeX_Math-BoldItalic.dcbcbd93.woff2) format("woff2"),url(/static/media/KaTeX_Math-BoldItalic.3f07ed67.woff) format("woff"),url(/static/media/KaTeX_Math-BoldItalic.bf2d440b.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/static/media/KaTeX_Math-Italic.6d3d25f4.woff2) format("woff2"),url(/static/media/KaTeX_Math-Italic.96759856.woff) format("woff"),url(/static/media/KaTeX_Math-Italic.8a5f9363.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:normal;font-weight:700;src:url(/static/media/KaTeX_SansSerif-Bold.95591a92.woff2) format("woff2"),url(/static/media/KaTeX_SansSerif-Bold.b9cd458a.woff) format("woff"),url(/static/media/KaTeX_SansSerif-Bold.5b49f499.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:italic;font-weight:400;src:url(/static/media/KaTeX_SansSerif-Italic.7d393d38.woff2) format("woff2"),url(/static/media/KaTeX_SansSerif-Italic.8d593cfa.woff) format("woff"),url(/static/media/KaTeX_SansSerif-Italic.b257a18c.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:normal;font-weight:400;src:url(/static/media/KaTeX_SansSerif-Regular.cd5e231e.woff2) format("woff2"),url(/static/media/KaTeX_SansSerif-Regular.02271ec5.woff) format("woff"),url(/static/media/KaTeX_SansSerif-Regular.2f7bc363.ttf) format("truetype")}@font-face{font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Script-Regular.c81d1b2a.woff2) format("woff2"),url(/static/media/KaTeX_Script-Regular.073b3402.woff) format("woff"),url(/static/media/KaTeX_Script-Regular.fc9ba524.ttf) format("truetype")}@font-face{font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Size1-Regular.6eec866c.woff2) format("woff2"),url(/static/media/KaTeX_Size1-Regular.0108e89c.woff) format("woff"),url(/static/media/KaTeX_Size1-Regular.6de7d4b5.ttf) format("truetype")}@font-face{font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Size2-Regular.2960900c.woff2) format("woff2"),url(/static/media/KaTeX_Size2-Regular.3a99e70a.woff) format("woff"),url(/static/media/KaTeX_Size2-Regular.57f5c183.ttf) format("truetype")}@font-face{font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Size3-Regular.e1951519.woff2) format("woff2"),url(/static/media/KaTeX_Size3-Regular.7947224e.woff) format("woff"),url(/static/media/KaTeX_Size3-Regular.8d6b6822.ttf) format("truetype")}@font-face{font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Size4-Regular.e418bf25.woff2) format("woff2"),url(/static/media/KaTeX_Size4-Regular.aeffd802.woff) format("woff"),url(/static/media/KaTeX_Size4-Regular.4ad7c7e8.ttf) format("truetype")}@font-face{font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Typewriter-Regular.c295e7f7.woff2) format("woff2"),url(/static/media/KaTeX_Typewriter-Regular.4c6b94fd.woff) format("woff"),url(/static/media/KaTeX_Typewriter-Regular.c5c02d76.ttf) format("truetype")}.katex{text-rendering:auto;font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.13.24"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.27777778em;margin-right:-.55555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.83333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.16666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.66666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.45666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.14666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.71428571em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.85714286em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.14285714em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.28571429em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.42857143em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.71428571em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.05714286em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.46857143em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.96285714em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.55428571em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.55555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.66666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.77777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.88888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.11111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.30444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.76444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.41666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.58333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.66666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.83333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72833333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.07333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.34722222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.41666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.48611111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.55555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.69444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.83333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.44027778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.72777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.28935185em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.34722222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.40509259em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.46296296em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.52083333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.69444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.83333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20023148em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.43981481em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.24108004em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.28929605em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.33751205em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.38572806em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.43394407em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48216008em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.57859209em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.69431051em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.83317261em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.19961427em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.20096463em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.24115756em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.28135048em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.32154341em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.36173633em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.40192926em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.48231511em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.57877814em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.69453376em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.83360129em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}:root{--toastify-color-light:#fff;--toastify-color-dark:#121212;--toastify-color-info:#3498db;--toastify-color-success:#07bc0c;--toastify-color-warning:#f1c40f;--toastify-color-error:#e74c3c;--toastify-color-transparent:hsla(0,0%,100%,0.7);--toastify-icon-color-info:var(--toastify-color-info);--toastify-icon-color-success:var(--toastify-color-success);--toastify-icon-color-warning:var(--toastify-color-warning);--toastify-icon-color-error:var(--toastify-color-error);--toastify-toast-width:320px;--toastify-toast-background:#fff;--toastify-toast-min-height:64px;--toastify-toast-max-height:800px;--toastify-font-family:sans-serif;--toastify-z-index:9999;--toastify-text-color-light:#757575;--toastify-text-color-dark:#fff;--toastify-text-color-info:#fff;--toastify-text-color-success:#fff;--toastify-text-color-warning:#fff;--toastify-text-color-error:#fff;--toastify-spinner-color:#616161;--toastify-spinner-color-empty-area:#e0e0e0;--toastify-color-progress-light:linear-gradient(90deg,#4cd964,#5ac8fa,#007aff,#34aadc,#5856d6,#ff2d55);--toastify-color-progress-dark:#bb86fc;--toastify-color-progress-info:var(--toastify-color-info);--toastify-color-progress-success:var(--toastify-color-success);--toastify-color-progress-warning:var(--toastify-color-warning);--toastify-color-progress-error:var(--toastify-color-error)}.Toastify__toast-container{z-index:var(--toastify-z-index);-webkit-transform:translateZ(var(--toastify-z-index));position:fixed;padding:4px;width:var(--toastify-toast-width);box-sizing:border-box;color:#fff}.Toastify__toast-container--top-left{top:1em;left:1em}.Toastify__toast-container--top-center{top:1em;left:50%;transform:translateX(-50%)}.Toastify__toast-container--top-right{top:1em;right:1em}.Toastify__toast-container--bottom-left{bottom:1em;left:1em}.Toastify__toast-container--bottom-center{bottom:1em;left:50%;transform:translateX(-50%)}.Toastify__toast-container--bottom-right{bottom:1em;right:1em}@media only screen and (max-width:480px){.Toastify__toast-container{width:100vw;padding:0;left:0;margin:0}.Toastify__toast-container--top-center,.Toastify__toast-container--top-left,.Toastify__toast-container--top-right{top:0;transform:translateX(0)}.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-right{bottom:0;transform:translateX(0)}.Toastify__toast-container--rtl{right:0;left:auto}}.Toastify__toast{position:relative;min-height:var(--toastify-toast-min-height);box-sizing:border-box;margin-bottom:1rem;padding:8px;border-radius:4px;box-shadow:0 1px 10px 0 rgba(0,0,0,.1),0 2px 15px 0 rgba(0,0,0,.05);display:flex;justify-content:space-between;max-height:var(--toastify-toast-max-height);overflow:hidden;font-family:var(--toastify-font-family);cursor:default;direction:ltr;z-index:0}.Toastify__toast--rtl{direction:rtl}.Toastify__toast--close-on-click{cursor:pointer}.Toastify__toast-body{margin:auto 0;flex:1 1 auto;padding:6px;display:flex;align-items:center}.Toastify__toast-body>div:last-child{word-break:break-word;flex:1 1}.Toastify__toast-icon{-webkit-margin-end:10px;margin-inline-end:10px;width:20px;flex-shrink:0;display:flex}.Toastify--animate{animation-fill-mode:both;animation-duration:.7s}.Toastify--animate-icon{animation-fill-mode:both;animation-duration:.3s}@media only screen and (max-width:480px){.Toastify__toast{margin-bottom:0;border-radius:0}}.Toastify__toast-theme--dark{background:var(--toastify-color-dark);color:var(--toastify-text-color-dark)}.Toastify__toast-theme--colored.Toastify__toast--default,.Toastify__toast-theme--light{background:var(--toastify-color-light);color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{color:var(--toastify-text-color-info);background:var(--toastify-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{color:var(--toastify-text-color-success);background:var(--toastify-color-success)}.Toastify__toast-theme--colored.Toastify__toast--warning{color:var(--toastify-text-color-warning);background:var(--toastify-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{color:var(--toastify-text-color-error);background:var(--toastify-color-error)}.Toastify__progress-bar-theme--light{background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning{background:var(--toastify-color-transparent)}.Toastify__close-button{color:#fff;background:transparent;outline:none;border:none;padding:0;cursor:pointer;opacity:.7;transition:.3s ease;align-self:flex-start}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:focus,.Toastify__close-button:hover{opacity:1}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Toastify__progress-bar{position:absolute;bottom:0;left:0;width:100%;height:5px;z-index:var(--toastify-z-index);opacity:.7;transform-origin:left}.Toastify__progress-bar--animated{animation:Toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{right:0;left:auto;transform-origin:right}.Toastify__spinner{width:20px;height:20px;box-sizing:border-box;border-radius:100%;border:2px solid;border-color:var(--toastify-spinner-color-empty-area);border-right:2px solid var(--toastify-spinner-color);animation:Toastify__spin .65s linear infinite}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,0,0)}to{opacity:0;transform:translate3d(2000px,0,0)}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,0,0)}to{opacity:0;transform:translate3d(-2000px,0,0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,-10px,0)}40%,45%{opacity:1;transform:translate3d(0,20px,0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,10px,0)}40%,45%{opacity:1;transform:translate3d(0,-20px,0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--bottom-left,.Toastify__bounce-enter--top-left{animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--bottom-right,.Toastify__bounce-enter--top-right{animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--bottom-left,.Toastify__bounce-exit--top-left{animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--bottom-right,.Toastify__bounce-exit--top-right{animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:Toastify__bounceOutDown}@keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:Toastify__zoomIn}.Toastify__zoom-exit{animation-name:Toastify__zoomOut}@keyframes Toastify__flipIn{0%{transform:perspective(400px) rotateX(90deg);animation-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotateX(-20deg);animation-timing-function:ease-in}60%{transform:perspective(400px) rotateX(10deg);opacity:1}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipOut{0%{transform:perspective(400px)}30%{transform:perspective(400px) rotateX(-20deg);opacity:1}to{transform:perspective(400px) rotateX(90deg);opacity:0}}.Toastify__flip-enter{animation-name:Toastify__flipIn}.Toastify__flip-exit{animation-name:Toastify__flipOut}@keyframes Toastify__slideInRight{0%{transform:translate3d(110%,0,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideInLeft{0%{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideInUp{0%{transform:translate3d(0,110%,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideInDown{0%{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideOutRight{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate3d(110%,0,0)}}@keyframes Toastify__slideOutLeft{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate3d(-110%,0,0)}}@keyframes Toastify__slideOutDown{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate3d(0,500px,0)}}@keyframes Toastify__slideOutUp{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate3d(0,-500px,0)}}.Toastify__slide-enter--bottom-left,.Toastify__slide-enter--top-left{animation-name:Toastify__slideInLeft}.Toastify__slide-enter--bottom-right,.Toastify__slide-enter--top-right{animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:Toastify__slideInUp}.Toastify__slide-exit--bottom-left,.Toastify__slide-exit--top-left{animation-name:Toastify__slideOutLeft}.Toastify__slide-exit--bottom-right,.Toastify__slide-exit--top-right{animation-name:Toastify__slideOutRight}.Toastify__slide-exit--top-center{animation-name:Toastify__slideOutUp}.Toastify__slide-exit--bottom-center{animation-name:Toastify__slideOutDown}@keyframes Toastify__spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}
@@ -1 +1 @@
1
- @font-face{font-family:"Source Code Pro";font-weight:400;font-style:regular;src:url(/static/media/SourceCodePro-Regular.70cc7ff2.ttf) format("truetype")}@font-face{font-family:"Source Code Pro";font-weight:600;font-style:regular;src:url(/static/media/SourceCodePro-SemiBold.4d4c53c0.ttf) format("truetype")}@font-face{font-family:"Source Code Pro";font-weight:700;font-style:regular;src:url(/static/media/SourceCodePro-Bold.52ac8f30.ttf) format("truetype")}@font-face{font-family:"Source Code Pro";font-weight:400;font-style:italic;src:url(/static/media/SourceCodePro-Italic.454577c2.ttf) format("truetype")}@font-face{font-family:"Source Code Pro";font-weight:600;font-style:italic;src:url(/static/media/SourceCodePro-SemiBoldItalic.2f5470bc.ttf) format("truetype")}@font-face{font-family:"Source Code Pro";font-weight:700;font-style:italic;src:url(/static/media/SourceCodePro-BoldItalic.05b61807.ttf) format("truetype")}@font-face{font-family:"Source Sans Pro";font-weight:400;font-style:regular;src:url(/static/media/SourceSansPro-Regular.efa76f83.ttf) format("truetype")}@font-face{font-family:"Source Sans Pro";font-weight:600;font-style:regular;src:url(/static/media/SourceSansPro-SemiBold.43cc81b4.ttf) format("truetype")}@font-face{font-family:"Source Sans Pro";font-weight:700;font-style:regular;src:url(/static/media/SourceSansPro-Bold.12e6acd2.ttf) format("truetype")}@font-face{font-family:"Source Sans Pro";font-weight:400;font-style:italic;src:url(/static/media/SourceSansPro-Italic.3c01996d.ttf) format("truetype")}@font-face{font-family:"Source Sans Pro";font-weight:600;font-style:italic;src:url(/static/media/SourceSansPro-SemiBoldItalic.c30987e2.ttf) format("truetype")}@font-face{font-family:"Source Sans Pro";font-weight:700;font-style:italic;src:url(/static/media/SourceSansPro-BoldItalic.7c4f9b00.ttf) format("truetype")}@font-face{font-family:"Source Serif Pro";font-weight:400;font-style:regular;src:url(/static/media/SourceSerifPro-Regular.6f22301c.ttf) format("truetype")}@font-face{font-family:"Source Serif Pro";font-weight:600;font-style:regular;src:url(/static/media/SourceSerifPro-SemiBold.b27cb117.ttf) format("truetype")}@font-face{font-family:"Source Serif Pro";font-weight:700;font-style:regular;src:url(/static/media/SourceSerifPro-Bold.bada4fe1.ttf) format("truetype")}@font-face{font-family:"Source Serif Pro";font-weight:400;font-style:italic;src:url(/static/media/SourceSerifPro-Italic.90931d6a.ttf) format("truetype")}@font-face{font-family:"Source Serif Pro";font-weight:600;font-style:italic;src:url(/static/media/SourceSerifPro-SemiBoldItalic.1266f2c1.ttf) format("truetype")}@font-face{font-family:"Source Serif Pro";font-weight:700;font-style:italic;src:url(/static/media/SourceSerifPro-BoldItalic.9f9b1eb2.ttf) format("truetype")}html{font-size:1rem}h1{font-size:calc(1.4rem + 1.8vw)}@media(min-width:1200px){h1{font-size:2.75rem}}h2{font-size:calc(1.35rem + 1.2vw)}@media(min-width:1200px){h2{font-size:2.25rem}}h3{font-size:calc(1.3rem + .6vw)}@media(min-width:1200px){h3{font-size:1.75rem}}h4{font-size:calc(1.275rem + .3vw)}@media(min-width:1200px){h4{font-size:1.5rem}}h5{font-size:1.25rem}h6{font-size:1rem}small{font-size:.875rem}sub,sup{font-size:.75rem}code,kbd,pre{font-size:1em}pre{font-size:.75em}pre code{font-size:inherit}code{font-size:.75em}kbd{font-size:.875rem;border-radius:.25rem}kbd kbd{font-size:1em}button,input,optgroup,select,textarea{font-size:inherit}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}legend{font-size:1rem}
1
+ @font-face{font-family:"Source Code Pro";font-weight:400;font-style:regular;src:url(/static/media/SourceCodePro-Regular.70cc7ff2.ttf) format("truetype")}@font-face{font-family:"Source Code Pro";font-weight:600;font-style:regular;src:url(/static/media/SourceCodePro-SemiBold.4d4c53c0.ttf) format("truetype")}@font-face{font-family:"Source Code Pro";font-weight:700;font-style:regular;src:url(/static/media/SourceCodePro-Bold.52ac8f30.ttf) format("truetype")}@font-face{font-family:"Source Code Pro";font-weight:400;font-style:italic;src:url(/static/media/SourceCodePro-Italic.454577c2.ttf) format("truetype")}@font-face{font-family:"Source Code Pro";font-weight:600;font-style:italic;src:url(/static/media/SourceCodePro-SemiBoldItalic.2f5470bc.ttf) format("truetype")}@font-face{font-family:"Source Code Pro";font-weight:700;font-style:italic;src:url(/static/media/SourceCodePro-BoldItalic.05b61807.ttf) format("truetype")}@font-face{font-family:"Source Sans Pro";font-weight:400;font-style:regular;src:url(/static/media/SourceSansPro-Regular.efa76f83.ttf) format("truetype")}@font-face{font-family:"Source Sans Pro";font-weight:600;font-style:regular;src:url(/static/media/SourceSansPro-SemiBold.43cc81b4.ttf) format("truetype")}@font-face{font-family:"Source Sans Pro";font-weight:700;font-style:regular;src:url(/static/media/SourceSansPro-Bold.12e6acd2.ttf) format("truetype")}@font-face{font-family:"Source Sans Pro";font-weight:400;font-style:italic;src:url(/static/media/SourceSansPro-Italic.3c01996d.ttf) format("truetype")}@font-face{font-family:"Source Sans Pro";font-weight:600;font-style:italic;src:url(/static/media/SourceSansPro-SemiBoldItalic.c30987e2.ttf) format("truetype")}@font-face{font-family:"Source Sans Pro";font-weight:700;font-style:italic;src:url(/static/media/SourceSansPro-BoldItalic.7c4f9b00.ttf) format("truetype")}@font-face{font-family:"Source Serif Pro";font-weight:400;font-style:regular;src:url(/static/media/SourceSerifPro-Regular.6f22301c.ttf) format("truetype")}@font-face{font-family:"Source Serif Pro";font-weight:600;font-style:regular;src:url(/static/media/SourceSerifPro-SemiBold.b27cb117.ttf) format("truetype")}@font-face{font-family:"Source Serif Pro";font-weight:700;font-style:regular;src:url(/static/media/SourceSerifPro-Bold.bada4fe1.ttf) format("truetype")}@font-face{font-family:"Source Serif Pro";font-weight:400;font-style:italic;src:url(/static/media/SourceSerifPro-Italic.90931d6a.ttf) format("truetype")}@font-face{font-family:"Source Serif Pro";font-weight:600;font-style:italic;src:url(/static/media/SourceSerifPro-SemiBoldItalic.1266f2c1.ttf) format("truetype")}@font-face{font-family:"Source Serif Pro";font-weight:700;font-style:italic;src:url(/static/media/SourceSerifPro-BoldItalic.9f9b1eb2.ttf) format("truetype")}html{font-size:1rem}h1{font-size:calc(1.4rem + 1.8vw)}@media(min-width:1200px){h1{font-size:2.75rem}}h2{font-size:calc(1.35rem + 1.2vw)}@media(min-width:1200px){h2{font-size:2.25rem}}h3{font-size:calc(1.3rem + .6vw)}@media(min-width:1200px){h3{font-size:1.75rem}}h4{font-size:calc(1.275rem + .3vw)}@media(min-width:1200px){h4{font-size:1.5rem}}h5{font-size:1.25rem}h6{font-size:1rem}small{font-size:.875rem}sub,sup{font-size:.75rem}code,kbd,pre{font-size:1em}pre{font-size:.75em}pre code{font-size:inherit}code{font-size:.75em}kbd{font-size:.875rem;border-radius:.25rem}kbd kbd{font-size:1em}button,input,optgroup,select,textarea{font-size:inherit}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}legend{font-size:1rem}.Toastify__toast-body{width:0}.Toastify__toast-body>div:not(.Toastify__toast-icon){width:100%}