slidge-whatsapp 0.2.2__cp312-cp312-manylinux_2_36_aarch64.whl → 0.2.6__cp312-cp312-manylinux_2_36_aarch64.whl

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.

Potentially problematic release.


This version of slidge-whatsapp might be problematic. Click here for more details.

Files changed (1250) hide show
  1. slidge_whatsapp/__init__.py +26 -8
  2. slidge_whatsapp/__main__.py +3 -0
  3. slidge_whatsapp/config.py +3 -0
  4. slidge_whatsapp/contact.py +1 -1
  5. slidge_whatsapp/event.go +79 -24
  6. slidge_whatsapp/gateway.go +13 -9
  7. slidge_whatsapp/gateway.py +2 -2
  8. slidge_whatsapp/generated/_whatsapp.cpython-312-aarch64-linux-gnu.h +188 -151
  9. slidge_whatsapp/generated/_whatsapp.cpython-312-aarch64-linux-gnu.so +0 -0
  10. slidge_whatsapp/generated/build.py +156 -131
  11. slidge_whatsapp/generated/go.py +1 -1
  12. slidge_whatsapp/generated/whatsapp.c +1770 -1299
  13. slidge_whatsapp/generated/whatsapp.go +1275 -1030
  14. slidge_whatsapp/generated/whatsapp.py +1262 -942
  15. slidge_whatsapp/generated/whatsapp_go.h +188 -151
  16. slidge_whatsapp/go.mod +18 -13
  17. slidge_whatsapp/go.sum +41 -29
  18. slidge_whatsapp/group.py +7 -2
  19. slidge_whatsapp/media/__init__.py +0 -0
  20. slidge_whatsapp/media/media.go +24 -13
  21. slidge_whatsapp/session.go +77 -71
  22. slidge_whatsapp/session.py +53 -31
  23. slidge_whatsapp/vendor/filippo.io/edwards25519/LICENSE +27 -0
  24. slidge_whatsapp/vendor/filippo.io/edwards25519/README.md +14 -0
  25. slidge_whatsapp/vendor/filippo.io/edwards25519/doc.go +20 -0
  26. slidge_whatsapp/vendor/filippo.io/edwards25519/edwards25519.go +427 -0
  27. slidge_whatsapp/vendor/filippo.io/edwards25519/extra.go +349 -0
  28. slidge_whatsapp/vendor/filippo.io/edwards25519/field/fe.go +420 -0
  29. slidge_whatsapp/vendor/filippo.io/edwards25519/field/fe_amd64.go +16 -0
  30. slidge_whatsapp/vendor/filippo.io/edwards25519/field/fe_amd64.s +379 -0
  31. slidge_whatsapp/vendor/filippo.io/edwards25519/field/fe_amd64_noasm.go +12 -0
  32. slidge_whatsapp/vendor/filippo.io/edwards25519/field/fe_arm64.go +16 -0
  33. slidge_whatsapp/vendor/filippo.io/edwards25519/field/fe_arm64.s +42 -0
  34. slidge_whatsapp/vendor/filippo.io/edwards25519/field/fe_arm64_noasm.go +12 -0
  35. slidge_whatsapp/vendor/filippo.io/edwards25519/field/fe_extra.go +50 -0
  36. slidge_whatsapp/vendor/filippo.io/edwards25519/field/fe_generic.go +266 -0
  37. slidge_whatsapp/vendor/filippo.io/edwards25519/scalar.go +343 -0
  38. slidge_whatsapp/vendor/filippo.io/edwards25519/scalar_fiat.go +1147 -0
  39. slidge_whatsapp/vendor/filippo.io/edwards25519/scalarmult.go +214 -0
  40. slidge_whatsapp/vendor/filippo.io/edwards25519/tables.go +129 -0
  41. slidge_whatsapp/vendor/github.com/ebitengine/purego/.gitignore +1 -0
  42. slidge_whatsapp/vendor/github.com/ebitengine/purego/LICENSE +201 -0
  43. slidge_whatsapp/vendor/github.com/ebitengine/purego/README.md +97 -0
  44. slidge_whatsapp/vendor/github.com/ebitengine/purego/abi_amd64.h +99 -0
  45. slidge_whatsapp/vendor/github.com/ebitengine/purego/abi_arm64.h +39 -0
  46. slidge_whatsapp/vendor/github.com/ebitengine/purego/cgo.go +19 -0
  47. slidge_whatsapp/vendor/github.com/ebitengine/purego/dlerror.go +17 -0
  48. slidge_whatsapp/vendor/github.com/ebitengine/purego/dlfcn.go +99 -0
  49. slidge_whatsapp/vendor/github.com/ebitengine/purego/dlfcn_android.go +34 -0
  50. slidge_whatsapp/vendor/github.com/ebitengine/purego/dlfcn_darwin.go +19 -0
  51. slidge_whatsapp/vendor/github.com/ebitengine/purego/dlfcn_freebsd.go +14 -0
  52. slidge_whatsapp/vendor/github.com/ebitengine/purego/dlfcn_linux.go +16 -0
  53. slidge_whatsapp/vendor/github.com/ebitengine/purego/dlfcn_nocgo_freebsd.go +11 -0
  54. slidge_whatsapp/vendor/github.com/ebitengine/purego/dlfcn_nocgo_linux.go +19 -0
  55. slidge_whatsapp/vendor/github.com/ebitengine/purego/dlfcn_playground.go +24 -0
  56. slidge_whatsapp/vendor/github.com/ebitengine/purego/dlfcn_stubs.s +26 -0
  57. slidge_whatsapp/vendor/github.com/ebitengine/purego/func.go +436 -0
  58. slidge_whatsapp/vendor/github.com/ebitengine/purego/go_runtime.go +13 -0
  59. slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/cgo/dlfcn_cgo_unix.go +56 -0
  60. slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/cgo/empty.go +6 -0
  61. slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/cgo/syscall_cgo_unix.go +55 -0
  62. slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/fakecgo/abi_amd64.h +99 -0
  63. slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/fakecgo/abi_arm64.h +39 -0
  64. slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/fakecgo/asm_amd64.s +39 -0
  65. slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/fakecgo/asm_arm64.s +36 -0
  66. slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/fakecgo/callbacks.go +93 -0
  67. slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/fakecgo/doc.go +32 -0
  68. slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/fakecgo/freebsd.go +27 -0
  69. slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/fakecgo/go_darwin_amd64.go +73 -0
  70. slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/fakecgo/go_darwin_arm64.go +88 -0
  71. slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/fakecgo/go_freebsd_amd64.go +95 -0
  72. slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/fakecgo/go_freebsd_arm64.go +98 -0
  73. slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/fakecgo/go_libinit.go +72 -0
  74. slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/fakecgo/go_linux_amd64.go +95 -0
  75. slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/fakecgo/go_linux_arm64.go +98 -0
  76. slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/fakecgo/go_setenv.go +18 -0
  77. slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/fakecgo/go_util.go +37 -0
  78. slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/fakecgo/iscgo.go +19 -0
  79. slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/fakecgo/libcgo.go +39 -0
  80. slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/fakecgo/libcgo_darwin.go +22 -0
  81. slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/fakecgo/libcgo_freebsd.go +16 -0
  82. slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/fakecgo/libcgo_linux.go +16 -0
  83. slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/fakecgo/setenv.go +19 -0
  84. slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/fakecgo/symbols.go +221 -0
  85. slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/fakecgo/symbols_darwin.go +29 -0
  86. slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/fakecgo/symbols_freebsd.go +29 -0
  87. slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/fakecgo/symbols_linux.go +29 -0
  88. slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/fakecgo/trampolines_amd64.s +104 -0
  89. slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/fakecgo/trampolines_arm64.s +72 -0
  90. slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/fakecgo/trampolines_stubs.s +90 -0
  91. slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/strings/strings.go +40 -0
  92. slidge_whatsapp/vendor/github.com/ebitengine/purego/is_ios.go +13 -0
  93. slidge_whatsapp/vendor/github.com/ebitengine/purego/nocgo.go +25 -0
  94. slidge_whatsapp/vendor/github.com/ebitengine/purego/struct_amd64.go +260 -0
  95. slidge_whatsapp/vendor/github.com/ebitengine/purego/struct_arm64.go +274 -0
  96. slidge_whatsapp/vendor/github.com/ebitengine/purego/struct_other.go +16 -0
  97. slidge_whatsapp/vendor/github.com/ebitengine/purego/sys_amd64.s +164 -0
  98. slidge_whatsapp/vendor/github.com/ebitengine/purego/sys_arm64.s +92 -0
  99. slidge_whatsapp/vendor/github.com/ebitengine/purego/sys_unix_arm64.s +70 -0
  100. slidge_whatsapp/vendor/github.com/ebitengine/purego/syscall.go +53 -0
  101. slidge_whatsapp/vendor/github.com/ebitengine/purego/syscall_cgo_linux.go +21 -0
  102. slidge_whatsapp/vendor/github.com/ebitengine/purego/syscall_sysv.go +223 -0
  103. slidge_whatsapp/vendor/github.com/ebitengine/purego/syscall_windows.go +46 -0
  104. slidge_whatsapp/vendor/github.com/ebitengine/purego/zcallback_amd64.s +2014 -0
  105. slidge_whatsapp/vendor/github.com/ebitengine/purego/zcallback_arm64.s +4014 -0
  106. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/.gitattributes +6 -0
  107. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/AUTHORS +1 -0
  108. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/COPYING +661 -0
  109. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/README.md +71 -0
  110. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/fitz.go +66 -0
  111. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/fitz_cgo.go +596 -0
  112. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/fitz_cgo_cgo.go +18 -0
  113. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/fitz_cgo_extlib.go +11 -0
  114. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/fitz_cgo_extlib_pkgconfig.go +9 -0
  115. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/fitz_content_types.go +383 -0
  116. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/fitz_nocgo.go +1098 -0
  117. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/fitz_vendor.go +9 -0
  118. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/archive.h +444 -0
  119. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/band-writer.h +117 -0
  120. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/bidi.h +90 -0
  121. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/bitmap.h +175 -0
  122. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/buffer.h +250 -0
  123. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/color.h +427 -0
  124. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/compress.h +88 -0
  125. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/compressed-buffer.h +185 -0
  126. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/config.h +222 -0
  127. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/context.h +1006 -0
  128. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/crypt.h +270 -0
  129. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/device.h +654 -0
  130. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/display-list.h +142 -0
  131. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/document.h +1108 -0
  132. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/export.h +52 -0
  133. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/filter.h +263 -0
  134. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/font.h +815 -0
  135. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/geometry.h +818 -0
  136. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/getopt.h +128 -0
  137. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/glyph-cache.h +96 -0
  138. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/glyph.h +81 -0
  139. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/hash.h +126 -0
  140. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/heap-imp.h +163 -0
  141. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/heap.h +140 -0
  142. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/image.h +443 -0
  143. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/link.h +130 -0
  144. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/log.h +61 -0
  145. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/outline.h +228 -0
  146. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/output-svg.h +64 -0
  147. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/output.h +415 -0
  148. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/path.h +447 -0
  149. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/pixmap.h +501 -0
  150. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/pool.h +68 -0
  151. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/separation.h +138 -0
  152. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/shade.h +233 -0
  153. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/store.h +456 -0
  154. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/story-writer.h +209 -0
  155. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/story.h +232 -0
  156. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/stream.h +646 -0
  157. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/string-util.h +286 -0
  158. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/structured-text.h +365 -0
  159. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/system.h +459 -0
  160. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/text.h +209 -0
  161. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/track-usage.h +57 -0
  162. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/transition.h +76 -0
  163. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/tree.h +62 -0
  164. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/types.h +41 -0
  165. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/util.h +151 -0
  166. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/vendor.go +3 -0
  167. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/version.h +31 -0
  168. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/write-pixmap.h +499 -0
  169. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/writer.h +266 -0
  170. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz/xml.h +397 -0
  171. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/fitz.h +97 -0
  172. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/memento.h +423 -0
  173. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/include/mupdf/vendor.go +3 -0
  174. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/libs/libmupdf_linux_arm64.a +0 -0
  175. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/libs/libmupdfthird_linux_arm64.a +0 -0
  176. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/libs/vendor.go +3 -0
  177. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/purego_darwin.go +23 -0
  178. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/purego_linux.go +22 -0
  179. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/purego_windows.go +22 -0
  180. slidge_whatsapp/vendor/github.com/go-python/gopy/LICENSE +23 -0
  181. slidge_whatsapp/vendor/github.com/go-python/gopy/gopyh/handle.go +210 -0
  182. slidge_whatsapp/vendor/github.com/google/uuid/CHANGELOG.md +41 -0
  183. slidge_whatsapp/vendor/github.com/google/uuid/CONTRIBUTING.md +26 -0
  184. slidge_whatsapp/vendor/github.com/google/uuid/CONTRIBUTORS +9 -0
  185. slidge_whatsapp/vendor/github.com/google/uuid/LICENSE +27 -0
  186. slidge_whatsapp/vendor/github.com/google/uuid/README.md +21 -0
  187. slidge_whatsapp/vendor/github.com/google/uuid/dce.go +80 -0
  188. slidge_whatsapp/vendor/github.com/google/uuid/doc.go +12 -0
  189. slidge_whatsapp/vendor/github.com/google/uuid/hash.go +59 -0
  190. slidge_whatsapp/vendor/github.com/google/uuid/marshal.go +38 -0
  191. slidge_whatsapp/vendor/github.com/google/uuid/node.go +90 -0
  192. slidge_whatsapp/vendor/github.com/google/uuid/node_js.go +12 -0
  193. slidge_whatsapp/vendor/github.com/google/uuid/node_net.go +33 -0
  194. slidge_whatsapp/vendor/github.com/google/uuid/null.go +118 -0
  195. slidge_whatsapp/vendor/github.com/google/uuid/sql.go +59 -0
  196. slidge_whatsapp/vendor/github.com/google/uuid/time.go +134 -0
  197. slidge_whatsapp/vendor/github.com/google/uuid/util.go +43 -0
  198. slidge_whatsapp/vendor/github.com/google/uuid/uuid.go +365 -0
  199. slidge_whatsapp/vendor/github.com/google/uuid/version1.go +44 -0
  200. slidge_whatsapp/vendor/github.com/google/uuid/version4.go +76 -0
  201. slidge_whatsapp/vendor/github.com/google/uuid/version6.go +56 -0
  202. slidge_whatsapp/vendor/github.com/google/uuid/version7.go +104 -0
  203. slidge_whatsapp/vendor/github.com/gorilla/websocket/.gitignore +25 -0
  204. slidge_whatsapp/vendor/github.com/gorilla/websocket/AUTHORS +9 -0
  205. slidge_whatsapp/vendor/github.com/gorilla/websocket/LICENSE +22 -0
  206. slidge_whatsapp/vendor/github.com/gorilla/websocket/README.md +33 -0
  207. slidge_whatsapp/vendor/github.com/gorilla/websocket/client.go +434 -0
  208. slidge_whatsapp/vendor/github.com/gorilla/websocket/compression.go +148 -0
  209. slidge_whatsapp/vendor/github.com/gorilla/websocket/conn.go +1238 -0
  210. slidge_whatsapp/vendor/github.com/gorilla/websocket/doc.go +227 -0
  211. slidge_whatsapp/vendor/github.com/gorilla/websocket/join.go +42 -0
  212. slidge_whatsapp/vendor/github.com/gorilla/websocket/json.go +60 -0
  213. slidge_whatsapp/vendor/github.com/gorilla/websocket/mask.go +55 -0
  214. slidge_whatsapp/vendor/github.com/gorilla/websocket/mask_safe.go +16 -0
  215. slidge_whatsapp/vendor/github.com/gorilla/websocket/prepared.go +102 -0
  216. slidge_whatsapp/vendor/github.com/gorilla/websocket/proxy.go +77 -0
  217. slidge_whatsapp/vendor/github.com/gorilla/websocket/server.go +365 -0
  218. slidge_whatsapp/vendor/github.com/gorilla/websocket/tls_handshake.go +21 -0
  219. slidge_whatsapp/vendor/github.com/gorilla/websocket/tls_handshake_116.go +21 -0
  220. slidge_whatsapp/vendor/github.com/gorilla/websocket/util.go +298 -0
  221. slidge_whatsapp/vendor/github.com/gorilla/websocket/x_net_proxy.go +473 -0
  222. slidge_whatsapp/vendor/github.com/h2non/filetype/.editorconfig +12 -0
  223. slidge_whatsapp/vendor/github.com/h2non/filetype/.gitignore +2 -0
  224. slidge_whatsapp/vendor/github.com/h2non/filetype/.travis.yml +16 -0
  225. slidge_whatsapp/vendor/github.com/h2non/filetype/History.md +163 -0
  226. slidge_whatsapp/vendor/github.com/h2non/filetype/LICENSE +24 -0
  227. slidge_whatsapp/vendor/github.com/h2non/filetype/README.md +294 -0
  228. slidge_whatsapp/vendor/github.com/h2non/filetype/filetype.go +102 -0
  229. slidge_whatsapp/vendor/github.com/h2non/filetype/kind.go +91 -0
  230. slidge_whatsapp/vendor/github.com/h2non/filetype/match.go +90 -0
  231. slidge_whatsapp/vendor/github.com/h2non/filetype/matchers/application.go +43 -0
  232. slidge_whatsapp/vendor/github.com/h2non/filetype/matchers/archive.go +211 -0
  233. slidge_whatsapp/vendor/github.com/h2non/filetype/matchers/audio.go +85 -0
  234. slidge_whatsapp/vendor/github.com/h2non/filetype/matchers/document.go +197 -0
  235. slidge_whatsapp/vendor/github.com/h2non/filetype/matchers/font.go +45 -0
  236. slidge_whatsapp/vendor/github.com/h2non/filetype/matchers/image.go +143 -0
  237. slidge_whatsapp/vendor/github.com/h2non/filetype/matchers/isobmff/isobmff.go +37 -0
  238. slidge_whatsapp/vendor/github.com/h2non/filetype/matchers/matchers.go +51 -0
  239. slidge_whatsapp/vendor/github.com/h2non/filetype/matchers/video.go +145 -0
  240. slidge_whatsapp/vendor/github.com/h2non/filetype/types/defaults.go +4 -0
  241. slidge_whatsapp/vendor/github.com/h2non/filetype/types/mime.go +14 -0
  242. slidge_whatsapp/vendor/github.com/h2non/filetype/types/split.go +11 -0
  243. slidge_whatsapp/vendor/github.com/h2non/filetype/types/type.go +16 -0
  244. slidge_whatsapp/vendor/github.com/h2non/filetype/types/types.go +23 -0
  245. slidge_whatsapp/vendor/github.com/h2non/filetype/version.go +4 -0
  246. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/.gitignore +21 -0
  247. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/CHANGELOG.md +69 -0
  248. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/COPYRIGHT.txt +147 -0
  249. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/LICENSE +21 -0
  250. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/README.md +162 -0
  251. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/abi.go +7 -0
  252. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/abi_amd64.go +7 -0
  253. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/ffi.go +272 -0
  254. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/fun.go +54 -0
  255. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/init.go +55 -0
  256. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/lib.go +82 -0
  257. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/lib_unix.go +63 -0
  258. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/lib_windows.go +68 -0
  259. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/tramp_amd64.go +5 -0
  260. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/tramp_arm64.go +5 -0
  261. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/tramp_darwin_arm64.go +5 -0
  262. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/types.go +34 -0
  263. slidge_whatsapp/vendor/github.com/mattn/go-colorable/LICENSE +21 -0
  264. slidge_whatsapp/vendor/github.com/mattn/go-colorable/README.md +48 -0
  265. slidge_whatsapp/vendor/github.com/mattn/go-colorable/colorable_others.go +38 -0
  266. slidge_whatsapp/vendor/github.com/mattn/go-colorable/colorable_windows.go +1047 -0
  267. slidge_whatsapp/vendor/github.com/mattn/go-colorable/go.test.sh +12 -0
  268. slidge_whatsapp/vendor/github.com/mattn/go-colorable/noncolorable.go +57 -0
  269. slidge_whatsapp/vendor/github.com/mattn/go-isatty/LICENSE +9 -0
  270. slidge_whatsapp/vendor/github.com/mattn/go-isatty/README.md +50 -0
  271. slidge_whatsapp/vendor/github.com/mattn/go-isatty/doc.go +2 -0
  272. slidge_whatsapp/vendor/github.com/mattn/go-isatty/go.test.sh +12 -0
  273. slidge_whatsapp/vendor/github.com/mattn/go-isatty/isatty_bsd.go +20 -0
  274. slidge_whatsapp/vendor/github.com/mattn/go-isatty/isatty_others.go +17 -0
  275. slidge_whatsapp/vendor/github.com/mattn/go-isatty/isatty_plan9.go +23 -0
  276. slidge_whatsapp/vendor/github.com/mattn/go-isatty/isatty_solaris.go +21 -0
  277. slidge_whatsapp/vendor/github.com/mattn/go-isatty/isatty_tcgets.go +20 -0
  278. slidge_whatsapp/vendor/github.com/mattn/go-isatty/isatty_windows.go +125 -0
  279. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/.codecov.yml +4 -0
  280. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/.gitignore +14 -0
  281. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/LICENSE +21 -0
  282. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/README.md +598 -0
  283. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/backup.go +85 -0
  284. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/callback.go +412 -0
  285. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/convert.go +299 -0
  286. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/doc.go +134 -0
  287. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/error.go +150 -0
  288. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3-binding.c +261459 -0
  289. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3-binding.h +13720 -0
  290. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3.go +2315 -0
  291. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_context.go +103 -0
  292. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_func_crypt.go +120 -0
  293. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_go18.go +54 -0
  294. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_libsqlite3.go +23 -0
  295. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_load_extension.go +85 -0
  296. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_load_extension_omit.go +25 -0
  297. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_allow_uri_authority.go +16 -0
  298. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_app_armor.go +16 -0
  299. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_column_metadata.go +22 -0
  300. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_foreign_keys.go +16 -0
  301. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_fts5.go +15 -0
  302. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_icu.go +20 -0
  303. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_introspect.go +16 -0
  304. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_math_functions.go +15 -0
  305. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_os_trace.go +15 -0
  306. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_preupdate.go +21 -0
  307. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_preupdate_hook.go +113 -0
  308. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_preupdate_omit.go +22 -0
  309. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_secure_delete.go +16 -0
  310. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_secure_delete_fast.go +16 -0
  311. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_serialize.go +83 -0
  312. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_serialize_omit.go +21 -0
  313. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_stat4.go +16 -0
  314. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_unlock_notify.c +89 -0
  315. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_unlock_notify.go +97 -0
  316. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_userauth.go +295 -0
  317. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_userauth_omit.go +158 -0
  318. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_vacuum_full.go +16 -0
  319. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_vacuum_incr.go +16 -0
  320. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_vtable.go +721 -0
  321. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_other.go +18 -0
  322. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_solaris.go +15 -0
  323. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_trace.go +288 -0
  324. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_type.go +108 -0
  325. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_usleep_windows.go +42 -0
  326. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_windows.go +18 -0
  327. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3ext.h +728 -0
  328. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/static_mock.go +38 -0
  329. slidge_whatsapp/vendor/github.com/petermattis/goid/.gitignore +4 -0
  330. slidge_whatsapp/vendor/github.com/petermattis/goid/LICENSE +202 -0
  331. slidge_whatsapp/vendor/github.com/petermattis/goid/README.md +4 -0
  332. slidge_whatsapp/vendor/github.com/petermattis/goid/goid.go +35 -0
  333. slidge_whatsapp/vendor/github.com/petermattis/goid/goid_gccgo.go +26 -0
  334. slidge_whatsapp/vendor/github.com/petermattis/goid/goid_go1.3.c +23 -0
  335. slidge_whatsapp/vendor/github.com/petermattis/goid/goid_go1.3.go +22 -0
  336. slidge_whatsapp/vendor/github.com/petermattis/goid/goid_go1.4.go +35 -0
  337. slidge_whatsapp/vendor/github.com/petermattis/goid/goid_go1.4.s +18 -0
  338. slidge_whatsapp/vendor/github.com/petermattis/goid/goid_go1.5.go +28 -0
  339. slidge_whatsapp/vendor/github.com/petermattis/goid/goid_go1.5.s +44 -0
  340. slidge_whatsapp/vendor/github.com/petermattis/goid/goid_slow.go +24 -0
  341. slidge_whatsapp/vendor/github.com/petermattis/goid/runtime_gccgo_go1.8.go +17 -0
  342. slidge_whatsapp/vendor/github.com/petermattis/goid/runtime_go1.23.go +38 -0
  343. slidge_whatsapp/vendor/github.com/petermattis/goid/runtime_go1.5.go +57 -0
  344. slidge_whatsapp/vendor/github.com/petermattis/goid/runtime_go1.6.go +43 -0
  345. slidge_whatsapp/vendor/github.com/petermattis/goid/runtime_go1.9.go +37 -0
  346. slidge_whatsapp/vendor/github.com/rs/zerolog/.gitignore +25 -0
  347. slidge_whatsapp/vendor/github.com/rs/zerolog/CONTRIBUTING.md +43 -0
  348. slidge_whatsapp/vendor/github.com/rs/zerolog/LICENSE +21 -0
  349. slidge_whatsapp/vendor/github.com/rs/zerolog/README.md +813 -0
  350. slidge_whatsapp/vendor/github.com/rs/zerolog/array.go +240 -0
  351. slidge_whatsapp/vendor/github.com/rs/zerolog/console.go +535 -0
  352. slidge_whatsapp/vendor/github.com/rs/zerolog/context.go +480 -0
  353. slidge_whatsapp/vendor/github.com/rs/zerolog/ctx.go +52 -0
  354. slidge_whatsapp/vendor/github.com/rs/zerolog/encoder.go +56 -0
  355. slidge_whatsapp/vendor/github.com/rs/zerolog/encoder_cbor.go +45 -0
  356. slidge_whatsapp/vendor/github.com/rs/zerolog/encoder_json.go +51 -0
  357. slidge_whatsapp/vendor/github.com/rs/zerolog/event.go +830 -0
  358. slidge_whatsapp/vendor/github.com/rs/zerolog/example.jsonl +7 -0
  359. slidge_whatsapp/vendor/github.com/rs/zerolog/fields.go +292 -0
  360. slidge_whatsapp/vendor/github.com/rs/zerolog/globals.go +190 -0
  361. slidge_whatsapp/vendor/github.com/rs/zerolog/go112.go +7 -0
  362. slidge_whatsapp/vendor/github.com/rs/zerolog/hook.go +64 -0
  363. slidge_whatsapp/vendor/github.com/rs/zerolog/internal/cbor/README.md +56 -0
  364. slidge_whatsapp/vendor/github.com/rs/zerolog/internal/cbor/base.go +19 -0
  365. slidge_whatsapp/vendor/github.com/rs/zerolog/internal/cbor/cbor.go +102 -0
  366. slidge_whatsapp/vendor/github.com/rs/zerolog/internal/cbor/decode_stream.go +654 -0
  367. slidge_whatsapp/vendor/github.com/rs/zerolog/internal/cbor/string.go +117 -0
  368. slidge_whatsapp/vendor/github.com/rs/zerolog/internal/cbor/time.go +93 -0
  369. slidge_whatsapp/vendor/github.com/rs/zerolog/internal/cbor/types.go +486 -0
  370. slidge_whatsapp/vendor/github.com/rs/zerolog/internal/json/base.go +19 -0
  371. slidge_whatsapp/vendor/github.com/rs/zerolog/internal/json/bytes.go +85 -0
  372. slidge_whatsapp/vendor/github.com/rs/zerolog/internal/json/string.go +149 -0
  373. slidge_whatsapp/vendor/github.com/rs/zerolog/internal/json/time.go +113 -0
  374. slidge_whatsapp/vendor/github.com/rs/zerolog/internal/json/types.go +435 -0
  375. slidge_whatsapp/vendor/github.com/rs/zerolog/log/log.go +131 -0
  376. slidge_whatsapp/vendor/github.com/rs/zerolog/log.go +518 -0
  377. slidge_whatsapp/vendor/github.com/rs/zerolog/not_go112.go +5 -0
  378. slidge_whatsapp/vendor/github.com/rs/zerolog/pretty.png +0 -0
  379. slidge_whatsapp/vendor/github.com/rs/zerolog/sampler.go +137 -0
  380. slidge_whatsapp/vendor/github.com/rs/zerolog/syslog.go +89 -0
  381. slidge_whatsapp/vendor/github.com/rs/zerolog/writer.go +355 -0
  382. slidge_whatsapp/vendor/go.mau.fi/libsignal/LICENSE +674 -0
  383. slidge_whatsapp/vendor/go.mau.fi/libsignal/cipher/Cbc.go +101 -0
  384. slidge_whatsapp/vendor/go.mau.fi/libsignal/cipher/Cipher.go +105 -0
  385. slidge_whatsapp/vendor/go.mau.fi/libsignal/ecc/Curve.go +109 -0
  386. slidge_whatsapp/vendor/go.mau.fi/libsignal/ecc/DjbECPublicKey.go +29 -0
  387. slidge_whatsapp/vendor/go.mau.fi/libsignal/ecc/DkbECPrivateKey.go +29 -0
  388. slidge_whatsapp/vendor/go.mau.fi/libsignal/ecc/Doc.go +3 -0
  389. slidge_whatsapp/vendor/go.mau.fi/libsignal/ecc/ECKeyPair.go +27 -0
  390. slidge_whatsapp/vendor/go.mau.fi/libsignal/ecc/ECPrivateKey.go +7 -0
  391. slidge_whatsapp/vendor/go.mau.fi/libsignal/ecc/ECPublicKey.go +11 -0
  392. slidge_whatsapp/vendor/go.mau.fi/libsignal/ecc/SignCurve25519.go +97 -0
  393. slidge_whatsapp/vendor/go.mau.fi/libsignal/groups/GroupCipher.go +152 -0
  394. slidge_whatsapp/vendor/go.mau.fi/libsignal/groups/GroupSessionBuilder.go +94 -0
  395. slidge_whatsapp/vendor/go.mau.fi/libsignal/groups/ratchet/Doc.go +3 -0
  396. slidge_whatsapp/vendor/go.mau.fi/libsignal/groups/ratchet/SenderChainKey.go +68 -0
  397. slidge_whatsapp/vendor/go.mau.fi/libsignal/groups/ratchet/SenderMessageKey.go +89 -0
  398. slidge_whatsapp/vendor/go.mau.fi/libsignal/groups/state/record/Doc.go +2 -0
  399. slidge_whatsapp/vendor/go.mau.fi/libsignal/groups/state/record/SenderKeyRecord.go +149 -0
  400. slidge_whatsapp/vendor/go.mau.fi/libsignal/groups/state/record/SenderKeyState.go +186 -0
  401. slidge_whatsapp/vendor/go.mau.fi/libsignal/groups/state/store/Doc.go +3 -0
  402. slidge_whatsapp/vendor/go.mau.fi/libsignal/groups/state/store/SenderKeyStore.go +13 -0
  403. slidge_whatsapp/vendor/go.mau.fi/libsignal/kdf/HKDF.go +47 -0
  404. slidge_whatsapp/vendor/go.mau.fi/libsignal/keys/chain/ChainKey.go +128 -0
  405. slidge_whatsapp/vendor/go.mau.fi/libsignal/keys/identity/IdentityKey.go +48 -0
  406. slidge_whatsapp/vendor/go.mau.fi/libsignal/keys/identity/IdentityKeyPair.go +39 -0
  407. slidge_whatsapp/vendor/go.mau.fi/libsignal/keys/message/MessageKey.go +91 -0
  408. slidge_whatsapp/vendor/go.mau.fi/libsignal/keys/prekey/PreKeyBundle.go +86 -0
  409. slidge_whatsapp/vendor/go.mau.fi/libsignal/keys/root/RootKey.go +66 -0
  410. slidge_whatsapp/vendor/go.mau.fi/libsignal/keys/session/DerivedSecrets.go +29 -0
  411. slidge_whatsapp/vendor/go.mau.fi/libsignal/keys/session/Pair.go +43 -0
  412. slidge_whatsapp/vendor/go.mau.fi/libsignal/logger/DefaultLogger.go +85 -0
  413. slidge_whatsapp/vendor/go.mau.fi/libsignal/logger/Logger.go +89 -0
  414. slidge_whatsapp/vendor/go.mau.fi/libsignal/protocol/CiphertextMessage.go +19 -0
  415. slidge_whatsapp/vendor/go.mau.fi/libsignal/protocol/Doc.go +3 -0
  416. slidge_whatsapp/vendor/go.mau.fi/libsignal/protocol/PreKeySignalMessage.go +152 -0
  417. slidge_whatsapp/vendor/go.mau.fi/libsignal/protocol/SenderKeyDistributionMessage.go +147 -0
  418. slidge_whatsapp/vendor/go.mau.fi/libsignal/protocol/SenderKeyMessage.go +168 -0
  419. slidge_whatsapp/vendor/go.mau.fi/libsignal/protocol/SenderKeyName.go +25 -0
  420. slidge_whatsapp/vendor/go.mau.fi/libsignal/protocol/SignalMessage.go +226 -0
  421. slidge_whatsapp/vendor/go.mau.fi/libsignal/protocol/SignalProtocolAddress.go +38 -0
  422. slidge_whatsapp/vendor/go.mau.fi/libsignal/ratchet/Ratchet.go +197 -0
  423. slidge_whatsapp/vendor/go.mau.fi/libsignal/ratchet/ReceiverParameters.go +106 -0
  424. slidge_whatsapp/vendor/go.mau.fi/libsignal/ratchet/SenderParameters.go +106 -0
  425. slidge_whatsapp/vendor/go.mau.fi/libsignal/ratchet/SymmetricParameters.go +18 -0
  426. slidge_whatsapp/vendor/go.mau.fi/libsignal/serialize/FingerprintProtocol.pb.go +246 -0
  427. slidge_whatsapp/vendor/go.mau.fi/libsignal/serialize/FingerprintProtocol.proto +14 -0
  428. slidge_whatsapp/vendor/go.mau.fi/libsignal/serialize/JSONSerializer.go +303 -0
  429. slidge_whatsapp/vendor/go.mau.fi/libsignal/serialize/LocalStorageProtocol.pb.go +1501 -0
  430. slidge_whatsapp/vendor/go.mau.fi/libsignal/serialize/LocalStorageProtocol.proto +114 -0
  431. slidge_whatsapp/vendor/go.mau.fi/libsignal/serialize/ProtoBufferSerializer.go +262 -0
  432. slidge_whatsapp/vendor/go.mau.fi/libsignal/serialize/Serializer.go +31 -0
  433. slidge_whatsapp/vendor/go.mau.fi/libsignal/serialize/WhisperTextProtocol.pb.go +641 -0
  434. slidge_whatsapp/vendor/go.mau.fi/libsignal/serialize/WhisperTextProtocol.proto +45 -0
  435. slidge_whatsapp/vendor/go.mau.fi/libsignal/session/Session.go +299 -0
  436. slidge_whatsapp/vendor/go.mau.fi/libsignal/session/SessionCipher.go +409 -0
  437. slidge_whatsapp/vendor/go.mau.fi/libsignal/signalerror/errors.go +37 -0
  438. slidge_whatsapp/vendor/go.mau.fi/libsignal/state/record/ChainState.go +157 -0
  439. slidge_whatsapp/vendor/go.mau.fi/libsignal/state/record/Doc.go +3 -0
  440. slidge_whatsapp/vendor/go.mau.fi/libsignal/state/record/PendingKeyExchangeState.go +91 -0
  441. slidge_whatsapp/vendor/go.mau.fi/libsignal/state/record/PendingPreKeyState.go +62 -0
  442. slidge_whatsapp/vendor/go.mau.fi/libsignal/state/record/PreKeyRecord.go +90 -0
  443. slidge_whatsapp/vendor/go.mau.fi/libsignal/state/record/SessionRecord.go +197 -0
  444. slidge_whatsapp/vendor/go.mau.fi/libsignal/state/record/SessionState.go +531 -0
  445. slidge_whatsapp/vendor/go.mau.fi/libsignal/state/record/SignedPreKeyRecord.go +112 -0
  446. slidge_whatsapp/vendor/go.mau.fi/libsignal/state/record/UnacknowledgedPreKey.go +69 -0
  447. slidge_whatsapp/vendor/go.mau.fi/libsignal/state/store/Doc.go +3 -0
  448. slidge_whatsapp/vendor/go.mau.fi/libsignal/state/store/IdentityKeyStore.go +31 -0
  449. slidge_whatsapp/vendor/go.mau.fi/libsignal/state/store/MessageKeyStore.go +23 -0
  450. slidge_whatsapp/vendor/go.mau.fi/libsignal/state/store/PreKeyStore.go +23 -0
  451. slidge_whatsapp/vendor/go.mau.fi/libsignal/state/store/SessionStore.go +19 -0
  452. slidge_whatsapp/vendor/go.mau.fi/libsignal/state/store/SignalProtocolStore.go +15 -0
  453. slidge_whatsapp/vendor/go.mau.fi/libsignal/state/store/SignedPreKeyStore.go +26 -0
  454. slidge_whatsapp/vendor/go.mau.fi/libsignal/util/bytehelper/ByteHelper.go +97 -0
  455. slidge_whatsapp/vendor/go.mau.fi/libsignal/util/errorhelper/ErrorHelper.go +40 -0
  456. slidge_whatsapp/vendor/go.mau.fi/libsignal/util/keyhelper/KeyHelper.go +95 -0
  457. slidge_whatsapp/vendor/go.mau.fi/libsignal/util/medium/Medium.go +4 -0
  458. slidge_whatsapp/vendor/go.mau.fi/libsignal/util/optional/Integer.go +17 -0
  459. slidge_whatsapp/vendor/go.mau.fi/util/LICENSE +373 -0
  460. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/connlog.go +257 -0
  461. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/database.go +309 -0
  462. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/iter.go +233 -0
  463. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/json.go +47 -0
  464. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/log.go +129 -0
  465. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/massinsert.go +164 -0
  466. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/queryhelper.go +137 -0
  467. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/reflectscan.go +30 -0
  468. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/transaction.go +180 -0
  469. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/upgrades.go +250 -0
  470. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/upgradetable.go +331 -0
  471. slidge_whatsapp/vendor/go.mau.fi/util/exerrors/dualerror.go +33 -0
  472. slidge_whatsapp/vendor/go.mau.fi/util/exerrors/must.go +23 -0
  473. slidge_whatsapp/vendor/go.mau.fi/util/exhttp/cors.go +32 -0
  474. slidge_whatsapp/vendor/go.mau.fi/util/exhttp/handleerrors.go +64 -0
  475. slidge_whatsapp/vendor/go.mau.fi/util/exhttp/json.go +41 -0
  476. slidge_whatsapp/vendor/go.mau.fi/util/exhttp/middleware.go +30 -0
  477. slidge_whatsapp/vendor/go.mau.fi/util/exhttp/networkerror.go +37 -0
  478. slidge_whatsapp/vendor/go.mau.fi/util/exsync/event.go +88 -0
  479. slidge_whatsapp/vendor/go.mau.fi/util/exsync/returnonce.go +25 -0
  480. slidge_whatsapp/vendor/go.mau.fi/util/exsync/ringbuffer.go +139 -0
  481. slidge_whatsapp/vendor/go.mau.fi/util/exsync/syncmap.go +94 -0
  482. slidge_whatsapp/vendor/go.mau.fi/util/exsync/syncset.go +136 -0
  483. slidge_whatsapp/vendor/go.mau.fi/util/exzerolog/callermarshal.go +28 -0
  484. slidge_whatsapp/vendor/go.mau.fi/util/exzerolog/defaults.go +32 -0
  485. slidge_whatsapp/vendor/go.mau.fi/util/exzerolog/generics.go +45 -0
  486. slidge_whatsapp/vendor/go.mau.fi/util/exzerolog/writer.go +81 -0
  487. slidge_whatsapp/vendor/go.mau.fi/util/fallocate/doc.go +9 -0
  488. slidge_whatsapp/vendor/go.mau.fi/util/fallocate/fallocate_darwin.go +29 -0
  489. slidge_whatsapp/vendor/go.mau.fi/util/fallocate/fallocate_linux.go +24 -0
  490. slidge_whatsapp/vendor/go.mau.fi/util/fallocate/fallocate_unknown.go +17 -0
  491. slidge_whatsapp/vendor/go.mau.fi/util/jsontime/duration.go +155 -0
  492. slidge_whatsapp/vendor/go.mau.fi/util/jsontime/helpers.go +59 -0
  493. slidge_whatsapp/vendor/go.mau.fi/util/jsontime/integer.go +170 -0
  494. slidge_whatsapp/vendor/go.mau.fi/util/jsontime/string.go +95 -0
  495. slidge_whatsapp/vendor/go.mau.fi/util/ptr/ptr.go +43 -0
  496. slidge_whatsapp/vendor/go.mau.fi/util/random/bytes.go +21 -0
  497. slidge_whatsapp/vendor/go.mau.fi/util/random/string.go +87 -0
  498. slidge_whatsapp/vendor/go.mau.fi/util/retryafter/retryafter.go +53 -0
  499. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/.editorconfig +13 -0
  500. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/.gitattributes +3 -0
  501. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/.pre-commit-config.yaml +31 -0
  502. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/LICENSE +374 -0
  503. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/README.md +35 -0
  504. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/appstate/decode.go +312 -0
  505. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/appstate/encode.go +323 -0
  506. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/appstate/errors.go +19 -0
  507. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/appstate/hash.go +97 -0
  508. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/appstate/keys.go +138 -0
  509. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/appstate/lthash/lthash.go +58 -0
  510. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/appstate.go +409 -0
  511. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/armadillomessage.go +100 -0
  512. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/binary/attrs.go +218 -0
  513. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/binary/decoder.go +406 -0
  514. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/binary/encoder.go +308 -0
  515. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/binary/errors.go +12 -0
  516. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/binary/node.go +139 -0
  517. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/binary/token/token.go +94 -0
  518. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/binary/unpack.go +31 -0
  519. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/binary/xml.go +108 -0
  520. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/broadcast.go +143 -0
  521. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/call.go +112 -0
  522. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/client.go +896 -0
  523. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/connectionevents.go +212 -0
  524. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/download-to-file.go +227 -0
  525. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/download.go +394 -0
  526. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/errors.go +261 -0
  527. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/group.go +960 -0
  528. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/handshake.go +165 -0
  529. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/internals.go +680 -0
  530. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/keepalive.go +84 -0
  531. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/mediaconn.go +98 -0
  532. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/mediaretry.go +185 -0
  533. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/message.go +842 -0
  534. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/msgsecret.go +374 -0
  535. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/newsletter.go +376 -0
  536. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/notification.go +452 -0
  537. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/pair-code.go +245 -0
  538. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/pair.go +272 -0
  539. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/prekeys.go +255 -0
  540. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/presence.go +139 -0
  541. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/privacysettings.go +170 -0
  542. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/.gitignore +1 -0
  543. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/armadilloutil/decode.go +32 -0
  544. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/extra.go +36 -0
  545. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waAdv/WAAdv.pb.go +515 -0
  546. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waAdv/WAAdv.proto +43 -0
  547. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waArmadilloApplication/WAArmadilloApplication.pb.go +2982 -0
  548. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waArmadilloApplication/WAArmadilloApplication.proto +258 -0
  549. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waArmadilloApplication/extra.go +3 -0
  550. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waArmadilloXMA/WAArmadilloXMA.pb.go +1017 -0
  551. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waArmadilloXMA/WAArmadilloXMA.proto +140 -0
  552. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCert/WACert.pb.go +412 -0
  553. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCert/WACert.proto +34 -0
  554. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waChatLockSettings/WAProtobufsChatLockSettings.pb.go +138 -0
  555. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waChatLockSettings/WAProtobufsChatLockSettings.proto +10 -0
  556. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCommon/WACommon.pb.go +769 -0
  557. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCommon/WACommon.proto +67 -0
  558. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCommon/legacy.go +11 -0
  559. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCompanionReg/WACompanionReg.pb.go +978 -0
  560. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCompanionReg/WACompanionReg.proto +100 -0
  561. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waConsumerApplication/WAConsumerApplication.pb.go +2817 -0
  562. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waConsumerApplication/WAConsumerApplication.proto +233 -0
  563. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waConsumerApplication/extra.go +82 -0
  564. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waDeviceCapabilities/WAProtobufsDeviceCapabilities.pb.go +247 -0
  565. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waDeviceCapabilities/WAProtobufsDeviceCapabilities.proto +18 -0
  566. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waE2E/WAWebProtobufsE2E.pb.go +26597 -0
  567. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waE2E/WAWebProtobufsE2E.proto +2550 -0
  568. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waE2E/legacy.go +31 -0
  569. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waHistorySync/WAWebProtobufsHistorySync.pb.go +2368 -0
  570. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waHistorySync/WAWebProtobufsHistorySync.proto +231 -0
  571. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waHistorySync/legacy.go +11 -0
  572. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMediaTransport/WAMediaTransport.pb.go +2130 -0
  573. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMediaTransport/WAMediaTransport.proto +191 -0
  574. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMmsRetry/WAMmsRetry.pb.go +272 -0
  575. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMmsRetry/WAMmsRetry.proto +21 -0
  576. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMsgApplication/WAMsgApplication.pb.go +1156 -0
  577. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMsgApplication/WAMsgApplication.proto +96 -0
  578. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMsgApplication/extra.go +41 -0
  579. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMsgTransport/WAMsgTransport.pb.go +859 -0
  580. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMsgTransport/WAMsgTransport.proto +75 -0
  581. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMsgTransport/extra.go +19 -0
  582. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMultiDevice/WAMultiDevice.pb.go +732 -0
  583. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMultiDevice/WAMultiDevice.proto +57 -0
  584. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMultiDevice/extra.go +3 -0
  585. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waServerSync/WAServerSync.pb.go +857 -0
  586. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waServerSync/WAServerSync.proto +72 -0
  587. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waServerSync/legacy.go +31 -0
  588. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waSyncAction/WASyncAction.pb.go +5344 -0
  589. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waSyncAction/WASyncAction.proto +493 -0
  590. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waUserPassword/WAProtobufsUserPassword.pb.go +428 -0
  591. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waUserPassword/WAProtobufsUserPassword.proto +33 -0
  592. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waVnameCert/WAWebProtobufsVnameCert.pb.go +852 -0
  593. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waVnameCert/WAWebProtobufsVnameCert.proto +72 -0
  594. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waWa6/WAWebProtobufsWa6.pb.go +2325 -0
  595. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waWa6/WAWebProtobufsWa6.proto +253 -0
  596. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waWeb/WAWebProtobufsWeb.pb.go +4441 -0
  597. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waWeb/WAWebProtobufsWeb.proto +579 -0
  598. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waWeb/legacy.go +1 -0
  599. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/push.go +110 -0
  600. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/qrchan.go +180 -0
  601. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/receipt.go +248 -0
  602. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/request.go +225 -0
  603. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/retry.go +450 -0
  604. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/send.go +1299 -0
  605. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/sendfb.go +657 -0
  606. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/socket/constants.go +43 -0
  607. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/socket/framesocket.go +235 -0
  608. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/socket/noisehandshake.go +124 -0
  609. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/socket/noisesocket.go +108 -0
  610. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/clientpayload.go +187 -0
  611. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/noop.go +256 -0
  612. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/signal.go +182 -0
  613. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/container.go +288 -0
  614. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/lidmap.go +186 -0
  615. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/store.go +897 -0
  616. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/00-latest-schema.sql +153 -0
  617. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/03-message-secrets.sql +11 -0
  618. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/04-privacy-tokens.sql +8 -0
  619. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/05-account-jid-format.sql +2 -0
  620. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/06-facebook-uuid.sql +2 -0
  621. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/07-account-lid.sql +2 -0
  622. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/08-lid-mapping.sql +5 -0
  623. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/09-decryption-buffer.sql +10 -0
  624. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/upgrades.go +22 -0
  625. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/store.go +243 -0
  626. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/botmap.go +210 -0
  627. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/call.go +21 -0
  628. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/events/appstate.go +185 -0
  629. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/events/call.go +77 -0
  630. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/events/events.go +608 -0
  631. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/group.go +164 -0
  632. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/jid.go +262 -0
  633. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/message.go +115 -0
  634. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/newsletter.go +201 -0
  635. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/presence.go +78 -0
  636. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/user.go +195 -0
  637. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/update.go +64 -0
  638. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/upload.go +251 -0
  639. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/user.go +880 -0
  640. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/util/cbcutil/cbc.go +217 -0
  641. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/util/gcmutil/gcm.go +41 -0
  642. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/util/hkdfutil/hkdf.go +28 -0
  643. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/util/keys/keypair.go +68 -0
  644. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/util/log/log.go +83 -0
  645. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/util/log/zerolog.go +38 -0
  646. slidge_whatsapp/vendor/golang.org/x/crypto/LICENSE +27 -0
  647. slidge_whatsapp/vendor/golang.org/x/crypto/PATENTS +22 -0
  648. slidge_whatsapp/vendor/golang.org/x/crypto/curve25519/curve25519.go +90 -0
  649. slidge_whatsapp/vendor/golang.org/x/crypto/hkdf/hkdf.go +95 -0
  650. slidge_whatsapp/vendor/golang.org/x/crypto/pbkdf2/pbkdf2.go +77 -0
  651. slidge_whatsapp/vendor/golang.org/x/exp/LICENSE +27 -0
  652. slidge_whatsapp/vendor/golang.org/x/exp/PATENTS +22 -0
  653. slidge_whatsapp/vendor/golang.org/x/exp/constraints/constraints.go +54 -0
  654. slidge_whatsapp/vendor/golang.org/x/image/LICENSE +27 -0
  655. slidge_whatsapp/vendor/golang.org/x/image/PATENTS +22 -0
  656. slidge_whatsapp/vendor/golang.org/x/image/draw/draw.go +67 -0
  657. slidge_whatsapp/vendor/golang.org/x/image/draw/impl.go +8426 -0
  658. slidge_whatsapp/vendor/golang.org/x/image/draw/scale.go +525 -0
  659. slidge_whatsapp/vendor/golang.org/x/image/math/f64/f64.go +37 -0
  660. slidge_whatsapp/vendor/golang.org/x/image/riff/riff.go +193 -0
  661. slidge_whatsapp/vendor/golang.org/x/image/vp8/decode.go +403 -0
  662. slidge_whatsapp/vendor/golang.org/x/image/vp8/filter.go +273 -0
  663. slidge_whatsapp/vendor/golang.org/x/image/vp8/idct.go +98 -0
  664. slidge_whatsapp/vendor/golang.org/x/image/vp8/partition.go +129 -0
  665. slidge_whatsapp/vendor/golang.org/x/image/vp8/pred.go +201 -0
  666. slidge_whatsapp/vendor/golang.org/x/image/vp8/predfunc.go +553 -0
  667. slidge_whatsapp/vendor/golang.org/x/image/vp8/quant.go +98 -0
  668. slidge_whatsapp/vendor/golang.org/x/image/vp8/reconstruct.go +442 -0
  669. slidge_whatsapp/vendor/golang.org/x/image/vp8/token.go +381 -0
  670. slidge_whatsapp/vendor/golang.org/x/image/vp8l/decode.go +603 -0
  671. slidge_whatsapp/vendor/golang.org/x/image/vp8l/huffman.go +245 -0
  672. slidge_whatsapp/vendor/golang.org/x/image/vp8l/transform.go +299 -0
  673. slidge_whatsapp/vendor/golang.org/x/image/webp/decode.go +276 -0
  674. slidge_whatsapp/vendor/golang.org/x/image/webp/doc.go +9 -0
  675. slidge_whatsapp/vendor/golang.org/x/net/LICENSE +27 -0
  676. slidge_whatsapp/vendor/golang.org/x/net/PATENTS +22 -0
  677. slidge_whatsapp/vendor/golang.org/x/net/http/httpguts/guts.go +50 -0
  678. slidge_whatsapp/vendor/golang.org/x/net/http/httpguts/httplex.go +347 -0
  679. slidge_whatsapp/vendor/golang.org/x/net/http2/.gitignore +2 -0
  680. slidge_whatsapp/vendor/golang.org/x/net/http2/ascii.go +53 -0
  681. slidge_whatsapp/vendor/golang.org/x/net/http2/ciphers.go +641 -0
  682. slidge_whatsapp/vendor/golang.org/x/net/http2/client_conn_pool.go +311 -0
  683. slidge_whatsapp/vendor/golang.org/x/net/http2/config.go +122 -0
  684. slidge_whatsapp/vendor/golang.org/x/net/http2/config_go124.go +61 -0
  685. slidge_whatsapp/vendor/golang.org/x/net/http2/config_pre_go124.go +16 -0
  686. slidge_whatsapp/vendor/golang.org/x/net/http2/databuffer.go +149 -0
  687. slidge_whatsapp/vendor/golang.org/x/net/http2/errors.go +145 -0
  688. slidge_whatsapp/vendor/golang.org/x/net/http2/flow.go +120 -0
  689. slidge_whatsapp/vendor/golang.org/x/net/http2/frame.go +1702 -0
  690. slidge_whatsapp/vendor/golang.org/x/net/http2/gotrack.go +170 -0
  691. slidge_whatsapp/vendor/golang.org/x/net/http2/hpack/encode.go +245 -0
  692. slidge_whatsapp/vendor/golang.org/x/net/http2/hpack/hpack.go +523 -0
  693. slidge_whatsapp/vendor/golang.org/x/net/http2/hpack/huffman.go +226 -0
  694. slidge_whatsapp/vendor/golang.org/x/net/http2/hpack/static_table.go +188 -0
  695. slidge_whatsapp/vendor/golang.org/x/net/http2/hpack/tables.go +403 -0
  696. slidge_whatsapp/vendor/golang.org/x/net/http2/http2.go +432 -0
  697. slidge_whatsapp/vendor/golang.org/x/net/http2/pipe.go +184 -0
  698. slidge_whatsapp/vendor/golang.org/x/net/http2/server.go +3350 -0
  699. slidge_whatsapp/vendor/golang.org/x/net/http2/timer.go +20 -0
  700. slidge_whatsapp/vendor/golang.org/x/net/http2/transport.go +3287 -0
  701. slidge_whatsapp/vendor/golang.org/x/net/http2/unencrypted.go +32 -0
  702. slidge_whatsapp/vendor/golang.org/x/net/http2/write.go +381 -0
  703. slidge_whatsapp/vendor/golang.org/x/net/http2/writesched.go +251 -0
  704. slidge_whatsapp/vendor/golang.org/x/net/http2/writesched_priority.go +451 -0
  705. slidge_whatsapp/vendor/golang.org/x/net/http2/writesched_random.go +77 -0
  706. slidge_whatsapp/vendor/golang.org/x/net/http2/writesched_roundrobin.go +119 -0
  707. slidge_whatsapp/vendor/golang.org/x/net/idna/go118.go +13 -0
  708. slidge_whatsapp/vendor/golang.org/x/net/idna/idna10.0.0.go +769 -0
  709. slidge_whatsapp/vendor/golang.org/x/net/idna/idna9.0.0.go +717 -0
  710. slidge_whatsapp/vendor/golang.org/x/net/idna/pre_go118.go +11 -0
  711. slidge_whatsapp/vendor/golang.org/x/net/idna/punycode.go +217 -0
  712. slidge_whatsapp/vendor/golang.org/x/net/idna/tables10.0.0.go +4559 -0
  713. slidge_whatsapp/vendor/golang.org/x/net/idna/tables11.0.0.go +4653 -0
  714. slidge_whatsapp/vendor/golang.org/x/net/idna/tables12.0.0.go +4733 -0
  715. slidge_whatsapp/vendor/golang.org/x/net/idna/tables13.0.0.go +4959 -0
  716. slidge_whatsapp/vendor/golang.org/x/net/idna/tables15.0.0.go +5144 -0
  717. slidge_whatsapp/vendor/golang.org/x/net/idna/tables9.0.0.go +4486 -0
  718. slidge_whatsapp/vendor/golang.org/x/net/idna/trie.go +51 -0
  719. slidge_whatsapp/vendor/golang.org/x/net/idna/trie12.0.0.go +30 -0
  720. slidge_whatsapp/vendor/golang.org/x/net/idna/trie13.0.0.go +30 -0
  721. slidge_whatsapp/vendor/golang.org/x/net/idna/trieval.go +119 -0
  722. slidge_whatsapp/vendor/golang.org/x/net/internal/httpcommon/ascii.go +53 -0
  723. slidge_whatsapp/vendor/golang.org/x/net/internal/httpcommon/headermap.go +115 -0
  724. slidge_whatsapp/vendor/golang.org/x/net/internal/httpcommon/request.go +467 -0
  725. slidge_whatsapp/vendor/golang.org/x/net/internal/socks/client.go +168 -0
  726. slidge_whatsapp/vendor/golang.org/x/net/internal/socks/socks.go +317 -0
  727. slidge_whatsapp/vendor/golang.org/x/net/proxy/dial.go +54 -0
  728. slidge_whatsapp/vendor/golang.org/x/net/proxy/direct.go +31 -0
  729. slidge_whatsapp/vendor/golang.org/x/net/proxy/per_host.go +153 -0
  730. slidge_whatsapp/vendor/golang.org/x/net/proxy/proxy.go +149 -0
  731. slidge_whatsapp/vendor/golang.org/x/net/proxy/socks5.go +42 -0
  732. slidge_whatsapp/vendor/golang.org/x/sys/LICENSE +27 -0
  733. slidge_whatsapp/vendor/golang.org/x/sys/PATENTS +22 -0
  734. slidge_whatsapp/vendor/golang.org/x/sys/unix/.gitignore +2 -0
  735. slidge_whatsapp/vendor/golang.org/x/sys/unix/README.md +184 -0
  736. slidge_whatsapp/vendor/golang.org/x/sys/unix/affinity_linux.go +86 -0
  737. slidge_whatsapp/vendor/golang.org/x/sys/unix/aliases.go +13 -0
  738. slidge_whatsapp/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s +17 -0
  739. slidge_whatsapp/vendor/golang.org/x/sys/unix/asm_bsd_386.s +27 -0
  740. slidge_whatsapp/vendor/golang.org/x/sys/unix/asm_bsd_amd64.s +27 -0
  741. slidge_whatsapp/vendor/golang.org/x/sys/unix/asm_bsd_arm.s +27 -0
  742. slidge_whatsapp/vendor/golang.org/x/sys/unix/asm_bsd_arm64.s +27 -0
  743. slidge_whatsapp/vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s +29 -0
  744. slidge_whatsapp/vendor/golang.org/x/sys/unix/asm_bsd_riscv64.s +27 -0
  745. slidge_whatsapp/vendor/golang.org/x/sys/unix/asm_linux_386.s +65 -0
  746. slidge_whatsapp/vendor/golang.org/x/sys/unix/asm_linux_amd64.s +57 -0
  747. slidge_whatsapp/vendor/golang.org/x/sys/unix/asm_linux_arm.s +56 -0
  748. slidge_whatsapp/vendor/golang.org/x/sys/unix/asm_linux_arm64.s +50 -0
  749. slidge_whatsapp/vendor/golang.org/x/sys/unix/asm_linux_loong64.s +51 -0
  750. slidge_whatsapp/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s +54 -0
  751. slidge_whatsapp/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s +52 -0
  752. slidge_whatsapp/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s +42 -0
  753. slidge_whatsapp/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s +47 -0
  754. slidge_whatsapp/vendor/golang.org/x/sys/unix/asm_linux_s390x.s +54 -0
  755. slidge_whatsapp/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s +29 -0
  756. slidge_whatsapp/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s +17 -0
  757. slidge_whatsapp/vendor/golang.org/x/sys/unix/asm_zos_s390x.s +382 -0
  758. slidge_whatsapp/vendor/golang.org/x/sys/unix/auxv.go +36 -0
  759. slidge_whatsapp/vendor/golang.org/x/sys/unix/auxv_unsupported.go +13 -0
  760. slidge_whatsapp/vendor/golang.org/x/sys/unix/bluetooth_linux.go +36 -0
  761. slidge_whatsapp/vendor/golang.org/x/sys/unix/bpxsvc_zos.go +657 -0
  762. slidge_whatsapp/vendor/golang.org/x/sys/unix/bpxsvc_zos.s +192 -0
  763. slidge_whatsapp/vendor/golang.org/x/sys/unix/cap_freebsd.go +195 -0
  764. slidge_whatsapp/vendor/golang.org/x/sys/unix/constants.go +13 -0
  765. slidge_whatsapp/vendor/golang.org/x/sys/unix/dev_aix_ppc.go +26 -0
  766. slidge_whatsapp/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go +28 -0
  767. slidge_whatsapp/vendor/golang.org/x/sys/unix/dev_darwin.go +24 -0
  768. slidge_whatsapp/vendor/golang.org/x/sys/unix/dev_dragonfly.go +30 -0
  769. slidge_whatsapp/vendor/golang.org/x/sys/unix/dev_freebsd.go +30 -0
  770. slidge_whatsapp/vendor/golang.org/x/sys/unix/dev_linux.go +42 -0
  771. slidge_whatsapp/vendor/golang.org/x/sys/unix/dev_netbsd.go +29 -0
  772. slidge_whatsapp/vendor/golang.org/x/sys/unix/dev_openbsd.go +29 -0
  773. slidge_whatsapp/vendor/golang.org/x/sys/unix/dev_zos.go +28 -0
  774. slidge_whatsapp/vendor/golang.org/x/sys/unix/dirent.go +102 -0
  775. slidge_whatsapp/vendor/golang.org/x/sys/unix/endian_big.go +9 -0
  776. slidge_whatsapp/vendor/golang.org/x/sys/unix/endian_little.go +9 -0
  777. slidge_whatsapp/vendor/golang.org/x/sys/unix/env_unix.go +31 -0
  778. slidge_whatsapp/vendor/golang.org/x/sys/unix/fcntl.go +36 -0
  779. slidge_whatsapp/vendor/golang.org/x/sys/unix/fcntl_darwin.go +24 -0
  780. slidge_whatsapp/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go +13 -0
  781. slidge_whatsapp/vendor/golang.org/x/sys/unix/fdset.go +29 -0
  782. slidge_whatsapp/vendor/golang.org/x/sys/unix/gccgo.go +59 -0
  783. slidge_whatsapp/vendor/golang.org/x/sys/unix/gccgo_c.c +44 -0
  784. slidge_whatsapp/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go +20 -0
  785. slidge_whatsapp/vendor/golang.org/x/sys/unix/ifreq_linux.go +141 -0
  786. slidge_whatsapp/vendor/golang.org/x/sys/unix/ioctl_linux.go +334 -0
  787. slidge_whatsapp/vendor/golang.org/x/sys/unix/ioctl_signed.go +69 -0
  788. slidge_whatsapp/vendor/golang.org/x/sys/unix/ioctl_unsigned.go +69 -0
  789. slidge_whatsapp/vendor/golang.org/x/sys/unix/ioctl_zos.go +71 -0
  790. slidge_whatsapp/vendor/golang.org/x/sys/unix/mkall.sh +249 -0
  791. slidge_whatsapp/vendor/golang.org/x/sys/unix/mkerrors.sh +805 -0
  792. slidge_whatsapp/vendor/golang.org/x/sys/unix/mmap_nomremap.go +13 -0
  793. slidge_whatsapp/vendor/golang.org/x/sys/unix/mremap.go +57 -0
  794. slidge_whatsapp/vendor/golang.org/x/sys/unix/pagesize_unix.go +15 -0
  795. slidge_whatsapp/vendor/golang.org/x/sys/unix/pledge_openbsd.go +111 -0
  796. slidge_whatsapp/vendor/golang.org/x/sys/unix/ptrace_darwin.go +11 -0
  797. slidge_whatsapp/vendor/golang.org/x/sys/unix/ptrace_ios.go +11 -0
  798. slidge_whatsapp/vendor/golang.org/x/sys/unix/race.go +30 -0
  799. slidge_whatsapp/vendor/golang.org/x/sys/unix/race0.go +25 -0
  800. slidge_whatsapp/vendor/golang.org/x/sys/unix/readdirent_getdents.go +12 -0
  801. slidge_whatsapp/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go +19 -0
  802. slidge_whatsapp/vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go +16 -0
  803. slidge_whatsapp/vendor/golang.org/x/sys/unix/sockcmsg_linux.go +85 -0
  804. slidge_whatsapp/vendor/golang.org/x/sys/unix/sockcmsg_unix.go +106 -0
  805. slidge_whatsapp/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go +46 -0
  806. slidge_whatsapp/vendor/golang.org/x/sys/unix/sockcmsg_zos.go +58 -0
  807. slidge_whatsapp/vendor/golang.org/x/sys/unix/symaddr_zos_s390x.s +75 -0
  808. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall.go +86 -0
  809. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_aix.go +582 -0
  810. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go +52 -0
  811. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go +83 -0
  812. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_bsd.go +609 -0
  813. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_darwin.go +854 -0
  814. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go +50 -0
  815. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go +50 -0
  816. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go +26 -0
  817. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_dragonfly.go +359 -0
  818. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go +56 -0
  819. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_freebsd.go +455 -0
  820. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go +64 -0
  821. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go +64 -0
  822. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go +60 -0
  823. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go +60 -0
  824. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go +60 -0
  825. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_hurd.go +30 -0
  826. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_hurd_386.go +28 -0
  827. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_illumos.go +78 -0
  828. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_linux.go +2647 -0
  829. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_linux_386.go +314 -0
  830. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_linux_alarm.go +12 -0
  831. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go +145 -0
  832. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go +12 -0
  833. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_linux_arm.go +216 -0
  834. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go +186 -0
  835. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_linux_gc.go +14 -0
  836. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go +16 -0
  837. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go +13 -0
  838. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go +30 -0
  839. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go +20 -0
  840. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go +218 -0
  841. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go +188 -0
  842. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go +174 -0
  843. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go +204 -0
  844. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go +115 -0
  845. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go +191 -0
  846. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go +296 -0
  847. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go +112 -0
  848. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_netbsd.go +371 -0
  849. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go +37 -0
  850. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go +37 -0
  851. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go +37 -0
  852. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go +37 -0
  853. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_openbsd.go +342 -0
  854. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go +41 -0
  855. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go +41 -0
  856. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go +41 -0
  857. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go +41 -0
  858. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_openbsd_libc.go +26 -0
  859. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go +39 -0
  860. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go +41 -0
  861. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go +41 -0
  862. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_solaris.go +1191 -0
  863. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go +27 -0
  864. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_unix.go +615 -0
  865. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_unix_gc.go +14 -0
  866. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go +22 -0
  867. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go +3213 -0
  868. slidge_whatsapp/vendor/golang.org/x/sys/unix/sysvshm_linux.go +20 -0
  869. slidge_whatsapp/vendor/golang.org/x/sys/unix/sysvshm_unix.go +51 -0
  870. slidge_whatsapp/vendor/golang.org/x/sys/unix/sysvshm_unix_other.go +13 -0
  871. slidge_whatsapp/vendor/golang.org/x/sys/unix/timestruct.go +76 -0
  872. slidge_whatsapp/vendor/golang.org/x/sys/unix/unveil_openbsd.go +51 -0
  873. slidge_whatsapp/vendor/golang.org/x/sys/unix/vgetrandom_linux.go +13 -0
  874. slidge_whatsapp/vendor/golang.org/x/sys/unix/vgetrandom_unsupported.go +11 -0
  875. slidge_whatsapp/vendor/golang.org/x/sys/unix/xattr_bsd.go +280 -0
  876. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go +1384 -0
  877. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go +1385 -0
  878. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go +1922 -0
  879. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go +1922 -0
  880. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go +1737 -0
  881. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go +2042 -0
  882. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go +2039 -0
  883. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go +2033 -0
  884. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go +2033 -0
  885. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go +2147 -0
  886. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux.go +3752 -0
  887. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_386.go +873 -0
  888. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go +873 -0
  889. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go +878 -0
  890. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go +875 -0
  891. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go +865 -0
  892. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go +879 -0
  893. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go +879 -0
  894. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go +879 -0
  895. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go +879 -0
  896. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go +931 -0
  897. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go +935 -0
  898. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go +935 -0
  899. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go +862 -0
  900. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go +934 -0
  901. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go +977 -0
  902. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go +1779 -0
  903. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go +1769 -0
  904. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go +1758 -0
  905. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go +1769 -0
  906. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go +1905 -0
  907. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go +1905 -0
  908. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go +1905 -0
  909. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go +1905 -0
  910. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go +1905 -0
  911. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go +1904 -0
  912. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go +1903 -0
  913. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go +1556 -0
  914. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go +990 -0
  915. slidge_whatsapp/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go +40 -0
  916. slidge_whatsapp/vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go +17 -0
  917. slidge_whatsapp/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go +49 -0
  918. slidge_whatsapp/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go +49 -0
  919. slidge_whatsapp/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go +79 -0
  920. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsymaddr_zos_s390x.s +364 -0
  921. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go +1461 -0
  922. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go +1420 -0
  923. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go +1188 -0
  924. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go +1069 -0
  925. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go +2728 -0
  926. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s +799 -0
  927. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go +2728 -0
  928. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s +799 -0
  929. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go +1666 -0
  930. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go +1886 -0
  931. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go +1886 -0
  932. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go +1886 -0
  933. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go +1886 -0
  934. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go +1886 -0
  935. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go +101 -0
  936. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_linux.go +2240 -0
  937. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go +486 -0
  938. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go +653 -0
  939. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go +601 -0
  940. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go +552 -0
  941. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go +486 -0
  942. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go +653 -0
  943. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go +647 -0
  944. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go +636 -0
  945. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go +653 -0
  946. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go +658 -0
  947. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go +704 -0
  948. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go +704 -0
  949. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go +548 -0
  950. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go +495 -0
  951. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go +648 -0
  952. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go +1848 -0
  953. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go +1848 -0
  954. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go +1848 -0
  955. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go +1848 -0
  956. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go +2323 -0
  957. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s +699 -0
  958. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go +2323 -0
  959. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s +699 -0
  960. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go +2323 -0
  961. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s +699 -0
  962. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go +2323 -0
  963. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s +699 -0
  964. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go +2323 -0
  965. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s +699 -0
  966. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go +2323 -0
  967. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s +838 -0
  968. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go +2323 -0
  969. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s +699 -0
  970. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go +2217 -0
  971. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go +3458 -0
  972. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go +280 -0
  973. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go +280 -0
  974. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go +280 -0
  975. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go +280 -0
  976. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go +280 -0
  977. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go +280 -0
  978. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go +281 -0
  979. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go +439 -0
  980. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go +437 -0
  981. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go +316 -0
  982. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go +393 -0
  983. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go +393 -0
  984. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go +393 -0
  985. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go +393 -0
  986. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go +393 -0
  987. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go +465 -0
  988. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go +388 -0
  989. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go +429 -0
  990. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go +332 -0
  991. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go +328 -0
  992. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go +449 -0
  993. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go +379 -0
  994. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go +379 -0
  995. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go +449 -0
  996. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go +456 -0
  997. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go +428 -0
  998. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go +428 -0
  999. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go +333 -0
  1000. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go +394 -0
  1001. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go +407 -0
  1002. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go +274 -0
  1003. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go +274 -0
  1004. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go +274 -0
  1005. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go +274 -0
  1006. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go +219 -0
  1007. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go +219 -0
  1008. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go +219 -0
  1009. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go +218 -0
  1010. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go +221 -0
  1011. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go +217 -0
  1012. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go +218 -0
  1013. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go +2852 -0
  1014. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go +353 -0
  1015. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go +357 -0
  1016. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go +878 -0
  1017. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go +878 -0
  1018. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go +473 -0
  1019. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go +651 -0
  1020. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go +656 -0
  1021. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go +642 -0
  1022. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go +636 -0
  1023. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go +638 -0
  1024. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux.go +6178 -0
  1025. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_386.go +689 -0
  1026. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go +703 -0
  1027. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go +683 -0
  1028. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go +682 -0
  1029. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go +683 -0
  1030. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go +688 -0
  1031. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go +685 -0
  1032. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go +685 -0
  1033. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go +688 -0
  1034. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go +696 -0
  1035. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go +691 -0
  1036. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go +691 -0
  1037. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go +770 -0
  1038. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go +705 -0
  1039. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go +686 -0
  1040. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go +585 -0
  1041. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go +593 -0
  1042. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go +590 -0
  1043. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go +593 -0
  1044. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go +568 -0
  1045. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go +568 -0
  1046. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go +575 -0
  1047. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go +568 -0
  1048. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go +568 -0
  1049. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go +570 -0
  1050. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go +570 -0
  1051. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go +516 -0
  1052. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go +552 -0
  1053. slidge_whatsapp/vendor/golang.org/x/sys/windows/aliases.go +12 -0
  1054. slidge_whatsapp/vendor/golang.org/x/sys/windows/dll_windows.go +415 -0
  1055. slidge_whatsapp/vendor/golang.org/x/sys/windows/env_windows.go +57 -0
  1056. slidge_whatsapp/vendor/golang.org/x/sys/windows/eventlog.go +20 -0
  1057. slidge_whatsapp/vendor/golang.org/x/sys/windows/exec_windows.go +248 -0
  1058. slidge_whatsapp/vendor/golang.org/x/sys/windows/memory_windows.go +48 -0
  1059. slidge_whatsapp/vendor/golang.org/x/sys/windows/mkerrors.bash +70 -0
  1060. slidge_whatsapp/vendor/golang.org/x/sys/windows/mkknownfolderids.bash +27 -0
  1061. slidge_whatsapp/vendor/golang.org/x/sys/windows/mksyscall.go +9 -0
  1062. slidge_whatsapp/vendor/golang.org/x/sys/windows/race.go +30 -0
  1063. slidge_whatsapp/vendor/golang.org/x/sys/windows/race0.go +25 -0
  1064. slidge_whatsapp/vendor/golang.org/x/sys/windows/security_windows.go +1497 -0
  1065. slidge_whatsapp/vendor/golang.org/x/sys/windows/service.go +257 -0
  1066. slidge_whatsapp/vendor/golang.org/x/sys/windows/setupapi_windows.go +1425 -0
  1067. slidge_whatsapp/vendor/golang.org/x/sys/windows/str.go +22 -0
  1068. slidge_whatsapp/vendor/golang.org/x/sys/windows/syscall.go +104 -0
  1069. slidge_whatsapp/vendor/golang.org/x/sys/windows/syscall_windows.go +1934 -0
  1070. slidge_whatsapp/vendor/golang.org/x/sys/windows/types_windows.go +3842 -0
  1071. slidge_whatsapp/vendor/golang.org/x/sys/windows/types_windows_386.go +35 -0
  1072. slidge_whatsapp/vendor/golang.org/x/sys/windows/types_windows_amd64.go +34 -0
  1073. slidge_whatsapp/vendor/golang.org/x/sys/windows/types_windows_arm.go +35 -0
  1074. slidge_whatsapp/vendor/golang.org/x/sys/windows/types_windows_arm64.go +34 -0
  1075. slidge_whatsapp/vendor/golang.org/x/sys/windows/zerrors_windows.go +9468 -0
  1076. slidge_whatsapp/vendor/golang.org/x/sys/windows/zknownfolderids_windows.go +149 -0
  1077. slidge_whatsapp/vendor/golang.org/x/sys/windows/zsyscall_windows.go +4695 -0
  1078. slidge_whatsapp/vendor/golang.org/x/text/LICENSE +27 -0
  1079. slidge_whatsapp/vendor/golang.org/x/text/PATENTS +22 -0
  1080. slidge_whatsapp/vendor/golang.org/x/text/secure/bidirule/bidirule.go +336 -0
  1081. slidge_whatsapp/vendor/golang.org/x/text/secure/bidirule/bidirule10.0.0.go +11 -0
  1082. slidge_whatsapp/vendor/golang.org/x/text/secure/bidirule/bidirule9.0.0.go +14 -0
  1083. slidge_whatsapp/vendor/golang.org/x/text/transform/transform.go +709 -0
  1084. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/bidi.go +359 -0
  1085. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/bracket.go +335 -0
  1086. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/core.go +1071 -0
  1087. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/prop.go +206 -0
  1088. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go +1815 -0
  1089. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/tables11.0.0.go +1887 -0
  1090. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/tables12.0.0.go +1923 -0
  1091. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/tables13.0.0.go +1955 -0
  1092. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/tables15.0.0.go +2042 -0
  1093. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/tables9.0.0.go +1781 -0
  1094. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/trieval.go +48 -0
  1095. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/composition.go +512 -0
  1096. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/forminfo.go +279 -0
  1097. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/input.go +109 -0
  1098. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/iter.go +458 -0
  1099. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/normalize.go +610 -0
  1100. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/readwriter.go +125 -0
  1101. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go +7657 -0
  1102. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/tables11.0.0.go +7693 -0
  1103. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/tables12.0.0.go +7710 -0
  1104. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go +7760 -0
  1105. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/tables15.0.0.go +7907 -0
  1106. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go +7637 -0
  1107. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/transform.go +88 -0
  1108. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/trie.go +54 -0
  1109. slidge_whatsapp/vendor/google.golang.org/protobuf/LICENSE +27 -0
  1110. slidge_whatsapp/vendor/google.golang.org/protobuf/PATENTS +22 -0
  1111. slidge_whatsapp/vendor/google.golang.org/protobuf/encoding/prototext/decode.go +767 -0
  1112. slidge_whatsapp/vendor/google.golang.org/protobuf/encoding/prototext/doc.go +7 -0
  1113. slidge_whatsapp/vendor/google.golang.org/protobuf/encoding/prototext/encode.go +380 -0
  1114. slidge_whatsapp/vendor/google.golang.org/protobuf/encoding/protowire/wire.go +547 -0
  1115. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go +414 -0
  1116. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/descopts/options.go +29 -0
  1117. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/detrand/rand.go +69 -0
  1118. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/editiondefaults/defaults.go +12 -0
  1119. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb +0 -0
  1120. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/encoding/defval/default.go +213 -0
  1121. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/encoding/messageset/messageset.go +242 -0
  1122. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go +201 -0
  1123. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/encoding/text/decode.go +686 -0
  1124. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/encoding/text/decode_number.go +211 -0
  1125. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/encoding/text/decode_string.go +161 -0
  1126. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/encoding/text/decode_token.go +373 -0
  1127. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/encoding/text/doc.go +29 -0
  1128. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go +272 -0
  1129. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/errors/errors.go +104 -0
  1130. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/filedesc/build.go +157 -0
  1131. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/filedesc/desc.go +748 -0
  1132. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go +560 -0
  1133. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go +694 -0
  1134. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/filedesc/desc_list.go +457 -0
  1135. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/filedesc/desc_list_gen.go +367 -0
  1136. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/filedesc/editions.go +167 -0
  1137. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go +110 -0
  1138. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/filetype/build.go +296 -0
  1139. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/flags/flags.go +24 -0
  1140. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_disable.go +10 -0
  1141. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_enable.go +10 -0
  1142. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/genid/any_gen.go +34 -0
  1143. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/genid/api_gen.go +106 -0
  1144. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go +1286 -0
  1145. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/genid/doc.go +11 -0
  1146. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/genid/duration_gen.go +34 -0
  1147. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/genid/empty_gen.go +19 -0
  1148. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/genid/field_mask_gen.go +31 -0
  1149. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/genid/go_features_gen.go +70 -0
  1150. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/genid/goname.go +20 -0
  1151. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/genid/map_entry.go +16 -0
  1152. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/genid/name.go +12 -0
  1153. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/genid/source_context_gen.go +31 -0
  1154. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go +121 -0
  1155. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/genid/timestamp_gen.go +34 -0
  1156. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/genid/type_gen.go +228 -0
  1157. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/genid/wrappers.go +13 -0
  1158. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/genid/wrappers_gen.go +175 -0
  1159. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/api_export.go +177 -0
  1160. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/api_export_opaque.go +128 -0
  1161. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/bitmap.go +34 -0
  1162. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/bitmap_race.go +126 -0
  1163. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/checkinit.go +174 -0
  1164. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go +228 -0
  1165. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/codec_field.go +788 -0
  1166. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/codec_field_opaque.go +264 -0
  1167. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go +5724 -0
  1168. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/codec_map.go +399 -0
  1169. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/codec_message.go +230 -0
  1170. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/codec_message_opaque.go +153 -0
  1171. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/codec_messageset.go +145 -0
  1172. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go +557 -0
  1173. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/codec_unsafe.go +15 -0
  1174. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/convert.go +495 -0
  1175. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/convert_list.go +141 -0
  1176. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/convert_map.go +121 -0
  1177. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/decode.go +333 -0
  1178. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/encode.go +315 -0
  1179. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/enum.go +21 -0
  1180. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/equal.go +224 -0
  1181. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/extension.go +156 -0
  1182. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/lazy.go +433 -0
  1183. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/legacy_enum.go +219 -0
  1184. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/legacy_export.go +92 -0
  1185. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/legacy_extension.go +177 -0
  1186. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/legacy_file.go +81 -0
  1187. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go +569 -0
  1188. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/merge.go +203 -0
  1189. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/merge_gen.go +209 -0
  1190. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/message.go +283 -0
  1191. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/message_opaque.go +627 -0
  1192. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/message_opaque_gen.go +132 -0
  1193. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/message_reflect.go +462 -0
  1194. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go +423 -0
  1195. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field_gen.go +273 -0
  1196. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/message_reflect_gen.go +271 -0
  1197. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go +220 -0
  1198. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe_opaque.go +42 -0
  1199. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/presence.go +142 -0
  1200. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/validate.go +570 -0
  1201. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/order/order.go +89 -0
  1202. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/order/range.go +115 -0
  1203. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/pragma/pragma.go +29 -0
  1204. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/protolazy/bufferreader.go +364 -0
  1205. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/protolazy/lazy.go +359 -0
  1206. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/protolazy/pointer_unsafe.go +17 -0
  1207. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/set/ints.go +58 -0
  1208. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/strs/strings.go +196 -0
  1209. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go +71 -0
  1210. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/version/version.go +79 -0
  1211. slidge_whatsapp/vendor/google.golang.org/protobuf/proto/checkinit.go +71 -0
  1212. slidge_whatsapp/vendor/google.golang.org/protobuf/proto/decode.go +307 -0
  1213. slidge_whatsapp/vendor/google.golang.org/protobuf/proto/decode_gen.go +603 -0
  1214. slidge_whatsapp/vendor/google.golang.org/protobuf/proto/doc.go +86 -0
  1215. slidge_whatsapp/vendor/google.golang.org/protobuf/proto/encode.go +355 -0
  1216. slidge_whatsapp/vendor/google.golang.org/protobuf/proto/encode_gen.go +97 -0
  1217. slidge_whatsapp/vendor/google.golang.org/protobuf/proto/equal.go +66 -0
  1218. slidge_whatsapp/vendor/google.golang.org/protobuf/proto/extension.go +166 -0
  1219. slidge_whatsapp/vendor/google.golang.org/protobuf/proto/merge.go +145 -0
  1220. slidge_whatsapp/vendor/google.golang.org/protobuf/proto/messageset.go +98 -0
  1221. slidge_whatsapp/vendor/google.golang.org/protobuf/proto/proto.go +45 -0
  1222. slidge_whatsapp/vendor/google.golang.org/protobuf/proto/proto_methods.go +20 -0
  1223. slidge_whatsapp/vendor/google.golang.org/protobuf/proto/proto_reflect.go +20 -0
  1224. slidge_whatsapp/vendor/google.golang.org/protobuf/proto/reset.go +43 -0
  1225. slidge_whatsapp/vendor/google.golang.org/protobuf/proto/size.go +111 -0
  1226. slidge_whatsapp/vendor/google.golang.org/protobuf/proto/size_gen.go +55 -0
  1227. slidge_whatsapp/vendor/google.golang.org/protobuf/proto/wrapperopaque.go +80 -0
  1228. slidge_whatsapp/vendor/google.golang.org/protobuf/proto/wrappers.go +29 -0
  1229. slidge_whatsapp/vendor/google.golang.org/protobuf/reflect/protoreflect/methods.go +88 -0
  1230. slidge_whatsapp/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go +513 -0
  1231. slidge_whatsapp/vendor/google.golang.org/protobuf/reflect/protoreflect/source.go +129 -0
  1232. slidge_whatsapp/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go +575 -0
  1233. slidge_whatsapp/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go +666 -0
  1234. slidge_whatsapp/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go +285 -0
  1235. slidge_whatsapp/vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go +168 -0
  1236. slidge_whatsapp/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go +438 -0
  1237. slidge_whatsapp/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go +84 -0
  1238. slidge_whatsapp/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go +882 -0
  1239. slidge_whatsapp/vendor/google.golang.org/protobuf/runtime/protoiface/legacy.go +15 -0
  1240. slidge_whatsapp/vendor/google.golang.org/protobuf/runtime/protoiface/methods.go +202 -0
  1241. slidge_whatsapp/vendor/google.golang.org/protobuf/runtime/protoimpl/impl.go +48 -0
  1242. slidge_whatsapp/vendor/google.golang.org/protobuf/runtime/protoimpl/version.go +60 -0
  1243. slidge_whatsapp/vendor/modules.txt +198 -0
  1244. slidge_whatsapp-0.2.6.dist-info/METADATA +63 -0
  1245. slidge_whatsapp-0.2.6.dist-info/RECORD +1253 -0
  1246. {slidge_whatsapp-0.2.2.dist-info → slidge_whatsapp-0.2.6.dist-info}/WHEEL +1 -1
  1247. slidge_whatsapp-0.2.2.dist-info/METADATA +0 -744
  1248. slidge_whatsapp-0.2.2.dist-info/RECORD +0 -31
  1249. {slidge_whatsapp-0.2.2.dist-info → slidge_whatsapp-0.2.6.dist-info}/LICENSE +0 -0
  1250. {slidge_whatsapp-0.2.2.dist-info → slidge_whatsapp-0.2.6.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,1299 @@
1
+ // Copyright (c) 2022 Tulir Asokan
2
+ //
3
+ // This Source Code Form is subject to the terms of the Mozilla Public
4
+ // License, v. 2.0. If a copy of the MPL was not distributed with this
5
+ // file, You can obtain one at http://mozilla.org/MPL/2.0/.
6
+
7
+ package whatsmeow
8
+
9
+ import (
10
+ "context"
11
+ "crypto/sha256"
12
+ "encoding/base64"
13
+ "encoding/binary"
14
+ "encoding/hex"
15
+ "errors"
16
+ "fmt"
17
+ "sort"
18
+ "strconv"
19
+ "strings"
20
+ "time"
21
+
22
+ "github.com/rs/zerolog"
23
+ "go.mau.fi/libsignal/groups"
24
+ "go.mau.fi/libsignal/keys/prekey"
25
+ "go.mau.fi/libsignal/protocol"
26
+ "go.mau.fi/libsignal/session"
27
+ "go.mau.fi/libsignal/signalerror"
28
+ "go.mau.fi/util/ptr"
29
+ "go.mau.fi/util/random"
30
+ "google.golang.org/protobuf/proto"
31
+
32
+ waBinary "go.mau.fi/whatsmeow/binary"
33
+ "go.mau.fi/whatsmeow/proto/waCommon"
34
+ "go.mau.fi/whatsmeow/proto/waE2E"
35
+ "go.mau.fi/whatsmeow/types"
36
+ "go.mau.fi/whatsmeow/types/events"
37
+ )
38
+
39
+ const WebMessageIDPrefix = "3EB0"
40
+
41
+ // GenerateMessageID generates a random string that can be used as a message ID on WhatsApp.
42
+ //
43
+ // msgID := cli.GenerateMessageID()
44
+ // cli.SendMessage(context.Background(), targetJID, &waE2E.Message{...}, whatsmeow.SendRequestExtra{ID: msgID})
45
+ func (cli *Client) GenerateMessageID() types.MessageID {
46
+ if cli != nil && cli.MessengerConfig != nil {
47
+ return types.MessageID(strconv.FormatInt(GenerateFacebookMessageID(), 10))
48
+ }
49
+ data := make([]byte, 8, 8+20+16)
50
+ binary.BigEndian.PutUint64(data, uint64(time.Now().Unix()))
51
+ ownID := cli.getOwnID()
52
+ if !ownID.IsEmpty() {
53
+ data = append(data, []byte(ownID.User)...)
54
+ data = append(data, []byte("@c.us")...)
55
+ }
56
+ data = append(data, random.Bytes(16)...)
57
+ hash := sha256.Sum256(data)
58
+ return WebMessageIDPrefix + strings.ToUpper(hex.EncodeToString(hash[:9]))
59
+ }
60
+
61
+ func GenerateFacebookMessageID() int64 {
62
+ const randomMask = (1 << 22) - 1
63
+ return (time.Now().UnixMilli() << 22) | (int64(binary.BigEndian.Uint32(random.Bytes(4))) & randomMask)
64
+ }
65
+
66
+ // GenerateMessageID generates a random string that can be used as a message ID on WhatsApp.
67
+ //
68
+ // msgID := whatsmeow.GenerateMessageID()
69
+ // cli.SendMessage(context.Background(), targetJID, &waE2E.Message{...}, whatsmeow.SendRequestExtra{ID: msgID})
70
+ //
71
+ // Deprecated: WhatsApp web has switched to using a hash of the current timestamp, user id and random bytes. Use Client.GenerateMessageID instead.
72
+ func GenerateMessageID() types.MessageID {
73
+ return WebMessageIDPrefix + strings.ToUpper(hex.EncodeToString(random.Bytes(8)))
74
+ }
75
+
76
+ type MessageDebugTimings struct {
77
+ Queue time.Duration
78
+
79
+ Marshal time.Duration
80
+ GetParticipants time.Duration
81
+ GetDevices time.Duration
82
+ GroupEncrypt time.Duration
83
+ PeerEncrypt time.Duration
84
+
85
+ Send time.Duration
86
+ Resp time.Duration
87
+ Retry time.Duration
88
+ }
89
+
90
+ func (mdt MessageDebugTimings) MarshalZerologObject(evt *zerolog.Event) {
91
+ evt.Dur("queue", mdt.Queue)
92
+ evt.Dur("marshal", mdt.Marshal)
93
+ if mdt.GetParticipants != 0 {
94
+ evt.Dur("get_participants", mdt.GetParticipants)
95
+ }
96
+ evt.Dur("get_devices", mdt.GetDevices)
97
+ if mdt.GroupEncrypt != 0 {
98
+ evt.Dur("group_encrypt", mdt.GroupEncrypt)
99
+ }
100
+ evt.Dur("peer_encrypt", mdt.PeerEncrypt)
101
+ evt.Dur("send", mdt.Send)
102
+ evt.Dur("resp", mdt.Resp)
103
+ if mdt.Retry != 0 {
104
+ evt.Dur("retry", mdt.Retry)
105
+ }
106
+ }
107
+
108
+ type SendResponse struct {
109
+ // The message timestamp returned by the server
110
+ Timestamp time.Time
111
+
112
+ // The ID of the sent message
113
+ ID types.MessageID
114
+
115
+ // The server-specified ID of the sent message. Only present for newsletter messages.
116
+ ServerID types.MessageServerID
117
+
118
+ // Message handling duration, used for debugging
119
+ DebugTimings MessageDebugTimings
120
+
121
+ // The identity the message was sent with (LID or PN)
122
+ // This is currently not reliable in all cases.
123
+ Sender types.JID
124
+ }
125
+
126
+ // SendRequestExtra contains the optional parameters for SendMessage.
127
+ //
128
+ // By default, optional parameters don't have to be provided at all, e.g.
129
+ //
130
+ // cli.SendMessage(ctx, to, message)
131
+ //
132
+ // When providing optional parameters, add a single instance of this struct as the last parameter:
133
+ //
134
+ // cli.SendMessage(ctx, to, message, whatsmeow.SendRequestExtra{...})
135
+ //
136
+ // Trying to add multiple extra parameters will return an error.
137
+ type SendRequestExtra struct {
138
+ // The message ID to use when sending. If this is not provided, a random message ID will be generated
139
+ ID types.MessageID
140
+ // JID of the bot to be invoked (optional)
141
+ InlineBotJID types.JID
142
+ // Should the message be sent as a peer message (protocol messages to your own devices, e.g. app state key requests)
143
+ Peer bool
144
+ // A timeout for the send request. Unlike timeouts using the context parameter, this only applies
145
+ // to the actual response waiting and not preparing/encrypting the message.
146
+ // Defaults to 75 seconds. The timeout can be disabled by using a negative value.
147
+ Timeout time.Duration
148
+ // When sending media to newsletters, the Handle field returned by the file upload.
149
+ MediaHandle string
150
+
151
+ Meta *types.MsgMetaInfo
152
+ }
153
+
154
+ // SendMessage sends the given message.
155
+ //
156
+ // This method will wait for the server to acknowledge the message before returning.
157
+ // The return value is the timestamp of the message from the server.
158
+ //
159
+ // Optional parameters like the message ID can be specified with the SendRequestExtra struct.
160
+ // Only one extra parameter is allowed, put all necessary parameters in the same struct.
161
+ //
162
+ // The message itself can contain anything you want (within the protobuf schema).
163
+ // e.g. for a simple text message, use the Conversation field:
164
+ //
165
+ // cli.SendMessage(context.Background(), targetJID, &waE2E.Message{
166
+ // Conversation: proto.String("Hello, World!"),
167
+ // })
168
+ //
169
+ // Things like replies, mentioning users and the "forwarded" flag are stored in ContextInfo,
170
+ // which can be put in ExtendedTextMessage and any of the media message types.
171
+ //
172
+ // For uploading and sending media/attachments, see the Upload method.
173
+ //
174
+ // For other message types, you'll have to figure it out yourself. Looking at the protobuf schema
175
+ // in binary/proto/def.proto may be useful to find out all the allowed fields. Printing the RawMessage
176
+ // field in incoming message events to figure out what it contains is also a good way to learn how to
177
+ // send the same kind of message.
178
+ func (cli *Client) SendMessage(ctx context.Context, to types.JID, message *waE2E.Message, extra ...SendRequestExtra) (resp SendResponse, err error) {
179
+ if cli == nil {
180
+ err = ErrClientIsNil
181
+ return
182
+ }
183
+ var req SendRequestExtra
184
+ if len(extra) > 1 {
185
+ err = errors.New("only one extra parameter may be provided to SendMessage")
186
+ return
187
+ } else if len(extra) == 1 {
188
+ req = extra[0]
189
+ }
190
+ if to.Device > 0 && !req.Peer {
191
+ err = ErrRecipientADJID
192
+ return
193
+ }
194
+ ownID := cli.getOwnID()
195
+ if ownID.IsEmpty() {
196
+ err = ErrNotLoggedIn
197
+ return
198
+ }
199
+
200
+ if req.Timeout == 0 {
201
+ req.Timeout = defaultRequestTimeout
202
+ }
203
+ if len(req.ID) == 0 {
204
+ req.ID = cli.GenerateMessageID()
205
+ }
206
+ if to.Server == types.NewsletterServer {
207
+ // TODO somehow deduplicate this with the code in sendNewsletter?
208
+ if message.EditedMessage != nil {
209
+ req.ID = types.MessageID(message.GetEditedMessage().GetMessage().GetProtocolMessage().GetKey().GetID())
210
+ } else if message.ProtocolMessage != nil && message.ProtocolMessage.GetType() == waE2E.ProtocolMessage_REVOKE {
211
+ req.ID = types.MessageID(message.GetProtocolMessage().GetKey().GetID())
212
+ }
213
+ }
214
+ resp.ID = req.ID
215
+
216
+ isInlineBotMode := false
217
+
218
+ if !req.InlineBotJID.IsEmpty() {
219
+ if !req.InlineBotJID.IsBot() {
220
+ err = ErrInvalidInlineBotID
221
+ return
222
+ }
223
+ isInlineBotMode = true
224
+ }
225
+
226
+ isBotMode := isInlineBotMode || to.IsBot()
227
+ needsMessageSecret := isBotMode
228
+ var extraParams nodeExtraParams
229
+
230
+ if needsMessageSecret {
231
+ if message.MessageContextInfo == nil {
232
+ message.MessageContextInfo = &waE2E.MessageContextInfo{}
233
+ }
234
+ if message.MessageContextInfo.MessageSecret == nil {
235
+ message.MessageContextInfo.MessageSecret = random.Bytes(32)
236
+ }
237
+ }
238
+
239
+ if isBotMode {
240
+ if message.MessageContextInfo.BotMetadata == nil {
241
+ message.MessageContextInfo.BotMetadata = &waE2E.BotMetadata{
242
+ PersonaID: proto.String("867051314767696$760019659443059"),
243
+ }
244
+ }
245
+
246
+ if isInlineBotMode {
247
+ // inline mode specific code
248
+ messageSecret := message.GetMessageContextInfo().GetMessageSecret()
249
+ message = &waE2E.Message{
250
+ BotInvokeMessage: &waE2E.FutureProofMessage{
251
+ Message: &waE2E.Message{
252
+ ExtendedTextMessage: message.ExtendedTextMessage,
253
+ MessageContextInfo: &waE2E.MessageContextInfo{
254
+ BotMetadata: message.MessageContextInfo.BotMetadata,
255
+ },
256
+ },
257
+ },
258
+ MessageContextInfo: message.MessageContextInfo,
259
+ }
260
+
261
+ botMessage := &waE2E.Message{
262
+ BotInvokeMessage: message.BotInvokeMessage,
263
+ MessageContextInfo: &waE2E.MessageContextInfo{
264
+ BotMetadata: message.MessageContextInfo.BotMetadata,
265
+ BotMessageSecret: applyBotMessageHKDF(messageSecret),
266
+ },
267
+ }
268
+
269
+ messagePlaintext, _, marshalErr := marshalMessage(req.InlineBotJID, botMessage)
270
+ if marshalErr != nil {
271
+ err = marshalErr
272
+ return
273
+ }
274
+
275
+ participantNodes, _ := cli.encryptMessageForDevices(ctx, []types.JID{req.InlineBotJID}, resp.ID, messagePlaintext, nil, waBinary.Attrs{})
276
+ extraParams.botNode = &waBinary.Node{
277
+ Tag: "bot",
278
+ Attrs: nil,
279
+ Content: participantNodes,
280
+ }
281
+ }
282
+ }
283
+
284
+ var groupParticipants []types.JID
285
+ if to.Server == types.GroupServer || to.Server == types.BroadcastServer {
286
+ start := time.Now()
287
+ if to.Server == types.GroupServer {
288
+ var cachedData *groupMetaCache
289
+ cachedData, err = cli.getCachedGroupData(ctx, to)
290
+ if err != nil {
291
+ err = fmt.Errorf("failed to get group members: %w", err)
292
+ return
293
+ }
294
+ groupParticipants = cachedData.Members
295
+ // TODO this is fairly hacky, is there a proper way to determine which identity the message is sent with?
296
+ if cachedData.AddressingMode == types.AddressingModeLID {
297
+ ownID = cli.getOwnLID()
298
+ extraParams.addressingMode = types.AddressingModeLID
299
+ if req.Meta == nil {
300
+ req.Meta = &types.MsgMetaInfo{}
301
+ }
302
+ req.Meta.DeprecatedLIDSession = ptr.Ptr(false)
303
+ } else if cachedData.CommunityAnnouncementGroup && req.Meta != nil {
304
+ ownID = cli.getOwnLID()
305
+ // Why is this set to PN?
306
+ extraParams.addressingMode = types.AddressingModePN
307
+ }
308
+ } else {
309
+ groupParticipants, err = cli.getBroadcastListParticipants(ctx, to)
310
+ if err != nil {
311
+ err = fmt.Errorf("failed to get broadcast list members: %w", err)
312
+ return
313
+ }
314
+ }
315
+ resp.DebugTimings.GetParticipants = time.Since(start)
316
+ } else if to.Server == types.HiddenUserServer {
317
+ ownID = cli.getOwnLID()
318
+ extraParams.addressingMode = types.AddressingModeLID
319
+ // if req.Meta == nil {
320
+ // req.Meta = &types.MsgMetaInfo{}
321
+ // }
322
+ // req.Meta.DeprecatedLIDSession = ptr.Ptr(false)
323
+ }
324
+ if req.Meta != nil {
325
+ extraParams.metaNode = &waBinary.Node{
326
+ Tag: "meta",
327
+ Attrs: waBinary.Attrs{},
328
+ }
329
+ if req.Meta.DeprecatedLIDSession != nil {
330
+ extraParams.metaNode.Attrs["deprecated_lid_session"] = *req.Meta.DeprecatedLIDSession
331
+ }
332
+ if req.Meta.ThreadMessageID != "" {
333
+ extraParams.metaNode.Attrs["thread_msg_id"] = req.Meta.ThreadMessageID
334
+ extraParams.metaNode.Attrs["thread_msg_sender_jid"] = req.Meta.ThreadMessageSenderJID
335
+ }
336
+ }
337
+
338
+ resp.Sender = ownID
339
+
340
+ start := time.Now()
341
+ // Sending multiple messages at a time can cause weird issues and makes it harder to retry safely
342
+ cli.messageSendLock.Lock()
343
+ resp.DebugTimings.Queue = time.Since(start)
344
+ defer cli.messageSendLock.Unlock()
345
+
346
+ respChan := cli.waitResponse(req.ID)
347
+ // Peer message retries aren't implemented yet
348
+ if !req.Peer {
349
+ cli.addRecentMessage(to, req.ID, message, nil)
350
+ }
351
+
352
+ if message.GetMessageContextInfo().GetMessageSecret() != nil {
353
+ err = cli.Store.MsgSecrets.PutMessageSecret(ctx, to, ownID, req.ID, message.GetMessageContextInfo().GetMessageSecret())
354
+ if err != nil {
355
+ cli.Log.Warnf("Failed to store message secret key for outgoing message %s: %v", req.ID, err)
356
+ } else {
357
+ cli.Log.Debugf("Stored message secret key for outgoing message %s", req.ID)
358
+ }
359
+ }
360
+ var phash string
361
+ var data []byte
362
+ switch to.Server {
363
+ case types.GroupServer, types.BroadcastServer:
364
+ phash, data, err = cli.sendGroup(ctx, to, groupParticipants, req.ID, message, &resp.DebugTimings, extraParams)
365
+ case types.DefaultUserServer, types.BotServer:
366
+ if req.Peer {
367
+ data, err = cli.sendPeerMessage(ctx, to, req.ID, message, &resp.DebugTimings)
368
+ } else {
369
+ data, err = cli.sendDM(ctx, ownID, to, req.ID, message, &resp.DebugTimings, extraParams)
370
+ }
371
+ case types.NewsletterServer:
372
+ data, err = cli.sendNewsletter(to, req.ID, message, req.MediaHandle, &resp.DebugTimings)
373
+ default:
374
+ err = fmt.Errorf("%w %s", ErrUnknownServer, to.Server)
375
+ }
376
+ start = time.Now()
377
+ if err != nil {
378
+ cli.cancelResponse(req.ID, respChan)
379
+ return
380
+ }
381
+ var respNode *waBinary.Node
382
+ var timeoutChan <-chan time.Time
383
+ if req.Timeout > 0 {
384
+ timeoutChan = time.After(req.Timeout)
385
+ } else {
386
+ timeoutChan = make(<-chan time.Time)
387
+ }
388
+ select {
389
+ case respNode = <-respChan:
390
+ case <-timeoutChan:
391
+ cli.cancelResponse(req.ID, respChan)
392
+ err = ErrMessageTimedOut
393
+ return
394
+ case <-ctx.Done():
395
+ cli.cancelResponse(req.ID, respChan)
396
+ err = ctx.Err()
397
+ return
398
+ }
399
+ resp.DebugTimings.Resp = time.Since(start)
400
+ if isDisconnectNode(respNode) {
401
+ start = time.Now()
402
+ respNode, err = cli.retryFrame("message send", req.ID, data, respNode, ctx, 0)
403
+ resp.DebugTimings.Retry = time.Since(start)
404
+ if err != nil {
405
+ return
406
+ }
407
+ }
408
+ ag := respNode.AttrGetter()
409
+ resp.ServerID = types.MessageServerID(ag.OptionalInt("server_id"))
410
+ resp.Timestamp = ag.UnixTime("t")
411
+ if errorCode := ag.Int("error"); errorCode != 0 {
412
+ err = fmt.Errorf("%w %d", ErrServerReturnedError, errorCode)
413
+ }
414
+ expectedPHash := ag.OptionalString("phash")
415
+ if len(expectedPHash) > 0 && phash != expectedPHash {
416
+ cli.Log.Warnf("Server returned different participant list hash when sending to %s. Some devices may not have received the message.", to)
417
+ // TODO also invalidate device list caches
418
+ cli.groupCacheLock.Lock()
419
+ delete(cli.groupCache, to)
420
+ cli.groupCacheLock.Unlock()
421
+ }
422
+ return
423
+ }
424
+
425
+ // RevokeMessage deletes the given message from everyone in the chat.
426
+ //
427
+ // This method will wait for the server to acknowledge the revocation message before returning.
428
+ // The return value is the timestamp of the message from the server.
429
+ //
430
+ // Deprecated: This method is deprecated in favor of BuildRevoke
431
+ func (cli *Client) RevokeMessage(chat types.JID, id types.MessageID) (SendResponse, error) {
432
+ return cli.SendMessage(context.TODO(), chat, cli.BuildRevoke(chat, types.EmptyJID, id))
433
+ }
434
+
435
+ // BuildMessageKey builds a MessageKey object, which is used to refer to previous messages
436
+ // for things such as replies, revocations and reactions.
437
+ func (cli *Client) BuildMessageKey(chat, sender types.JID, id types.MessageID) *waCommon.MessageKey {
438
+ key := &waCommon.MessageKey{
439
+ FromMe: proto.Bool(true),
440
+ ID: proto.String(id),
441
+ RemoteJID: proto.String(chat.String()),
442
+ }
443
+ if !sender.IsEmpty() && sender.User != cli.getOwnID().User && sender.User != cli.getOwnLID().User {
444
+ key.FromMe = proto.Bool(false)
445
+ if chat.Server != types.DefaultUserServer && chat.Server != types.HiddenUserServer && chat.Server != types.MessengerServer {
446
+ key.Participant = proto.String(sender.ToNonAD().String())
447
+ }
448
+ }
449
+ return key
450
+ }
451
+
452
+ // BuildRevoke builds a message revocation message using the given variables.
453
+ // The built message can be sent normally using Client.SendMessage.
454
+ //
455
+ // To revoke your own messages, pass your JID or an empty JID as the second parameter (sender).
456
+ //
457
+ // resp, err := cli.SendMessage(context.Background(), chat, cli.BuildRevoke(chat, types.EmptyJID, originalMessageID)
458
+ //
459
+ // To revoke someone else's messages when you are group admin, pass the message sender's JID as the second parameter.
460
+ //
461
+ // resp, err := cli.SendMessage(context.Background(), chat, cli.BuildRevoke(chat, senderJID, originalMessageID)
462
+ func (cli *Client) BuildRevoke(chat, sender types.JID, id types.MessageID) *waE2E.Message {
463
+ return &waE2E.Message{
464
+ ProtocolMessage: &waE2E.ProtocolMessage{
465
+ Type: waE2E.ProtocolMessage_REVOKE.Enum(),
466
+ Key: cli.BuildMessageKey(chat, sender, id),
467
+ },
468
+ }
469
+ }
470
+
471
+ // BuildReaction builds a message reaction message using the given variables.
472
+ // The built message can be sent normally using Client.SendMessage.
473
+ //
474
+ // resp, err := cli.SendMessage(context.Background(), chat, cli.BuildReaction(chat, senderJID, targetMessageID, "🐈️")
475
+ //
476
+ // Note that for newsletter messages, you need to use NewsletterSendReaction instead of BuildReaction + SendMessage.
477
+ func (cli *Client) BuildReaction(chat, sender types.JID, id types.MessageID, reaction string) *waE2E.Message {
478
+ return &waE2E.Message{
479
+ ReactionMessage: &waE2E.ReactionMessage{
480
+ Key: cli.BuildMessageKey(chat, sender, id),
481
+ Text: proto.String(reaction),
482
+ SenderTimestampMS: proto.Int64(time.Now().UnixMilli()),
483
+ },
484
+ }
485
+ }
486
+
487
+ // BuildUnavailableMessageRequest builds a message to request the user's primary device to send
488
+ // the copy of a message that this client was unable to decrypt.
489
+ //
490
+ // The built message can be sent using Client.SendMessage, but you must pass whatsmeow.SendRequestExtra{Peer: true} as the last parameter.
491
+ // The full response will come as a ProtocolMessage with type `PEER_DATA_OPERATION_REQUEST_RESPONSE_MESSAGE`.
492
+ // The response events will also be dispatched as normal *events.Message's with UnavailableRequestID set to the request message ID.
493
+ func (cli *Client) BuildUnavailableMessageRequest(chat, sender types.JID, id string) *waE2E.Message {
494
+ return &waE2E.Message{
495
+ ProtocolMessage: &waE2E.ProtocolMessage{
496
+ Type: waE2E.ProtocolMessage_PEER_DATA_OPERATION_REQUEST_MESSAGE.Enum(),
497
+ PeerDataOperationRequestMessage: &waE2E.PeerDataOperationRequestMessage{
498
+ PeerDataOperationRequestType: waE2E.PeerDataOperationRequestType_PLACEHOLDER_MESSAGE_RESEND.Enum(),
499
+ PlaceholderMessageResendRequest: []*waE2E.PeerDataOperationRequestMessage_PlaceholderMessageResendRequest{{
500
+ MessageKey: cli.BuildMessageKey(chat, sender, id),
501
+ }},
502
+ },
503
+ },
504
+ }
505
+ }
506
+
507
+ // BuildHistorySyncRequest builds a message to request additional history from the user's primary device.
508
+ //
509
+ // The built message can be sent using Client.SendMessage, but you must pass whatsmeow.SendRequestExtra{Peer: true} as the last parameter.
510
+ // The response will come as an *events.HistorySync with type `ON_DEMAND`.
511
+ //
512
+ // The response will contain to `count` messages immediately before the given message.
513
+ // The recommended number of messages to request at a time is 50.
514
+ func (cli *Client) BuildHistorySyncRequest(lastKnownMessageInfo *types.MessageInfo, count int) *waE2E.Message {
515
+ return &waE2E.Message{
516
+ ProtocolMessage: &waE2E.ProtocolMessage{
517
+ Type: waE2E.ProtocolMessage_PEER_DATA_OPERATION_REQUEST_MESSAGE.Enum(),
518
+ PeerDataOperationRequestMessage: &waE2E.PeerDataOperationRequestMessage{
519
+ PeerDataOperationRequestType: waE2E.PeerDataOperationRequestType_HISTORY_SYNC_ON_DEMAND.Enum(),
520
+ HistorySyncOnDemandRequest: &waE2E.PeerDataOperationRequestMessage_HistorySyncOnDemandRequest{
521
+ ChatJID: proto.String(lastKnownMessageInfo.Chat.String()),
522
+ OldestMsgID: proto.String(lastKnownMessageInfo.ID),
523
+ OldestMsgFromMe: proto.Bool(lastKnownMessageInfo.IsFromMe),
524
+ OnDemandMsgCount: proto.Int32(int32(count)),
525
+ OldestMsgTimestampMS: proto.Int64(lastKnownMessageInfo.Timestamp.UnixMilli()),
526
+ },
527
+ },
528
+ },
529
+ }
530
+ }
531
+
532
+ // EditWindow specifies how long a message can be edited for after it was sent.
533
+ const EditWindow = 20 * time.Minute
534
+
535
+ // BuildEdit builds a message edit message using the given variables.
536
+ // The built message can be sent normally using Client.SendMessage.
537
+ //
538
+ // resp, err := cli.SendMessage(context.Background(), chat, cli.BuildEdit(chat, originalMessageID, &waE2E.Message{
539
+ // Conversation: proto.String("edited message"),
540
+ // })
541
+ func (cli *Client) BuildEdit(chat types.JID, id types.MessageID, newContent *waE2E.Message) *waE2E.Message {
542
+ return &waE2E.Message{
543
+ EditedMessage: &waE2E.FutureProofMessage{
544
+ Message: &waE2E.Message{
545
+ ProtocolMessage: &waE2E.ProtocolMessage{
546
+ Key: &waCommon.MessageKey{
547
+ FromMe: proto.Bool(true),
548
+ ID: proto.String(id),
549
+ RemoteJID: proto.String(chat.String()),
550
+ },
551
+ Type: waE2E.ProtocolMessage_MESSAGE_EDIT.Enum(),
552
+ EditedMessage: newContent,
553
+ TimestampMS: proto.Int64(time.Now().UnixMilli()),
554
+ },
555
+ },
556
+ },
557
+ }
558
+ }
559
+
560
+ const (
561
+ DisappearingTimerOff = time.Duration(0)
562
+ DisappearingTimer24Hours = 24 * time.Hour
563
+ DisappearingTimer7Days = 7 * 24 * time.Hour
564
+ DisappearingTimer90Days = 90 * 24 * time.Hour
565
+ )
566
+
567
+ // ParseDisappearingTimerString parses common human-readable disappearing message timer strings into Duration values.
568
+ // If the string doesn't look like one of the allowed values (0, 24h, 7d, 90d), the second return value is false.
569
+ func ParseDisappearingTimerString(val string) (time.Duration, bool) {
570
+ switch strings.ReplaceAll(strings.ToLower(val), " ", "") {
571
+ case "0d", "0h", "0s", "0", "off":
572
+ return DisappearingTimerOff, true
573
+ case "1day", "day", "1d", "1", "24h", "24", "86400s", "86400":
574
+ return DisappearingTimer24Hours, true
575
+ case "1week", "week", "7d", "7", "168h", "168", "604800s", "604800":
576
+ return DisappearingTimer7Days, true
577
+ case "3months", "3m", "3mo", "90d", "90", "2160h", "2160", "7776000s", "7776000":
578
+ return DisappearingTimer90Days, true
579
+ default:
580
+ return 0, false
581
+ }
582
+ }
583
+
584
+ // SetDisappearingTimer sets the disappearing timer in a chat. Both private chats and groups are supported, but they're
585
+ // set with different methods.
586
+ //
587
+ // Note that while this function allows passing non-standard durations, official WhatsApp apps will ignore those,
588
+ // and in groups the server will just reject the change. You can use the DisappearingTimer<Duration> constants for convenience.
589
+ //
590
+ // In groups, the server will echo the change as a notification, so it'll show up as a *events.GroupInfo update.
591
+ func (cli *Client) SetDisappearingTimer(chat types.JID, timer time.Duration) (err error) {
592
+ switch chat.Server {
593
+ case types.DefaultUserServer:
594
+ _, err = cli.SendMessage(context.TODO(), chat, &waE2E.Message{
595
+ ProtocolMessage: &waE2E.ProtocolMessage{
596
+ Type: waE2E.ProtocolMessage_EPHEMERAL_SETTING.Enum(),
597
+ EphemeralExpiration: proto.Uint32(uint32(timer.Seconds())),
598
+ },
599
+ })
600
+ case types.GroupServer:
601
+ if timer == 0 {
602
+ _, err = cli.sendGroupIQ(context.TODO(), iqSet, chat, waBinary.Node{Tag: "not_ephemeral"})
603
+ } else {
604
+ _, err = cli.sendGroupIQ(context.TODO(), iqSet, chat, waBinary.Node{
605
+ Tag: "ephemeral",
606
+ Attrs: waBinary.Attrs{
607
+ "expiration": strconv.Itoa(int(timer.Seconds())),
608
+ },
609
+ })
610
+ if errors.Is(err, ErrIQBadRequest) {
611
+ err = wrapIQError(ErrInvalidDisappearingTimer, err)
612
+ }
613
+ }
614
+ default:
615
+ err = fmt.Errorf("can't set disappearing time in a %s chat", chat.Server)
616
+ }
617
+ return
618
+ }
619
+
620
+ func participantListHashV2(participants []types.JID) string {
621
+ participantsStrings := make([]string, len(participants))
622
+ for i, part := range participants {
623
+ participantsStrings[i] = part.ADString()
624
+ }
625
+
626
+ sort.Strings(participantsStrings)
627
+ hash := sha256.Sum256([]byte(strings.Join(participantsStrings, "")))
628
+ return fmt.Sprintf("2:%s", base64.RawStdEncoding.EncodeToString(hash[:6]))
629
+ }
630
+
631
+ func (cli *Client) sendNewsletter(
632
+ to types.JID,
633
+ id types.MessageID,
634
+ message *waE2E.Message,
635
+ mediaID string,
636
+ timings *MessageDebugTimings,
637
+ ) ([]byte, error) {
638
+ attrs := waBinary.Attrs{
639
+ "to": to,
640
+ "id": id,
641
+ "type": getTypeFromMessage(message),
642
+ }
643
+ if mediaID != "" {
644
+ attrs["media_id"] = mediaID
645
+ }
646
+ if message.EditedMessage != nil {
647
+ attrs["edit"] = string(types.EditAttributeAdminEdit)
648
+ message = message.GetEditedMessage().GetMessage().GetProtocolMessage().GetEditedMessage()
649
+ } else if message.ProtocolMessage != nil && message.ProtocolMessage.GetType() == waE2E.ProtocolMessage_REVOKE {
650
+ attrs["edit"] = string(types.EditAttributeAdminRevoke)
651
+ message = nil
652
+ }
653
+ start := time.Now()
654
+ plaintext, _, err := marshalMessage(to, message)
655
+ timings.Marshal = time.Since(start)
656
+ if err != nil {
657
+ return nil, err
658
+ }
659
+ plaintextNode := waBinary.Node{
660
+ Tag: "plaintext",
661
+ Content: plaintext,
662
+ Attrs: waBinary.Attrs{},
663
+ }
664
+ if message != nil {
665
+ if mediaType := getMediaTypeFromMessage(message); mediaType != "" {
666
+ plaintextNode.Attrs["mediatype"] = mediaType
667
+ }
668
+ }
669
+ node := waBinary.Node{
670
+ Tag: "message",
671
+ Attrs: attrs,
672
+ Content: []waBinary.Node{plaintextNode},
673
+ }
674
+ start = time.Now()
675
+ data, err := cli.sendNodeAndGetData(node)
676
+ timings.Send = time.Since(start)
677
+ if err != nil {
678
+ return nil, fmt.Errorf("failed to send message node: %w", err)
679
+ }
680
+ return data, nil
681
+ }
682
+
683
+ type nodeExtraParams struct {
684
+ botNode *waBinary.Node
685
+ metaNode *waBinary.Node
686
+ addressingMode types.AddressingMode
687
+ }
688
+
689
+ func (cli *Client) sendGroup(
690
+ ctx context.Context,
691
+ to types.JID,
692
+ participants []types.JID,
693
+ id types.MessageID,
694
+ message *waE2E.Message,
695
+ timings *MessageDebugTimings,
696
+ extraParams nodeExtraParams,
697
+ ) (string, []byte, error) {
698
+ start := time.Now()
699
+ plaintext, _, err := marshalMessage(to, message)
700
+ timings.Marshal = time.Since(start)
701
+ if err != nil {
702
+ return "", nil, err
703
+ }
704
+
705
+ start = time.Now()
706
+ builder := groups.NewGroupSessionBuilder(cli.Store, pbSerializer)
707
+ senderKeyName := protocol.NewSenderKeyName(to.String(), cli.getOwnLID().SignalAddress())
708
+ signalSKDMessage, err := builder.Create(ctx, senderKeyName)
709
+ if err != nil {
710
+ return "", nil, fmt.Errorf("failed to create sender key distribution message to send %s to %s: %w", id, to, err)
711
+ }
712
+ skdMessage := &waE2E.Message{
713
+ SenderKeyDistributionMessage: &waE2E.SenderKeyDistributionMessage{
714
+ GroupID: proto.String(to.String()),
715
+ AxolotlSenderKeyDistributionMessage: signalSKDMessage.Serialize(),
716
+ },
717
+ }
718
+ skdPlaintext, err := proto.Marshal(skdMessage)
719
+ if err != nil {
720
+ return "", nil, fmt.Errorf("failed to marshal sender key distribution message to send %s to %s: %w", id, to, err)
721
+ }
722
+
723
+ cipher := groups.NewGroupCipher(builder, senderKeyName, cli.Store)
724
+ encrypted, err := cipher.Encrypt(ctx, padMessage(plaintext))
725
+ if err != nil {
726
+ return "", nil, fmt.Errorf("failed to encrypt group message to send %s to %s: %w", id, to, err)
727
+ }
728
+ ciphertext := encrypted.SignedSerialize()
729
+ timings.GroupEncrypt = time.Since(start)
730
+
731
+ node, allDevices, err := cli.prepareMessageNode(
732
+ ctx, to, id, message, participants, skdPlaintext, nil, timings, extraParams,
733
+ )
734
+ if err != nil {
735
+ return "", nil, err
736
+ }
737
+
738
+ phash := participantListHashV2(allDevices)
739
+ node.Attrs["phash"] = phash
740
+ skMsg := waBinary.Node{
741
+ Tag: "enc",
742
+ Content: ciphertext,
743
+ Attrs: waBinary.Attrs{"v": "2", "type": "skmsg"},
744
+ }
745
+ if mediaType := getMediaTypeFromMessage(message); mediaType != "" {
746
+ skMsg.Attrs["mediatype"] = mediaType
747
+ }
748
+ node.Content = append(node.GetChildren(), skMsg)
749
+
750
+ start = time.Now()
751
+ data, err := cli.sendNodeAndGetData(*node)
752
+ timings.Send = time.Since(start)
753
+ if err != nil {
754
+ return "", nil, fmt.Errorf("failed to send message node: %w", err)
755
+ }
756
+ return phash, data, nil
757
+ }
758
+
759
+ func (cli *Client) sendPeerMessage(
760
+ ctx context.Context,
761
+ to types.JID,
762
+ id types.MessageID,
763
+ message *waE2E.Message,
764
+ timings *MessageDebugTimings,
765
+ ) ([]byte, error) {
766
+ node, err := cli.preparePeerMessageNode(ctx, to, id, message, timings)
767
+ if err != nil {
768
+ return nil, err
769
+ }
770
+ start := time.Now()
771
+ data, err := cli.sendNodeAndGetData(*node)
772
+ timings.Send = time.Since(start)
773
+ if err != nil {
774
+ return nil, fmt.Errorf("failed to send message node: %w", err)
775
+ }
776
+ return data, nil
777
+ }
778
+
779
+ func (cli *Client) sendDM(
780
+ ctx context.Context,
781
+ ownID,
782
+ to types.JID,
783
+ id types.MessageID,
784
+ message *waE2E.Message,
785
+ timings *MessageDebugTimings,
786
+ extraParams nodeExtraParams,
787
+ ) ([]byte, error) {
788
+ start := time.Now()
789
+ messagePlaintext, deviceSentMessagePlaintext, err := marshalMessage(to, message)
790
+ timings.Marshal = time.Since(start)
791
+ if err != nil {
792
+ return nil, err
793
+ }
794
+
795
+ node, _, err := cli.prepareMessageNode(
796
+ ctx, to, id, message, []types.JID{to, ownID.ToNonAD()},
797
+ messagePlaintext, deviceSentMessagePlaintext, timings, extraParams,
798
+ )
799
+ if err != nil {
800
+ return nil, err
801
+ }
802
+ start = time.Now()
803
+ data, err := cli.sendNodeAndGetData(*node)
804
+ timings.Send = time.Since(start)
805
+ if err != nil {
806
+ return nil, fmt.Errorf("failed to send message node: %w", err)
807
+ }
808
+ return data, nil
809
+ }
810
+
811
+ func getTypeFromMessage(msg *waE2E.Message) string {
812
+ switch {
813
+ case msg.ViewOnceMessage != nil:
814
+ return getTypeFromMessage(msg.ViewOnceMessage.Message)
815
+ case msg.ViewOnceMessageV2 != nil:
816
+ return getTypeFromMessage(msg.ViewOnceMessageV2.Message)
817
+ case msg.ViewOnceMessageV2Extension != nil:
818
+ return getTypeFromMessage(msg.ViewOnceMessageV2Extension.Message)
819
+ case msg.LottieStickerMessage != nil:
820
+ return getTypeFromMessage(msg.LottieStickerMessage.Message)
821
+ case msg.EphemeralMessage != nil:
822
+ return getTypeFromMessage(msg.EphemeralMessage.Message)
823
+ case msg.DocumentWithCaptionMessage != nil:
824
+ return getTypeFromMessage(msg.DocumentWithCaptionMessage.Message)
825
+ case msg.ReactionMessage != nil, msg.EncReactionMessage != nil:
826
+ return "reaction"
827
+ case msg.PollCreationMessage != nil, msg.PollUpdateMessage != nil:
828
+ return "poll"
829
+ case getMediaTypeFromMessage(msg) != "":
830
+ return "media"
831
+ case msg.Conversation != nil, msg.ExtendedTextMessage != nil, msg.ProtocolMessage != nil:
832
+ return "text"
833
+ default:
834
+ return "text"
835
+ }
836
+ }
837
+
838
+ func getMediaTypeFromMessage(msg *waE2E.Message) string {
839
+ switch {
840
+ case msg.ViewOnceMessage != nil:
841
+ return getMediaTypeFromMessage(msg.ViewOnceMessage.Message)
842
+ case msg.ViewOnceMessageV2 != nil:
843
+ return getMediaTypeFromMessage(msg.ViewOnceMessageV2.Message)
844
+ case msg.ViewOnceMessageV2Extension != nil:
845
+ return getMediaTypeFromMessage(msg.ViewOnceMessageV2Extension.Message)
846
+ case msg.LottieStickerMessage != nil:
847
+ return getMediaTypeFromMessage(msg.LottieStickerMessage.Message)
848
+ case msg.EphemeralMessage != nil:
849
+ return getMediaTypeFromMessage(msg.EphemeralMessage.Message)
850
+ case msg.DocumentWithCaptionMessage != nil:
851
+ return getMediaTypeFromMessage(msg.DocumentWithCaptionMessage.Message)
852
+ case msg.ExtendedTextMessage != nil && msg.ExtendedTextMessage.Title != nil:
853
+ return "url"
854
+ case msg.ImageMessage != nil:
855
+ return "image"
856
+ case msg.StickerMessage != nil:
857
+ return "sticker"
858
+ case msg.DocumentMessage != nil:
859
+ return "document"
860
+ case msg.AudioMessage != nil:
861
+ if msg.AudioMessage.GetPTT() {
862
+ return "ptt"
863
+ } else {
864
+ return "audio"
865
+ }
866
+ case msg.VideoMessage != nil:
867
+ if msg.VideoMessage.GetGifPlayback() {
868
+ return "gif"
869
+ } else {
870
+ return "video"
871
+ }
872
+ case msg.ContactMessage != nil:
873
+ return "vcard"
874
+ case msg.ContactsArrayMessage != nil:
875
+ return "contact_array"
876
+ case msg.ListMessage != nil:
877
+ return "list"
878
+ case msg.ListResponseMessage != nil:
879
+ return "list_response"
880
+ case msg.ButtonsResponseMessage != nil:
881
+ return "buttons_response"
882
+ case msg.OrderMessage != nil:
883
+ return "order"
884
+ case msg.ProductMessage != nil:
885
+ return "product"
886
+ case msg.InteractiveResponseMessage != nil:
887
+ return "native_flow_response"
888
+ default:
889
+ return ""
890
+ }
891
+ }
892
+
893
+ func getButtonTypeFromMessage(msg *waE2E.Message) string {
894
+ switch {
895
+ case msg.ViewOnceMessage != nil:
896
+ return getButtonTypeFromMessage(msg.ViewOnceMessage.Message)
897
+ case msg.ViewOnceMessageV2 != nil:
898
+ return getButtonTypeFromMessage(msg.ViewOnceMessageV2.Message)
899
+ case msg.EphemeralMessage != nil:
900
+ return getButtonTypeFromMessage(msg.EphemeralMessage.Message)
901
+ case msg.ButtonsMessage != nil:
902
+ return "buttons"
903
+ case msg.ButtonsResponseMessage != nil:
904
+ return "buttons_response"
905
+ case msg.ListMessage != nil:
906
+ return "list"
907
+ case msg.ListResponseMessage != nil:
908
+ return "list_response"
909
+ case msg.InteractiveResponseMessage != nil:
910
+ return "interactive_response"
911
+ default:
912
+ return ""
913
+ }
914
+ }
915
+
916
+ func getButtonAttributes(msg *waE2E.Message) waBinary.Attrs {
917
+ switch {
918
+ case msg.ViewOnceMessage != nil:
919
+ return getButtonAttributes(msg.ViewOnceMessage.Message)
920
+ case msg.ViewOnceMessageV2 != nil:
921
+ return getButtonAttributes(msg.ViewOnceMessageV2.Message)
922
+ case msg.EphemeralMessage != nil:
923
+ return getButtonAttributes(msg.EphemeralMessage.Message)
924
+ case msg.TemplateMessage != nil:
925
+ return waBinary.Attrs{}
926
+ case msg.ListMessage != nil:
927
+ return waBinary.Attrs{
928
+ "v": "2",
929
+ "type": strings.ToLower(waE2E.ListMessage_ListType_name[int32(msg.ListMessage.GetListType())]),
930
+ }
931
+ default:
932
+ return waBinary.Attrs{}
933
+ }
934
+ }
935
+
936
+ const RemoveReactionText = ""
937
+
938
+ func getEditAttribute(msg *waE2E.Message) types.EditAttribute {
939
+ switch {
940
+ case msg.EditedMessage != nil && msg.EditedMessage.Message != nil:
941
+ return getEditAttribute(msg.EditedMessage.Message)
942
+ case msg.ProtocolMessage != nil && msg.ProtocolMessage.GetKey() != nil:
943
+ switch msg.ProtocolMessage.GetType() {
944
+ case waE2E.ProtocolMessage_REVOKE:
945
+ if msg.ProtocolMessage.GetKey().GetFromMe() {
946
+ return types.EditAttributeSenderRevoke
947
+ } else {
948
+ return types.EditAttributeAdminRevoke
949
+ }
950
+ case waE2E.ProtocolMessage_MESSAGE_EDIT:
951
+ if msg.ProtocolMessage.EditedMessage != nil {
952
+ return types.EditAttributeMessageEdit
953
+ }
954
+ }
955
+ case msg.ReactionMessage != nil && msg.ReactionMessage.GetText() == RemoveReactionText:
956
+ return types.EditAttributeSenderRevoke
957
+ case msg.KeepInChatMessage != nil && msg.KeepInChatMessage.GetKey().GetFromMe() && msg.KeepInChatMessage.GetKeepType() == waE2E.KeepType_UNDO_KEEP_FOR_ALL:
958
+ return types.EditAttributeSenderRevoke
959
+ }
960
+ return types.EditAttributeEmpty
961
+ }
962
+
963
+ func (cli *Client) preparePeerMessageNode(
964
+ ctx context.Context,
965
+ to types.JID,
966
+ id types.MessageID,
967
+ message *waE2E.Message,
968
+ timings *MessageDebugTimings,
969
+ ) (*waBinary.Node, error) {
970
+ attrs := waBinary.Attrs{
971
+ "id": id,
972
+ "type": "text",
973
+ "category": "peer",
974
+ "to": to,
975
+ }
976
+ if message.GetProtocolMessage().GetType() == waE2E.ProtocolMessage_APP_STATE_SYNC_KEY_REQUEST {
977
+ attrs["push_priority"] = "high"
978
+ }
979
+ start := time.Now()
980
+ plaintext, err := proto.Marshal(message)
981
+ timings.Marshal = time.Since(start)
982
+ if err != nil {
983
+ err = fmt.Errorf("failed to marshal message: %w", err)
984
+ return nil, err
985
+ }
986
+ start = time.Now()
987
+ encrypted, isPreKey, err := cli.encryptMessageForDevice(ctx, plaintext, to, nil, nil)
988
+ timings.PeerEncrypt = time.Since(start)
989
+ if err != nil {
990
+ return nil, fmt.Errorf("failed to encrypt peer message for %s: %v", to, err)
991
+ }
992
+ content := []waBinary.Node{*encrypted}
993
+ if isPreKey && cli.MessengerConfig == nil {
994
+ content = append(content, cli.makeDeviceIdentityNode())
995
+ }
996
+ return &waBinary.Node{
997
+ Tag: "message",
998
+ Attrs: attrs,
999
+ Content: content,
1000
+ }, nil
1001
+ }
1002
+
1003
+ func (cli *Client) getMessageContent(
1004
+ baseNode waBinary.Node,
1005
+ message *waE2E.Message,
1006
+ msgAttrs waBinary.Attrs,
1007
+ includeIdentity bool,
1008
+ extraParams nodeExtraParams,
1009
+ ) []waBinary.Node {
1010
+ content := []waBinary.Node{baseNode}
1011
+ if includeIdentity {
1012
+ content = append(content, cli.makeDeviceIdentityNode())
1013
+ }
1014
+ if msgAttrs["type"] == "poll" {
1015
+ pollType := "creation"
1016
+ if message.PollUpdateMessage != nil {
1017
+ pollType = "vote"
1018
+ }
1019
+ content = append(content, waBinary.Node{
1020
+ Tag: "meta",
1021
+ Attrs: waBinary.Attrs{
1022
+ "polltype": pollType,
1023
+ },
1024
+ })
1025
+ }
1026
+
1027
+ if extraParams.botNode != nil {
1028
+ content = append(content, *extraParams.botNode)
1029
+ }
1030
+ if extraParams.metaNode != nil {
1031
+ content = append(content, *extraParams.metaNode)
1032
+ }
1033
+
1034
+ if buttonType := getButtonTypeFromMessage(message); buttonType != "" {
1035
+ content = append(content, waBinary.Node{
1036
+ Tag: "biz",
1037
+ Content: []waBinary.Node{{
1038
+ Tag: buttonType,
1039
+ Attrs: getButtonAttributes(message),
1040
+ }},
1041
+ })
1042
+ }
1043
+ return content
1044
+ }
1045
+
1046
+ func (cli *Client) prepareMessageNode(
1047
+ ctx context.Context,
1048
+ to types.JID,
1049
+ id types.MessageID,
1050
+ message *waE2E.Message,
1051
+ participants []types.JID,
1052
+ plaintext, dsmPlaintext []byte,
1053
+ timings *MessageDebugTimings,
1054
+ extraParams nodeExtraParams,
1055
+ ) (*waBinary.Node, []types.JID, error) {
1056
+ start := time.Now()
1057
+ allDevices, err := cli.GetUserDevicesContext(ctx, participants)
1058
+ timings.GetDevices = time.Since(start)
1059
+ if err != nil {
1060
+ return nil, nil, fmt.Errorf("failed to get device list: %w", err)
1061
+ }
1062
+
1063
+ msgType := getTypeFromMessage(message)
1064
+ encAttrs := waBinary.Attrs{}
1065
+ // Only include encMediaType for 1:1 messages (groups don't have a device-sent message plaintext)
1066
+ if encMediaType := getMediaTypeFromMessage(message); dsmPlaintext != nil && encMediaType != "" {
1067
+ encAttrs["mediatype"] = encMediaType
1068
+ }
1069
+ attrs := waBinary.Attrs{
1070
+ "id": id,
1071
+ "type": msgType,
1072
+ "to": to,
1073
+ }
1074
+ // TODO this is a very hacky hack for announcement group messages, why is it pn anyway?
1075
+ if extraParams.addressingMode != "" {
1076
+ attrs["addressing_mode"] = string(extraParams.addressingMode)
1077
+ }
1078
+ if editAttr := getEditAttribute(message); editAttr != "" {
1079
+ attrs["edit"] = string(editAttr)
1080
+ encAttrs["decrypt-fail"] = string(events.DecryptFailHide)
1081
+ }
1082
+ if msgType == "reaction" || message.GetPollUpdateMessage() != nil {
1083
+ encAttrs["decrypt-fail"] = string(events.DecryptFailHide)
1084
+ }
1085
+
1086
+ start = time.Now()
1087
+ participantNodes, includeIdentity := cli.encryptMessageForDevices(
1088
+ ctx, allDevices, id, plaintext, dsmPlaintext, encAttrs,
1089
+ )
1090
+ timings.PeerEncrypt = time.Since(start)
1091
+ participantNode := waBinary.Node{
1092
+ Tag: "participants",
1093
+ Content: participantNodes,
1094
+ }
1095
+ return &waBinary.Node{
1096
+ Tag: "message",
1097
+ Attrs: attrs,
1098
+ Content: cli.getMessageContent(
1099
+ participantNode, message, attrs, includeIdentity, extraParams,
1100
+ ),
1101
+ }, allDevices, nil
1102
+ }
1103
+
1104
+ func marshalMessage(to types.JID, message *waE2E.Message) (plaintext, dsmPlaintext []byte, err error) {
1105
+ if message == nil && to.Server == types.NewsletterServer {
1106
+ return
1107
+ }
1108
+ plaintext, err = proto.Marshal(message)
1109
+ if err != nil {
1110
+ err = fmt.Errorf("failed to marshal message: %w", err)
1111
+ return
1112
+ }
1113
+
1114
+ if to.Server != types.GroupServer && to.Server != types.NewsletterServer {
1115
+ dsmPlaintext, err = proto.Marshal(&waE2E.Message{
1116
+ DeviceSentMessage: &waE2E.DeviceSentMessage{
1117
+ DestinationJID: proto.String(to.String()),
1118
+ Message: message,
1119
+ },
1120
+ MessageContextInfo: message.MessageContextInfo,
1121
+ })
1122
+ if err != nil {
1123
+ err = fmt.Errorf("failed to marshal message (for own devices): %w", err)
1124
+ return
1125
+ }
1126
+ }
1127
+
1128
+ return
1129
+ }
1130
+
1131
+ func (cli *Client) makeDeviceIdentityNode() waBinary.Node {
1132
+ deviceIdentity, err := proto.Marshal(cli.Store.Account)
1133
+ if err != nil {
1134
+ panic(fmt.Errorf("failed to marshal device identity: %w", err))
1135
+ }
1136
+ return waBinary.Node{
1137
+ Tag: "device-identity",
1138
+ Content: deviceIdentity,
1139
+ }
1140
+ }
1141
+
1142
+ func (cli *Client) encryptMessageForDevices(
1143
+ ctx context.Context,
1144
+ allDevices []types.JID,
1145
+ id string,
1146
+ msgPlaintext, dsmPlaintext []byte,
1147
+ encAttrs waBinary.Attrs,
1148
+ ) ([]waBinary.Node, bool) {
1149
+ ownJID := cli.getOwnID()
1150
+ ownLID := cli.getOwnLID()
1151
+ includeIdentity := false
1152
+ participantNodes := make([]waBinary.Node, 0, len(allDevices))
1153
+ var retryDevices, retryEncryptionIdentities []types.JID
1154
+ for _, jid := range allDevices {
1155
+ plaintext := msgPlaintext
1156
+ if (jid.User == ownJID.User || jid.User == ownLID.User) && dsmPlaintext != nil {
1157
+ if jid == ownJID {
1158
+ continue
1159
+ }
1160
+ plaintext = dsmPlaintext
1161
+ }
1162
+ encryptionIdentity := jid
1163
+ if jid.Server == types.DefaultUserServer {
1164
+ lidForPN, err := cli.Store.LIDs.GetLIDForPN(ctx, jid)
1165
+ if err != nil {
1166
+ cli.Log.Warnf("Failed to get LID for %s: %v", jid, err)
1167
+ } else if !lidForPN.IsEmpty() {
1168
+ cli.migrateSessionStore(ctx, jid, lidForPN)
1169
+ encryptionIdentity = lidForPN
1170
+ }
1171
+ }
1172
+
1173
+ encrypted, isPreKey, err := cli.encryptMessageForDeviceAndWrap(
1174
+ ctx, plaintext, jid, encryptionIdentity, nil, encAttrs,
1175
+ )
1176
+ if errors.Is(err, ErrNoSession) {
1177
+ retryDevices = append(retryDevices, jid)
1178
+ retryEncryptionIdentities = append(retryEncryptionIdentities, encryptionIdentity)
1179
+ continue
1180
+ } else if err != nil {
1181
+ // TODO return these errors if it's a fatal one (like context cancellation or database)
1182
+ cli.Log.Warnf("Failed to encrypt %s for %s: %v", id, jid, err)
1183
+ continue
1184
+ }
1185
+
1186
+ participantNodes = append(participantNodes, *encrypted)
1187
+ if isPreKey {
1188
+ includeIdentity = true
1189
+ }
1190
+ }
1191
+ if len(retryDevices) > 0 {
1192
+ bundles, err := cli.fetchPreKeys(ctx, retryDevices)
1193
+ if err != nil {
1194
+ cli.Log.Warnf("Failed to fetch prekeys for %v to retry encryption: %v", retryDevices, err)
1195
+ } else {
1196
+ for i, jid := range retryDevices {
1197
+ resp := bundles[jid]
1198
+ if resp.err != nil {
1199
+ cli.Log.Warnf("Failed to fetch prekey for %s: %v", jid, resp.err)
1200
+ continue
1201
+ }
1202
+ plaintext := msgPlaintext
1203
+ if (jid.User == ownJID.User || jid.User == ownLID.User) && dsmPlaintext != nil {
1204
+ plaintext = dsmPlaintext
1205
+ }
1206
+ encrypted, isPreKey, err := cli.encryptMessageForDeviceAndWrap(
1207
+ ctx, plaintext, jid, retryEncryptionIdentities[i], resp.bundle, encAttrs,
1208
+ )
1209
+ if err != nil {
1210
+ // TODO return these errors if it's a fatal one (like context cancellation or database)
1211
+ cli.Log.Warnf("Failed to encrypt %s for %s (retry): %v", id, jid, err)
1212
+ continue
1213
+ }
1214
+ participantNodes = append(participantNodes, *encrypted)
1215
+ if isPreKey {
1216
+ includeIdentity = true
1217
+ }
1218
+ }
1219
+ }
1220
+ }
1221
+ return participantNodes, includeIdentity
1222
+ }
1223
+
1224
+ func (cli *Client) encryptMessageForDeviceAndWrap(
1225
+ ctx context.Context,
1226
+ plaintext []byte,
1227
+ wireIdentity,
1228
+ encryptionIdentity types.JID,
1229
+ bundle *prekey.Bundle,
1230
+ encAttrs waBinary.Attrs,
1231
+ ) (*waBinary.Node, bool, error) {
1232
+ node, includeDeviceIdentity, err := cli.encryptMessageForDevice(
1233
+ ctx, plaintext, encryptionIdentity, bundle, encAttrs,
1234
+ )
1235
+ if err != nil {
1236
+ return nil, false, err
1237
+ }
1238
+ return &waBinary.Node{
1239
+ Tag: "to",
1240
+ Attrs: waBinary.Attrs{"jid": wireIdentity},
1241
+ Content: []waBinary.Node{*node},
1242
+ }, includeDeviceIdentity, nil
1243
+ }
1244
+
1245
+ func copyAttrs(from, to waBinary.Attrs) {
1246
+ for k, v := range from {
1247
+ to[k] = v
1248
+ }
1249
+ }
1250
+
1251
+ func (cli *Client) encryptMessageForDevice(
1252
+ ctx context.Context,
1253
+ plaintext []byte,
1254
+ to types.JID,
1255
+ bundle *prekey.Bundle,
1256
+ extraAttrs waBinary.Attrs,
1257
+ ) (*waBinary.Node, bool, error) {
1258
+ builder := session.NewBuilderFromSignal(cli.Store, to.SignalAddress(), pbSerializer)
1259
+ if bundle != nil {
1260
+ cli.Log.Debugf("Processing prekey bundle for %s", to)
1261
+ err := builder.ProcessBundle(ctx, bundle)
1262
+ if cli.AutoTrustIdentity && errors.Is(err, signalerror.ErrUntrustedIdentity) {
1263
+ cli.Log.Warnf("Got %v error while trying to process prekey bundle for %s, clearing stored identity and retrying", err, to)
1264
+ err = cli.clearUntrustedIdentity(ctx, to)
1265
+ if err != nil {
1266
+ return nil, false, fmt.Errorf("failed to clear untrusted identity: %w", err)
1267
+ }
1268
+ err = builder.ProcessBundle(ctx, bundle)
1269
+ }
1270
+ if err != nil {
1271
+ return nil, false, fmt.Errorf("failed to process prekey bundle: %w", err)
1272
+ }
1273
+ } else if contains, err := cli.Store.ContainsSession(ctx, to.SignalAddress()); err != nil {
1274
+ return nil, false, err
1275
+ } else if !contains {
1276
+ return nil, false, ErrNoSession
1277
+ }
1278
+ cipher := session.NewCipher(builder, to.SignalAddress())
1279
+ ciphertext, err := cipher.Encrypt(ctx, padMessage(plaintext))
1280
+ if err != nil {
1281
+ return nil, false, fmt.Errorf("cipher encryption failed: %w", err)
1282
+ }
1283
+
1284
+ encAttrs := waBinary.Attrs{
1285
+ "v": "2",
1286
+ "type": "msg",
1287
+ }
1288
+ if ciphertext.Type() == protocol.PREKEY_TYPE {
1289
+ encAttrs["type"] = "pkmsg"
1290
+ }
1291
+ copyAttrs(extraAttrs, encAttrs)
1292
+
1293
+ includeDeviceIdentity := encAttrs["type"] == "pkmsg" && cli.MessengerConfig == nil
1294
+ return &waBinary.Node{
1295
+ Tag: "enc",
1296
+ Attrs: encAttrs,
1297
+ Content: ciphertext.Serialize(),
1298
+ }, includeDeviceIdentity, nil
1299
+ }