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,1934 @@
1
+ // Copyright 2009 The Go Authors. All rights reserved.
2
+ // Use of this source code is governed by a BSD-style
3
+ // license that can be found in the LICENSE file.
4
+
5
+ // Windows system calls.
6
+
7
+ package windows
8
+
9
+ import (
10
+ errorspkg "errors"
11
+ "fmt"
12
+ "runtime"
13
+ "sync"
14
+ "syscall"
15
+ "time"
16
+ "unicode/utf16"
17
+ "unsafe"
18
+ )
19
+
20
+ type (
21
+ Handle uintptr
22
+ HWND uintptr
23
+ )
24
+
25
+ const (
26
+ InvalidHandle = ^Handle(0)
27
+ InvalidHWND = ^HWND(0)
28
+
29
+ // Flags for DefineDosDevice.
30
+ DDD_EXACT_MATCH_ON_REMOVE = 0x00000004
31
+ DDD_NO_BROADCAST_SYSTEM = 0x00000008
32
+ DDD_RAW_TARGET_PATH = 0x00000001
33
+ DDD_REMOVE_DEFINITION = 0x00000002
34
+
35
+ // Return values for GetDriveType.
36
+ DRIVE_UNKNOWN = 0
37
+ DRIVE_NO_ROOT_DIR = 1
38
+ DRIVE_REMOVABLE = 2
39
+ DRIVE_FIXED = 3
40
+ DRIVE_REMOTE = 4
41
+ DRIVE_CDROM = 5
42
+ DRIVE_RAMDISK = 6
43
+
44
+ // File system flags from GetVolumeInformation and GetVolumeInformationByHandle.
45
+ FILE_CASE_SENSITIVE_SEARCH = 0x00000001
46
+ FILE_CASE_PRESERVED_NAMES = 0x00000002
47
+ FILE_FILE_COMPRESSION = 0x00000010
48
+ FILE_DAX_VOLUME = 0x20000000
49
+ FILE_NAMED_STREAMS = 0x00040000
50
+ FILE_PERSISTENT_ACLS = 0x00000008
51
+ FILE_READ_ONLY_VOLUME = 0x00080000
52
+ FILE_SEQUENTIAL_WRITE_ONCE = 0x00100000
53
+ FILE_SUPPORTS_ENCRYPTION = 0x00020000
54
+ FILE_SUPPORTS_EXTENDED_ATTRIBUTES = 0x00800000
55
+ FILE_SUPPORTS_HARD_LINKS = 0x00400000
56
+ FILE_SUPPORTS_OBJECT_IDS = 0x00010000
57
+ FILE_SUPPORTS_OPEN_BY_FILE_ID = 0x01000000
58
+ FILE_SUPPORTS_REPARSE_POINTS = 0x00000080
59
+ FILE_SUPPORTS_SPARSE_FILES = 0x00000040
60
+ FILE_SUPPORTS_TRANSACTIONS = 0x00200000
61
+ FILE_SUPPORTS_USN_JOURNAL = 0x02000000
62
+ FILE_UNICODE_ON_DISK = 0x00000004
63
+ FILE_VOLUME_IS_COMPRESSED = 0x00008000
64
+ FILE_VOLUME_QUOTAS = 0x00000020
65
+
66
+ // Flags for LockFileEx.
67
+ LOCKFILE_FAIL_IMMEDIATELY = 0x00000001
68
+ LOCKFILE_EXCLUSIVE_LOCK = 0x00000002
69
+
70
+ // Return value of SleepEx and other APC functions
71
+ WAIT_IO_COMPLETION = 0x000000C0
72
+ )
73
+
74
+ // StringToUTF16 is deprecated. Use UTF16FromString instead.
75
+ // If s contains a NUL byte this function panics instead of
76
+ // returning an error.
77
+ func StringToUTF16(s string) []uint16 {
78
+ a, err := UTF16FromString(s)
79
+ if err != nil {
80
+ panic("windows: string with NUL passed to StringToUTF16")
81
+ }
82
+ return a
83
+ }
84
+
85
+ // UTF16FromString returns the UTF-16 encoding of the UTF-8 string
86
+ // s, with a terminating NUL added. If s contains a NUL byte at any
87
+ // location, it returns (nil, syscall.EINVAL).
88
+ func UTF16FromString(s string) ([]uint16, error) {
89
+ return syscall.UTF16FromString(s)
90
+ }
91
+
92
+ // UTF16ToString returns the UTF-8 encoding of the UTF-16 sequence s,
93
+ // with a terminating NUL and any bytes after the NUL removed.
94
+ func UTF16ToString(s []uint16) string {
95
+ return syscall.UTF16ToString(s)
96
+ }
97
+
98
+ // StringToUTF16Ptr is deprecated. Use UTF16PtrFromString instead.
99
+ // If s contains a NUL byte this function panics instead of
100
+ // returning an error.
101
+ func StringToUTF16Ptr(s string) *uint16 { return &StringToUTF16(s)[0] }
102
+
103
+ // UTF16PtrFromString returns pointer to the UTF-16 encoding of
104
+ // the UTF-8 string s, with a terminating NUL added. If s
105
+ // contains a NUL byte at any location, it returns (nil, syscall.EINVAL).
106
+ func UTF16PtrFromString(s string) (*uint16, error) {
107
+ a, err := UTF16FromString(s)
108
+ if err != nil {
109
+ return nil, err
110
+ }
111
+ return &a[0], nil
112
+ }
113
+
114
+ // UTF16PtrToString takes a pointer to a UTF-16 sequence and returns the corresponding UTF-8 encoded string.
115
+ // If the pointer is nil, it returns the empty string. It assumes that the UTF-16 sequence is terminated
116
+ // at a zero word; if the zero word is not present, the program may crash.
117
+ func UTF16PtrToString(p *uint16) string {
118
+ if p == nil {
119
+ return ""
120
+ }
121
+ if *p == 0 {
122
+ return ""
123
+ }
124
+
125
+ // Find NUL terminator.
126
+ n := 0
127
+ for ptr := unsafe.Pointer(p); *(*uint16)(ptr) != 0; n++ {
128
+ ptr = unsafe.Pointer(uintptr(ptr) + unsafe.Sizeof(*p))
129
+ }
130
+ return UTF16ToString(unsafe.Slice(p, n))
131
+ }
132
+
133
+ func Getpagesize() int { return 4096 }
134
+
135
+ // NewCallback converts a Go function to a function pointer conforming to the stdcall calling convention.
136
+ // This is useful when interoperating with Windows code requiring callbacks.
137
+ // The argument is expected to be a function with one uintptr-sized result. The function must not have arguments with size larger than the size of uintptr.
138
+ func NewCallback(fn interface{}) uintptr {
139
+ return syscall.NewCallback(fn)
140
+ }
141
+
142
+ // NewCallbackCDecl converts a Go function to a function pointer conforming to the cdecl calling convention.
143
+ // This is useful when interoperating with Windows code requiring callbacks.
144
+ // The argument is expected to be a function with one uintptr-sized result. The function must not have arguments with size larger than the size of uintptr.
145
+ func NewCallbackCDecl(fn interface{}) uintptr {
146
+ return syscall.NewCallbackCDecl(fn)
147
+ }
148
+
149
+ // windows api calls
150
+
151
+ //sys GetLastError() (lasterr error)
152
+ //sys LoadLibrary(libname string) (handle Handle, err error) = LoadLibraryW
153
+ //sys LoadLibraryEx(libname string, zero Handle, flags uintptr) (handle Handle, err error) = LoadLibraryExW
154
+ //sys FreeLibrary(handle Handle) (err error)
155
+ //sys GetProcAddress(module Handle, procname string) (proc uintptr, err error)
156
+ //sys GetModuleFileName(module Handle, filename *uint16, size uint32) (n uint32, err error) = kernel32.GetModuleFileNameW
157
+ //sys GetModuleHandleEx(flags uint32, moduleName *uint16, module *Handle) (err error) = kernel32.GetModuleHandleExW
158
+ //sys SetDefaultDllDirectories(directoryFlags uint32) (err error)
159
+ //sys AddDllDirectory(path *uint16) (cookie uintptr, err error) = kernel32.AddDllDirectory
160
+ //sys RemoveDllDirectory(cookie uintptr) (err error) = kernel32.RemoveDllDirectory
161
+ //sys SetDllDirectory(path string) (err error) = kernel32.SetDllDirectoryW
162
+ //sys GetVersion() (ver uint32, err error)
163
+ //sys FormatMessage(flags uint32, msgsrc uintptr, msgid uint32, langid uint32, buf []uint16, args *byte) (n uint32, err error) = FormatMessageW
164
+ //sys ExitProcess(exitcode uint32)
165
+ //sys IsWow64Process(handle Handle, isWow64 *bool) (err error) = IsWow64Process
166
+ //sys IsWow64Process2(handle Handle, processMachine *uint16, nativeMachine *uint16) (err error) = IsWow64Process2?
167
+ //sys CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile Handle) (handle Handle, err error) [failretval==InvalidHandle] = CreateFileW
168
+ //sys CreateNamedPipe(name *uint16, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *SecurityAttributes) (handle Handle, err error) [failretval==InvalidHandle] = CreateNamedPipeW
169
+ //sys ConnectNamedPipe(pipe Handle, overlapped *Overlapped) (err error)
170
+ //sys DisconnectNamedPipe(pipe Handle) (err error)
171
+ //sys GetNamedPipeClientProcessId(pipe Handle, clientProcessID *uint32) (err error)
172
+ //sys GetNamedPipeServerProcessId(pipe Handle, serverProcessID *uint32) (err error)
173
+ //sys GetNamedPipeInfo(pipe Handle, flags *uint32, outSize *uint32, inSize *uint32, maxInstances *uint32) (err error)
174
+ //sys GetNamedPipeHandleState(pipe Handle, state *uint32, curInstances *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32, userName *uint16, maxUserNameSize uint32) (err error) = GetNamedPipeHandleStateW
175
+ //sys SetNamedPipeHandleState(pipe Handle, state *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32) (err error) = SetNamedPipeHandleState
176
+ //sys readFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) = ReadFile
177
+ //sys writeFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) = WriteFile
178
+ //sys GetOverlappedResult(handle Handle, overlapped *Overlapped, done *uint32, wait bool) (err error)
179
+ //sys SetFilePointer(handle Handle, lowoffset int32, highoffsetptr *int32, whence uint32) (newlowoffset uint32, err error) [failretval==0xffffffff]
180
+ //sys CloseHandle(handle Handle) (err error)
181
+ //sys GetStdHandle(stdhandle uint32) (handle Handle, err error) [failretval==InvalidHandle]
182
+ //sys SetStdHandle(stdhandle uint32, handle Handle) (err error)
183
+ //sys findFirstFile1(name *uint16, data *win32finddata1) (handle Handle, err error) [failretval==InvalidHandle] = FindFirstFileW
184
+ //sys findNextFile1(handle Handle, data *win32finddata1) (err error) = FindNextFileW
185
+ //sys FindClose(handle Handle) (err error)
186
+ //sys GetFileInformationByHandle(handle Handle, data *ByHandleFileInformation) (err error)
187
+ //sys GetFileInformationByHandleEx(handle Handle, class uint32, outBuffer *byte, outBufferLen uint32) (err error)
188
+ //sys SetFileInformationByHandle(handle Handle, class uint32, inBuffer *byte, inBufferLen uint32) (err error)
189
+ //sys GetCurrentDirectory(buflen uint32, buf *uint16) (n uint32, err error) = GetCurrentDirectoryW
190
+ //sys SetCurrentDirectory(path *uint16) (err error) = SetCurrentDirectoryW
191
+ //sys CreateDirectory(path *uint16, sa *SecurityAttributes) (err error) = CreateDirectoryW
192
+ //sys RemoveDirectory(path *uint16) (err error) = RemoveDirectoryW
193
+ //sys DeleteFile(path *uint16) (err error) = DeleteFileW
194
+ //sys MoveFile(from *uint16, to *uint16) (err error) = MoveFileW
195
+ //sys MoveFileEx(from *uint16, to *uint16, flags uint32) (err error) = MoveFileExW
196
+ //sys LockFileEx(file Handle, flags uint32, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error)
197
+ //sys UnlockFileEx(file Handle, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error)
198
+ //sys GetComputerName(buf *uint16, n *uint32) (err error) = GetComputerNameW
199
+ //sys GetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) = GetComputerNameExW
200
+ //sys SetEndOfFile(handle Handle) (err error)
201
+ //sys SetFileValidData(handle Handle, validDataLength int64) (err error)
202
+ //sys GetSystemTimeAsFileTime(time *Filetime)
203
+ //sys GetSystemTimePreciseAsFileTime(time *Filetime)
204
+ //sys GetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) [failretval==0xffffffff]
205
+ //sys CreateIoCompletionPort(filehandle Handle, cphandle Handle, key uintptr, threadcnt uint32) (handle Handle, err error)
206
+ //sys GetQueuedCompletionStatus(cphandle Handle, qty *uint32, key *uintptr, overlapped **Overlapped, timeout uint32) (err error)
207
+ //sys PostQueuedCompletionStatus(cphandle Handle, qty uint32, key uintptr, overlapped *Overlapped) (err error)
208
+ //sys CancelIo(s Handle) (err error)
209
+ //sys CancelIoEx(s Handle, o *Overlapped) (err error)
210
+ //sys CreateProcess(appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) = CreateProcessW
211
+ //sys CreateProcessAsUser(token Token, appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) = advapi32.CreateProcessAsUserW
212
+ //sys initializeProcThreadAttributeList(attrlist *ProcThreadAttributeList, attrcount uint32, flags uint32, size *uintptr) (err error) = InitializeProcThreadAttributeList
213
+ //sys deleteProcThreadAttributeList(attrlist *ProcThreadAttributeList) = DeleteProcThreadAttributeList
214
+ //sys updateProcThreadAttribute(attrlist *ProcThreadAttributeList, flags uint32, attr uintptr, value unsafe.Pointer, size uintptr, prevvalue unsafe.Pointer, returnedsize *uintptr) (err error) = UpdateProcThreadAttribute
215
+ //sys OpenProcess(desiredAccess uint32, inheritHandle bool, processId uint32) (handle Handle, err error)
216
+ //sys ShellExecute(hwnd Handle, verb *uint16, file *uint16, args *uint16, cwd *uint16, showCmd int32) (err error) [failretval<=32] = shell32.ShellExecuteW
217
+ //sys GetWindowThreadProcessId(hwnd HWND, pid *uint32) (tid uint32, err error) = user32.GetWindowThreadProcessId
218
+ //sys LoadKeyboardLayout(name *uint16, flags uint32) (hkl Handle, err error) [failretval==0] = user32.LoadKeyboardLayoutW
219
+ //sys UnloadKeyboardLayout(hkl Handle) (err error) = user32.UnloadKeyboardLayout
220
+ //sys GetKeyboardLayout(tid uint32) (hkl Handle) = user32.GetKeyboardLayout
221
+ //sys ToUnicodeEx(vkey uint32, scancode uint32, keystate *byte, pwszBuff *uint16, cchBuff int32, flags uint32, hkl Handle) (ret int32) = user32.ToUnicodeEx
222
+ //sys GetShellWindow() (shellWindow HWND) = user32.GetShellWindow
223
+ //sys MessageBox(hwnd HWND, text *uint16, caption *uint16, boxtype uint32) (ret int32, err error) [failretval==0] = user32.MessageBoxW
224
+ //sys ExitWindowsEx(flags uint32, reason uint32) (err error) = user32.ExitWindowsEx
225
+ //sys shGetKnownFolderPath(id *KNOWNFOLDERID, flags uint32, token Token, path **uint16) (ret error) = shell32.SHGetKnownFolderPath
226
+ //sys TerminateProcess(handle Handle, exitcode uint32) (err error)
227
+ //sys GetExitCodeProcess(handle Handle, exitcode *uint32) (err error)
228
+ //sys getStartupInfo(startupInfo *StartupInfo) = GetStartupInfoW
229
+ //sys GetProcessTimes(handle Handle, creationTime *Filetime, exitTime *Filetime, kernelTime *Filetime, userTime *Filetime) (err error)
230
+ //sys DuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetProcessHandle Handle, lpTargetHandle *Handle, dwDesiredAccess uint32, bInheritHandle bool, dwOptions uint32) (err error)
231
+ //sys WaitForSingleObject(handle Handle, waitMilliseconds uint32) (event uint32, err error) [failretval==0xffffffff]
232
+ //sys waitForMultipleObjects(count uint32, handles uintptr, waitAll bool, waitMilliseconds uint32) (event uint32, err error) [failretval==0xffffffff] = WaitForMultipleObjects
233
+ //sys GetTempPath(buflen uint32, buf *uint16) (n uint32, err error) = GetTempPathW
234
+ //sys CreatePipe(readhandle *Handle, writehandle *Handle, sa *SecurityAttributes, size uint32) (err error)
235
+ //sys GetFileType(filehandle Handle) (n uint32, err error)
236
+ //sys CryptAcquireContext(provhandle *Handle, container *uint16, provider *uint16, provtype uint32, flags uint32) (err error) = advapi32.CryptAcquireContextW
237
+ //sys CryptReleaseContext(provhandle Handle, flags uint32) (err error) = advapi32.CryptReleaseContext
238
+ //sys CryptGenRandom(provhandle Handle, buflen uint32, buf *byte) (err error) = advapi32.CryptGenRandom
239
+ //sys GetEnvironmentStrings() (envs *uint16, err error) [failretval==nil] = kernel32.GetEnvironmentStringsW
240
+ //sys FreeEnvironmentStrings(envs *uint16) (err error) = kernel32.FreeEnvironmentStringsW
241
+ //sys GetEnvironmentVariable(name *uint16, buffer *uint16, size uint32) (n uint32, err error) = kernel32.GetEnvironmentVariableW
242
+ //sys SetEnvironmentVariable(name *uint16, value *uint16) (err error) = kernel32.SetEnvironmentVariableW
243
+ //sys ExpandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, err error) = kernel32.ExpandEnvironmentStringsW
244
+ //sys CreateEnvironmentBlock(block **uint16, token Token, inheritExisting bool) (err error) = userenv.CreateEnvironmentBlock
245
+ //sys DestroyEnvironmentBlock(block *uint16) (err error) = userenv.DestroyEnvironmentBlock
246
+ //sys getTickCount64() (ms uint64) = kernel32.GetTickCount64
247
+ //sys GetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error)
248
+ //sys SetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error)
249
+ //sys GetFileAttributes(name *uint16) (attrs uint32, err error) [failretval==INVALID_FILE_ATTRIBUTES] = kernel32.GetFileAttributesW
250
+ //sys SetFileAttributes(name *uint16, attrs uint32) (err error) = kernel32.SetFileAttributesW
251
+ //sys GetFileAttributesEx(name *uint16, level uint32, info *byte) (err error) = kernel32.GetFileAttributesExW
252
+ //sys GetCommandLine() (cmd *uint16) = kernel32.GetCommandLineW
253
+ //sys commandLineToArgv(cmd *uint16, argc *int32) (argv **uint16, err error) [failretval==nil] = shell32.CommandLineToArgvW
254
+ //sys LocalFree(hmem Handle) (handle Handle, err error) [failretval!=0]
255
+ //sys LocalAlloc(flags uint32, length uint32) (ptr uintptr, err error)
256
+ //sys SetHandleInformation(handle Handle, mask uint32, flags uint32) (err error)
257
+ //sys FlushFileBuffers(handle Handle) (err error)
258
+ //sys GetFullPathName(path *uint16, buflen uint32, buf *uint16, fname **uint16) (n uint32, err error) = kernel32.GetFullPathNameW
259
+ //sys GetLongPathName(path *uint16, buf *uint16, buflen uint32) (n uint32, err error) = kernel32.GetLongPathNameW
260
+ //sys GetShortPathName(longpath *uint16, shortpath *uint16, buflen uint32) (n uint32, err error) = kernel32.GetShortPathNameW
261
+ //sys GetFinalPathNameByHandle(file Handle, filePath *uint16, filePathSize uint32, flags uint32) (n uint32, err error) = kernel32.GetFinalPathNameByHandleW
262
+ //sys CreateFileMapping(fhandle Handle, sa *SecurityAttributes, prot uint32, maxSizeHigh uint32, maxSizeLow uint32, name *uint16) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateFileMappingW
263
+ //sys MapViewOfFile(handle Handle, access uint32, offsetHigh uint32, offsetLow uint32, length uintptr) (addr uintptr, err error)
264
+ //sys UnmapViewOfFile(addr uintptr) (err error)
265
+ //sys FlushViewOfFile(addr uintptr, length uintptr) (err error)
266
+ //sys VirtualLock(addr uintptr, length uintptr) (err error)
267
+ //sys VirtualUnlock(addr uintptr, length uintptr) (err error)
268
+ //sys VirtualAlloc(address uintptr, size uintptr, alloctype uint32, protect uint32) (value uintptr, err error) = kernel32.VirtualAlloc
269
+ //sys VirtualFree(address uintptr, size uintptr, freetype uint32) (err error) = kernel32.VirtualFree
270
+ //sys VirtualProtect(address uintptr, size uintptr, newprotect uint32, oldprotect *uint32) (err error) = kernel32.VirtualProtect
271
+ //sys VirtualProtectEx(process Handle, address uintptr, size uintptr, newProtect uint32, oldProtect *uint32) (err error) = kernel32.VirtualProtectEx
272
+ //sys VirtualQuery(address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) = kernel32.VirtualQuery
273
+ //sys VirtualQueryEx(process Handle, address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) = kernel32.VirtualQueryEx
274
+ //sys ReadProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesRead *uintptr) (err error) = kernel32.ReadProcessMemory
275
+ //sys WriteProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesWritten *uintptr) (err error) = kernel32.WriteProcessMemory
276
+ //sys TransmitFile(s Handle, handle Handle, bytesToWrite uint32, bytsPerSend uint32, overlapped *Overlapped, transmitFileBuf *TransmitFileBuffers, flags uint32) (err error) = mswsock.TransmitFile
277
+ //sys ReadDirectoryChanges(handle Handle, buf *byte, buflen uint32, watchSubTree bool, mask uint32, retlen *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) = kernel32.ReadDirectoryChangesW
278
+ //sys FindFirstChangeNotification(path string, watchSubtree bool, notifyFilter uint32) (handle Handle, err error) [failretval==InvalidHandle] = kernel32.FindFirstChangeNotificationW
279
+ //sys FindNextChangeNotification(handle Handle) (err error)
280
+ //sys FindCloseChangeNotification(handle Handle) (err error)
281
+ //sys CertOpenSystemStore(hprov Handle, name *uint16) (store Handle, err error) = crypt32.CertOpenSystemStoreW
282
+ //sys CertOpenStore(storeProvider uintptr, msgAndCertEncodingType uint32, cryptProv uintptr, flags uint32, para uintptr) (handle Handle, err error) = crypt32.CertOpenStore
283
+ //sys CertEnumCertificatesInStore(store Handle, prevContext *CertContext) (context *CertContext, err error) [failretval==nil] = crypt32.CertEnumCertificatesInStore
284
+ //sys CertAddCertificateContextToStore(store Handle, certContext *CertContext, addDisposition uint32, storeContext **CertContext) (err error) = crypt32.CertAddCertificateContextToStore
285
+ //sys CertCloseStore(store Handle, flags uint32) (err error) = crypt32.CertCloseStore
286
+ //sys CertDeleteCertificateFromStore(certContext *CertContext) (err error) = crypt32.CertDeleteCertificateFromStore
287
+ //sys CertDuplicateCertificateContext(certContext *CertContext) (dupContext *CertContext) = crypt32.CertDuplicateCertificateContext
288
+ //sys PFXImportCertStore(pfx *CryptDataBlob, password *uint16, flags uint32) (store Handle, err error) = crypt32.PFXImportCertStore
289
+ //sys CertGetCertificateChain(engine Handle, leaf *CertContext, time *Filetime, additionalStore Handle, para *CertChainPara, flags uint32, reserved uintptr, chainCtx **CertChainContext) (err error) = crypt32.CertGetCertificateChain
290
+ //sys CertFreeCertificateChain(ctx *CertChainContext) = crypt32.CertFreeCertificateChain
291
+ //sys CertCreateCertificateContext(certEncodingType uint32, certEncoded *byte, encodedLen uint32) (context *CertContext, err error) [failretval==nil] = crypt32.CertCreateCertificateContext
292
+ //sys CertFreeCertificateContext(ctx *CertContext) (err error) = crypt32.CertFreeCertificateContext
293
+ //sys CertVerifyCertificateChainPolicy(policyOID uintptr, chain *CertChainContext, para *CertChainPolicyPara, status *CertChainPolicyStatus) (err error) = crypt32.CertVerifyCertificateChainPolicy
294
+ //sys CertGetNameString(certContext *CertContext, nameType uint32, flags uint32, typePara unsafe.Pointer, name *uint16, size uint32) (chars uint32) = crypt32.CertGetNameStringW
295
+ //sys CertFindExtension(objId *byte, countExtensions uint32, extensions *CertExtension) (ret *CertExtension) = crypt32.CertFindExtension
296
+ //sys CertFindCertificateInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevCertContext *CertContext) (cert *CertContext, err error) [failretval==nil] = crypt32.CertFindCertificateInStore
297
+ //sys CertFindChainInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevChainContext *CertChainContext) (certchain *CertChainContext, err error) [failretval==nil] = crypt32.CertFindChainInStore
298
+ //sys CryptAcquireCertificatePrivateKey(cert *CertContext, flags uint32, parameters unsafe.Pointer, cryptProvOrNCryptKey *Handle, keySpec *uint32, callerFreeProvOrNCryptKey *bool) (err error) = crypt32.CryptAcquireCertificatePrivateKey
299
+ //sys CryptQueryObject(objectType uint32, object unsafe.Pointer, expectedContentTypeFlags uint32, expectedFormatTypeFlags uint32, flags uint32, msgAndCertEncodingType *uint32, contentType *uint32, formatType *uint32, certStore *Handle, msg *Handle, context *unsafe.Pointer) (err error) = crypt32.CryptQueryObject
300
+ //sys CryptDecodeObject(encodingType uint32, structType *byte, encodedBytes *byte, lenEncodedBytes uint32, flags uint32, decoded unsafe.Pointer, decodedLen *uint32) (err error) = crypt32.CryptDecodeObject
301
+ //sys CryptProtectData(dataIn *DataBlob, name *uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) = crypt32.CryptProtectData
302
+ //sys CryptUnprotectData(dataIn *DataBlob, name **uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) = crypt32.CryptUnprotectData
303
+ //sys WinVerifyTrustEx(hwnd HWND, actionId *GUID, data *WinTrustData) (ret error) = wintrust.WinVerifyTrustEx
304
+ //sys RegOpenKeyEx(key Handle, subkey *uint16, options uint32, desiredAccess uint32, result *Handle) (regerrno error) = advapi32.RegOpenKeyExW
305
+ //sys RegCloseKey(key Handle) (regerrno error) = advapi32.RegCloseKey
306
+ //sys RegQueryInfoKey(key Handle, class *uint16, classLen *uint32, reserved *uint32, subkeysLen *uint32, maxSubkeyLen *uint32, maxClassLen *uint32, valuesLen *uint32, maxValueNameLen *uint32, maxValueLen *uint32, saLen *uint32, lastWriteTime *Filetime) (regerrno error) = advapi32.RegQueryInfoKeyW
307
+ //sys RegEnumKeyEx(key Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, class *uint16, classLen *uint32, lastWriteTime *Filetime) (regerrno error) = advapi32.RegEnumKeyExW
308
+ //sys RegQueryValueEx(key Handle, name *uint16, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) = advapi32.RegQueryValueExW
309
+ //sys RegNotifyChangeKeyValue(key Handle, watchSubtree bool, notifyFilter uint32, event Handle, asynchronous bool) (regerrno error) = advapi32.RegNotifyChangeKeyValue
310
+ //sys GetCurrentProcessId() (pid uint32) = kernel32.GetCurrentProcessId
311
+ //sys ProcessIdToSessionId(pid uint32, sessionid *uint32) (err error) = kernel32.ProcessIdToSessionId
312
+ //sys ClosePseudoConsole(console Handle) = kernel32.ClosePseudoConsole
313
+ //sys createPseudoConsole(size uint32, in Handle, out Handle, flags uint32, pconsole *Handle) (hr error) = kernel32.CreatePseudoConsole
314
+ //sys GetConsoleMode(console Handle, mode *uint32) (err error) = kernel32.GetConsoleMode
315
+ //sys SetConsoleMode(console Handle, mode uint32) (err error) = kernel32.SetConsoleMode
316
+ //sys GetConsoleScreenBufferInfo(console Handle, info *ConsoleScreenBufferInfo) (err error) = kernel32.GetConsoleScreenBufferInfo
317
+ //sys setConsoleCursorPosition(console Handle, position uint32) (err error) = kernel32.SetConsoleCursorPosition
318
+ //sys GetConsoleCP() (cp uint32, err error) = kernel32.GetConsoleCP
319
+ //sys GetConsoleOutputCP() (cp uint32, err error) = kernel32.GetConsoleOutputCP
320
+ //sys SetConsoleCP(cp uint32) (err error) = kernel32.SetConsoleCP
321
+ //sys SetConsoleOutputCP(cp uint32) (err error) = kernel32.SetConsoleOutputCP
322
+ //sys WriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, reserved *byte) (err error) = kernel32.WriteConsoleW
323
+ //sys ReadConsole(console Handle, buf *uint16, toread uint32, read *uint32, inputControl *byte) (err error) = kernel32.ReadConsoleW
324
+ //sys resizePseudoConsole(pconsole Handle, size uint32) (hr error) = kernel32.ResizePseudoConsole
325
+ //sys CreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, err error) [failretval==InvalidHandle] = kernel32.CreateToolhelp32Snapshot
326
+ //sys Module32First(snapshot Handle, moduleEntry *ModuleEntry32) (err error) = kernel32.Module32FirstW
327
+ //sys Module32Next(snapshot Handle, moduleEntry *ModuleEntry32) (err error) = kernel32.Module32NextW
328
+ //sys Process32First(snapshot Handle, procEntry *ProcessEntry32) (err error) = kernel32.Process32FirstW
329
+ //sys Process32Next(snapshot Handle, procEntry *ProcessEntry32) (err error) = kernel32.Process32NextW
330
+ //sys Thread32First(snapshot Handle, threadEntry *ThreadEntry32) (err error)
331
+ //sys Thread32Next(snapshot Handle, threadEntry *ThreadEntry32) (err error)
332
+ //sys DeviceIoControl(handle Handle, ioControlCode uint32, inBuffer *byte, inBufferSize uint32, outBuffer *byte, outBufferSize uint32, bytesReturned *uint32, overlapped *Overlapped) (err error)
333
+ // This function returns 1 byte BOOLEAN rather than the 4 byte BOOL.
334
+ //sys CreateSymbolicLink(symlinkfilename *uint16, targetfilename *uint16, flags uint32) (err error) [failretval&0xff==0] = CreateSymbolicLinkW
335
+ //sys CreateHardLink(filename *uint16, existingfilename *uint16, reserved uintptr) (err error) [failretval&0xff==0] = CreateHardLinkW
336
+ //sys GetCurrentThreadId() (id uint32)
337
+ //sys CreateEvent(eventAttrs *SecurityAttributes, manualReset uint32, initialState uint32, name *uint16) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateEventW
338
+ //sys CreateEventEx(eventAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateEventExW
339
+ //sys OpenEvent(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) = kernel32.OpenEventW
340
+ //sys SetEvent(event Handle) (err error) = kernel32.SetEvent
341
+ //sys ResetEvent(event Handle) (err error) = kernel32.ResetEvent
342
+ //sys PulseEvent(event Handle) (err error) = kernel32.PulseEvent
343
+ //sys CreateMutex(mutexAttrs *SecurityAttributes, initialOwner bool, name *uint16) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateMutexW
344
+ //sys CreateMutexEx(mutexAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateMutexExW
345
+ //sys OpenMutex(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) = kernel32.OpenMutexW
346
+ //sys ReleaseMutex(mutex Handle) (err error) = kernel32.ReleaseMutex
347
+ //sys SleepEx(milliseconds uint32, alertable bool) (ret uint32) = kernel32.SleepEx
348
+ //sys CreateJobObject(jobAttr *SecurityAttributes, name *uint16) (handle Handle, err error) = kernel32.CreateJobObjectW
349
+ //sys AssignProcessToJobObject(job Handle, process Handle) (err error) = kernel32.AssignProcessToJobObject
350
+ //sys TerminateJobObject(job Handle, exitCode uint32) (err error) = kernel32.TerminateJobObject
351
+ //sys SetErrorMode(mode uint32) (ret uint32) = kernel32.SetErrorMode
352
+ //sys ResumeThread(thread Handle) (ret uint32, err error) [failretval==0xffffffff] = kernel32.ResumeThread
353
+ //sys SetPriorityClass(process Handle, priorityClass uint32) (err error) = kernel32.SetPriorityClass
354
+ //sys GetPriorityClass(process Handle) (ret uint32, err error) = kernel32.GetPriorityClass
355
+ //sys QueryInformationJobObject(job Handle, JobObjectInformationClass int32, JobObjectInformation uintptr, JobObjectInformationLength uint32, retlen *uint32) (err error) = kernel32.QueryInformationJobObject
356
+ //sys SetInformationJobObject(job Handle, JobObjectInformationClass uint32, JobObjectInformation uintptr, JobObjectInformationLength uint32) (ret int, err error)
357
+ //sys GenerateConsoleCtrlEvent(ctrlEvent uint32, processGroupID uint32) (err error)
358
+ //sys GetProcessId(process Handle) (id uint32, err error)
359
+ //sys QueryFullProcessImageName(proc Handle, flags uint32, exeName *uint16, size *uint32) (err error) = kernel32.QueryFullProcessImageNameW
360
+ //sys OpenThread(desiredAccess uint32, inheritHandle bool, threadId uint32) (handle Handle, err error)
361
+ //sys SetProcessPriorityBoost(process Handle, disable bool) (err error) = kernel32.SetProcessPriorityBoost
362
+ //sys GetProcessWorkingSetSizeEx(hProcess Handle, lpMinimumWorkingSetSize *uintptr, lpMaximumWorkingSetSize *uintptr, flags *uint32)
363
+ //sys SetProcessWorkingSetSizeEx(hProcess Handle, dwMinimumWorkingSetSize uintptr, dwMaximumWorkingSetSize uintptr, flags uint32) (err error)
364
+ //sys ClearCommBreak(handle Handle) (err error)
365
+ //sys ClearCommError(handle Handle, lpErrors *uint32, lpStat *ComStat) (err error)
366
+ //sys EscapeCommFunction(handle Handle, dwFunc uint32) (err error)
367
+ //sys GetCommState(handle Handle, lpDCB *DCB) (err error)
368
+ //sys GetCommModemStatus(handle Handle, lpModemStat *uint32) (err error)
369
+ //sys GetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error)
370
+ //sys PurgeComm(handle Handle, dwFlags uint32) (err error)
371
+ //sys SetCommBreak(handle Handle) (err error)
372
+ //sys SetCommMask(handle Handle, dwEvtMask uint32) (err error)
373
+ //sys SetCommState(handle Handle, lpDCB *DCB) (err error)
374
+ //sys SetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error)
375
+ //sys SetupComm(handle Handle, dwInQueue uint32, dwOutQueue uint32) (err error)
376
+ //sys WaitCommEvent(handle Handle, lpEvtMask *uint32, lpOverlapped *Overlapped) (err error)
377
+ //sys GetActiveProcessorCount(groupNumber uint16) (ret uint32)
378
+ //sys GetMaximumProcessorCount(groupNumber uint16) (ret uint32)
379
+ //sys EnumWindows(enumFunc uintptr, param unsafe.Pointer) (err error) = user32.EnumWindows
380
+ //sys EnumChildWindows(hwnd HWND, enumFunc uintptr, param unsafe.Pointer) = user32.EnumChildWindows
381
+ //sys GetClassName(hwnd HWND, className *uint16, maxCount int32) (copied int32, err error) = user32.GetClassNameW
382
+ //sys GetDesktopWindow() (hwnd HWND) = user32.GetDesktopWindow
383
+ //sys GetForegroundWindow() (hwnd HWND) = user32.GetForegroundWindow
384
+ //sys IsWindow(hwnd HWND) (isWindow bool) = user32.IsWindow
385
+ //sys IsWindowUnicode(hwnd HWND) (isUnicode bool) = user32.IsWindowUnicode
386
+ //sys IsWindowVisible(hwnd HWND) (isVisible bool) = user32.IsWindowVisible
387
+ //sys GetGUIThreadInfo(thread uint32, info *GUIThreadInfo) (err error) = user32.GetGUIThreadInfo
388
+ //sys GetLargePageMinimum() (size uintptr)
389
+
390
+ // Volume Management Functions
391
+ //sys DefineDosDevice(flags uint32, deviceName *uint16, targetPath *uint16) (err error) = DefineDosDeviceW
392
+ //sys DeleteVolumeMountPoint(volumeMountPoint *uint16) (err error) = DeleteVolumeMountPointW
393
+ //sys FindFirstVolume(volumeName *uint16, bufferLength uint32) (handle Handle, err error) [failretval==InvalidHandle] = FindFirstVolumeW
394
+ //sys FindFirstVolumeMountPoint(rootPathName *uint16, volumeMountPoint *uint16, bufferLength uint32) (handle Handle, err error) [failretval==InvalidHandle] = FindFirstVolumeMountPointW
395
+ //sys FindNextVolume(findVolume Handle, volumeName *uint16, bufferLength uint32) (err error) = FindNextVolumeW
396
+ //sys FindNextVolumeMountPoint(findVolumeMountPoint Handle, volumeMountPoint *uint16, bufferLength uint32) (err error) = FindNextVolumeMountPointW
397
+ //sys FindVolumeClose(findVolume Handle) (err error)
398
+ //sys FindVolumeMountPointClose(findVolumeMountPoint Handle) (err error)
399
+ //sys GetDiskFreeSpaceEx(directoryName *uint16, freeBytesAvailableToCaller *uint64, totalNumberOfBytes *uint64, totalNumberOfFreeBytes *uint64) (err error) = GetDiskFreeSpaceExW
400
+ //sys GetDriveType(rootPathName *uint16) (driveType uint32) = GetDriveTypeW
401
+ //sys GetLogicalDrives() (drivesBitMask uint32, err error) [failretval==0]
402
+ //sys GetLogicalDriveStrings(bufferLength uint32, buffer *uint16) (n uint32, err error) [failretval==0] = GetLogicalDriveStringsW
403
+ //sys GetVolumeInformation(rootPathName *uint16, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) = GetVolumeInformationW
404
+ //sys GetVolumeInformationByHandle(file Handle, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) = GetVolumeInformationByHandleW
405
+ //sys GetVolumeNameForVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16, bufferlength uint32) (err error) = GetVolumeNameForVolumeMountPointW
406
+ //sys GetVolumePathName(fileName *uint16, volumePathName *uint16, bufferLength uint32) (err error) = GetVolumePathNameW
407
+ //sys GetVolumePathNamesForVolumeName(volumeName *uint16, volumePathNames *uint16, bufferLength uint32, returnLength *uint32) (err error) = GetVolumePathNamesForVolumeNameW
408
+ //sys QueryDosDevice(deviceName *uint16, targetPath *uint16, max uint32) (n uint32, err error) [failretval==0] = QueryDosDeviceW
409
+ //sys SetVolumeLabel(rootPathName *uint16, volumeName *uint16) (err error) = SetVolumeLabelW
410
+ //sys SetVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16) (err error) = SetVolumeMountPointW
411
+ //sys InitiateSystemShutdownEx(machineName *uint16, message *uint16, timeout uint32, forceAppsClosed bool, rebootAfterShutdown bool, reason uint32) (err error) = advapi32.InitiateSystemShutdownExW
412
+ //sys SetProcessShutdownParameters(level uint32, flags uint32) (err error) = kernel32.SetProcessShutdownParameters
413
+ //sys GetProcessShutdownParameters(level *uint32, flags *uint32) (err error) = kernel32.GetProcessShutdownParameters
414
+ //sys clsidFromString(lpsz *uint16, pclsid *GUID) (ret error) = ole32.CLSIDFromString
415
+ //sys stringFromGUID2(rguid *GUID, lpsz *uint16, cchMax int32) (chars int32) = ole32.StringFromGUID2
416
+ //sys coCreateGuid(pguid *GUID) (ret error) = ole32.CoCreateGuid
417
+ //sys CoTaskMemFree(address unsafe.Pointer) = ole32.CoTaskMemFree
418
+ //sys CoInitializeEx(reserved uintptr, coInit uint32) (ret error) = ole32.CoInitializeEx
419
+ //sys CoUninitialize() = ole32.CoUninitialize
420
+ //sys CoGetObject(name *uint16, bindOpts *BIND_OPTS3, guid *GUID, functionTable **uintptr) (ret error) = ole32.CoGetObject
421
+ //sys getProcessPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetProcessPreferredUILanguages
422
+ //sys getThreadPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetThreadPreferredUILanguages
423
+ //sys getUserPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetUserPreferredUILanguages
424
+ //sys getSystemPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetSystemPreferredUILanguages
425
+ //sys findResource(module Handle, name uintptr, resType uintptr) (resInfo Handle, err error) = kernel32.FindResourceW
426
+ //sys SizeofResource(module Handle, resInfo Handle) (size uint32, err error) = kernel32.SizeofResource
427
+ //sys LoadResource(module Handle, resInfo Handle) (resData Handle, err error) = kernel32.LoadResource
428
+ //sys LockResource(resData Handle) (addr uintptr, err error) = kernel32.LockResource
429
+
430
+ // Version APIs
431
+ //sys GetFileVersionInfoSize(filename string, zeroHandle *Handle) (bufSize uint32, err error) = version.GetFileVersionInfoSizeW
432
+ //sys GetFileVersionInfo(filename string, handle uint32, bufSize uint32, buffer unsafe.Pointer) (err error) = version.GetFileVersionInfoW
433
+ //sys VerQueryValue(block unsafe.Pointer, subBlock string, pointerToBufferPointer unsafe.Pointer, bufSize *uint32) (err error) = version.VerQueryValueW
434
+
435
+ // Process Status API (PSAPI)
436
+ //sys enumProcesses(processIds *uint32, nSize uint32, bytesReturned *uint32) (err error) = psapi.EnumProcesses
437
+ //sys EnumProcessModules(process Handle, module *Handle, cb uint32, cbNeeded *uint32) (err error) = psapi.EnumProcessModules
438
+ //sys EnumProcessModulesEx(process Handle, module *Handle, cb uint32, cbNeeded *uint32, filterFlag uint32) (err error) = psapi.EnumProcessModulesEx
439
+ //sys GetModuleInformation(process Handle, module Handle, modinfo *ModuleInfo, cb uint32) (err error) = psapi.GetModuleInformation
440
+ //sys GetModuleFileNameEx(process Handle, module Handle, filename *uint16, size uint32) (err error) = psapi.GetModuleFileNameExW
441
+ //sys GetModuleBaseName(process Handle, module Handle, baseName *uint16, size uint32) (err error) = psapi.GetModuleBaseNameW
442
+ //sys QueryWorkingSetEx(process Handle, pv uintptr, cb uint32) (err error) = psapi.QueryWorkingSetEx
443
+
444
+ // NT Native APIs
445
+ //sys rtlNtStatusToDosErrorNoTeb(ntstatus NTStatus) (ret syscall.Errno) = ntdll.RtlNtStatusToDosErrorNoTeb
446
+ //sys rtlGetVersion(info *OsVersionInfoEx) (ntstatus error) = ntdll.RtlGetVersion
447
+ //sys rtlGetNtVersionNumbers(majorVersion *uint32, minorVersion *uint32, buildNumber *uint32) = ntdll.RtlGetNtVersionNumbers
448
+ //sys RtlGetCurrentPeb() (peb *PEB) = ntdll.RtlGetCurrentPeb
449
+ //sys RtlInitUnicodeString(destinationString *NTUnicodeString, sourceString *uint16) = ntdll.RtlInitUnicodeString
450
+ //sys RtlInitString(destinationString *NTString, sourceString *byte) = ntdll.RtlInitString
451
+ //sys NtCreateFile(handle *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, allocationSize *int64, attributes uint32, share uint32, disposition uint32, options uint32, eabuffer uintptr, ealength uint32) (ntstatus error) = ntdll.NtCreateFile
452
+ //sys NtCreateNamedPipeFile(pipe *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, share uint32, disposition uint32, options uint32, typ uint32, readMode uint32, completionMode uint32, maxInstances uint32, inboundQuota uint32, outputQuota uint32, timeout *int64) (ntstatus error) = ntdll.NtCreateNamedPipeFile
453
+ //sys NtSetInformationFile(handle Handle, iosb *IO_STATUS_BLOCK, inBuffer *byte, inBufferLen uint32, class uint32) (ntstatus error) = ntdll.NtSetInformationFile
454
+ //sys RtlDosPathNameToNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) = ntdll.RtlDosPathNameToNtPathName_U_WithStatus
455
+ //sys RtlDosPathNameToRelativeNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) = ntdll.RtlDosPathNameToRelativeNtPathName_U_WithStatus
456
+ //sys RtlDefaultNpAcl(acl **ACL) (ntstatus error) = ntdll.RtlDefaultNpAcl
457
+ //sys NtQueryInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32, retLen *uint32) (ntstatus error) = ntdll.NtQueryInformationProcess
458
+ //sys NtSetInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32) (ntstatus error) = ntdll.NtSetInformationProcess
459
+ //sys NtQuerySystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32, retLen *uint32) (ntstatus error) = ntdll.NtQuerySystemInformation
460
+ //sys NtSetSystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32) (ntstatus error) = ntdll.NtSetSystemInformation
461
+ //sys RtlAddFunctionTable(functionTable *RUNTIME_FUNCTION, entryCount uint32, baseAddress uintptr) (ret bool) = ntdll.RtlAddFunctionTable
462
+ //sys RtlDeleteFunctionTable(functionTable *RUNTIME_FUNCTION) (ret bool) = ntdll.RtlDeleteFunctionTable
463
+
464
+ // Desktop Window Manager API (Dwmapi)
465
+ //sys DwmGetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) = dwmapi.DwmGetWindowAttribute
466
+ //sys DwmSetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) = dwmapi.DwmSetWindowAttribute
467
+
468
+ // Windows Multimedia API
469
+ //sys TimeBeginPeriod (period uint32) (err error) [failretval != 0] = winmm.timeBeginPeriod
470
+ //sys TimeEndPeriod (period uint32) (err error) [failretval != 0] = winmm.timeEndPeriod
471
+
472
+ // syscall interface implementation for other packages
473
+
474
+ // GetCurrentProcess returns the handle for the current process.
475
+ // It is a pseudo handle that does not need to be closed.
476
+ // The returned error is always nil.
477
+ //
478
+ // Deprecated: use CurrentProcess for the same Handle without the nil
479
+ // error.
480
+ func GetCurrentProcess() (Handle, error) {
481
+ return CurrentProcess(), nil
482
+ }
483
+
484
+ // CurrentProcess returns the handle for the current process.
485
+ // It is a pseudo handle that does not need to be closed.
486
+ func CurrentProcess() Handle { return Handle(^uintptr(1 - 1)) }
487
+
488
+ // GetCurrentThread returns the handle for the current thread.
489
+ // It is a pseudo handle that does not need to be closed.
490
+ // The returned error is always nil.
491
+ //
492
+ // Deprecated: use CurrentThread for the same Handle without the nil
493
+ // error.
494
+ func GetCurrentThread() (Handle, error) {
495
+ return CurrentThread(), nil
496
+ }
497
+
498
+ // CurrentThread returns the handle for the current thread.
499
+ // It is a pseudo handle that does not need to be closed.
500
+ func CurrentThread() Handle { return Handle(^uintptr(2 - 1)) }
501
+
502
+ // GetProcAddressByOrdinal retrieves the address of the exported
503
+ // function from module by ordinal.
504
+ func GetProcAddressByOrdinal(module Handle, ordinal uintptr) (proc uintptr, err error) {
505
+ r0, _, e1 := syscall.Syscall(procGetProcAddress.Addr(), 2, uintptr(module), ordinal, 0)
506
+ proc = uintptr(r0)
507
+ if proc == 0 {
508
+ err = errnoErr(e1)
509
+ }
510
+ return
511
+ }
512
+
513
+ func Exit(code int) { ExitProcess(uint32(code)) }
514
+
515
+ func makeInheritSa() *SecurityAttributes {
516
+ var sa SecurityAttributes
517
+ sa.Length = uint32(unsafe.Sizeof(sa))
518
+ sa.InheritHandle = 1
519
+ return &sa
520
+ }
521
+
522
+ func Open(path string, mode int, perm uint32) (fd Handle, err error) {
523
+ if len(path) == 0 {
524
+ return InvalidHandle, ERROR_FILE_NOT_FOUND
525
+ }
526
+ pathp, err := UTF16PtrFromString(path)
527
+ if err != nil {
528
+ return InvalidHandle, err
529
+ }
530
+ var access uint32
531
+ switch mode & (O_RDONLY | O_WRONLY | O_RDWR) {
532
+ case O_RDONLY:
533
+ access = GENERIC_READ
534
+ case O_WRONLY:
535
+ access = GENERIC_WRITE
536
+ case O_RDWR:
537
+ access = GENERIC_READ | GENERIC_WRITE
538
+ }
539
+ if mode&O_CREAT != 0 {
540
+ access |= GENERIC_WRITE
541
+ }
542
+ if mode&O_APPEND != 0 {
543
+ access &^= GENERIC_WRITE
544
+ access |= FILE_APPEND_DATA
545
+ }
546
+ sharemode := uint32(FILE_SHARE_READ | FILE_SHARE_WRITE)
547
+ var sa *SecurityAttributes
548
+ if mode&O_CLOEXEC == 0 {
549
+ sa = makeInheritSa()
550
+ }
551
+ var createmode uint32
552
+ switch {
553
+ case mode&(O_CREAT|O_EXCL) == (O_CREAT | O_EXCL):
554
+ createmode = CREATE_NEW
555
+ case mode&(O_CREAT|O_TRUNC) == (O_CREAT | O_TRUNC):
556
+ createmode = CREATE_ALWAYS
557
+ case mode&O_CREAT == O_CREAT:
558
+ createmode = OPEN_ALWAYS
559
+ case mode&O_TRUNC == O_TRUNC:
560
+ createmode = TRUNCATE_EXISTING
561
+ default:
562
+ createmode = OPEN_EXISTING
563
+ }
564
+ var attrs uint32 = FILE_ATTRIBUTE_NORMAL
565
+ if perm&S_IWRITE == 0 {
566
+ attrs = FILE_ATTRIBUTE_READONLY
567
+ }
568
+ h, e := CreateFile(pathp, access, sharemode, sa, createmode, attrs, 0)
569
+ return h, e
570
+ }
571
+
572
+ func Read(fd Handle, p []byte) (n int, err error) {
573
+ var done uint32
574
+ e := ReadFile(fd, p, &done, nil)
575
+ if e != nil {
576
+ if e == ERROR_BROKEN_PIPE {
577
+ // NOTE(brainman): work around ERROR_BROKEN_PIPE is returned on reading EOF from stdin
578
+ return 0, nil
579
+ }
580
+ return 0, e
581
+ }
582
+ return int(done), nil
583
+ }
584
+
585
+ func Write(fd Handle, p []byte) (n int, err error) {
586
+ if raceenabled {
587
+ raceReleaseMerge(unsafe.Pointer(&ioSync))
588
+ }
589
+ var done uint32
590
+ e := WriteFile(fd, p, &done, nil)
591
+ if e != nil {
592
+ return 0, e
593
+ }
594
+ return int(done), nil
595
+ }
596
+
597
+ func ReadFile(fd Handle, p []byte, done *uint32, overlapped *Overlapped) error {
598
+ err := readFile(fd, p, done, overlapped)
599
+ if raceenabled {
600
+ if *done > 0 {
601
+ raceWriteRange(unsafe.Pointer(&p[0]), int(*done))
602
+ }
603
+ raceAcquire(unsafe.Pointer(&ioSync))
604
+ }
605
+ return err
606
+ }
607
+
608
+ func WriteFile(fd Handle, p []byte, done *uint32, overlapped *Overlapped) error {
609
+ if raceenabled {
610
+ raceReleaseMerge(unsafe.Pointer(&ioSync))
611
+ }
612
+ err := writeFile(fd, p, done, overlapped)
613
+ if raceenabled && *done > 0 {
614
+ raceReadRange(unsafe.Pointer(&p[0]), int(*done))
615
+ }
616
+ return err
617
+ }
618
+
619
+ var ioSync int64
620
+
621
+ func Seek(fd Handle, offset int64, whence int) (newoffset int64, err error) {
622
+ var w uint32
623
+ switch whence {
624
+ case 0:
625
+ w = FILE_BEGIN
626
+ case 1:
627
+ w = FILE_CURRENT
628
+ case 2:
629
+ w = FILE_END
630
+ }
631
+ hi := int32(offset >> 32)
632
+ lo := int32(offset)
633
+ // use GetFileType to check pipe, pipe can't do seek
634
+ ft, _ := GetFileType(fd)
635
+ if ft == FILE_TYPE_PIPE {
636
+ return 0, syscall.EPIPE
637
+ }
638
+ rlo, e := SetFilePointer(fd, lo, &hi, w)
639
+ if e != nil {
640
+ return 0, e
641
+ }
642
+ return int64(hi)<<32 + int64(rlo), nil
643
+ }
644
+
645
+ func Close(fd Handle) (err error) {
646
+ return CloseHandle(fd)
647
+ }
648
+
649
+ var (
650
+ Stdin = getStdHandle(STD_INPUT_HANDLE)
651
+ Stdout = getStdHandle(STD_OUTPUT_HANDLE)
652
+ Stderr = getStdHandle(STD_ERROR_HANDLE)
653
+ )
654
+
655
+ func getStdHandle(stdhandle uint32) (fd Handle) {
656
+ r, _ := GetStdHandle(stdhandle)
657
+ return r
658
+ }
659
+
660
+ const ImplementsGetwd = true
661
+
662
+ func Getwd() (wd string, err error) {
663
+ b := make([]uint16, 300)
664
+ n, e := GetCurrentDirectory(uint32(len(b)), &b[0])
665
+ if e != nil {
666
+ return "", e
667
+ }
668
+ return string(utf16.Decode(b[0:n])), nil
669
+ }
670
+
671
+ func Chdir(path string) (err error) {
672
+ pathp, err := UTF16PtrFromString(path)
673
+ if err != nil {
674
+ return err
675
+ }
676
+ return SetCurrentDirectory(pathp)
677
+ }
678
+
679
+ func Mkdir(path string, mode uint32) (err error) {
680
+ pathp, err := UTF16PtrFromString(path)
681
+ if err != nil {
682
+ return err
683
+ }
684
+ return CreateDirectory(pathp, nil)
685
+ }
686
+
687
+ func Rmdir(path string) (err error) {
688
+ pathp, err := UTF16PtrFromString(path)
689
+ if err != nil {
690
+ return err
691
+ }
692
+ return RemoveDirectory(pathp)
693
+ }
694
+
695
+ func Unlink(path string) (err error) {
696
+ pathp, err := UTF16PtrFromString(path)
697
+ if err != nil {
698
+ return err
699
+ }
700
+ return DeleteFile(pathp)
701
+ }
702
+
703
+ func Rename(oldpath, newpath string) (err error) {
704
+ from, err := UTF16PtrFromString(oldpath)
705
+ if err != nil {
706
+ return err
707
+ }
708
+ to, err := UTF16PtrFromString(newpath)
709
+ if err != nil {
710
+ return err
711
+ }
712
+ return MoveFileEx(from, to, MOVEFILE_REPLACE_EXISTING)
713
+ }
714
+
715
+ func ComputerName() (name string, err error) {
716
+ var n uint32 = MAX_COMPUTERNAME_LENGTH + 1
717
+ b := make([]uint16, n)
718
+ e := GetComputerName(&b[0], &n)
719
+ if e != nil {
720
+ return "", e
721
+ }
722
+ return string(utf16.Decode(b[0:n])), nil
723
+ }
724
+
725
+ func DurationSinceBoot() time.Duration {
726
+ return time.Duration(getTickCount64()) * time.Millisecond
727
+ }
728
+
729
+ func Ftruncate(fd Handle, length int64) (err error) {
730
+ type _FILE_END_OF_FILE_INFO struct {
731
+ EndOfFile int64
732
+ }
733
+ var info _FILE_END_OF_FILE_INFO
734
+ info.EndOfFile = length
735
+ return SetFileInformationByHandle(fd, FileEndOfFileInfo, (*byte)(unsafe.Pointer(&info)), uint32(unsafe.Sizeof(info)))
736
+ }
737
+
738
+ func Gettimeofday(tv *Timeval) (err error) {
739
+ var ft Filetime
740
+ GetSystemTimeAsFileTime(&ft)
741
+ *tv = NsecToTimeval(ft.Nanoseconds())
742
+ return nil
743
+ }
744
+
745
+ func Pipe(p []Handle) (err error) {
746
+ if len(p) != 2 {
747
+ return syscall.EINVAL
748
+ }
749
+ var r, w Handle
750
+ e := CreatePipe(&r, &w, makeInheritSa(), 0)
751
+ if e != nil {
752
+ return e
753
+ }
754
+ p[0] = r
755
+ p[1] = w
756
+ return nil
757
+ }
758
+
759
+ func Utimes(path string, tv []Timeval) (err error) {
760
+ if len(tv) != 2 {
761
+ return syscall.EINVAL
762
+ }
763
+ pathp, e := UTF16PtrFromString(path)
764
+ if e != nil {
765
+ return e
766
+ }
767
+ h, e := CreateFile(pathp,
768
+ FILE_WRITE_ATTRIBUTES, FILE_SHARE_WRITE, nil,
769
+ OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0)
770
+ if e != nil {
771
+ return e
772
+ }
773
+ defer CloseHandle(h)
774
+ a := NsecToFiletime(tv[0].Nanoseconds())
775
+ w := NsecToFiletime(tv[1].Nanoseconds())
776
+ return SetFileTime(h, nil, &a, &w)
777
+ }
778
+
779
+ func UtimesNano(path string, ts []Timespec) (err error) {
780
+ if len(ts) != 2 {
781
+ return syscall.EINVAL
782
+ }
783
+ pathp, e := UTF16PtrFromString(path)
784
+ if e != nil {
785
+ return e
786
+ }
787
+ h, e := CreateFile(pathp,
788
+ FILE_WRITE_ATTRIBUTES, FILE_SHARE_WRITE, nil,
789
+ OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0)
790
+ if e != nil {
791
+ return e
792
+ }
793
+ defer CloseHandle(h)
794
+ a := NsecToFiletime(TimespecToNsec(ts[0]))
795
+ w := NsecToFiletime(TimespecToNsec(ts[1]))
796
+ return SetFileTime(h, nil, &a, &w)
797
+ }
798
+
799
+ func Fsync(fd Handle) (err error) {
800
+ return FlushFileBuffers(fd)
801
+ }
802
+
803
+ func Chmod(path string, mode uint32) (err error) {
804
+ p, e := UTF16PtrFromString(path)
805
+ if e != nil {
806
+ return e
807
+ }
808
+ attrs, e := GetFileAttributes(p)
809
+ if e != nil {
810
+ return e
811
+ }
812
+ if mode&S_IWRITE != 0 {
813
+ attrs &^= FILE_ATTRIBUTE_READONLY
814
+ } else {
815
+ attrs |= FILE_ATTRIBUTE_READONLY
816
+ }
817
+ return SetFileAttributes(p, attrs)
818
+ }
819
+
820
+ func LoadGetSystemTimePreciseAsFileTime() error {
821
+ return procGetSystemTimePreciseAsFileTime.Find()
822
+ }
823
+
824
+ func LoadCancelIoEx() error {
825
+ return procCancelIoEx.Find()
826
+ }
827
+
828
+ func LoadSetFileCompletionNotificationModes() error {
829
+ return procSetFileCompletionNotificationModes.Find()
830
+ }
831
+
832
+ func WaitForMultipleObjects(handles []Handle, waitAll bool, waitMilliseconds uint32) (event uint32, err error) {
833
+ // Every other win32 array API takes arguments as "pointer, count", except for this function. So we
834
+ // can't declare it as a usual [] type, because mksyscall will use the opposite order. We therefore
835
+ // trivially stub this ourselves.
836
+
837
+ var handlePtr *Handle
838
+ if len(handles) > 0 {
839
+ handlePtr = &handles[0]
840
+ }
841
+ return waitForMultipleObjects(uint32(len(handles)), uintptr(unsafe.Pointer(handlePtr)), waitAll, waitMilliseconds)
842
+ }
843
+
844
+ // net api calls
845
+
846
+ const socket_error = uintptr(^uint32(0))
847
+
848
+ //sys WSAStartup(verreq uint32, data *WSAData) (sockerr error) = ws2_32.WSAStartup
849
+ //sys WSACleanup() (err error) [failretval==socket_error] = ws2_32.WSACleanup
850
+ //sys WSAIoctl(s Handle, iocc uint32, inbuf *byte, cbif uint32, outbuf *byte, cbob uint32, cbbr *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) [failretval==socket_error] = ws2_32.WSAIoctl
851
+ //sys WSALookupServiceBegin(querySet *WSAQUERYSET, flags uint32, handle *Handle) (err error) [failretval==socket_error] = ws2_32.WSALookupServiceBeginW
852
+ //sys WSALookupServiceNext(handle Handle, flags uint32, size *int32, querySet *WSAQUERYSET) (err error) [failretval==socket_error] = ws2_32.WSALookupServiceNextW
853
+ //sys WSALookupServiceEnd(handle Handle) (err error) [failretval==socket_error] = ws2_32.WSALookupServiceEnd
854
+ //sys socket(af int32, typ int32, protocol int32) (handle Handle, err error) [failretval==InvalidHandle] = ws2_32.socket
855
+ //sys sendto(s Handle, buf []byte, flags int32, to unsafe.Pointer, tolen int32) (err error) [failretval==socket_error] = ws2_32.sendto
856
+ //sys recvfrom(s Handle, buf []byte, flags int32, from *RawSockaddrAny, fromlen *int32) (n int32, err error) [failretval==-1] = ws2_32.recvfrom
857
+ //sys Setsockopt(s Handle, level int32, optname int32, optval *byte, optlen int32) (err error) [failretval==socket_error] = ws2_32.setsockopt
858
+ //sys Getsockopt(s Handle, level int32, optname int32, optval *byte, optlen *int32) (err error) [failretval==socket_error] = ws2_32.getsockopt
859
+ //sys bind(s Handle, name unsafe.Pointer, namelen int32) (err error) [failretval==socket_error] = ws2_32.bind
860
+ //sys connect(s Handle, name unsafe.Pointer, namelen int32) (err error) [failretval==socket_error] = ws2_32.connect
861
+ //sys getsockname(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) [failretval==socket_error] = ws2_32.getsockname
862
+ //sys getpeername(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) [failretval==socket_error] = ws2_32.getpeername
863
+ //sys listen(s Handle, backlog int32) (err error) [failretval==socket_error] = ws2_32.listen
864
+ //sys shutdown(s Handle, how int32) (err error) [failretval==socket_error] = ws2_32.shutdown
865
+ //sys Closesocket(s Handle) (err error) [failretval==socket_error] = ws2_32.closesocket
866
+ //sys AcceptEx(ls Handle, as Handle, buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, recvd *uint32, overlapped *Overlapped) (err error) = mswsock.AcceptEx
867
+ //sys GetAcceptExSockaddrs(buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, lrsa **RawSockaddrAny, lrsalen *int32, rrsa **RawSockaddrAny, rrsalen *int32) = mswsock.GetAcceptExSockaddrs
868
+ //sys WSARecv(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSARecv
869
+ //sys WSASend(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSASend
870
+ //sys WSARecvFrom(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, from *RawSockaddrAny, fromlen *int32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSARecvFrom
871
+ //sys WSASendTo(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to *RawSockaddrAny, tolen int32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSASendTo
872
+ //sys WSASocket(af int32, typ int32, protocol int32, protoInfo *WSAProtocolInfo, group uint32, flags uint32) (handle Handle, err error) [failretval==InvalidHandle] = ws2_32.WSASocketW
873
+ //sys WSADuplicateSocket(s Handle, processID uint32, info *WSAProtocolInfo) (err error) [failretval!=0] = ws2_32.WSADuplicateSocketW
874
+ //sys GetHostByName(name string) (h *Hostent, err error) [failretval==nil] = ws2_32.gethostbyname
875
+ //sys GetServByName(name string, proto string) (s *Servent, err error) [failretval==nil] = ws2_32.getservbyname
876
+ //sys Ntohs(netshort uint16) (u uint16) = ws2_32.ntohs
877
+ //sys GetProtoByName(name string) (p *Protoent, err error) [failretval==nil] = ws2_32.getprotobyname
878
+ //sys DnsQuery(name string, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) = dnsapi.DnsQuery_W
879
+ //sys DnsRecordListFree(rl *DNSRecord, freetype uint32) = dnsapi.DnsRecordListFree
880
+ //sys DnsNameCompare(name1 *uint16, name2 *uint16) (same bool) = dnsapi.DnsNameCompare_W
881
+ //sys GetAddrInfoW(nodename *uint16, servicename *uint16, hints *AddrinfoW, result **AddrinfoW) (sockerr error) = ws2_32.GetAddrInfoW
882
+ //sys FreeAddrInfoW(addrinfo *AddrinfoW) = ws2_32.FreeAddrInfoW
883
+ //sys GetIfEntry(pIfRow *MibIfRow) (errcode error) = iphlpapi.GetIfEntry
884
+ //sys GetAdaptersInfo(ai *IpAdapterInfo, ol *uint32) (errcode error) = iphlpapi.GetAdaptersInfo
885
+ //sys SetFileCompletionNotificationModes(handle Handle, flags uint8) (err error) = kernel32.SetFileCompletionNotificationModes
886
+ //sys WSAEnumProtocols(protocols *int32, protocolBuffer *WSAProtocolInfo, bufferLength *uint32) (n int32, err error) [failretval==-1] = ws2_32.WSAEnumProtocolsW
887
+ //sys WSAGetOverlappedResult(h Handle, o *Overlapped, bytes *uint32, wait bool, flags *uint32) (err error) = ws2_32.WSAGetOverlappedResult
888
+ //sys GetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapterAddresses *IpAdapterAddresses, sizePointer *uint32) (errcode error) = iphlpapi.GetAdaptersAddresses
889
+ //sys GetACP() (acp uint32) = kernel32.GetACP
890
+ //sys MultiByteToWideChar(codePage uint32, dwFlags uint32, str *byte, nstr int32, wchar *uint16, nwchar int32) (nwrite int32, err error) = kernel32.MultiByteToWideChar
891
+ //sys getBestInterfaceEx(sockaddr unsafe.Pointer, pdwBestIfIndex *uint32) (errcode error) = iphlpapi.GetBestInterfaceEx
892
+ //sys GetIfEntry2Ex(level uint32, row *MibIfRow2) (errcode error) = iphlpapi.GetIfEntry2Ex
893
+ //sys GetUnicastIpAddressEntry(row *MibUnicastIpAddressRow) (errcode error) = iphlpapi.GetUnicastIpAddressEntry
894
+ //sys NotifyIpInterfaceChange(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) = iphlpapi.NotifyIpInterfaceChange
895
+ //sys NotifyUnicastIpAddressChange(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) = iphlpapi.NotifyUnicastIpAddressChange
896
+ //sys CancelMibChangeNotify2(notificationHandle Handle) (errcode error) = iphlpapi.CancelMibChangeNotify2
897
+
898
+ // For testing: clients can set this flag to force
899
+ // creation of IPv6 sockets to return EAFNOSUPPORT.
900
+ var SocketDisableIPv6 bool
901
+
902
+ type RawSockaddrInet4 struct {
903
+ Family uint16
904
+ Port uint16
905
+ Addr [4]byte /* in_addr */
906
+ Zero [8]uint8
907
+ }
908
+
909
+ type RawSockaddrInet6 struct {
910
+ Family uint16
911
+ Port uint16
912
+ Flowinfo uint32
913
+ Addr [16]byte /* in6_addr */
914
+ Scope_id uint32
915
+ }
916
+
917
+ type RawSockaddr struct {
918
+ Family uint16
919
+ Data [14]int8
920
+ }
921
+
922
+ type RawSockaddrAny struct {
923
+ Addr RawSockaddr
924
+ Pad [100]int8
925
+ }
926
+
927
+ type Sockaddr interface {
928
+ sockaddr() (ptr unsafe.Pointer, len int32, err error) // lowercase; only we can define Sockaddrs
929
+ }
930
+
931
+ type SockaddrInet4 struct {
932
+ Port int
933
+ Addr [4]byte
934
+ raw RawSockaddrInet4
935
+ }
936
+
937
+ func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, int32, error) {
938
+ if sa.Port < 0 || sa.Port > 0xFFFF {
939
+ return nil, 0, syscall.EINVAL
940
+ }
941
+ sa.raw.Family = AF_INET
942
+ p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))
943
+ p[0] = byte(sa.Port >> 8)
944
+ p[1] = byte(sa.Port)
945
+ sa.raw.Addr = sa.Addr
946
+ return unsafe.Pointer(&sa.raw), int32(unsafe.Sizeof(sa.raw)), nil
947
+ }
948
+
949
+ type SockaddrInet6 struct {
950
+ Port int
951
+ ZoneId uint32
952
+ Addr [16]byte
953
+ raw RawSockaddrInet6
954
+ }
955
+
956
+ func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, int32, error) {
957
+ if sa.Port < 0 || sa.Port > 0xFFFF {
958
+ return nil, 0, syscall.EINVAL
959
+ }
960
+ sa.raw.Family = AF_INET6
961
+ p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))
962
+ p[0] = byte(sa.Port >> 8)
963
+ p[1] = byte(sa.Port)
964
+ sa.raw.Scope_id = sa.ZoneId
965
+ sa.raw.Addr = sa.Addr
966
+ return unsafe.Pointer(&sa.raw), int32(unsafe.Sizeof(sa.raw)), nil
967
+ }
968
+
969
+ type RawSockaddrUnix struct {
970
+ Family uint16
971
+ Path [UNIX_PATH_MAX]int8
972
+ }
973
+
974
+ type SockaddrUnix struct {
975
+ Name string
976
+ raw RawSockaddrUnix
977
+ }
978
+
979
+ func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, int32, error) {
980
+ name := sa.Name
981
+ n := len(name)
982
+ if n > len(sa.raw.Path) {
983
+ return nil, 0, syscall.EINVAL
984
+ }
985
+ if n == len(sa.raw.Path) && name[0] != '@' {
986
+ return nil, 0, syscall.EINVAL
987
+ }
988
+ sa.raw.Family = AF_UNIX
989
+ for i := 0; i < n; i++ {
990
+ sa.raw.Path[i] = int8(name[i])
991
+ }
992
+ // length is family (uint16), name, NUL.
993
+ sl := int32(2)
994
+ if n > 0 {
995
+ sl += int32(n) + 1
996
+ }
997
+ if sa.raw.Path[0] == '@' || (sa.raw.Path[0] == 0 && sl > 3) {
998
+ // Check sl > 3 so we don't change unnamed socket behavior.
999
+ sa.raw.Path[0] = 0
1000
+ // Don't count trailing NUL for abstract address.
1001
+ sl--
1002
+ }
1003
+
1004
+ return unsafe.Pointer(&sa.raw), sl, nil
1005
+ }
1006
+
1007
+ type RawSockaddrBth struct {
1008
+ AddressFamily [2]byte
1009
+ BtAddr [8]byte
1010
+ ServiceClassId [16]byte
1011
+ Port [4]byte
1012
+ }
1013
+
1014
+ type SockaddrBth struct {
1015
+ BtAddr uint64
1016
+ ServiceClassId GUID
1017
+ Port uint32
1018
+
1019
+ raw RawSockaddrBth
1020
+ }
1021
+
1022
+ func (sa *SockaddrBth) sockaddr() (unsafe.Pointer, int32, error) {
1023
+ family := AF_BTH
1024
+ sa.raw = RawSockaddrBth{
1025
+ AddressFamily: *(*[2]byte)(unsafe.Pointer(&family)),
1026
+ BtAddr: *(*[8]byte)(unsafe.Pointer(&sa.BtAddr)),
1027
+ Port: *(*[4]byte)(unsafe.Pointer(&sa.Port)),
1028
+ ServiceClassId: *(*[16]byte)(unsafe.Pointer(&sa.ServiceClassId)),
1029
+ }
1030
+ return unsafe.Pointer(&sa.raw), int32(unsafe.Sizeof(sa.raw)), nil
1031
+ }
1032
+
1033
+ func (rsa *RawSockaddrAny) Sockaddr() (Sockaddr, error) {
1034
+ switch rsa.Addr.Family {
1035
+ case AF_UNIX:
1036
+ pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa))
1037
+ sa := new(SockaddrUnix)
1038
+ if pp.Path[0] == 0 {
1039
+ // "Abstract" Unix domain socket.
1040
+ // Rewrite leading NUL as @ for textual display.
1041
+ // (This is the standard convention.)
1042
+ // Not friendly to overwrite in place,
1043
+ // but the callers below don't care.
1044
+ pp.Path[0] = '@'
1045
+ }
1046
+
1047
+ // Assume path ends at NUL.
1048
+ // This is not technically the Linux semantics for
1049
+ // abstract Unix domain sockets--they are supposed
1050
+ // to be uninterpreted fixed-size binary blobs--but
1051
+ // everyone uses this convention.
1052
+ n := 0
1053
+ for n < len(pp.Path) && pp.Path[n] != 0 {
1054
+ n++
1055
+ }
1056
+ sa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n))
1057
+ return sa, nil
1058
+
1059
+ case AF_INET:
1060
+ pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa))
1061
+ sa := new(SockaddrInet4)
1062
+ p := (*[2]byte)(unsafe.Pointer(&pp.Port))
1063
+ sa.Port = int(p[0])<<8 + int(p[1])
1064
+ sa.Addr = pp.Addr
1065
+ return sa, nil
1066
+
1067
+ case AF_INET6:
1068
+ pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa))
1069
+ sa := new(SockaddrInet6)
1070
+ p := (*[2]byte)(unsafe.Pointer(&pp.Port))
1071
+ sa.Port = int(p[0])<<8 + int(p[1])
1072
+ sa.ZoneId = pp.Scope_id
1073
+ sa.Addr = pp.Addr
1074
+ return sa, nil
1075
+ }
1076
+ return nil, syscall.EAFNOSUPPORT
1077
+ }
1078
+
1079
+ func Socket(domain, typ, proto int) (fd Handle, err error) {
1080
+ if domain == AF_INET6 && SocketDisableIPv6 {
1081
+ return InvalidHandle, syscall.EAFNOSUPPORT
1082
+ }
1083
+ return socket(int32(domain), int32(typ), int32(proto))
1084
+ }
1085
+
1086
+ func SetsockoptInt(fd Handle, level, opt int, value int) (err error) {
1087
+ v := int32(value)
1088
+ return Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&v)), int32(unsafe.Sizeof(v)))
1089
+ }
1090
+
1091
+ func Bind(fd Handle, sa Sockaddr) (err error) {
1092
+ ptr, n, err := sa.sockaddr()
1093
+ if err != nil {
1094
+ return err
1095
+ }
1096
+ return bind(fd, ptr, n)
1097
+ }
1098
+
1099
+ func Connect(fd Handle, sa Sockaddr) (err error) {
1100
+ ptr, n, err := sa.sockaddr()
1101
+ if err != nil {
1102
+ return err
1103
+ }
1104
+ return connect(fd, ptr, n)
1105
+ }
1106
+
1107
+ func GetBestInterfaceEx(sa Sockaddr, pdwBestIfIndex *uint32) (err error) {
1108
+ ptr, _, err := sa.sockaddr()
1109
+ if err != nil {
1110
+ return err
1111
+ }
1112
+ return getBestInterfaceEx(ptr, pdwBestIfIndex)
1113
+ }
1114
+
1115
+ func Getsockname(fd Handle) (sa Sockaddr, err error) {
1116
+ var rsa RawSockaddrAny
1117
+ l := int32(unsafe.Sizeof(rsa))
1118
+ if err = getsockname(fd, &rsa, &l); err != nil {
1119
+ return
1120
+ }
1121
+ return rsa.Sockaddr()
1122
+ }
1123
+
1124
+ func Getpeername(fd Handle) (sa Sockaddr, err error) {
1125
+ var rsa RawSockaddrAny
1126
+ l := int32(unsafe.Sizeof(rsa))
1127
+ if err = getpeername(fd, &rsa, &l); err != nil {
1128
+ return
1129
+ }
1130
+ return rsa.Sockaddr()
1131
+ }
1132
+
1133
+ func Listen(s Handle, n int) (err error) {
1134
+ return listen(s, int32(n))
1135
+ }
1136
+
1137
+ func Shutdown(fd Handle, how int) (err error) {
1138
+ return shutdown(fd, int32(how))
1139
+ }
1140
+
1141
+ func WSASendto(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to Sockaddr, overlapped *Overlapped, croutine *byte) (err error) {
1142
+ var rsa unsafe.Pointer
1143
+ var l int32
1144
+ if to != nil {
1145
+ rsa, l, err = to.sockaddr()
1146
+ if err != nil {
1147
+ return err
1148
+ }
1149
+ }
1150
+ return WSASendTo(s, bufs, bufcnt, sent, flags, (*RawSockaddrAny)(unsafe.Pointer(rsa)), l, overlapped, croutine)
1151
+ }
1152
+
1153
+ func LoadGetAddrInfo() error {
1154
+ return procGetAddrInfoW.Find()
1155
+ }
1156
+
1157
+ var connectExFunc struct {
1158
+ once sync.Once
1159
+ addr uintptr
1160
+ err error
1161
+ }
1162
+
1163
+ func LoadConnectEx() error {
1164
+ connectExFunc.once.Do(func() {
1165
+ var s Handle
1166
+ s, connectExFunc.err = Socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)
1167
+ if connectExFunc.err != nil {
1168
+ return
1169
+ }
1170
+ defer CloseHandle(s)
1171
+ var n uint32
1172
+ connectExFunc.err = WSAIoctl(s,
1173
+ SIO_GET_EXTENSION_FUNCTION_POINTER,
1174
+ (*byte)(unsafe.Pointer(&WSAID_CONNECTEX)),
1175
+ uint32(unsafe.Sizeof(WSAID_CONNECTEX)),
1176
+ (*byte)(unsafe.Pointer(&connectExFunc.addr)),
1177
+ uint32(unsafe.Sizeof(connectExFunc.addr)),
1178
+ &n, nil, 0)
1179
+ })
1180
+ return connectExFunc.err
1181
+ }
1182
+
1183
+ func connectEx(s Handle, name unsafe.Pointer, namelen int32, sendBuf *byte, sendDataLen uint32, bytesSent *uint32, overlapped *Overlapped) (err error) {
1184
+ r1, _, e1 := syscall.Syscall9(connectExFunc.addr, 7, uintptr(s), uintptr(name), uintptr(namelen), uintptr(unsafe.Pointer(sendBuf)), uintptr(sendDataLen), uintptr(unsafe.Pointer(bytesSent)), uintptr(unsafe.Pointer(overlapped)), 0, 0)
1185
+ if r1 == 0 {
1186
+ if e1 != 0 {
1187
+ err = error(e1)
1188
+ } else {
1189
+ err = syscall.EINVAL
1190
+ }
1191
+ }
1192
+ return
1193
+ }
1194
+
1195
+ func ConnectEx(fd Handle, sa Sockaddr, sendBuf *byte, sendDataLen uint32, bytesSent *uint32, overlapped *Overlapped) error {
1196
+ err := LoadConnectEx()
1197
+ if err != nil {
1198
+ return errorspkg.New("failed to find ConnectEx: " + err.Error())
1199
+ }
1200
+ ptr, n, err := sa.sockaddr()
1201
+ if err != nil {
1202
+ return err
1203
+ }
1204
+ return connectEx(fd, ptr, n, sendBuf, sendDataLen, bytesSent, overlapped)
1205
+ }
1206
+
1207
+ var sendRecvMsgFunc struct {
1208
+ once sync.Once
1209
+ sendAddr uintptr
1210
+ recvAddr uintptr
1211
+ err error
1212
+ }
1213
+
1214
+ func loadWSASendRecvMsg() error {
1215
+ sendRecvMsgFunc.once.Do(func() {
1216
+ var s Handle
1217
+ s, sendRecvMsgFunc.err = Socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)
1218
+ if sendRecvMsgFunc.err != nil {
1219
+ return
1220
+ }
1221
+ defer CloseHandle(s)
1222
+ var n uint32
1223
+ sendRecvMsgFunc.err = WSAIoctl(s,
1224
+ SIO_GET_EXTENSION_FUNCTION_POINTER,
1225
+ (*byte)(unsafe.Pointer(&WSAID_WSARECVMSG)),
1226
+ uint32(unsafe.Sizeof(WSAID_WSARECVMSG)),
1227
+ (*byte)(unsafe.Pointer(&sendRecvMsgFunc.recvAddr)),
1228
+ uint32(unsafe.Sizeof(sendRecvMsgFunc.recvAddr)),
1229
+ &n, nil, 0)
1230
+ if sendRecvMsgFunc.err != nil {
1231
+ return
1232
+ }
1233
+ sendRecvMsgFunc.err = WSAIoctl(s,
1234
+ SIO_GET_EXTENSION_FUNCTION_POINTER,
1235
+ (*byte)(unsafe.Pointer(&WSAID_WSASENDMSG)),
1236
+ uint32(unsafe.Sizeof(WSAID_WSASENDMSG)),
1237
+ (*byte)(unsafe.Pointer(&sendRecvMsgFunc.sendAddr)),
1238
+ uint32(unsafe.Sizeof(sendRecvMsgFunc.sendAddr)),
1239
+ &n, nil, 0)
1240
+ })
1241
+ return sendRecvMsgFunc.err
1242
+ }
1243
+
1244
+ func WSASendMsg(fd Handle, msg *WSAMsg, flags uint32, bytesSent *uint32, overlapped *Overlapped, croutine *byte) error {
1245
+ err := loadWSASendRecvMsg()
1246
+ if err != nil {
1247
+ return err
1248
+ }
1249
+ r1, _, e1 := syscall.Syscall6(sendRecvMsgFunc.sendAddr, 6, uintptr(fd), uintptr(unsafe.Pointer(msg)), uintptr(flags), uintptr(unsafe.Pointer(bytesSent)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)))
1250
+ if r1 == socket_error {
1251
+ err = errnoErr(e1)
1252
+ }
1253
+ return err
1254
+ }
1255
+
1256
+ func WSARecvMsg(fd Handle, msg *WSAMsg, bytesReceived *uint32, overlapped *Overlapped, croutine *byte) error {
1257
+ err := loadWSASendRecvMsg()
1258
+ if err != nil {
1259
+ return err
1260
+ }
1261
+ r1, _, e1 := syscall.Syscall6(sendRecvMsgFunc.recvAddr, 5, uintptr(fd), uintptr(unsafe.Pointer(msg)), uintptr(unsafe.Pointer(bytesReceived)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0)
1262
+ if r1 == socket_error {
1263
+ err = errnoErr(e1)
1264
+ }
1265
+ return err
1266
+ }
1267
+
1268
+ // Invented structures to support what package os expects.
1269
+ type Rusage struct {
1270
+ CreationTime Filetime
1271
+ ExitTime Filetime
1272
+ KernelTime Filetime
1273
+ UserTime Filetime
1274
+ }
1275
+
1276
+ type WaitStatus struct {
1277
+ ExitCode uint32
1278
+ }
1279
+
1280
+ func (w WaitStatus) Exited() bool { return true }
1281
+
1282
+ func (w WaitStatus) ExitStatus() int { return int(w.ExitCode) }
1283
+
1284
+ func (w WaitStatus) Signal() Signal { return -1 }
1285
+
1286
+ func (w WaitStatus) CoreDump() bool { return false }
1287
+
1288
+ func (w WaitStatus) Stopped() bool { return false }
1289
+
1290
+ func (w WaitStatus) Continued() bool { return false }
1291
+
1292
+ func (w WaitStatus) StopSignal() Signal { return -1 }
1293
+
1294
+ func (w WaitStatus) Signaled() bool { return false }
1295
+
1296
+ func (w WaitStatus) TrapCause() int { return -1 }
1297
+
1298
+ // Timespec is an invented structure on Windows, but here for
1299
+ // consistency with the corresponding package for other operating systems.
1300
+ type Timespec struct {
1301
+ Sec int64
1302
+ Nsec int64
1303
+ }
1304
+
1305
+ func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
1306
+
1307
+ func NsecToTimespec(nsec int64) (ts Timespec) {
1308
+ ts.Sec = nsec / 1e9
1309
+ ts.Nsec = nsec % 1e9
1310
+ return
1311
+ }
1312
+
1313
+ // TODO(brainman): fix all needed for net
1314
+
1315
+ func Accept(fd Handle) (nfd Handle, sa Sockaddr, err error) { return 0, nil, syscall.EWINDOWS }
1316
+
1317
+ func Recvfrom(fd Handle, p []byte, flags int) (n int, from Sockaddr, err error) {
1318
+ var rsa RawSockaddrAny
1319
+ l := int32(unsafe.Sizeof(rsa))
1320
+ n32, err := recvfrom(fd, p, int32(flags), &rsa, &l)
1321
+ n = int(n32)
1322
+ if err != nil {
1323
+ return
1324
+ }
1325
+ from, err = rsa.Sockaddr()
1326
+ return
1327
+ }
1328
+
1329
+ func Sendto(fd Handle, p []byte, flags int, to Sockaddr) (err error) {
1330
+ ptr, l, err := to.sockaddr()
1331
+ if err != nil {
1332
+ return err
1333
+ }
1334
+ return sendto(fd, p, int32(flags), ptr, l)
1335
+ }
1336
+
1337
+ func SetsockoptTimeval(fd Handle, level, opt int, tv *Timeval) (err error) { return syscall.EWINDOWS }
1338
+
1339
+ // The Linger struct is wrong but we only noticed after Go 1.
1340
+ // sysLinger is the real system call structure.
1341
+
1342
+ // BUG(brainman): The definition of Linger is not appropriate for direct use
1343
+ // with Setsockopt and Getsockopt.
1344
+ // Use SetsockoptLinger instead.
1345
+
1346
+ type Linger struct {
1347
+ Onoff int32
1348
+ Linger int32
1349
+ }
1350
+
1351
+ type sysLinger struct {
1352
+ Onoff uint16
1353
+ Linger uint16
1354
+ }
1355
+
1356
+ type IPMreq struct {
1357
+ Multiaddr [4]byte /* in_addr */
1358
+ Interface [4]byte /* in_addr */
1359
+ }
1360
+
1361
+ type IPv6Mreq struct {
1362
+ Multiaddr [16]byte /* in6_addr */
1363
+ Interface uint32
1364
+ }
1365
+
1366
+ func GetsockoptInt(fd Handle, level, opt int) (int, error) {
1367
+ v := int32(0)
1368
+ l := int32(unsafe.Sizeof(v))
1369
+ err := Getsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&v)), &l)
1370
+ return int(v), err
1371
+ }
1372
+
1373
+ func SetsockoptLinger(fd Handle, level, opt int, l *Linger) (err error) {
1374
+ sys := sysLinger{Onoff: uint16(l.Onoff), Linger: uint16(l.Linger)}
1375
+ return Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&sys)), int32(unsafe.Sizeof(sys)))
1376
+ }
1377
+
1378
+ func SetsockoptInet4Addr(fd Handle, level, opt int, value [4]byte) (err error) {
1379
+ return Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&value[0])), 4)
1380
+ }
1381
+
1382
+ func SetsockoptIPMreq(fd Handle, level, opt int, mreq *IPMreq) (err error) {
1383
+ return Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(mreq)), int32(unsafe.Sizeof(*mreq)))
1384
+ }
1385
+
1386
+ func SetsockoptIPv6Mreq(fd Handle, level, opt int, mreq *IPv6Mreq) (err error) {
1387
+ return syscall.EWINDOWS
1388
+ }
1389
+
1390
+ func EnumProcesses(processIds []uint32, bytesReturned *uint32) error {
1391
+ // EnumProcesses syscall expects the size parameter to be in bytes, but the code generated with mksyscall uses
1392
+ // the length of the processIds slice instead. Hence, this wrapper function is added to fix the discrepancy.
1393
+ var p *uint32
1394
+ if len(processIds) > 0 {
1395
+ p = &processIds[0]
1396
+ }
1397
+ size := uint32(len(processIds) * 4)
1398
+ return enumProcesses(p, size, bytesReturned)
1399
+ }
1400
+
1401
+ func Getpid() (pid int) { return int(GetCurrentProcessId()) }
1402
+
1403
+ func FindFirstFile(name *uint16, data *Win32finddata) (handle Handle, err error) {
1404
+ // NOTE(rsc): The Win32finddata struct is wrong for the system call:
1405
+ // the two paths are each one uint16 short. Use the correct struct,
1406
+ // a win32finddata1, and then copy the results out.
1407
+ // There is no loss of expressivity here, because the final
1408
+ // uint16, if it is used, is supposed to be a NUL, and Go doesn't need that.
1409
+ // For Go 1.1, we might avoid the allocation of win32finddata1 here
1410
+ // by adding a final Bug [2]uint16 field to the struct and then
1411
+ // adjusting the fields in the result directly.
1412
+ var data1 win32finddata1
1413
+ handle, err = findFirstFile1(name, &data1)
1414
+ if err == nil {
1415
+ copyFindData(data, &data1)
1416
+ }
1417
+ return
1418
+ }
1419
+
1420
+ func FindNextFile(handle Handle, data *Win32finddata) (err error) {
1421
+ var data1 win32finddata1
1422
+ err = findNextFile1(handle, &data1)
1423
+ if err == nil {
1424
+ copyFindData(data, &data1)
1425
+ }
1426
+ return
1427
+ }
1428
+
1429
+ func getProcessEntry(pid int) (*ProcessEntry32, error) {
1430
+ snapshot, err := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)
1431
+ if err != nil {
1432
+ return nil, err
1433
+ }
1434
+ defer CloseHandle(snapshot)
1435
+ var procEntry ProcessEntry32
1436
+ procEntry.Size = uint32(unsafe.Sizeof(procEntry))
1437
+ if err = Process32First(snapshot, &procEntry); err != nil {
1438
+ return nil, err
1439
+ }
1440
+ for {
1441
+ if procEntry.ProcessID == uint32(pid) {
1442
+ return &procEntry, nil
1443
+ }
1444
+ err = Process32Next(snapshot, &procEntry)
1445
+ if err != nil {
1446
+ return nil, err
1447
+ }
1448
+ }
1449
+ }
1450
+
1451
+ func Getppid() (ppid int) {
1452
+ pe, err := getProcessEntry(Getpid())
1453
+ if err != nil {
1454
+ return -1
1455
+ }
1456
+ return int(pe.ParentProcessID)
1457
+ }
1458
+
1459
+ // TODO(brainman): fix all needed for os
1460
+ func Fchdir(fd Handle) (err error) { return syscall.EWINDOWS }
1461
+ func Link(oldpath, newpath string) (err error) { return syscall.EWINDOWS }
1462
+ func Symlink(path, link string) (err error) { return syscall.EWINDOWS }
1463
+
1464
+ func Fchmod(fd Handle, mode uint32) (err error) { return syscall.EWINDOWS }
1465
+ func Chown(path string, uid int, gid int) (err error) { return syscall.EWINDOWS }
1466
+ func Lchown(path string, uid int, gid int) (err error) { return syscall.EWINDOWS }
1467
+ func Fchown(fd Handle, uid int, gid int) (err error) { return syscall.EWINDOWS }
1468
+
1469
+ func Getuid() (uid int) { return -1 }
1470
+ func Geteuid() (euid int) { return -1 }
1471
+ func Getgid() (gid int) { return -1 }
1472
+ func Getegid() (egid int) { return -1 }
1473
+ func Getgroups() (gids []int, err error) { return nil, syscall.EWINDOWS }
1474
+
1475
+ type Signal int
1476
+
1477
+ func (s Signal) Signal() {}
1478
+
1479
+ func (s Signal) String() string {
1480
+ if 0 <= s && int(s) < len(signals) {
1481
+ str := signals[s]
1482
+ if str != "" {
1483
+ return str
1484
+ }
1485
+ }
1486
+ return "signal " + itoa(int(s))
1487
+ }
1488
+
1489
+ func LoadCreateSymbolicLink() error {
1490
+ return procCreateSymbolicLinkW.Find()
1491
+ }
1492
+
1493
+ // Readlink returns the destination of the named symbolic link.
1494
+ func Readlink(path string, buf []byte) (n int, err error) {
1495
+ fd, err := CreateFile(StringToUTF16Ptr(path), GENERIC_READ, 0, nil, OPEN_EXISTING,
1496
+ FILE_FLAG_OPEN_REPARSE_POINT|FILE_FLAG_BACKUP_SEMANTICS, 0)
1497
+ if err != nil {
1498
+ return -1, err
1499
+ }
1500
+ defer CloseHandle(fd)
1501
+
1502
+ rdbbuf := make([]byte, MAXIMUM_REPARSE_DATA_BUFFER_SIZE)
1503
+ var bytesReturned uint32
1504
+ err = DeviceIoControl(fd, FSCTL_GET_REPARSE_POINT, nil, 0, &rdbbuf[0], uint32(len(rdbbuf)), &bytesReturned, nil)
1505
+ if err != nil {
1506
+ return -1, err
1507
+ }
1508
+
1509
+ rdb := (*reparseDataBuffer)(unsafe.Pointer(&rdbbuf[0]))
1510
+ var s string
1511
+ switch rdb.ReparseTag {
1512
+ case IO_REPARSE_TAG_SYMLINK:
1513
+ data := (*symbolicLinkReparseBuffer)(unsafe.Pointer(&rdb.reparseBuffer))
1514
+ p := (*[0xffff]uint16)(unsafe.Pointer(&data.PathBuffer[0]))
1515
+ s = UTF16ToString(p[data.PrintNameOffset/2 : (data.PrintNameLength-data.PrintNameOffset)/2])
1516
+ case IO_REPARSE_TAG_MOUNT_POINT:
1517
+ data := (*mountPointReparseBuffer)(unsafe.Pointer(&rdb.reparseBuffer))
1518
+ p := (*[0xffff]uint16)(unsafe.Pointer(&data.PathBuffer[0]))
1519
+ s = UTF16ToString(p[data.PrintNameOffset/2 : (data.PrintNameLength-data.PrintNameOffset)/2])
1520
+ default:
1521
+ // the path is not a symlink or junction but another type of reparse
1522
+ // point
1523
+ return -1, syscall.ENOENT
1524
+ }
1525
+ n = copy(buf, []byte(s))
1526
+
1527
+ return n, nil
1528
+ }
1529
+
1530
+ // GUIDFromString parses a string in the form of
1531
+ // "{XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}" into a GUID.
1532
+ func GUIDFromString(str string) (GUID, error) {
1533
+ guid := GUID{}
1534
+ str16, err := syscall.UTF16PtrFromString(str)
1535
+ if err != nil {
1536
+ return guid, err
1537
+ }
1538
+ err = clsidFromString(str16, &guid)
1539
+ if err != nil {
1540
+ return guid, err
1541
+ }
1542
+ return guid, nil
1543
+ }
1544
+
1545
+ // GenerateGUID creates a new random GUID.
1546
+ func GenerateGUID() (GUID, error) {
1547
+ guid := GUID{}
1548
+ err := coCreateGuid(&guid)
1549
+ if err != nil {
1550
+ return guid, err
1551
+ }
1552
+ return guid, nil
1553
+ }
1554
+
1555
+ // String returns the canonical string form of the GUID,
1556
+ // in the form of "{XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}".
1557
+ func (guid GUID) String() string {
1558
+ var str [100]uint16
1559
+ chars := stringFromGUID2(&guid, &str[0], int32(len(str)))
1560
+ if chars <= 1 {
1561
+ return ""
1562
+ }
1563
+ return string(utf16.Decode(str[:chars-1]))
1564
+ }
1565
+
1566
+ // KnownFolderPath returns a well-known folder path for the current user, specified by one of
1567
+ // the FOLDERID_ constants, and chosen and optionally created based on a KF_ flag.
1568
+ func KnownFolderPath(folderID *KNOWNFOLDERID, flags uint32) (string, error) {
1569
+ return Token(0).KnownFolderPath(folderID, flags)
1570
+ }
1571
+
1572
+ // KnownFolderPath returns a well-known folder path for the user token, specified by one of
1573
+ // the FOLDERID_ constants, and chosen and optionally created based on a KF_ flag.
1574
+ func (t Token) KnownFolderPath(folderID *KNOWNFOLDERID, flags uint32) (string, error) {
1575
+ var p *uint16
1576
+ err := shGetKnownFolderPath(folderID, flags, t, &p)
1577
+ if err != nil {
1578
+ return "", err
1579
+ }
1580
+ defer CoTaskMemFree(unsafe.Pointer(p))
1581
+ return UTF16PtrToString(p), nil
1582
+ }
1583
+
1584
+ // RtlGetVersion returns the version of the underlying operating system, ignoring
1585
+ // manifest semantics but is affected by the application compatibility layer.
1586
+ func RtlGetVersion() *OsVersionInfoEx {
1587
+ info := &OsVersionInfoEx{}
1588
+ info.osVersionInfoSize = uint32(unsafe.Sizeof(*info))
1589
+ // According to documentation, this function always succeeds.
1590
+ // The function doesn't even check the validity of the
1591
+ // osVersionInfoSize member. Disassembling ntdll.dll indicates
1592
+ // that the documentation is indeed correct about that.
1593
+ _ = rtlGetVersion(info)
1594
+ return info
1595
+ }
1596
+
1597
+ // RtlGetNtVersionNumbers returns the version of the underlying operating system,
1598
+ // ignoring manifest semantics and the application compatibility layer.
1599
+ func RtlGetNtVersionNumbers() (majorVersion, minorVersion, buildNumber uint32) {
1600
+ rtlGetNtVersionNumbers(&majorVersion, &minorVersion, &buildNumber)
1601
+ buildNumber &= 0xffff
1602
+ return
1603
+ }
1604
+
1605
+ // GetProcessPreferredUILanguages retrieves the process preferred UI languages.
1606
+ func GetProcessPreferredUILanguages(flags uint32) ([]string, error) {
1607
+ return getUILanguages(flags, getProcessPreferredUILanguages)
1608
+ }
1609
+
1610
+ // GetThreadPreferredUILanguages retrieves the thread preferred UI languages for the current thread.
1611
+ func GetThreadPreferredUILanguages(flags uint32) ([]string, error) {
1612
+ return getUILanguages(flags, getThreadPreferredUILanguages)
1613
+ }
1614
+
1615
+ // GetUserPreferredUILanguages retrieves information about the user preferred UI languages.
1616
+ func GetUserPreferredUILanguages(flags uint32) ([]string, error) {
1617
+ return getUILanguages(flags, getUserPreferredUILanguages)
1618
+ }
1619
+
1620
+ // GetSystemPreferredUILanguages retrieves the system preferred UI languages.
1621
+ func GetSystemPreferredUILanguages(flags uint32) ([]string, error) {
1622
+ return getUILanguages(flags, getSystemPreferredUILanguages)
1623
+ }
1624
+
1625
+ func getUILanguages(flags uint32, f func(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) error) ([]string, error) {
1626
+ size := uint32(128)
1627
+ for {
1628
+ var numLanguages uint32
1629
+ buf := make([]uint16, size)
1630
+ err := f(flags, &numLanguages, &buf[0], &size)
1631
+ if err == ERROR_INSUFFICIENT_BUFFER {
1632
+ continue
1633
+ }
1634
+ if err != nil {
1635
+ return nil, err
1636
+ }
1637
+ buf = buf[:size]
1638
+ if numLanguages == 0 || len(buf) == 0 { // GetProcessPreferredUILanguages may return numLanguages==0 with "\0\0"
1639
+ return []string{}, nil
1640
+ }
1641
+ if buf[len(buf)-1] == 0 {
1642
+ buf = buf[:len(buf)-1] // remove terminating null
1643
+ }
1644
+ languages := make([]string, 0, numLanguages)
1645
+ from := 0
1646
+ for i, c := range buf {
1647
+ if c == 0 {
1648
+ languages = append(languages, string(utf16.Decode(buf[from:i])))
1649
+ from = i + 1
1650
+ }
1651
+ }
1652
+ return languages, nil
1653
+ }
1654
+ }
1655
+
1656
+ func SetConsoleCursorPosition(console Handle, position Coord) error {
1657
+ return setConsoleCursorPosition(console, *((*uint32)(unsafe.Pointer(&position))))
1658
+ }
1659
+
1660
+ func GetStartupInfo(startupInfo *StartupInfo) error {
1661
+ getStartupInfo(startupInfo)
1662
+ return nil
1663
+ }
1664
+
1665
+ func (s NTStatus) Errno() syscall.Errno {
1666
+ return rtlNtStatusToDosErrorNoTeb(s)
1667
+ }
1668
+
1669
+ func langID(pri, sub uint16) uint32 { return uint32(sub)<<10 | uint32(pri) }
1670
+
1671
+ func (s NTStatus) Error() string {
1672
+ b := make([]uint16, 300)
1673
+ n, err := FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_FROM_HMODULE|FORMAT_MESSAGE_ARGUMENT_ARRAY, modntdll.Handle(), uint32(s), langID(LANG_ENGLISH, SUBLANG_ENGLISH_US), b, nil)
1674
+ if err != nil {
1675
+ return fmt.Sprintf("NTSTATUS 0x%08x", uint32(s))
1676
+ }
1677
+ // trim terminating \r and \n
1678
+ for ; n > 0 && (b[n-1] == '\n' || b[n-1] == '\r'); n-- {
1679
+ }
1680
+ return string(utf16.Decode(b[:n]))
1681
+ }
1682
+
1683
+ // NewNTUnicodeString returns a new NTUnicodeString structure for use with native
1684
+ // NT APIs that work over the NTUnicodeString type. Note that most Windows APIs
1685
+ // do not use NTUnicodeString, and instead UTF16PtrFromString should be used for
1686
+ // the more common *uint16 string type.
1687
+ func NewNTUnicodeString(s string) (*NTUnicodeString, error) {
1688
+ s16, err := UTF16FromString(s)
1689
+ if err != nil {
1690
+ return nil, err
1691
+ }
1692
+ n := uint16(len(s16) * 2)
1693
+ return &NTUnicodeString{
1694
+ Length: n - 2, // subtract 2 bytes for the NULL terminator
1695
+ MaximumLength: n,
1696
+ Buffer: &s16[0],
1697
+ }, nil
1698
+ }
1699
+
1700
+ // Slice returns a uint16 slice that aliases the data in the NTUnicodeString.
1701
+ func (s *NTUnicodeString) Slice() []uint16 {
1702
+ // Note: this rounds the length down, if it happens
1703
+ // to (incorrectly) be odd. Probably safer than rounding up.
1704
+ return unsafe.Slice(s.Buffer, s.MaximumLength/2)[:s.Length/2]
1705
+ }
1706
+
1707
+ func (s *NTUnicodeString) String() string {
1708
+ return UTF16ToString(s.Slice())
1709
+ }
1710
+
1711
+ // NewNTString returns a new NTString structure for use with native
1712
+ // NT APIs that work over the NTString type. Note that most Windows APIs
1713
+ // do not use NTString, and instead UTF16PtrFromString should be used for
1714
+ // the more common *uint16 string type.
1715
+ func NewNTString(s string) (*NTString, error) {
1716
+ var nts NTString
1717
+ s8, err := BytePtrFromString(s)
1718
+ if err != nil {
1719
+ return nil, err
1720
+ }
1721
+ RtlInitString(&nts, s8)
1722
+ return &nts, nil
1723
+ }
1724
+
1725
+ // Slice returns a byte slice that aliases the data in the NTString.
1726
+ func (s *NTString) Slice() []byte {
1727
+ slice := unsafe.Slice(s.Buffer, s.MaximumLength)
1728
+ return slice[:s.Length]
1729
+ }
1730
+
1731
+ func (s *NTString) String() string {
1732
+ return ByteSliceToString(s.Slice())
1733
+ }
1734
+
1735
+ // FindResource resolves a resource of the given name and resource type.
1736
+ func FindResource(module Handle, name, resType ResourceIDOrString) (Handle, error) {
1737
+ var namePtr, resTypePtr uintptr
1738
+ var name16, resType16 *uint16
1739
+ var err error
1740
+ resolvePtr := func(i interface{}, keep **uint16) (uintptr, error) {
1741
+ switch v := i.(type) {
1742
+ case string:
1743
+ *keep, err = UTF16PtrFromString(v)
1744
+ if err != nil {
1745
+ return 0, err
1746
+ }
1747
+ return uintptr(unsafe.Pointer(*keep)), nil
1748
+ case ResourceID:
1749
+ return uintptr(v), nil
1750
+ }
1751
+ return 0, errorspkg.New("parameter must be a ResourceID or a string")
1752
+ }
1753
+ namePtr, err = resolvePtr(name, &name16)
1754
+ if err != nil {
1755
+ return 0, err
1756
+ }
1757
+ resTypePtr, err = resolvePtr(resType, &resType16)
1758
+ if err != nil {
1759
+ return 0, err
1760
+ }
1761
+ resInfo, err := findResource(module, namePtr, resTypePtr)
1762
+ runtime.KeepAlive(name16)
1763
+ runtime.KeepAlive(resType16)
1764
+ return resInfo, err
1765
+ }
1766
+
1767
+ func LoadResourceData(module, resInfo Handle) (data []byte, err error) {
1768
+ size, err := SizeofResource(module, resInfo)
1769
+ if err != nil {
1770
+ return
1771
+ }
1772
+ resData, err := LoadResource(module, resInfo)
1773
+ if err != nil {
1774
+ return
1775
+ }
1776
+ ptr, err := LockResource(resData)
1777
+ if err != nil {
1778
+ return
1779
+ }
1780
+ data = unsafe.Slice((*byte)(unsafe.Pointer(ptr)), size)
1781
+ return
1782
+ }
1783
+
1784
+ // PSAPI_WORKING_SET_EX_BLOCK contains extended working set information for a page.
1785
+ type PSAPI_WORKING_SET_EX_BLOCK uint64
1786
+
1787
+ // Valid returns the validity of this page.
1788
+ // If this bit is 1, the subsequent members are valid; otherwise they should be ignored.
1789
+ func (b PSAPI_WORKING_SET_EX_BLOCK) Valid() bool {
1790
+ return (b & 1) == 1
1791
+ }
1792
+
1793
+ // ShareCount is the number of processes that share this page. The maximum value of this member is 7.
1794
+ func (b PSAPI_WORKING_SET_EX_BLOCK) ShareCount() uint64 {
1795
+ return b.intField(1, 3)
1796
+ }
1797
+
1798
+ // Win32Protection is the memory protection attributes of the page. For a list of values, see
1799
+ // https://docs.microsoft.com/en-us/windows/win32/memory/memory-protection-constants
1800
+ func (b PSAPI_WORKING_SET_EX_BLOCK) Win32Protection() uint64 {
1801
+ return b.intField(4, 11)
1802
+ }
1803
+
1804
+ // Shared returns the shared status of this page.
1805
+ // If this bit is 1, the page can be shared.
1806
+ func (b PSAPI_WORKING_SET_EX_BLOCK) Shared() bool {
1807
+ return (b & (1 << 15)) == 1
1808
+ }
1809
+
1810
+ // Node is the NUMA node. The maximum value of this member is 63.
1811
+ func (b PSAPI_WORKING_SET_EX_BLOCK) Node() uint64 {
1812
+ return b.intField(16, 6)
1813
+ }
1814
+
1815
+ // Locked returns the locked status of this page.
1816
+ // If this bit is 1, the virtual page is locked in physical memory.
1817
+ func (b PSAPI_WORKING_SET_EX_BLOCK) Locked() bool {
1818
+ return (b & (1 << 22)) == 1
1819
+ }
1820
+
1821
+ // LargePage returns the large page status of this page.
1822
+ // If this bit is 1, the page is a large page.
1823
+ func (b PSAPI_WORKING_SET_EX_BLOCK) LargePage() bool {
1824
+ return (b & (1 << 23)) == 1
1825
+ }
1826
+
1827
+ // Bad returns the bad status of this page.
1828
+ // If this bit is 1, the page is has been reported as bad.
1829
+ func (b PSAPI_WORKING_SET_EX_BLOCK) Bad() bool {
1830
+ return (b & (1 << 31)) == 1
1831
+ }
1832
+
1833
+ // intField extracts an integer field in the PSAPI_WORKING_SET_EX_BLOCK union.
1834
+ func (b PSAPI_WORKING_SET_EX_BLOCK) intField(start, length int) uint64 {
1835
+ var mask PSAPI_WORKING_SET_EX_BLOCK
1836
+ for pos := start; pos < start+length; pos++ {
1837
+ mask |= (1 << pos)
1838
+ }
1839
+
1840
+ masked := b & mask
1841
+ return uint64(masked >> start)
1842
+ }
1843
+
1844
+ // PSAPI_WORKING_SET_EX_INFORMATION contains extended working set information for a process.
1845
+ type PSAPI_WORKING_SET_EX_INFORMATION struct {
1846
+ // The virtual address.
1847
+ VirtualAddress Pointer
1848
+ // A PSAPI_WORKING_SET_EX_BLOCK union that indicates the attributes of the page at VirtualAddress.
1849
+ VirtualAttributes PSAPI_WORKING_SET_EX_BLOCK
1850
+ }
1851
+
1852
+ // CreatePseudoConsole creates a windows pseudo console.
1853
+ func CreatePseudoConsole(size Coord, in Handle, out Handle, flags uint32, pconsole *Handle) error {
1854
+ // We need this wrapper to manually cast Coord to uint32. The autogenerated wrappers only
1855
+ // accept arguments that can be casted to uintptr, and Coord can't.
1856
+ return createPseudoConsole(*((*uint32)(unsafe.Pointer(&size))), in, out, flags, pconsole)
1857
+ }
1858
+
1859
+ // ResizePseudoConsole resizes the internal buffers of the pseudo console to the width and height specified in `size`.
1860
+ func ResizePseudoConsole(pconsole Handle, size Coord) error {
1861
+ // We need this wrapper to manually cast Coord to uint32. The autogenerated wrappers only
1862
+ // accept arguments that can be casted to uintptr, and Coord can't.
1863
+ return resizePseudoConsole(pconsole, *((*uint32)(unsafe.Pointer(&size))))
1864
+ }
1865
+
1866
+ // DCB constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/ns-winbase-dcb.
1867
+ const (
1868
+ CBR_110 = 110
1869
+ CBR_300 = 300
1870
+ CBR_600 = 600
1871
+ CBR_1200 = 1200
1872
+ CBR_2400 = 2400
1873
+ CBR_4800 = 4800
1874
+ CBR_9600 = 9600
1875
+ CBR_14400 = 14400
1876
+ CBR_19200 = 19200
1877
+ CBR_38400 = 38400
1878
+ CBR_57600 = 57600
1879
+ CBR_115200 = 115200
1880
+ CBR_128000 = 128000
1881
+ CBR_256000 = 256000
1882
+
1883
+ DTR_CONTROL_DISABLE = 0x00000000
1884
+ DTR_CONTROL_ENABLE = 0x00000010
1885
+ DTR_CONTROL_HANDSHAKE = 0x00000020
1886
+
1887
+ RTS_CONTROL_DISABLE = 0x00000000
1888
+ RTS_CONTROL_ENABLE = 0x00001000
1889
+ RTS_CONTROL_HANDSHAKE = 0x00002000
1890
+ RTS_CONTROL_TOGGLE = 0x00003000
1891
+
1892
+ NOPARITY = 0
1893
+ ODDPARITY = 1
1894
+ EVENPARITY = 2
1895
+ MARKPARITY = 3
1896
+ SPACEPARITY = 4
1897
+
1898
+ ONESTOPBIT = 0
1899
+ ONE5STOPBITS = 1
1900
+ TWOSTOPBITS = 2
1901
+ )
1902
+
1903
+ // EscapeCommFunction constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-escapecommfunction.
1904
+ const (
1905
+ SETXOFF = 1
1906
+ SETXON = 2
1907
+ SETRTS = 3
1908
+ CLRRTS = 4
1909
+ SETDTR = 5
1910
+ CLRDTR = 6
1911
+ SETBREAK = 8
1912
+ CLRBREAK = 9
1913
+ )
1914
+
1915
+ // PurgeComm constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-purgecomm.
1916
+ const (
1917
+ PURGE_TXABORT = 0x0001
1918
+ PURGE_RXABORT = 0x0002
1919
+ PURGE_TXCLEAR = 0x0004
1920
+ PURGE_RXCLEAR = 0x0008
1921
+ )
1922
+
1923
+ // SetCommMask constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-setcommmask.
1924
+ const (
1925
+ EV_RXCHAR = 0x0001
1926
+ EV_RXFLAG = 0x0002
1927
+ EV_TXEMPTY = 0x0004
1928
+ EV_CTS = 0x0008
1929
+ EV_DSR = 0x0010
1930
+ EV_RLSD = 0x0020
1931
+ EV_BREAK = 0x0040
1932
+ EV_ERR = 0x0080
1933
+ EV_RING = 0x0100
1934
+ )